Connect ChatGPT to Pi - an MCP server that bridges ChatGPT with Pi sessions, enabling tool execution, question widgets, and session management
Chappie exhibits significant definition quality gaps. While 11 of 12 tools have descriptions (92%), most are verbose and lack actionable structure. Parameter descriptions are sparse: 'read', 'bash', 'edit', 'write', and 'transfer' lack ANY parameter descriptions beyond sessionId. Input schemas are present but minimal, most tools expose only sessionId with no type constraints, enums, or validation guidance. Tool names are action-oriented (init, chat, ask, call) but several lack clarity on scope and side effects. Error handling is not visible in the provided code. Output schemas are documented for some tools (init, chat, ask) but missing for others (read, bash, edit, write, transfer). The 'bash' tool is particularly concerning: it accepts no visible parameters beyond sessionId, making it impossible for an LLM to specify which command to run.
Read a saved question, report widget loading, or save an answer, revision, or skip.
Request a question widget in ChatGPT and return its ID immediately. Display depends on the host; call ask_assert next with question.id to confirm loading. Answers, revisions, and skips arrive as webAnswer in later tool results.
Confirm that an ask widget loaded in ChatGPT. Call immediately after ask with question.id. Fails after 10 seconds without loading and records the question as skipped. Use a Pi interactive tool if an answer is needed. User answers arrive separately as webAnswer.
Execute bash commands in the current working directory
Execute Pi tools using the definitions returned by tools. Each calls array is one native Pi batch.
Send a Markdown assistant message to Pi.
bash tool has no visible input parameters beyond sessionId. LLM cannot specify which command to execute. Schema score 10/100.
read, edit, write, transfer tools lack parameter descriptions. Only sessionId is documented; no guidance on file paths, content, or operation details.
answer tool has ambiguous schema: 'answer' parameter is an object with no documented structure. LLM cannot infer what fields to pass.
No error handling guidance visible. Tools do not document retryable vs fatal errors, or recovery steps for LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2025-06-18+ | v2 |
Edit file contents in the current working directory
Select this chat's default Pi session and return its environment, tool catalog, and participation instructions. Use the task's sessionId to resume, or find it by cwd/name with sessions. For a task without a specified target, omit sessionId to reuse the default or select the first online, unbound session. Read recent history when resuming work.
Read file contents from the current working directory
Get full definitions of Pi tools for call. Filter by names, or omit names to list all active tools.
Transfer files between systems
Write file contents to the current working directory
Output schemas missing for read, bash, edit, write, transfer. LLM cannot plan downstream tool calls without knowing return structure.