From 0af51db54476d25a51d6fb51f5c8a119c509eac5 Mon Sep 17 00:00:00 2001 From: Karol Date: Thu, 28 May 2026 22:54:53 +0200 Subject: [PATCH 1/3] CAMEL-23639: Publish the Camel JBang MCP server as a Claude Code plugin 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 --- .claude-plugin/marketplace.json | 16 ++++++++++++++ .../modules/ROOT/pages/camel-jbang-mcp.adoc | 20 +++++++++++++++++- plugins/camel-mcp/.claude-plugin/plugin.json | 21 +++++++++++++++++++ plugins/camel-mcp/.mcp.json | 11 ++++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 .claude-plugin/marketplace.json create mode 100644 plugins/camel-mcp/.claude-plugin/plugin.json create mode 100644 plugins/camel-mcp/.mcp.json diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 0000000000000..33194ec000884 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,16 @@ +{ + "name": "camel-marketplace", + "description": "Apache Camel plugins for Claude Code, including the Camel MCP server.", + "owner": { + "name": "Apache Camel", + "email": "dev@camel.apache.org", + "url": "https://camel.apache.org" + }, + "plugins": [ + { + "name": "camel-mcp", + "source": "./plugins/camel-mcp", + "description": "Apache Camel MCP server: exposes the Camel Catalog plus specialized tools (catalog exploration, route and YAML DSL validation, security hardening, error diagnosis, dependency check, OpenAPI contract-first scaffolding, and version-to-version migration) to AI coding assistants over the Model Context Protocol. Requires JBang on the PATH." + } + ] +} diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-mcp.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-mcp.adoc index 12be71119980a..ec289fb4fe7ea 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-jbang-mcp.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-mcp.adoc @@ -410,7 +410,25 @@ The MCP server requires https://www.jbang.dev/[JBang] to be installed and availa === Claude Code -Add the following to your project's `.mcp.json` (or `~/.claude/mcp.json` for global configuration): +==== Install as a plugin (recommended) + +Claude Code can install the Camel MCP server from the marketplace defined in the `apache/camel` +repository, so you do not have to edit any configuration file by hand. JBang must still be installed +and available on your PATH. + +[source,bash] +---- +claude plugin marketplace add apache/camel +claude plugin install camel-mcp@camel-marketplace +---- + +The first command registers the marketplace; the second installs the `camel-mcp` plugin, which ships +the MCP server configuration. The server is launched on demand over STDIO via JBang. + +==== Manual configuration + +Alternatively, add the following to your project's `.mcp.json` (or `~/.claude/mcp.json` for global +configuration): [source,json] ---- diff --git a/plugins/camel-mcp/.claude-plugin/plugin.json b/plugins/camel-mcp/.claude-plugin/plugin.json new file mode 100644 index 0000000000000..d7f6568797f13 --- /dev/null +++ b/plugins/camel-mcp/.claude-plugin/plugin.json @@ -0,0 +1,21 @@ +{ + "name": "camel-mcp", + "version": "0.1.0", + "description": "Apache Camel MCP server for AI coding assistants. Launches the Camel JBang MCP server (org.apache.camel:camel-jbang-mcp) over STDIO, exposing the Camel Catalog and tools for catalog exploration, route and YAML DSL validation, security hardening, error diagnosis, dependency check, OpenAPI contract-first scaffolding, and migration. Requires JBang on the PATH.", + "author": { + "name": "Apache Camel", + "email": "dev@camel.apache.org", + "url": "https://camel.apache.org" + }, + "homepage": "https://camel.apache.org/manual/camel-jbang-mcp.html", + "repository": "https://github.com/apache/camel", + "license": "Apache-2.0", + "keywords": [ + "camel", + "mcp", + "model-context-protocol", + "integration", + "jbang", + "catalog" + ] +} diff --git a/plugins/camel-mcp/.mcp.json b/plugins/camel-mcp/.mcp.json new file mode 100644 index 0000000000000..fb1e9ee035b79 --- /dev/null +++ b/plugins/camel-mcp/.mcp.json @@ -0,0 +1,11 @@ +{ + "mcpServers": { + "camel": { + "command": "jbang", + "args": [ + "-Dquarkus.log.level=WARN", + "org.apache.camel:camel-jbang-mcp:4.20.0:runner" + ] + } + } +} From b67705871f5edd6985af597464297bca4ffe9ddb Mon Sep 17 00:00:00 2001 From: Karol Date: Fri, 29 May 2026 09:52:51 +0200 Subject: [PATCH 2/3] CAMEL-23639: Use LATEST instead of pinning the camel-jbang-mcp version 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. --- .../modules/ROOT/pages/camel-jbang-mcp.adoc | 12 ++++++------ plugins/camel-mcp/.mcp.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/user-manual/modules/ROOT/pages/camel-jbang-mcp.adoc b/docs/user-manual/modules/ROOT/pages/camel-jbang-mcp.adoc index ec289fb4fe7ea..dcc9cdeeff0e6 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-jbang-mcp.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-jbang-mcp.adoc @@ -438,7 +438,7 @@ configuration): "command": "jbang", "args": [ "-Dquarkus.log.level=WARN", - "org.apache.camel:camel-jbang-mcp:4.18.0:runner" + "org.apache.camel:camel-jbang-mcp:LATEST:runner" ] } } @@ -457,7 +457,7 @@ Add the server to your MCP configuration: "command": "jbang", "args": [ "-Dquarkus.log.level=WARN", - "org.apache.camel:camel-jbang-mcp:4.18.0:runner" + "org.apache.camel:camel-jbang-mcp:LATEST:runner" ] } } @@ -476,7 +476,7 @@ Configure MCP servers in your `.vscode/mcp.json` or in the user settings: "command": "jbang", "args": [ "-Dquarkus.log.level=WARN", - "org.apache.camel:camel-jbang-mcp:4.18.0:runner" + "org.apache.camel:camel-jbang-mcp:LATEST:runner" ] } } @@ -496,7 +496,7 @@ Settings > Tools > AI Assistant > MCP Servers, or create an `.junie/mcp.json` fi "command": "jbang", "args": [ "-Dquarkus.log.level=WARN", - "org.apache.camel:camel-jbang-mcp:4.18.0:runner" + "org.apache.camel:camel-jbang-mcp:LATEST:runner" ] } } @@ -509,7 +509,7 @@ Any MCP client that supports the STDIO transport can launch the server directly: [source,bash] ---- -jbang org.apache.camel:camel-jbang-mcp:4.18.0:runner +jbang org.apache.camel:camel-jbang-mcp:LATEST:runner ---- === HTTP/SSE Transport @@ -518,7 +518,7 @@ To start the server with the HTTP/SSE transport enabled: [source,bash] ---- -jbang -Dquarkus.http.host-enabled=true -Dquarkus.http.port=8080 org.apache.camel:camel-jbang-mcp:4.18.0:runner +jbang -Dquarkus.http.host-enabled=true -Dquarkus.http.port=8080 org.apache.camel:camel-jbang-mcp:LATEST:runner ---- If you have built Camel locally, you can also run the uber-JAR directly: diff --git a/plugins/camel-mcp/.mcp.json b/plugins/camel-mcp/.mcp.json index fb1e9ee035b79..000734c98492a 100644 --- a/plugins/camel-mcp/.mcp.json +++ b/plugins/camel-mcp/.mcp.json @@ -4,7 +4,7 @@ "command": "jbang", "args": [ "-Dquarkus.log.level=WARN", - "org.apache.camel:camel-jbang-mcp:4.20.0:runner" + "org.apache.camel:camel-jbang-mcp:LATEST:runner" ] } } From 448c633420473c20ca3882bc2b5f3a555a41b7ed Mon Sep 17 00:00:00 2001 From: Karol Date: Fri, 29 May 2026 11:01:54 +0200 Subject: [PATCH 3/3] CAMEL-23639: Broaden camel-mcp plugin keywords Add java, spring-boot, and quarkus to the plugin keywords so the plugin is discoverable for Camel's first-class runtimes, per review feedback. --- plugins/camel-mcp/.claude-plugin/plugin.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/camel-mcp/.claude-plugin/plugin.json b/plugins/camel-mcp/.claude-plugin/plugin.json index d7f6568797f13..ca72ede6730e9 100644 --- a/plugins/camel-mcp/.claude-plugin/plugin.json +++ b/plugins/camel-mcp/.claude-plugin/plugin.json @@ -12,10 +12,13 @@ "license": "Apache-2.0", "keywords": [ "camel", + "java", + "integration", "mcp", "model-context-protocol", - "integration", "jbang", + "spring-boot", + "quarkus", "catalog" ] }