Skip to content

refactor(plugin): split the Claude Code MCP server into a csp-mcp plugin - #128

Merged
amondnet merged 1 commit into
mainfrom
refactor/split-csp-mcp-plugin
Oct 28, 2026
Merged

amondnet merged 1 commit into
mainfrom
refactor/split-csp-mcp-plugin

Conversation

@amondnet

@amondnet amondnet commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The Claude Code csp plugin registered the csp MCP server unconditionally. Claude Code has no per-server toggle in a plugin manifest: userConfig values only substitute into a server's command, so they can't leave the server out. This PR splits the plugin so the MCP server becomes opt-in when you install:

Plugin Contents
csp (plugins/csp) csp-search sub-agent + skill, which call the csp CLI
csp-mcp (plugins/csp-mcp, new) .mcp.json only: the csp MCP server (search, find_related)
  • plugins/csp/.mcp.json is moved to plugins/csp-mcp/.mcp.json. Removing mcpServers from plugin.json would not be enough, because Claude Code loads .mcp.json from the plugin root by default.
  • .claude-plugin/marketplace.json lists both plugins.
  • Codex is unchanged. plugins/csp/.codex-plugin still bundles the MCP server via .mcp.codex.json.
  • Docs updated: README.md / README.ko.md (Plugin section), plugins/csp/README.md, new plugins/csp-mcp/README.md, docs/plugin.mdx, docs/development.mdx (layout table).

Migration for existing users

The published marketplace (pleaseai/claude-code-plugins) installs csp from plugins/csp on main. After this merges, Claude Code users of csp@pleaseai lose the MCP server on their next update. To keep it:

/plugin install csp-mcp@pleaseai

The companion PR pleaseai/claude-code-plugins#288 adds the csp-mcp entry. Merge it together with this one so csp-mcp@pleaseai resolves.

The commit uses refactor: rather than feat!: on purpose: a breaking-change marker would make release-please do a major bump of the csp package, and the binary has not changed.

Related issue

None. Companion PR: pleaseai/claude-code-plugins#288 (adds the csp-mcp marketplace entry).

Checklist

  • PR title follows Conventional Commits
  • Tests added or updated, and the suite passes: no Rust/JS code changed. claude plugin validate passes for the marketplace, plugins/csp, and plugins/csp-mcp (only the existing missing-icon warning).
  • Lint/format pass: eslint is clean on the changed files; the docs site passes bun run typecheck && bun run build && bun run check (13 pages)
  • Documentation updated if behavior changed
  • No breaking change, or a BREAKING CHANGE: note is included: plugin packaging changes for existing Claude Code users (see Migration); no breaking change to the csp package itself

