🤖 feat: project plugin MCP servers, hooks and slash commands in remote checkouts
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- docker, typescript
- Domain
- developer-experience
Research direction
Start with hostCheckoutRoot in src/node/services/aiService.ts around line 971 and discoverAgentPlugins in src/node/services/agentPlugins/discovery.ts to trace how checkout plugins are found. Then read #6426 for the related remote plugin work. Define the trust, consent, and remote execution behavior for MCP servers, hooks, and slash commands, or decide to keep them host-only and document that; done means the chosen behavior is implemented and documented.
Written by the indexing model from the issue text.
Description
Summary
Plugin MCP servers, hooks and slash commands from a project's own Agent Plugins (.xum/plugins, .agents/plugins) never load in SSH or Docker workspaces. Xum passes no host checkout root for those runtimes (hostCheckoutRoot is null for ssh and docker in src/node/services/aiService.ts, around line 971), and the plugin manifest scan (discoverAgentPlugins in src/node/services/agentPlugins/discovery.ts) reads only the host filesystem.
Why this is separate from #6426
#6426 loads the plugin skills and agents of trusted remote checkouts. Those are markdown files that Xum reads through the runtime. MCP servers, hooks and slash commands are different: they run code on the remote host. They need their own design:
- the consent flow (component consent, approved copies) for components that live on a remote host,
- the exec model (where a stdio MCP server or a hook process runs, its environment and credentials),
- trust and kill-switch behavior (
XUM_DISABLE_PROJECT_AUTOMATION), as for local checkouts.
Scope
Design and implement trust-gated loading of project plugin MCP servers, hooks and slash commands for SSH and Docker checkouts, or decide that they stay host-only and document that.
Refs #6426.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high • Cost: $173.78
- Dominant language
- TypeScript
- Stars
- 2.1k
- Forks
- 140
- Avg merge
- 3h 24m
- Merged PRs (30d)
- 954
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from coder/xum
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
Similar issues
-
calcite-ui-icons enhancement impact - p3 - not time sensitive needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Esri/calcite-design-system#15467 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
diegosouzapw/OmniRoute#18390 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
guilhermerodz/input-otp#157 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
davidjerleke/embla-carousel#1414 ·
Maintainers usually reply within 4 days