feat(pi): add native pi integration — extension, config pi, skills --agent pi
- src/pi-ext/: self-contained pi extension (mcpctl-pi.ts + vendored mcp-http client) that talks JSON-RPC directly to mcplocal and registers project MCP tools as native pi tools. No MCP client, no ~/.claude. - Persistent per-project session so gated projects ungate on begin_session. - /mcpctl command: status, switch project (GUI), refresh tools, sync skills. - mcpctl config pi: installs extension, wires pi settings, persists active project, syncs skills into ~/.pi/agent/skills. - skills sync: add --agent pi (target install root). - docs + tests.
This commit is contained in:
24
README.md
24
README.md
@@ -113,6 +113,30 @@ This writes a `.mcp.json` that tells Claude Code to connect through mcplocal. Re
|
||||
mcpctl console monitoring # Preview what Claude sees
|
||||
```
|
||||
|
||||
### 7. Use mcpctl with pi (no MCP client, no Claude)
|
||||
|
||||
[pi](https://github.com/earendil-works/pi) does not support MCP, but it supports
|
||||
**extensions** and **skills**. mcpctl ships a native pi integration that talks
|
||||
JSON-RPC directly to mcplocal over HTTP — no MCP library, no `~/.claude`
|
||||
dependency, so it keeps working even if you drop Claude entirely.
|
||||
|
||||
```bash
|
||||
mcpctl config pi --project monitoring
|
||||
```
|
||||
|
||||
This installs the `mcpctl` pi extension into `~/.pi/agent/extensions/mcpctl/`,
|
||||
registers it (plus a pi skills dir) in `~/.pi/agent/settings.json`, persists the
|
||||
active project in `~/.mcpctl/pi-state.json`, and runs an initial skills sync into
|
||||
`~/.pi/agent/skills/`. Then start pi and the project's MCP tools are registered as
|
||||
native pi tools (`mc_<project>_<tool>`).
|
||||
|
||||
Inside pi:
|
||||
|
||||
- `/mcpctl` — status, **switch project** (from the GUI), refresh tools, sync skills
|
||||
- gated projects auto-ungate: call `begin_session` once and the full tool set opens
|
||||
|
||||
See [docs/pi-extension.md](docs/pi-extension.md) for full details.
|
||||
|
||||
## Declarative Configuration
|
||||
|
||||
Everything can be defined in YAML and applied with `mcpctl apply`:
|
||||
|
||||
Reference in New Issue
Block a user