The Claude Code `csp` plugin registered the MCP server unconditionally, and
Claude Code has no per-server toggle in a plugin manifest (`userConfig`
values only substitute into a server's command, they cannot omit it).
Splitting the server out makes it opt-in at install time:

- `csp`: csp-search sub-agent + skill, which call the csp CLI
- `csp-mcp`: only `.mcp.json` (the csp MCP server)

The `.mcp.json` file is moved, not just dropped from plugin.json, because
Claude Code auto-loads `.mcp.json` from the plugin root by default.

Codex is unchanged: `plugins/csp/.codex-plugin` still bundles the MCP
server via `.mcp.codex.json`.

Existing Claude Code users of `csp@pleaseai` lose the MCP server on update
and need `/plugin install csp-mcp@pleaseai` to keep it.
@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@codecov

codecov Bot commented Oct 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@sonarqubecloud

Copy link
Copy Markdown

@codspeed

codspeed Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

1 warning

⚠️ 1 benchmark is dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

✅ 7 untouched benchmarks


Comparing refactor/split-csp-mcp-plugin (a5b8322) with main (a086036)

Open in CodSpeed

@amondnet
amondnet marked this pull request as ready for review October 28, 2026 06:35
@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@amondnet
amondnet merged commit 8c96742 into main Oct 28, 2026
12 checks passed
@amondnet
amondnet deleted the refactor/split-csp-mcp-plugin branch October 28, 2026 06:35
@greptile-apps

greptile-apps Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 4/5

[Medium impact] The change affects how Claude Code users install code search tools.

The PR appears safe to merge, with a non-blocking correction needed in the Codex setup instructions.

Fix All in Claude CodeFindings

  1. P2 Codex's Bun requirement is missing ▶
Fix with agent prompt
### Issue 1
plugins/csp/README.md:31
The revised requirements offer Homebrew instead of Bun, but that is only enough for the Claude Code helper. Codex still starts its bundled MCP server with `bunx`, even when `csp` is on `PATH`. Users following the Homebrew-only setup cannot start that server. Keep a separate Bun requirement for Codex, or explain how to change its MCP command.

```suggestion
The helper calls the `csp` CLI. Install it with Homebrew (`brew install pleaseai/tap/csp`), or keep [Bun](https://bun.sh) 1.3.10+ on your `PATH` so the helper can fall back to `bunx @pleaseai/csp`.

Codex also requires Bun 1.3.10+ on your `PATH` to launch its bundled MCP server, even if you installed `csp` with Homebrew.
```

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

Splits Claude Code support into two plugins:

  • Claude Code users can install the search helper and MCP server separately.

The packaging changes are consistent. One documentation fix remains: the revised requirements omit Codex's need for Bun.

Acknowledged by amondnet: existing Claude Code users intentionally lose MCP on update and must install csp-mcp@pleaseai. amondnet also states that the companion marketplace PR must merge together with this change.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Claude[Claude Code] --> HelperPlugin[csp plugin]
  HelperPlugin --> Helper[Search agent and skill]
  Helper --> CLI[csp CLI]
  Claude --> Optional[csp-mcp plugin - optional]
  Optional --> MCP[csp MCP server]
  Codex[Codex] --> CodexPlugin[csp plugin]
  CodexPlugin --> Skill[Search skill]
  Skill --> CLI
  CodexPlugin --> MCP
Loading

Reviews (1) · Last reviewed commit: "refactor(plugin): split the Claude Code ..." · Reviewed by Greptile

Comment thread plugins/csp/README.md
## Customization

By default the MCP server indexes only code files. To also index documentation or config, append `--content` to the server args, e.g. `["@pleaseai/csp", "mcp", "--content", "all"]`. A single tool call can also override this with its `content` argument (`code`, `docs`, `config`, or `all`).
The helper calls the `csp` CLI. Install it with Homebrew (`brew install pleaseai/tap/csp`), or keep [Bun](https://bun.sh) 1.3.10+ on your `PATH` so the helper can fall back to `bunx @pleaseai/csp`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Codex's Bun requirement is missing

The revised requirements offer Homebrew instead of Bun, but that is only enough for the Claude Code helper. Codex still starts its bundled MCP server with bunx, even when csp is on PATH. Users following the Homebrew-only setup cannot start that server. Keep a separate Bun requirement for Codex, or explain how to change its MCP command.

Suggested change
The helper calls the `csp` CLI. Install it with Homebrew (`brew install pleaseai/tap/csp`), or keep [Bun](https://bun.sh) 1.3.10+ on your `PATH` so the helper can fall back to `bunx @pleaseai/csp`.
The helper calls the `csp` CLI. Install it with Homebrew (`brew install pleaseai/tap/csp`), or keep [Bun](https://bun.sh) 1.3.10+ on your `PATH` so the helper can fall back to `bunx @pleaseai/csp`.
Codex also requires Bun 1.3.10+ on your `PATH` to launch its bundled MCP server, even if you installed `csp` with Homebrew.

Knowledge Base Used: Agent plugin packaging

Prompt To Fix With AI
This is a comment left during a code review.
Path: plugins/csp/README.md
Line: 31

Comment:
**Codex's Bun requirement is missing**

The revised requirements offer Homebrew instead of Bun, but that is only enough for the Claude Code helper. Codex still starts its bundled MCP server with `bunx`, even when `csp` is on `PATH`. Users following the Homebrew-only setup cannot start that server. Keep a separate Bun requirement for Codex, or explain how to change its MCP command.

```suggestion
The helper calls the `csp` CLI. Install it with Homebrew (`brew install pleaseai/tap/csp`), or keep [Bun](https://bun.sh) 1.3.10+ on your `PATH` so the helper can fall back to `bunx @pleaseai/csp`.

Codex also requires Bun 1.3.10+ on your `PATH` to launch its bundled MCP server, even if you installed `csp` with Homebrew.
```

**Knowledge Base Used:** [Agent plugin packaging](https://app.greptile.com/passionfactory/-/custom-context/knowledge-base/pleaseai/code-search/-/docs/agent-plugin-packaging.md)

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Claude Code

amondnet added a commit to pleaseai/claude-code-plugins that referenced this pull request Oct 30, 2026
pleaseai/code-search#128 splits the Claude Code csp plugin in two:
`csp` keeps the csp-search sub-agent and skill (CLI), and the new
`csp-mcp` carries only the csp MCP server, so users can opt out of it.

Add the `csp-mcp` entry (git-subdir, plugins/csp-mcp) and update the
`csp` description to match.

The Codex marketplace is intentionally not regenerated: plugins/csp-mcp
has no Codex manifest, and the Codex csp plugin still bundles the MCP
server.
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.

1 participant