Critical gaps across all dimensions. Tools are dynamically loaded from remote Stitch API at startup via tools/list RPC, then wrapped as MCP tools. However, the source code shows NO explicit tool definitions with schemas or descriptions, only a generic wrapper that copies remote tool metadata. Input schemas are inferred from the remote API response but not visible in the MCP server code itself. Descriptions are copied from remote metadata (unknown quality). No parameter-level descriptions visible. Output schemas are not documented. Error handling is minimal, responses are formatted for display but lack recovery guidance. Security: GCP credentials are injected via environment (STITCH_GCP_PROJECT) and gcloud CLI, which is correct, but no per-tool permission gates or audit logging. Composition: tools are tightly coupled to the Stitch API; no abstraction or simplification for the LLM. Per-tool scores reflect the inability to verify schemas and descriptions in the MCP server code itself.
No tool descriptions visible in MCP server code. Tools are dynamically loaded from remote Stitch API; descriptions are copied from remote metadata but not documented in the MCP server itself. LLMs cannot determine when or why to select each tool.
Input schemas not visible in MCP server code. Tools are wrapped from remote API responses; schemas are inferred but not explicitly defined or validated in the MCP server. Cannot verify parameter types, descriptions, or constraints.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | 2025-06-18+ | v2 |
Output schemas not documented. Response formatting in _format_response() is for display only; no structured output schema is provided to the LLM. LLMs cannot plan downstream tool calls or extract required fields reliably.
Error handling lacks recovery guidance. Errors from the Stitch API are passed through without actionable next steps. LLMs receive raw API errors with no suggestion for retry, alternative tools, or user-fixable actions.
No permission gates or audit logging. Destructive tools (create_project, edit_screens, delete operations) are not gated by permission checks. No audit trail of who called what tool and when.