Give your AI agent access to any API in ~1,000 tokens. 2 tools. 56 APIs.
Both tools have critical definition gaps. The 'search' and 'execute' tools accept arbitrary JavaScript code as input, making them fundamentally unsafe and unmaintainable. Tool descriptions are vague and reference undefined functions (codemode.getSpec, codemode.request). Input schemas lack proper structure, a single 'code' string parameter with minimal guidance. No output schemas are documented. No error handling guidance. These tools violate core MCP patterns: they expose implementation details (JavaScript execution) rather than declarative APIs, lack input validation, and provide no recovery guidance for LLMs.
Execute API calls for {apiId}. Use search first, then call codemode.request(...). Auth is injected server-side from request headers.
Search preprocessed OpenAPI spec for {apiId}. Write an async arrow function using codemode.getSpec({}) and return compact results like {operationId, method, path, summary}.
Tools accept arbitrary code execution instead of declarative parameters. 'search' and 'execute' require LLMs to write JavaScript code, violating the tool-as-API pattern. This is unmaintainable, unsafe, and forces LLMs to reason about implementation details rather than intent.
Input schema is minimal and unsafe. Single 'code' parameter with type 'string' and vague description. No validation, no constraints, no guidance on what code is valid. LLMs will hallucinate arbitrary JavaScript.
No output schemas documented. LLMs cannot plan downstream actions or extract structured data. Descriptions reference undefined functions (codemode.getSpec, codemode.request) with no explanation of return format.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | <=2025-11-25 | v2 |
Descriptions are vague and implementation-focused. 'Search preprocessed OpenAPI spec' and 'Execute API calls' do not explain WHEN to use each tool, what they return, or how they differ. No recovery guidance for errors.
No error handling or recovery guidance. If code execution fails, LLMs receive no actionable error message or next steps. No categorization of retryable vs fatal errors.