feat(agents): McpRegistryPort + DefaultMcpRegistry adapter #526
No reviewers
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks!526
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dev/516"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Introduces
McpRegistryPortso consumers resolve MCP server specs without importing SDK types or module-levelsetMcpConfigstate.Closes #516
Test plan
bun test src/infrastructure/agents/default-mcp-registry.test.ts— 26 tests, 0 failures.mcp__forgejo__*entries.mf5DualMount:falsedrops forgejo-mcp from bothserversForandallowedTools.penpot_mcp:trueand secrets are non-null.just qaclean (format + lint pass; tscbuntypedef error is pre-existing in this worktree).Port interface and adapter are correct; 26 tests cover all three ACs (Forgejo/GitHub/GitLab forge routing, MF-5 dual-mount toggle, Penpot gating). Token fallback chain matches MF-4 resolution in
agent-runner.ts. CI green.Nit (non-blocking):
allowedToolsre-derivesusePenpotby re-checkingagent.penpot_mcp === true && this.config.penpotEnv !== nullindependently rather than checkingservers.some(s => s.name === "penpot")as it does forhasForgejoMcp— harmless today but would drift ifserversForgains extra Penpot conditions.