summaryrefslogtreecommitdiff
path: root/AGENTS.md
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-29 21:40:43 +0000
committerIgor Soarez <igor@soarez.org>2026-10-29 21:40:43 +0000
commitb3448031088447d76d80ac6b2bfa08320973a2d9 (patch)
tree09296e817e89ef2ef098e9259e26872be2327c83 /AGENTS.md
parentb5100c2e088ef5c966b114f968847de779ed852f (diff)
pi: generate mcp.json from ~/.config/pi/mcp.d fragments
pi reads user-level MCP servers from one file, and a private layer linked that file to the same copy on every host -- so every host got a server only one machine could run. Build it the way models.json is built, from fragments another layer or one machine drops in mcp.d; this repo ships none, and with none the file is left absent. pi-models.py becomes pi-merge.py, which takes the key to merge and an optional base file, and serves both.
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 2658b34..fd81c8c 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -67,6 +67,7 @@ what it needs through these, each of them optional and absent by default:
| `~/.claude/rules/*.md` | extra Claude Code user memory, loaded next to `config/claude/CLAUDE.md` |
| `~/.config/pi/settings.d/*.json` | pi settings merged into the generated `~/.pi/agent/settings.json` by `link/pi.sh` |
| `~/.config/pi/models.d/*.json` | pi providers merged into the generated `~/.pi/agent/models.json` by `link/pi.sh` |
+| `~/.config/pi/mcp.d/*.json` | pi MCP servers, merged into the generated `~/.pi/agent/mcp.json` by `link/pi.sh`; this repo ships none |
| `~/.pi/agent/extensions/*`, real files | pi extensions only this machine has -- herdr's pi integration installs `herdr-agent-state.ts` here | pi itself, beside the repo's extensions, which `link/pi.sh` links in one by one |
A credential in a pi provider -- `apiKey`, or anything under `headers` -- is a
@@ -189,6 +190,7 @@ tracked config says so, and in no repo:
| `~/.config/dot/skip` | which `link/` parts this machine does not want, one name per line | `link/lib.sh`, as each part starts |
| `~/.config/dot/inbox-key` | the key this machine signs change requests with | `bin/dot-request` |
| `~/.config/pi/models.d/*.json` | pi providers only this machine has -- a model served somewhere other than a vendor's own API | `link/pi.sh`, merged over `config/pi/models.json` |
+| `~/.config/pi/mcp.d/*.json` | pi MCP servers only this machine has | `link/pi.sh`, merged into `~/.pi/agent/mcp.json` |
Not covered today: bat, lsd, and `~/.claude/settings.json` -- which
a machine can only leave alone entirely, by naming `claude` in the skip file.