Demo
Tool Calls
The core flow — AI calls a tool, pmcp translates JSON-RPC to protobuf, your tool process handles it, result flows back.
{ “temp”: 62, “condition”: “foggy”, “wind”: “12mph” }Progress Reporting
Long-running tools report progress in real time. Notifications flow back through pmcp to the host — no polling needed.
found 47 files across 12 directories
Dynamic Tool Lists
The tool process controls which tools are visible. Here, the login handler returns enable_tools in its result — pmcp updates the tool list and notifies the host. No restart, no config change.
Authenticated
Created user Alice (id: usr_847)
Hot Reload
A tool call fails. The developer fixes the bug and saves. pmcp hot-reloads the fix — no restart needed. The AI retries and it works.
error [INVALID_FORMAT]: CSV writer not initialized
⟳ File changed: tools.py — reloading…
✓ Reconnected · 3 tools registered
Exported 1,204 rows to sales.csv
Tool Groups
Tool groups bundle related actions under one tool name. A oneOf discriminated union schema guides the agent to the right parameters for each action.
Added 12,847 rows from sales.csv
Server-Defined Workflows
Multi-step workflows where the tool surface changes at each step. Tools appear and disappear as the workflow progresses — the available tools are the state machine.
3 files changed
Approved
⚡ Available tools changed: +deploy.run_tests −deploy.review −deploy.approve
42 tests passed
⚡ Available tools changed: +deploy.promote −deploy.run_tests −deploy.cancel
Live in production
Local Middleware
Middleware runs in-process — no round-trip to the Go bridge. Here it intercepts an error, formats it for the agent, and the agent recovers.
Permission denied: /etc/shadow — try a file you own
# .profile contents…
What’s New
protomcp now supports advanced features for building complex MCP servers:
- Tool Groups — group related actions with per-action schemas (
oneOfdiscriminated unions) - Server-Defined Workflows — multi-step state machines where the tool surface is the state
- Local Middleware — in-process middleware chains for error formatting, timing, and more
- Declarative Validation — required fields, enum fuzzy matching, cross-parameter rules
- Server Context — shared parameter resolvers injected automatically
- Telemetry Sinks — structured tool-call events to pluggable, fail-safe sinks
- Sidecar Management — managed companion processes with health checks
- Handler Discovery — auto-discover tool handlers from a directory
See the Python Guide for the full API.
Try It Yourself
brew install msilverblatt/tap/protomcppmcp dev examples/python/basic.pyCheck out the Quick Start guide or browse the examples.