ChatGPT Web Integration¶
KiCad MCP Pro has one verified ChatGPT-facing profile today: a public-safe, read-only Streamable HTTP app. It can analyze repository-owned or uploaded project data inside an explicitly configured upload root and render three HTML widgets. It does not grant ChatGPT direct access to a user's local KiCad process.
Current architecture and trust boundaries¶
ChatGPT web / MCP client
|
| HTTPS Streamable HTTP (deployment boundary)
v
KiCad MCP Pro ChatGPT App
- six read-only tools
- upload-root containment
- rate-limited analysis endpoint
- dashboard, review, and manufacturing widgets
|
| optional local subprocess on the same trusted host
v
kicad-mcp-pro package / uploaded fixture data
Separate localhost-only component (not reachable from ChatGPT web):
local client -> 127.0.0.1 TCP bridge -> local Streamable HTTP server -> KiCad
The public deployment operator is responsible for HTTPS, authentication, and network policy. The app package itself does not provide a hosted relay between ChatGPT and a user's workstation.
Public-safe profile (supported)¶
The supported profile exposes these read-only tools:
search_kicad_knowledgeanalyze_uploaded_kicad_projectexplain_drc_reportexplain_erc_reportgenerate_manufacturing_readiness_reportgenerate_agent_config
Every tool is exported with readOnlyHint=true, destructiveHint=false, and
idempotentHint=true. Only documentation search is marked open-world. Uploaded
paths are canonicalized and must remain under the OS temporary directory or a
root listed in KICAD_MCP_UPLOAD_ROOTS.
Remote-to-local bridge (not currently supported)¶
kicad-mcp-pro bridge binds to 127.0.0.1 and accepts newline-delimited JSON-RPC
from a local client after pairing. It does not provide a hosted relay, NAT
traversal, browser transport, or remote discovery. It also does not implement
per-tool local approval after pairing. Therefore ChatGPT web cannot securely pair
directly with this bridge, and local write/mutation workflows must not be claimed
as supported by the ChatGPT App.
Use local stdio or local Streamable HTTP clients for KiCad mutation workflows. Keep the bridge port localhost-only.
Verified host matrix¶
| Host path | Status | Verification |
|---|---|---|
| Generic MCP SDK client -> public-safe app | Supported | npm run test:smoke |
| ChatGPT-compatible stateless HTTP profile | Supported protocol profile | tests/integration/test_mcp_2026_host_smoke.py |
| Browser widget static assets | Supported | npm run test:smoke |
| Local stdio clients -> local KiCad server | Supported separately | main server CI matrix |
| ChatGPT web -> localhost bridge | Not currently supported | no relay or per-tool approval |
Local verification¶
cd integrations/chatgpt-app/apps-sdk
npm ci
npm run typecheck
npm run build
npm run test:smoke
The smoke test starts the compiled server, connects with the official MCP SDK, validates identity, tool annotations, tool execution, and all widgets, stops the process, restarts it, and reconnects.
Directory submission¶
Repository media, privacy, metadata, and reviewer evidence are checked with:
pnpm run submission:check
SUBMISSION_MODE=1 pnpm run submission:check
Platform domain verification and the final dashboard submission remain manual.
See ../submission/chatgpt-apps.md.