8 tools with identical schema structure and good parameter coverage. Descriptions are present and functional but generic. All tools follow verb_noun naming (get_*). Parameter schemas are well-defined with types, descriptions, and sensible defaults. However, descriptions lack context on WHEN to use each tool (they are near-identical across 8 tools) and omit actionable guidance on prerequisites or common error scenarios. Output schema (DrugInfo) is documented but response structure guidance for agents is minimal. Error handling present (retry logic, 404 handling) but lacks actionable recovery messages. No tool annotations (readOnlyHint, etc.) despite all 8 being read-only. Logging implemented but generic.
Returns FDA 'Clinical Pharmacology' info. Supports filtering by drug name, NDC, manufacturer, dosage form, and route.
Returns FDA-approved product description. Supports filtering by drug name, NDC, manufacturer, dosage form, and route.
Returns FDA-approved dosage and administration instructions. Supports filtering by drug name, NDC, manufacturer, dosage form, and route.
Returns FDA-approved indications. Supports filtering by drug name, NDC, manufacturer, dosage form, and route.
Returns inactive, non-medicinal ingredients in a drug product. Supports filtering by drug name, NDC, manufacturer, dosage form, and route.
Returns FDA 'Use in Specific Populations' info. Supports filtering by drug name, NDC, manufacturer, dosage form, and route.
Identical descriptions across 8 tools make it hard for LLMs to disambiguate. All say 'Returns FDA [section] info. Supports filtering by drug name...' with no distinction about WHEN to use each vs the others.
No tool annotations despite all 8 tools being read-only. Missing readOnlyHint:true in MCP spec would let clients optimize caching and retry logic.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 65 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 20 | - | v1 |
Returns FDA 'How Supplied/Storage and Handling' info. Supports filtering by drug name, NDC, manufacturer, dosage form, and route.
Returns FDA 'Warnings and Precautions' info. Supports filtering by drug name, NDC, manufacturer, dosage form, and route.
Error responses in code return generic 404/HTTP errors without actionable recovery guidance. E.g., 'No results found' does not suggest alternative search strategies or related tools.
Descriptions do not explain the output structure. Agents do not know that DrugInfo.indications returns an array of strings, or how to chain results to subsequent API calls. Response field naming guidance is absent.
NDC normalization logic is in the tool (main.py) but the parameter description does not document that both hyphenated (e.g., '12345-6789-01') and non-hyphenated (e.g., '1234567890') formats are accepted. Agents may not know this flexibility exists.