Skip to content

CAMEL-23639: Publish the Camel JBang MCP server as a Claude Code plugin#23613

Merged
davsclaus merged 3 commits into
apache:mainfrom
k-krawczyk:CAMEL-23639-claude-code-plugin
May 30, 2026
Merged

CAMEL-23639: Publish the Camel JBang MCP server as a Claude Code plugin#23613
davsclaus merged 3 commits into
apache:mainfrom
k-krawczyk:CAMEL-23639-claude-code-plugin

Conversation

@k-krawczyk
Copy link
Copy Markdown
Contributor

@k-krawczyk k-krawczyk commented May 28, 2026

Summary

Adds a Claude Code plugin marketplace to the repository so users can install the Camel MCP server with two commands instead of hand-editing .mcp.json:

claude plugin marketplace add apache/camel
claude plugin install camel-mcp@camel-marketplace

Changes

  • .claude-plugin/marketplace.json — defines the camel-marketplace marketplace at the repo root
  • plugins/camel-mcp/.claude-plugin/plugin.json — plugin manifest (Apache-2.0)
  • plugins/camel-mcp/.mcp.json — launches the server over STDIO via JBang (org.apache.camel:camel-jbang-mcp:LATEST:runner); auto-loaded when the plugin is enabled
  • docs: new "Install as a plugin (recommended)" subsection in camel-jbang-mcp.adoc; the manual .mcp.json setup is kept as an alternative. The existing setup examples were also switched to LATEST.

No Java/source changes — configuration and documentation only. JBang remains a prerequisite, which the docs call out.

Versioning

Per review feedback, the server is referenced as LATEST rather than a pinned version. JBang resolves LATEST to the newest release on Maven Central, so the file does not need a bump on each Camel release. Verified locally that jbang ...:camel-jbang-mcp:LATEST:runner resolves and the MCP server starts and lists its tools.

Testing

  • claude plugin validate passes for both the marketplace and the plugin manifest
  • Adding the marketplace from a local path loads the camel-mcp plugin
  • The MCP server starts via JBang (LATEST) and tools/list returns the expected tools

Reported by Claude Code on behalf of Karol Krawczyk

Add a Claude Code plugin marketplace at the repository root so users can
install the Camel MCP server with two commands instead of editing
.mcp.json by hand:

  claude plugin marketplace add apache/camel
  claude plugin install camel-mcp@camel-marketplace

- .claude-plugin/marketplace.json defines the camel-marketplace marketplace
- plugins/camel-mcp ships the plugin manifest and a .mcp.json that launches
  the server over STDIO via JBang (camel-jbang-mcp:4.20.0:runner)
- docs: new "Install as a plugin (recommended)" subsection in
  camel-jbang-mcp.adoc; the manual .mcp.json setup is kept as an alternative
Copy link
Copy Markdown
Contributor

@gnodet gnodet left a comment

Choose a reason for hiding this comment

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

Nice addition — makes the Camel MCP server installable as a Claude Code plugin via the marketplace mechanism. The structure follows the expected plugin layout (marketplace.json, plugin.json, .mcp.json).

One minor note: .mcp.json hardcodes 4.20.0:runner. This will need updating with each release. Consider whether a SNAPSHOT or latest-resolution mechanism would be more appropriate for the development branch, or document the version-pinning policy.

Doc update to camel-jbang-mcp.adoc is clean — the recommended path via claude plugin marketplace add / claude plugin install is clearly documented, with manual configuration as a fallback.

LGTM.

Fully automatic review from Claude Code

@davsclaus
Copy link
Copy Markdown
Contributor

Can you use LATEST as the version number, or is that only something a maven downloader understands

@github-actions
Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@github-actions github-actions Bot added the docs label May 29, 2026
Copy link
Copy Markdown
Contributor

@davsclaus davsclaus left a comment

Choose a reason for hiding this comment

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

Clean config-and-docs-only PR — well-structured marketplace definition, plugin manifest, and doc update. No Java changes, proper JIRA linkage, correct license.

The version pin to 4.20.0 in .mcp.json is the right call since JBang can't resolve SNAPSHOTs. Worth a follow-up issue to wire version bumps into the release process as the author suggested.

This review does not replace specialized AI review tools (CodeRabbit, Sourcery) or static analysis (SonarCloud).

This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.

@davsclaus
Copy link
Copy Markdown
Contributor

Instead of pinning 4.20.0, could we use LATEST here?

"args": [
  "-Dquarkus.log.level=WARN",
  "org.apache.camel:camel-jbang-mcp:LATEST:runner"
]

JBang supports LATEST as a version marker — it resolves to the latest release on Maven Central. This would eliminate the need to bump the version on every Camel release. There's a small cold-start cost (JBang checks Maven Central on first run, then caches), but it avoids the version going stale.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

🧪 CI tested the following changed modules:

  • docs

⚙️ View full build and test results

@davsclaus
Copy link
Copy Markdown
Contributor

@k-krawczyk can you try to use LATEST if that works for you

Copy link
Copy Markdown
Contributor

@oscerd oscerd left a comment

Choose a reason for hiding this comment

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

Generally this is a good PR. I would use latest instead of pinning.

Copy link
Copy Markdown
Contributor

@zbendhiba zbendhiba left a comment

Choose a reason for hiding this comment

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

Thanks for your contribution.

LGTM! Let us know if LATEST work.

Switch the plugin .mcp.json and the documentation examples to
org.apache.camel:camel-jbang-mcp:LATEST:runner. JBang resolves LATEST to the
newest release on Maven Central, so the version no longer needs a bump on each
Camel release. Verified that jbang resolves LATEST and the MCP server starts
and lists its tools.
@k-krawczyk
Copy link
Copy Markdown
Contributor Author

k-krawczyk commented May 29, 2026

Thanks all — switched to LATEST as suggested.
@zbendhiba
I verified it works: jbang -Dquarkus.log.level=WARN org.apache.camel:camel-jbang-mcp:LATEST:runner
resolves to the latest release on Maven Central, the MCP server starts over STDIO, and tools/list
returns all 27 tools. Updated both the plugin .mcp.json and the documentation setup examples to use
LATEST, so the version no longer needs bumping on each Camel release.

@davsclaus
Copy link
Copy Markdown
Contributor

should keywords include java
and should it also mention spring boot and quarkus as camel has first class use with these

Add java, spring-boot, and quarkus to the plugin keywords so the plugin is
discoverable for Camel's first-class runtimes, per review feedback.
@k-krawczyk
Copy link
Copy Markdown
Contributor Author

should keywords include java and should it also mention spring boot and quarkus as camel has first class use with these
Good call — added java, spring-boot, and quarkus to the plugin keywords (now: camel, java, integration, mcp, model-context-protocol, jbang, spring-boot, quarkus, catalog). Pushed.

@davsclaus
Copy link
Copy Markdown
Contributor

LGTM

@davsclaus davsclaus merged commit 0624c53 into apache:main May 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants