MCP server for NUCC (National Uniform Claim Committee) taxonomy data with Code Mode execution, API catalog search, and data staging capabilities
Three tools with partial schemas and descriptions. search and execute have detailed descriptions (150-200 chars) but schemas lack proper type definitions and descriptions for all parameters. query_data has minimal description (60 chars, below 20-char floor). All three tools show input parameters but lack formal JSON Schema with explicit type constraints. No output schemas documented. Error handling guidance absent. Naming is reasonable (verb_noun pattern) but parameter documentation is inconsistent.
Execute JavaScript code in a sandboxed V8 isolate with API proxy helpers, catalog search, and auto-staging. Code has access to: searchSpec(query), listCategories(), getEndpoint(path), api.get/api.post wrappers, console.log() capture. Large responses (>100KB) are auto-staged into SQLite. Returns result with optional staging metadata and citation information.
Query staged data using SQL. Available when auto-staging has created SQLite tables from large API responses. Executes SQL against the staged dataset and returns results.
Search the API catalog (legacy catalog mode) or OpenAPI spec. Returns matching endpoints with full parameter docs. Use this to discover API capabilities before calling execute. Categories are listed. USAGE IN execute: api.get(path, params) for GET, api.post(path, body, params) for POST. Path params like /lookup/{id} are auto-interpolated from params. Remaining params become query string. Large responses (>100KB) are auto-staged: check result.__staged, return the staging info, use query_data to explore. Use limit/pagination params to control response size.
query_data description is 60 characters and lacks actionable context. Does not explain when to call it, what it returns, or how it relates to auto-staging. Violates 20-char minimum for meaningful descriptions.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., data_access_id from search results). Violates pattern:response-shaper.
search parameter 'code' lacks type definition in visible schema. Zod schema shows z.string() but no explicit JSON Schema type constraint visible in tool registration. Parameter descriptions present but incomplete (missing format/length guidance).
execute tool accepts arbitrary JavaScript code with no validation, sandboxing details, or error recovery guidance. Description mentions 'sandboxed V8 isolate' but does not explain failure modes, timeout behavior, or what happens on syntax errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
No pagination or result-limiting guidance for search tool. Description mentions 'max_results' parameter but does not explain default behavior, total count return, or how to handle large result sets. Violates pattern:paginated-result.