Camel MCP Server
The Camel MCP Server exposes the Apache Camel Catalog and a set of specialized tools through the Model Context Protocol (MCP), the open standard that allows AI coding assistants to call external tools. This enables AI tools such as Claude Code, OpenAI Codex, GitHub Copilot, and JetBrains AI to query live Camel catalog data, validate endpoint URIs, analyze routes for security concerns, browse Kamelets, and more.
The server is built on Quarkus using the quarkus-mcp-server extension and ships as a single uber-JAR that can be launched via JBang.
| This module is in Preview status as of Camel 4.18. |
Transport
The server supports two transports:
-
STDIO — The default transport for CLI-based AI tools. The server communicates over stdin/stdout using the MCP protocol. All logging goes to stderr to keep stdout clean for protocol messages.
-
HTTP/SSE — An optional transport for web-based clients and remote access scenarios. Useful when running the MCP server as a shared service for a team or in a container.
By default, the HTTP server is disabled. To enable it, set quarkus.http.host-enabled=true.
Available Tools
The server exposes 26 tools organized into ten functional areas, plus 3 prompts that provide structured multi-step workflows.
Catalog Exploration
| Tool | Description |
|---|---|
| List available Camel components with filtering by name, label (e.g., |
| Get detailed documentation for a specific component including all endpoint options, component-level options, Maven coordinates, and URI syntax. |
| List available data formats (JSON, XML, CSV, Avro, Protobuf, and others). |
| Get detailed documentation for a specific data format including all configuration options, Maven coordinates, and model information. |
| List expression languages (Simple, JsonPath, XPath, JQ, Groovy, and others). |
| Get detailed documentation for a specific expression language including all configuration options and Maven coordinates. |
| List Enterprise Integration Patterns with filtering by category. |
| Get detailed documentation for a specific EIP including all its options. |
Kamelet Catalog
| Tool | Description |
|---|---|
| List available Kamelets from the Kamelet Catalog with filtering by name, description, and type ( |
| Get detailed documentation for a specific Kamelet including all properties/options, their types, defaults, examples, and the Kamelet’s Maven dependencies. |
Route Understanding
| Tool | Description |
|---|---|
| Given a Camel route (YAML, XML, or Java DSL), extracts all components and EIPs used, looks up their documentation from the catalog, and returns structured context. |
Security Analysis
| Tool | Description |
|---|---|
| Analyzes a route for security concerns. Identifies security-sensitive components, assigns risk levels, detects issues like hardcoded credentials or plain-text protocols, and returns structured security findings alongside best practices. |
Error Diagnosis
| Tool | Description |
|---|---|
| Diagnoses Camel errors from stack traces or error messages. Identifies the exception type against 17 known Camel exceptions (such as |
Dependency Check
| Tool | Description |
|---|---|
| Checks Camel project dependency hygiene given a |
Validation and Transformation
| Tool | Description |
|---|---|
| Validates Camel endpoint URIs against the catalog schema. Catches unknown options, missing required parameters, invalid enum values, and type mismatches. Also provides suggestions for misspelled option names. |
| Validates a YAML DSL route definition against the Camel YAML DSL JSON schema. Checks for valid DSL elements, correct route structure, and returns detailed schema validation errors including instance path, error type, and schema path. |
| Assists with route DSL format transformation between YAML and XML. |
OpenAPI Contract-First
Since Camel 4.6, the recommended approach for building REST APIs from OpenAPI specifications is contract-first: referencing the OpenAPI spec directly at runtime via rest:openApi rather than generating REST DSL code. These tools help validate, scaffold, and provide mock guidance for that workflow.
| Tool | Description |
|---|---|
| Validates an OpenAPI specification for compatibility with Camel’s contract-first REST support. Checks for missing |
| Generates a Camel YAML scaffold for contract-first OpenAPI integration. Produces a |
| Provides guidance on configuring Camel’s |
Migration
| Tool | Description |
|---|---|
| Analyzes a Camel project’s |
| Checks migration compatibility for Camel components by providing relevant migration guide URLs and Java version requirements. The LLM consults the migration guides for detailed component rename mappings and API changes. |
| Returns Maven commands to run Camel OpenRewrite migration recipes for upgrading between versions. The project must compile successfully before running the recipes, as OpenRewrite requires a compilable project to parse and transform the code. |
| Searches Camel migration and upgrade guides for a specific term or component name. Returns matching snippets from the official guides with version info and URLs. Supports fuzzy matching for typo tolerance. Use this instead of web search when looking up migration-related changes, removed components, API renames, or breaking changes. |
| Provides migration guidance for Camel projects running on WildFly, Karaf, or WAR-based application servers. Returns the Maven archetype command to create a new target project, migration steps, and relevant migration guide URLs. |
Available Prompts
Prompts are structured multi-step workflows that guide the LLM through orchestrating multiple tools in the correct sequence. Instead of the LLM having to discover which tools to call and in what order, a prompt provides the complete workflow as a step-by-step plan.
MCP clients that support prompts (such as Claude Desktop) expose them as selectable workflows. The LLM receives the instructions and executes each step by calling the referenced tools.
| Prompt | Arguments | Description |
|---|---|---|
|
| Guided workflow to build a Camel integration from natural-language requirements. Walks through seven steps: identify components, identify EIPs, get component documentation, build the YAML route, validate it with the YAML DSL schema, run a security review, and present the final result with explanations and run instructions. |
|
| Guided workflow to migrate a Camel project to a newer version. Walks through six steps: analyze the project’s |
|
| Guided workflow to perform a security audit of a Camel route. Walks through three steps: analyze the route for security-sensitive components and vulnerabilities, understand the route structure and data flow, and produce an actionable audit checklist organized into critical issues, warnings, positive findings, recommendations, and compliance notes. |
Setup
The MCP server requires JBang to be installed and available on your PATH.
Claude Code
Add the following to your project’s .mcp.json (or ~/.claude/mcp.json for global configuration):
{
"mcpServers": {
"camel": {
"command": "jbang",
"args": [
"-Dquarkus.log.level=WARN",
"org.apache.camel:camel-jbang-mcp:4.18.0:runner"
]
}
}
} OpenAI Codex
Add the server to your MCP configuration:
{
"mcpServers": {
"camel": {
"command": "jbang",
"args": [
"-Dquarkus.log.level=WARN",
"org.apache.camel:camel-jbang-mcp:4.18.0:runner"
]
}
}
} VS Code with Copilot
Configure MCP servers in your .vscode/mcp.json or in the user settings:
{
"servers": {
"camel": {
"command": "jbang",
"args": [
"-Dquarkus.log.level=WARN",
"org.apache.camel:camel-jbang-mcp:4.18.0:runner"
]
}
}
} JetBrains IDEs
JetBrains IDEs support MCP servers starting from 2025.1. Configure them in Settings > Tools > AI Assistant > MCP Servers, or create an .junie/mcp.json file in your project root:
{
"mcpServers": {
"camel": {
"command": "jbang",
"args": [
"-Dquarkus.log.level=WARN",
"org.apache.camel:camel-jbang-mcp:4.18.0:runner"
]
}
}
} Generic STDIO Client
Any MCP client that supports the STDIO transport can launch the server directly:
jbang org.apache.camel:camel-jbang-mcp:4.18.0:runner HTTP/SSE Transport
To start the server with the HTTP/SSE transport enabled:
jbang -Dquarkus.http.host-enabled=true -Dquarkus.http.port=8080 org.apache.camel:camel-jbang-mcp:4.18.0:runner MCP clients that support HTTP/SSE can then connect to the server at http://localhost:8080/mcp/sse.
Examples
Listing Components
Prompt your AI assistant with:
List all Camel components in the messaging category
The assistant calls camel_catalog_components with label=messaging and receives structured results with name, title, description, label, deprecation status, and support level for each matching component.
Getting Component Documentation
Show me the documentation for the Kafka component, including all endpoint options
The assistant calls camel_catalog_component_doc with component=kafka and receives the full component model including the URI syntax, Maven coordinates, and every endpoint option with types, defaults, and descriptions.
Browsing Kamelets
Show me all available source kamelets related to AWS
The assistant calls camel_catalog_kamelets with type=source and filter=aws and returns matching Kamelets with their name, type, support level, and description.
To drill into a specific Kamelet:
What options does the aws-s3-source kamelet accept?
The assistant calls camel_catalog_kamelet_doc with kamelet=aws-s3-source and returns the complete property list including required fields, types, defaults, and Maven dependencies.
Validating an Endpoint URI
Validate this Kafka endpoint: kafka:myTopic?brkers=localhost:9092&groupId=myGroup
The assistant calls camel_validate_route and detects the typo (brkers), reports the URI as invalid, and suggests the correct option name (brokers).
Validating YAML DSL Structure
Validate this YAML route definition for me:
- route:
from:
uri: timer:yaml
steps:
- setCheese:
simple: Hello Camel
- log: ${body} The assistant calls camel_validate_yaml_dsl which validates the route against the Camel YAML DSL JSON schema and reports that setCheese is not a valid DSL element, returning the instance path and error type so the AI can suggest the correct processor name (e.g., setBody).
Understanding a Route
Paste a route and ask:
Explain what this route does
The assistant calls camel_route_context which extracts all components and EIPs used in the route, looks up their documentation from the catalog, and returns enriched context so the AI can provide an accurate explanation.
Security Hardening
Analyze this route for security concerns and suggest hardening measures
The assistant calls camel_route_harden_context which analyzes the route for security-sensitive components, detects issues (hardcoded credentials, HTTP instead of HTTPS, plain FTP, etc.), assigns risk levels, and returns structured findings with remediation recommendations.
Diagnosing an Error
Paste a stack trace or error message and ask:
I'm getting this error when starting my Camel route. What's wrong? org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> To[kafka:myTopic] <<< Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: kafka:myTopic Caused by: org.apache.camel.NoSuchEndpointException: No endpoint could be found for: kafka:myTopic
The assistant calls camel_error_diagnose which identifies all three exceptions in the chain, extracts the kafka component, and returns common causes (missing camel-kafka dependency, typo in URI scheme), suggested fixes (add the dependency, verify the URI), and links to the relevant Camel documentation.
Checking Dependency Hygiene
Here's my pom.xml and my main route. Can you check if I'm missing any dependencies or if anything is outdated?
Provide your pom.xml and route content, and the assistant calls camel_dependency_check. It detects whether your Camel version is outdated compared to the latest release, identifies components used in the route that are missing from the pom (e.g., camel-kafka for kafka: endpoints), and flags version conflicts where a dependency has an explicit version override while a BOM is present. Each issue comes with a corrected Maven snippet you can paste directly into your pom.
Checking Camel Versions
What are the latest LTS versions of Camel for Spring Boot?
The assistant calls camel_version_list with runtime=spring-boot and lts=true and returns version information including release dates, end-of-life dates, and JDK requirements.
Migrating a Camel Project
Start by providing your project’s pom.xml:
I want to migrate my Camel project to the latest version. Here's my pom.xml.
The assistant calls camel_migration_analyze to detect the runtime, current Camel version, Java version, and component dependencies. It then calls camel_migration_compatibility to check for breaking changes and camel_migration_recipes to provide the OpenRewrite commands for automated migration.
Searching Migration Guides
What changed with the direct-vm component in Camel 4?
The assistant calls camel_migration_guide_search with query=direct-vm and returns matching snippets from the official migration guides with version info and URLs, so you can see exactly what changed and how to adapt.
Migrating from WildFly or Karaf
I have a Camel application running on WildFly and I want to migrate it to Quarkus. Here's my pom.xml.
The assistant calls camel_migration_wildfly_karaf which returns the Maven archetype command to create a new Quarkus-based project, migration steps, and relevant guide URLs. The archetype generates the correct project structure so you can then migrate your routes and source files into it.
Validating an OpenAPI Spec for Camel
I have this OpenAPI spec for my Pet Store API. Can you validate it for use with Camel's contract-first REST support?
Paste the OpenAPI spec (JSON or YAML) and the assistant calls camel_openapi_validate. It reports any compatibility issues such as missing operationId fields, unsupported security schemes (OAuth2, mutual TLS), OpenAPI 3.1 limitations, and webhooks usage. A valid spec with no issues returns valid: true with an operation count.
Scaffolding a Contract-First REST API
Generate a Camel YAML scaffold for this OpenAPI spec. The spec file will be called petstore.yaml and I want missing operations to use mock mode.
The assistant calls camel_openapi_scaffold with specFilename=petstore.yaml and missingOperation=mock. It returns a ready-to-use YAML file containing:
-
A
rest:openApiconfiguration block referencing the spec file withmissingOperation: mock -
A
direct:<operationId>route stub for each operation withContent-Typeand response code headers
Getting Mock Guidance
I want to use Camel's mock mode for my OpenAPI REST API during development. Show me the directory structure and mock files I need to create.
The assistant calls camel_openapi_mock_guidance with mode=mock. It returns:
-
An explanation of how mock mode works
-
The YAML configuration snippet with
missingOperation: mock -
The
camel-mock/directory structure with mock file paths derived from the API paths -
Example content for mock files based on examples defined in the spec
Combined Contract-First Workflow
For a complete prototyping workflow, you can combine all three tools:
I'm building a new REST API with Camel using contract-first. Here's my OpenAPI spec. Please validate it for compatibility issues, then generate the Camel YAML scaffold with mock mode so I can prototype quickly.
The assistant first calls camel_openapi_validate to check for issues, then calls camel_openapi_scaffold to generate the route scaffold. This gives you a validated spec and a complete starting point where you can implement routes one at a time while Camel auto-mocks the rest.
Using the Build Integration Prompt
In MCP clients that support prompts, select the camel_build_integration prompt and provide your requirements:
Requirements: Read messages from a Kafka topic, filter them by a JSON field, and write matching messages to an AWS S3 bucket. Runtime: quarkus
The prompt guides the assistant through a structured seven-step workflow: discovering the right components (kafka, aws2-s3), selecting EIPs (filter), retrieving their documentation, building a YAML route, validating it against the YAML DSL schema, and running a security review — all in the correct order.
Using the Migrate Project Prompt
Select the camel_migrate_project prompt and provide your project’s pom.xml:
pomContent: <paste your pom.xml here> targetVersion: 4.18.0
The prompt orchestrates the full migration workflow: analyzing your project, checking component compatibility, retrieving OpenRewrite recipes, searching migration guides for per-component breaking changes, and producing a structured migration summary with blockers, manual steps, and the exact commands to run.
Using the Security Review Prompt
Select the camel_security_review prompt and provide a route:
Route: <paste your route here> Format: yaml
The prompt guides the assistant through a security audit: analyzing the route for vulnerabilities and security-sensitive components, understanding the data flow, and producing a structured audit checklist with critical issues, warnings, positive findings, and actionable recommendations.