Skip to content

feat(profiles): add mcp pivot support via profile mcp key#41

Closed
soulcodex wants to merge 1 commit intomainfrom
feat/golang-manual-di-naming-taxonomy
Closed

feat(profiles): add mcp pivot support via profile mcp key#41
soulcodex wants to merge 1 commit intomainfrom
feat/golang-manual-di-naming-taxonomy

Conversation

@soulcodex
Copy link
Copy Markdown
Owner

Summary

Closes #39

  • schemas/profile.schema.json — adds optional top-level mcp property (strategy: merge/replace + servers map) so profiles can declare MCP servers declaratively
  • tooling/lib/mcp.sh — new --action seed (non-interactive) that reads mcp.servers from the profile and fans out to all present vendor config files with per-vendor translation:
    • .mcp.json (Claude): written verbatim
    • opencode.json: type stdio→local/http→remote, envenvironment, command+args→combined array
    • .gemini/settings.json: type field removed, urlhttpUrl for http entries
  • tooling/lib/compose.sh — guarded seed call at end of compose (pure no-op when mcp key is absent — zero side effects on existing workflows)
  • tooling/lib/test.sh — 7 new assertions T67–T73 covering .mcp.json creation, Opencode/Gemini translations, merge/replace strategies, and the no-op guard
  • docs/mcp.md — new dedicated MCP reference page (vendor support matrix, per-vendor translation table, merge vs replace, env var convention, interactive wizard cross-link)
  • docs/commands.md, docs/customization.md, docs/profiles.md, README.md — cross-links to docs/mcp.md

Test plan

  • just lint — passes ✔
  • just test — 229/229 pass ✔
  • just index — rebuilt ✔

@soulcodex
Copy link
Copy Markdown
Owner Author

Closing in favour of a properly named branch.

@soulcodex soulcodex closed this Apr 14, 2026
@soulcodex soulcodex deleted the feat/golang-manual-di-naming-taxonomy branch April 15, 2026 22:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(profiles): MCP as a pivotable piece via profile mcp key

1 participant