ungated-global: system project whose servers ride every project, pre-gate #137

Merged
michal merged 1 commits from feat/ungated-global into main 2026-10-03 00:46:09 +00:00
Owner

New seed-once system project ungated-global: every server attached to it is merged into every project's MCP endpoint in front of the gate — tools listed and callable before begin_session — and its project prompt is prepended to every project's instructions.

mcpd

  • bootstrapUngatedGlobal seeds the project once-ever (marker ungatedGlobalSeeded in the mcpctl-system-settings secret), with default server calcmcp (patched CalcMCP fork, mysources.co.uk/michal/calcmcp:1.1.0, pure compute: no env/secrets/egress) and a "never do math yourself, always use calcmcp" prompt. Deletions are durable — mcpctl delete server calcmcp -p ungated-global stays deleted across restarts.
  • GET /projects/:id/servers appends global servers flagged ungatedGlobal: true (direct attachment wins; no self-merge on ungated-global itself; missing project = no-op).
  • GET /projects/:id/instructions prepends the global prompt and lists global servers.

mcplocal

  • Discovery surfaces flagged names (refreshProjectUpstreams now returns {names, ungatedServers}).
  • Gate plugin exempts them: gated tools/list = begin_session + exempt tools; calls pass through without ungating; initialize instructions list them under "Available immediately (no begin_session required)".

Also: templates/calcmcp.yaml (re-create a deleted default by hand), docs/ungated-global.md.

Tests: 1193 mcpd + 873 mcplocal pass (new: bootstrap seed-once/no-resurrect, route merge/dedupe/self-merge, gate exemption list/call/instructions, discovery flag).

🤖 Generated with Claude Code

New seed-once system project `ungated-global`: every server attached to it is merged into every project's MCP endpoint **in front of the gate** — tools listed and callable before `begin_session` — and its project prompt is prepended to every project's instructions. **mcpd** - `bootstrapUngatedGlobal` seeds the project once-ever (marker `ungatedGlobalSeeded` in the `mcpctl-system-settings` secret), with default server `calcmcp` (patched CalcMCP fork, `mysources.co.uk/michal/calcmcp:1.1.0`, pure compute: no env/secrets/egress) and a "never do math yourself, always use calcmcp" prompt. Deletions are durable — `mcpctl delete server calcmcp -p ungated-global` stays deleted across restarts. - `GET /projects/:id/servers` appends global servers flagged `ungatedGlobal: true` (direct attachment wins; no self-merge on ungated-global itself; missing project = no-op). - `GET /projects/:id/instructions` prepends the global prompt and lists global servers. **mcplocal** - Discovery surfaces flagged names (`refreshProjectUpstreams` now returns `{names, ungatedServers}`). - Gate plugin exempts them: gated `tools/list` = `begin_session` + exempt tools; calls pass through without ungating; initialize instructions list them under "Available immediately (no begin_session required)". Also: `templates/calcmcp.yaml` (re-create a deleted default by hand), `docs/ungated-global.md`. Tests: 1193 mcpd + 873 mcplocal pass (new: bootstrap seed-once/no-resurrect, route merge/dedupe/self-merge, gate exemption list/call/instructions, discovery flag). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
michal added 1 commit 2026-10-03 00:45:59 +00:00
ungated-global: system project whose servers ride every project, pre-gate
Some checks failed
CI/CD / lint (pull_request) Successful in 1m12s
CI/CD / test (pull_request) Successful in 1m26s
CI/CD / typecheck (pull_request) Successful in 3m22s
CI/CD / smoke (pull_request) Failing after 1m57s
CI/CD / build (pull_request) Successful in 5m15s
CI/CD / publish (pull_request) Has been skipped
7b70c91c41
New seed-once system project `ungated-global`: every server attached to it
is merged into every project's MCP endpoint in front of the gate (listed
and callable before begin_session), and its project prompt is prepended to
every project's instructions.

- mcpd: bootstrapUngatedGlobal seeds the project once-ever (marker key
  `ungatedGlobalSeeded` in mcpctl-system-settings), with default server
  `calcmcp` (patched CalcMCP fork, mysources.co.uk/michal/calcmcp:1.1.0)
  and a "never do math yourself, always use calcmcp" prompt. Deletions are
  durable: `mcpctl delete server calcmcp -p ungated-global` stays deleted.
- mcpd: GET /projects/:id/servers appends global servers flagged
  `ungatedGlobal: true` (direct attachment wins, no self-merge);
  GET /projects/:id/instructions prepends the global prompt and lists the
  global servers.
- mcplocal: discovery surfaces the flagged names; the gate plugin exempts
  them — gated tools/list returns begin_session + exempt tools, calls to
  them pass through without ungating, and initialize instructions list
  them under "Available immediately (no begin_session required)".
- templates/calcmcp.yaml so a deleted default can be re-created by hand.
- docs/ungated-global.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
michal merged commit 7bf9d49a02 into main 2026-10-03 00:46:09 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: michal/mcpctl#137