MCP server for medical coding with API catalog search, code execution, GraphQL, and SPARQL support
Server has 5 tools with schemas and descriptions present, but quality is inconsistent. Tool names lack clear action verbs (createCatalogSearchTool, createExecuteTool use factory naming rather than verb_noun). Descriptions are present but generic, most lack actionable guidance on WHEN to use each tool vs alternatives. Parameter descriptions exist but are sparse (e.g., 'workspace' param has minimal context). Output schemas are not documented, LLMs cannot infer what these tools return. Error handling is absent from visible code. Security concerns: execute tools accept arbitrary JavaScript code, creating injection risk. No evidence of input validation, rate limiting, or permission gates.
Search the API catalog (legacy). Returns matching endpoints with full parameter docs. Use this to discover API capabilities before calling execute.
Execute JavaScript code against an API catalog or OpenAPI spec in a sandboxed V8 isolate. Code runs with api.get/api.post wrappers, catalog search helpers, and console.log capture.
Execute JavaScript code against a GraphQL endpoint in a sandboxed V8 isolate. Code runs with gql.query(), schema introspection helpers, and optional REST API support.
Search an OpenAPI spec using JavaScript code. Write code to search paths, list tags, get operations, or access the full spec object directly.
Execute JavaScript code against a SPARQL endpoint in a sandboxed V8 isolate. Code runs with sparql.query(), sparql.ask(), schema introspection helpers, and common ontology prefixes.
Tool names use factory function naming (createExecuteTool) rather than action verbs (execute_code, search_catalog). LLMs cannot infer intent from factory names alone.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., does execute_code return {result, staged_data, error}?). Breaks tool chaining.
Execute tools accept arbitrary JavaScript code without validation, sanitization, or permission checks. Code injection risk. No error recovery guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | 2026-07-28+ | v2 |
Parameter descriptions are minimal. 'workspace' param lacks context (what is a workspace? when is it required?). 'code' param has no constraints on length, complexity, or allowed operations.
No error handling guidance. If code execution fails, what should the LLM do? Retry? Ask user? Fallback? No recovery paths documented.