MCP server that allows autonomous coding agents to escalate questions to ChatGPT Desktop automatically
Two tools with well-structured schemas and descriptions. Both tools have clear names starting with action verbs (list_, escalate_to_), explicit parameter documentation, and defined input schemas. The escalate_to_expert tool has rich, context-aware descriptions that guide LLM decision-making. However, output schemas are not formally documented in the source, and error handling lacks recovery guidance. The server does not include tool annotations (readOnlyHint/destructiveHint) despite tool semantics being clear from descriptions.
Escalate a question to an expert (ChatGPT Desktop) when you are stuck or need guidance. Use this when you've tried reasonable approaches but are blocked. Returns structured guidance with an action plan. Call list_projects first to see available project IDs.
List all available project IDs that can be used with escalate_to_expert. Call this first to discover what projects are configured before escalating.
Output schemas not documented in source code. Tool responses are constructed as text/JSON in CallToolRequestSchema handlers, but the response structure is not formally specified. LLMs cannot plan downstream logic without knowing what fields will be returned.
Tool annotations absent. list_projects is read-only; escalate_to_expert is destructive (initiates user interaction). Neither tool declares readOnlyHint, destructiveHint, or idempotentHint annotations in the tool definition, limiting LLM reasoning about side effects and retry safety.
Error handling lacks recovery guidance. Code throws generic errors (e.g., 'Unknown tool: {name}', 'No arguments provided', 'Invalid configuration') without suggesting next steps or alternatives. LLMs receive no actionable guidance on how to recover.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 75 | <=2025-11-25 | v2 |
escalate_to_expert 'attempted' parameter is optional but highly relevant. No default is provided, and the description does not clarify what happens if omitted. LLMs may skip providing context about prior attempts, weakening the escalation.
Dependency hint could be stronger in escalate_to_expert. While description mentions 'Call list_projects first', it does not explain WHY (to discover valid project IDs) or what failure mode occurs if an invalid project is passed.