Reusable core for building RunAPI MCP servers: client, contract/pricing/schema queries, input-rule engine, and a createModelServer factory.
Two tools with significant definition gaps. 'login' has a reasonable description (89 chars) and minimal schema (1 param, boolean). 'dynamic_tool' has a verbose, jargon-heavy description (234 chars) that conflates implementation details with user intent, and a complex schema with 4 parameters but lacks clarity on what the tool actually does from a user perspective. Neither tool has output schemas documented. Parameter descriptions are present but generic. No error handling guidance visible. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Both tools are WRITE-risk but descriptions do not explicitly state side effects or irreversibility.
Dynamically generated tool created by createModelServer factory. Creates and optionally polls a RunAPI task for a service/action, validating params against inputSchema and cross-field input rules.
Interactive browser-based authentication for RunAPI. Initiates OAuth 2.0 PKCE flow, opens browser for user authorization, exchanges code for API key, and saves to local config.
Tool 'dynamic_tool' name is generic and does not convey action. LLMs cannot infer intent from 'dynamic_tool' alone. Should be verb_noun pattern like 'create_task' or 'run_action'.
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract required fields (e.g., task_id for polling). Responses are returned as JSON text blobs without structure.
'dynamic_tool' description mixes implementation details ('createModelServer factory', 'inputSchema', 'cross-field input rules') with user-facing intent. Should explain: What does this tool do? When should I call it? What does it return?
Both tools are WRITE-risk but descriptions do not explicitly state side effects. 'login' modifies local config; 'dynamic_tool' creates tasks. Descriptions must say 'This modifies state' so agents know retry semantics.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Agents cannot determine if tools are safe to retry or have side effects without explicit hints.