Camel MCP 服务器
Camel MCP Server
Camel MCP Server 让 AI 编码助手深入了解 Apache Camel。它通过 Model Context Protocol (MCP) 暴露完整的 Camel 目录——组件、EIP、数据格式、Kamelet、示例——以及用于实时 Camel 应用的运行时内省工具。
MCP 服务器运行后,你的 AI 助手即可查阅组件文档、校验端点与路由、生成测试脚手架、根据堆栈跟踪诊断错误、检查依赖、规划迁移、审查路由的安全隐患,并与运行中的 Camel 应用交互——无需你复制粘贴任何内容。
基于 Quarkus 构建,并使用了 quarkus-mcp-server 扩展。
快速开始
最快的上手方式:
- 安装 JBang(只需一次)
- 运行
camel mcp(或jbang org.apache.camel:camel-jbang-mcp:LATEST:runner) - 连接你的 AI 助手(参见下文的配置)
就这么简单——MCP 服务器会以 STDIO 传输方式启动,你的 AI 助手即可立即查询 Camel 目录、校验路由等等。
运行 MCP 服务器
运行 MCP 服务器有三种方式。
使用 Camel CLI(推荐)
camel mcp 命令将 MCP 服务器作为一等 CLI 命令启动:
camel mcp这将以 STDIO 传输方式(默认)启动 MCP 服务器。要启用 HTTP 传输:
camel mcp --http
camel mcp --http --port 9090有关所有可用标志,请参阅 camel mcp 选项。
直接使用 JBang
如果你已经安装了 JBang:
# STDIO transport (default)
jbang org.apache.camel:camel-jbang-mcp:LATEST:runner
# HTTP transport
jbang -Dquarkus.http.host-enabled=true -Dquarkus.http.port=8080 org.apache.camel:camel-jbang-mcp:LATEST:runner使用 java -jar(无需 JBang)
从 Maven Central 下载 MCP 服务器的 uber-JAR 并直接运行:
# Download (replace VERSION with the desired Camel version, e.g., 4.21.0)
curl -O https://repo1.maven.org/maven2/org/apache/camel/camel-jbang-mcp/VERSION/camel-jbang-mcp-VERSION-runner.jar
# Run with STDIO transport
java -jar camel-jbang-mcp-VERSION-runner.jar
# Run with HTTP transport
java -Dquarkus.http.host-enabled=true -Dquarkus.http.port=8080 -jar camel-jbang-mcp-VERSION-runner.jar传输方式
- STDIO(默认)—— 通过 stdin/stdout 进行通信。日志输出到 stderr。
- HTTP/SSE —— 面向基于 Web 的客户端以及远程/共享访问。可通过
--http标志或-Dquarkus.http.host-enabled=true启用。支持两种变体:SSE(/mcp/sse,协议2024-11-05)和可流式传输的 HTTP(/mcp,协议2025-03-26,新集成推荐使用)。
| MCP 服务器不会暴露 REST 端点——所有通信都通过 MCP 协议上的 JSON-RPC 完成。 |
|---|
设置
Claude Code(插件安装,推荐)
claude plugin marketplace add apache/camel
claude plugin install camel-mcp@camel-marketplace手动配置(适用于所有 AI 工具)
将该服务器添加到你的 MCP 配置文件中。所有工具使用的 JSON 内容都相同,只有文件位置不同:
| 工具 | 配置文件 |
|---|---|
| Claude Code | .mcp.json(项目级)或 ~/.claude/mcp.json(全局) |
| OpenAI Codex | MCP 配置文件 |
| VS Code / Copilot | .vscode/mcp.json(顶层键需使用 "servers" 而非 "mcpServers") |
| JetBrains IDE(2025.1+) | Settings > Tools > AI Assistant > MCP Servers,或 .junie/mcp.json |
{
"mcpServers": {
"camel": {
"command": "jbang",
"args": [
"-Dquarkus.log.level=WARN",
"org.apache.camel:camel-jbang-mcp:LATEST:runner"
]
}
}
}对于 VS Code,顶层键应使用 "servers" 而非 "mcpServers"。 |
|---|
使用 MCP Inspector 检查
先启动启用了 HTTP 的服务器,然后:
npx @modelcontextprotocol/inspector打开 http://localhost:6274/,将 Transport Type 设为 SSE,URL 设为 http://localhost:8080/mcp/sse,Connection 设为 Via Proxy。
camel mcp 选项
| 选项 | 默认值 | 说明 |
|---|---|---|
--http | false | 启用 HTTP 传输(Streamable HTTP 和 SSE)。不指定此标志时,服务器使用 STDIO 传输。 |
--port | 8080 | HTTP 服务器端口(仅在使用 --http 时生效)。 |
--log-level | WARN | 日志级别:ERROR、WARN、INFO、DEBUG、TRACE。 |
--version | (当前 Camel 版本) | 要使用的 Camel MCP 服务器版本,默认为 Camel CLI 的版本。 |
示例
以下是可以提供给 AI 助手的示例提示语。助手会自动选择合适的 MCP 工具。
目录探索
- “哪个组件支持 MQTT?” —— 使用
camel_catalog_find - “显示 Kafka 组件的文档以及所有选项” —— 使用
camel_catalog_doc - “哪个 EIP 会把消息扇出到多个端点?” —— 使用带
kind=eip的camel_catalog_find(fan-out、dedup和rate-limit等 EIP 别名均可匹配) - “显示所有 AWS 源 kamelet” —— 使用
camel_catalog_kamelets - “aws-s3-source 接受哪些选项?” —— 使用
camel_catalog_kamelet_doc - “显示适合初学者的 REST 示例” —— 使用
camel_catalog_examples
构建路由
让助手根据需求构建路由:
Build me a Camel route that generates a message every 5 seconds with a random number,
logs it, and sends it to a SEDA queue called "numbers".助手会发现组件、查找文档、构建 YAML 路由,并使用 camel_validate_source 进行验证。使用 camel_build_integration 提示词可以获得结构化的多步骤工作流。
验证
- 「验证这个端点:
kafka:myTopic?brkers=localhost:9092」 —— 检测出拼写错误并建议改为brokers - 「验证这个 YAML 路由」 —— 按照 YAML DSL JSON 模式进行检查,报告无效元素
理解、安全与测试
- 「解释这个路由的作用」 —— 使用
camel_route_context进行基于组件目录的增强分析 - 「分析这个路由的安全隐患」 —— 使用
camel_route_harden_context检测硬编码凭据、明文传输协议、已知 CVE 公告等 - 「我的 Camel 4.10.1 项目是否受已知 CVE 影响?」 —— 使用
camel_security_advisories将已发布的 Apache Camel 安全公告与特定的 Camel 版本或组件进行匹配 - 「为这个路由生成一个 JUnit 5 测试」 —— 使用
camel_route_test_scaffold生成包含 mock 端点和测试基础设施桩件的测试类
错误诊断
粘贴一段堆栈跟踪:
org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> To[kafka:myTopic] <<<
Caused by: org.apache.camel.NoSuchEndpointException: No endpoint could be found for: kafka:myTopic助手使用 camel_error_diagnose 来识别异常链、提取相关组件并给出修复建议(例如缺少 camel-kafka 依赖)。
依赖与版本
- "检查我的 pom.xml 中是否有缺失或过时的依赖" — 使用
camel_dependency_check - "Spring Boot 目前最新的 LTS 版本是什么?" — 使用
camel_version_list - "org.postgresql.ds.PGSimpleDataSource 需要哪个依赖?在 Quarkus 上该如何添加?" — 使用
camel_dependency_for_class
迁移
- "把我的项目迁移到最新版本(这是我的 pom.xml)" — 使用
camel_migration_analyze→camel_migration_compatibility→camel_migration_recipes - "Camel 4 中 direct-vm 有哪些变化?" — 使用
camel_migration_guide_search - "从 WildFly 迁移到 Quarkus" — 使用
camel_migration_wildfly_karaf获取 archetype 命令和步骤 - 使用
camel_migrate_project提示词来编排多步骤的完整迁移工作流
OpenAPI 契约优先
- "验证这份 OpenAPI 规范是否与 Camel 兼容" — 使用
camel_openapi_validate - "生成一个带 mock 模式的 Camel YAML 脚手架" — 使用
camel_openapi_scaffold - "展示 mock 目录结构" — 使用
camel_openapi_mock_guidance
将这三者组合起来,即可完成完整的原型开发工作流:先验证,再生成脚手架,然后逐条实现路由,其余部分由 Camel 进行 mock。
运行时内省
使用 camel run my-route.yaml 启动路由,然后提问:
- "展示正在运行的 Camel 进程和路由统计信息" — 使用
camel_runtime_processes和camel_runtime_routes - "启用跟踪并展示被跟踪的消息" — 使用
camel_runtime_trace - "向 direct:start 发送一条测试消息" — 使用
camel_runtime_send - "哪些处理器最慢?" — 使用
camel_runtime_top - "浏览 seda:numbers 中的消息" — 使用
camel_runtime_browse
提示词(结构化工作流)
支持提示词的 MCP 客户端会将以下内容作为可选择的工作流提供:
camel_build_integration— 7 步引导式工作流:发现组件 → 选择 EIP → 构建 → 验证 → 安全审查camel_migrate_project— 6 步迁移流程:分析 → 兼容性 → 迁移方案 → 指南检索 → 总结camel_security_review— 3 步审计流程:分析漏洞 → 理解数据流 → 生成检查清单
可用工具
该服务器公开了一系列目录工具,用于探索组件、验证路由以及辅助迁移;还有运行时内省工具,用于检查和交互实时运行的 Camel 进程;此外还提供提示,给出结构化的多步骤工作流。
创作(与 Camel TUI 共享)
智能体构建和编辑集成所需的各种工具,只需在 Camel CLI 中定义一次,本服务器和 camel tui --mcp(参见 Camel TUI)都会以相同的 camel_ 名称对外暴露,因此智能体无论从哪个入口进入,得到的都是同一个 Camel。这些工具是自包含的:文件工具以项目的 directory 作为参数,运行时工具以集成的 name 作为参数(或者在仅有一个运行中集成时直接使用它)。
| 工具 | 说明 |
|---|---|
camel_catalog_doc | 组件、数据格式、语言、EIP 或内置 Bean 的目录文档:描述、选项、Maven 坐标;对于组件,还会给出其端点 URI 的书写规则(哪些选项属于路径部分、YAML 的 uri 与 parameters 形式、占位符、RAW())。对于 simple 语言,给出语法规则、函数与运算符(按分组列出其数量与名称;若使用 optionsFilter,则列出匹配项及其参数和示例:分组名如 date 只给出该分组,运算符种类如 logical 只给出该种类,函数或运算符名称优先匹配,其余任意单词则匹配名称和描述);docPage 用于函数、运算符、OGNL 与高级页面。使用 endpoint 时,它会依据目录校验一个 URI:未知选项会给出最接近的真实名称、无效值、缺失的路径部分、生产端端点上出现的消费者选项。includeHeaders=true 会附加组件的消息头(CamelXxx 名称、其常量、类型以及消费者或生产者分组),includeDoc=true 则附加 AsciiDoc 页面。EIP 别名(fan-out、dedup、rate-limit)或其标题中的某个词可以找到该 EIP;此时答案会给出 matchedTerm。includeOptions 用于挑选所列选项:common(默认)排除已废弃和高级选项,并通过 omittedOptions 说明数量,required 列出必填项,all 列出全部,false 表示不列;optionsFilter 在选项的名称、描述和分组中匹配关键词,并搜索所有选项。使用 kind=api(或给出类名如 Exchange)时,它会返回 Bean 或脚本所调用的核心类的精简 API 参考:Exchange、Message、CamelContext、Registry、ProducerTemplate、Processor、AggregationStrategy、Predicate、Expression 和 TypeConverter,每个方法一行,包含签名、示例和常见错误(聚合策略首次调用时 oldExchange 为 null,Map 类型的 body 没有 ${body.type},Bean 名称不是 Groovy 变量,Camel 4 中没有 getOut())。该参考由 camel-api 中真实方法上的 @Metadata(label = "api") 注解生成,并随 camel-catalog(org/apache/camel/catalog/apis/)一起发布,因此不会出现偏差。给出脚本语言名称(groovy、js、python、python3、quickjs、java)或 template 时,返回该脚本可见的变量以及如何通过它们访问 Camel API;这些语言的语言文档带有相同的 scriptVariables。 |
camel_catalog_find | 按协议、产品、别名或其他并非精确名称的词(mqtt、s3、snowflake、csv、fan-out、dedup)查找组件、数据格式、语言和 EIP,最佳匹配排在前面,并给出标题和描述;kind 可将范围缩小到其中之一,bean 配合接口名(如 AggregationStrategy)则列出其内置实现。 |
camel_catalog_sample | 取自文档示例的、经过校验的 YAML DSL 示例,涵盖某个 EIP 或文件条目(onException、aggregate、split、rest、beans)、某个组件(kafka、file)、某个数据格式(csv)或某种语言(jq),并说明其位置:与路由并列的顶层条目、路由内部的步骤、from: 或 to: 中的端点 URI(组件的消费者或生产者一侧)、marshal/unmarshal 步骤,或某个步骤的表达式。名称可以是 kebab-case、另一个 EIP 的一部分(doCatch、when、onFallback 会显示整个结构)、该 EIP 的别名(fan-out、rate-limit,取自目录的 EIP 模型)或要做的事情(read file、call service、retry、batch);kind(eip、component、dataformat、language)仅在同名项分属多个类别时才需要(如 avro、file),否则答案会列出可供选择的类别。这些示例来自当前所用目录的文档,因此与其 Camel 版本一致:EIP 页面、组件页面及其子页面(优先给出使用该组件端点的示例)、数据格式或语言页面。文件条目来自构建所校验的用户手册示例(见 Camel YAML DSL Validator Maven Plugin 中的 generate-doc-samples)。limit 默认为 2,最多 5。建议在第一次编写之前,或在出现 not defined in the schema 校验错误之后使用它。 |
camel_validate_source | 无需写入即可校验 Camel YAML DSL 或 .properties 源码:YAML DSL 模式(如把 loggingLevel 拼写成 logLevel 这样的选项拼写错误)、端点 URI、simple 表达式以及 camel.* 选项。它接受内容,或从项目目录中读取文件。若指定 camelVersion(或在 TUI 中选择某个集成的版本),则由该 Camel 版本的目录和 YAML DSL 模式作答,模式从其 camel-yaml-dsl jar 中读取;未指定时则使用 CLI 自带的版本,无需下载任何内容。 |
camel_get_files | 项目目录中的源文件,包含子目录(跳过 target、.git 之类)。列表会说明该目录是 Maven 项目还是扁平文件夹,预先列出路由文件和配置文件(routeFiles、configFiles),并在选中某个集成时,说明其每条路由从哪个文件、哪一行加载而来,即把运行时位置(已导出项目的 jar 条目、classpath 或文件资源)映射回 src/main 下的源码。指定 file 时,返回相对于列表所标示目录的路径及其文件内容。 |
camel_write_file | 写入项目目录中某个文件的完整内容。YAML 和 .properties 内容会先校验;无效内容不会写入,而是返回错误(validate=false 则照样写入)。只接受目录中的纯文件名。写入前不会询问任何人:MCP 客户端(Claude Code、Cursor 等会在非只读工具运行前询问)才是人类所在之处,而安全层的 read-only 访问级别会直接隐藏该工具。 |
camel_run | 在单独的进程中通过 camel run --source-dir 从项目目录启动一个集成,默认处于开发模式:目录会被监视,因此被修改或新增的文件(路由、Bean 文件、Java 类)会重新加载。指定文件名可只运行它们,适用于存放多个应用的目录。集成启动后会返回其 pid、名称和日志文件。 |
camel_control | 控制正在运行的集成:stop、kill、restart(即使不在开发模式下也能拾取编辑过的文件)、reload(不重启、从文件重新加载路由,与 camel cmd reload 相同)、stop-routes、start-routes、reset-stats。 |
camel_get_log | 正在运行的集成的最近日志记录,最新的排在前面,可按级别或文本过滤;堆栈跟踪会作为一条记录并带有 detail 块返回。 |
camel_get_errors | 正在运行的集成中失败的交换(exchange):路由、交换、带堆栈跟踪的异常、消息体和消息头。 |
| camel_eval_expression | 在正在运行的集成中求值一个表达式(默认为 simple),未指定集成时在本地求值,并返回其值(谓词返回 true
目录浏览
| 工具 | 描述 |
|---|---|
camel_catalog_docs | 列出目录的 AsciiDoc 文档页面名称(如 kafka-component、split-eip 等),支持子字符串过滤;使用 camel_catalog_doc 并设置 includeDoc=true 可返回具体页面内容。 |
camel_component_properties | 以 camel.component.<scheme>.<name> 形式列出某个 Camel 组件的有效配置属性键,包含选项名称、类型、默认值和描述。 |
Kamelet 目录
| 工具 | 描述 |
|---|---|
camel_catalog_kamelets | 列出 Kamelet 目录中可用的 Kamelet,支持按名称、描述和类型(source、sink、action)进行过滤,并支持查询特定版本的 Kamelet 目录。 |
camel_catalog_kamelet_doc | 获取特定 Kamelet 的详细文档,包括所有属性/选项、其类型、默认值、示例以及该 Kamelet 的 Maven 依赖。 |
示例目录
| 工具 | 描述 |
|---|---|
camel_catalog_examples | 列出可用的 Camel CLI 示例,支持按名称、描述或标签进行过滤(不区分大小写的子串匹配)。支持按难度级别过滤(beginner、intermediate、advanced),并可限制返回结果的数量。返回每个示例的名称、标题、描述、级别、标签以及文件列表。 |
camel_catalog_example_file | 获取 Camel CLI 示例中某个特定文件的内容。对于内置示例,直接返回文件内容;对于非内置示例,则返回该文件所在的 GitHub 链接。请先使用 camel_catalog_examples 来查找示例名称及其文件。 |
路由理解
| 工具 | 描述 |
|---|---|
camel_route_context | 给定一条 Camel 路由(YAML、XML 或 Java DSL),提取其中使用的所有组件和 EIP,从目录中查询相关文档,并返回结构化的上下文信息。 |
测试脚手架
| 工具 | 说明 |
|---|---|
camel_route_test_scaffold | 根据 Camel 路由定义(YAML 或 XML)生成 JUnit 5 测试骨架。接受可选的 format(yaml 或 xml,默认 yaml)和 runtime(main 或 spring-boot,默认 main)。对于 main 运行时,生成的测试继承 CamelTestSupport;对于 spring-boot,则使用带有 @SpringBootTest 的 @CamelSpringBootTest。该工具会将非平凡的生产者端点替换为 mock 端点,为基础设施组件(Kafka、JMS/Artemis、MongoDB、PostgreSQL、Cassandra、Elasticsearch、Redis、RabbitMQ、FTP、Consul、NATS、Pulsar、CouchDB、Infinispan、MinIO、Solr)生成 @RegisterExtension 桩代码,并针对基于定时器的路由生成 NotifyBuilder 模式,或针对 direct/seda 消费者生成 template.sendBody()。返回生成的测试代码、检测到的组件、mock 端点映射、测试基础设施服务以及所需的 Maven 测试依赖。 |
安全分析
| 工具 | 描述 |
|---|---|
camel_route_harden_context | 分析路由中的安全隐患。识别安全敏感组件、分配风险等级、检测硬编码凭据或明文协议等问题,并返回结构化的安全发现结果,同时附带最佳实践建议以及在给定 Camel 版本下该路由所用组件已公开的 CVE 安全公告。 |
camel_security_advisories | 列出已公开的 Apache Camel CVE 安全公告(即 camel.apache.org/security 背后的数据),可按 Camel 版本、组件和严重程度进行可选过滤。每条公告包含摘要、受影响版本与已修复版本、缓解措施,以及针对给定 Camel 版本是否受影响的尽力而为的判定。可用它来回答诸如“我的 Camel 4.10.1 项目是否受已知 CVE 影响?”之类的问题。 |
安全公告数据
安全公告数据随 MCP 服务器内置的 Camel 目录一同发布,其数据在构建 Camel 时从官方公开的 Apache Camel 安全公告(camel.apache.org/security 的数据来源)同步而来——与已知发布版本的同步方式完全相同。因此,所有查询均可完全离线进行;数据仅包含已发布的公告,其新鲜程度取决于 MCP 服务器所用的 Camel 版本:该版本发布之后公布的公告不会包含在内,因此请查看网页以获取最新信息。当目录中不包含安全公告数据时,这些工具会报告数据不可用,而不是返回空列表,从而避免将缺失的数据集误认为“不存在已知 CVE”。这些公告也可以作为 MCP 资源浏览:camel://security/advisories(完整列表)和 camel://security/advisory/{cve}(单个 CVE 的详情)。
错误诊断
| 工具 | 说明 |
|---|---|
camel_error_diagnose | 根据堆栈跟踪或错误信息诊断 Camel 错误。将异常类型与 17 个已知的 Camel 异常进行匹配(例如 NoSuchEndpointException、ResolveEndpointFailedException、FailedToCreateRouteException、PropertyBindingException 等),提取涉及的组件与 EIP,并返回常见原因、建议的修复方式以及相关 Camel 文档的链接。 |
依赖检查
| 工具 | 说明 |
|---|---|
camel_dependency_check | 根据 pom.xml 和可选的路由定义,检查 Camel 项目的依赖健康状况。检测与最新目录版本相比是否使用了过期的 Camel 版本,识别路由中所用组件缺失的 Maven 依赖,并标记 Camel BOM 与显式依赖覆盖之间的版本冲突。返回可操作的建议以及修正后的依赖片段。 |
校验与转换
| 工具 | 说明 |
|---|---|
camel_transform_route | 协助完成路由 DSL 格式在 YAML 与 XML 之间的转换。 |
camel_configuration_validate | 校验 Camel 配置属性行(例如来自 application.properties 的配置)。检测拼写错误的选项名、无效的值,并返回修正建议。 |
camel_properties_translate | 在各运行时(main、spring-boot、quarkus)之间转换 Camel 配置属性。可处理 HTTP 服务器、管理端点配置等运行时特有的配置键。 |
路由图
| 工具 | 说明 |
|---|---|
camel_render_route_diagram | 根据源文件(YAML、XML、Java)生成 Camel 路由图。支持以 PNG 输出的图像主题(dark、light、transparent),以及直接返回的文本主题(ascii、unicode)。可用于可视化路由结构,便于评审、编写文档或排查问题。 |
OpenAPI 契约优先
从 Camel 4.6 起,基于 OpenAPI 规范构建 REST API 的推荐方式是契约优先:在运行时通过 rest:openApi 直接引用 OpenAPI 规范,而不是生成 REST DSL 代码。这些工具可帮助校验、搭建脚手架并为该工作流提供模拟指导。
| 工具 | 描述 |
|---|---|
camel_openapi_validate | 验证 OpenAPI 规范是否与 Camel 的契约优先 REST 支持兼容。检查缺失的 operationId 字段、不受支持的安全方案、OpenAPI 3.1 的限制、webhooks 的使用以及空的路径。返回错误、警告和信息级别的诊断信息。 |
camel_openapi_scaffold | 为契约优先的 OpenAPI 集成生成 Camel YAML 脚手架。生成引用规范文件的 rest:openApi 配置块,以及针对每个操作的 direct:<operationId> 路由桩,并预配置了规范中定义的 Content-Type 和 CamelHttpResponseCode 头。支持配置 missingOperation 模式(fail、ignore 或 mock)。 |
camel_openapi_mock_guidance | 提供有关配置 Camel 的 missingOperation 模式(fail、ignore、mock)的指导。对于 mock 模式,返回 camel-mock/ 目录结构、由 API 路径派生的模拟文件路径以及规范中的示例内容。说明每种模式的行为。 |
迁移
| 工具 | 说明 |
|---|---|
camel_migration_analyze | 分析 Camel 项目的 pom.xml,以检测运行时类型(main、spring-boot、quarkus、wildfly、karaf)、Camel 版本、Java 版本以及 Camel 组件依赖。这是迁移工作流的第一步。 |
camel_migration_compatibility | 通过提供相关的迁移指南 URL 和 Java 版本要求,检查 Camel 组件的迁移兼容性。大语言模型会查阅这些迁移指南,以获取详细的组件重命名映射和 API 变更信息。 |
camel_migration_recipes | 返回用于运行 Camel OpenRewrite 迁移配方(recipe)以完成版本升级的 Maven 命令。项目必须先编译成功,才能运行这些配方,因为 OpenRewrite 需要一个可编译的项目来解析和转换代码。 |
camel_migration_guide_search | 针对特定术语或组件名称,搜索 Camel 迁移与升级指南。返回官方指南中匹配的片段,包含版本信息和 URL。支持模糊匹配,可容忍拼写错误。查找迁移相关变更、被移除的组件、API 重命名或破坏性变更时,请使用此工具而非网络搜索。 |
camel_migration_wildfly_karaf | 为运行在 WildFly、Karaf 或基于 WAR 的应用服务器上的 Camel 项目提供迁移指导。返回用于创建新目标项目的 Maven archetype 命令、迁移步骤以及相关的迁移指南 URL。 |
版本管理
| 工具 | 说明 |
|---|---|
camel_version_list | 列出指定运行时可用的 Camel 版本,包括发布日期、JDK 要求和 LTS 状态。 |
运行时内省
运行时工具需要一个通过 camel run 启动的正在运行的 Camel 应用。它们通过 ~/.camel/ 中基于文件的 IPC 协议与应用通信。所有工具都接受一个可选的 nameOrPid 参数;当省略该参数时,服务器会自动发现正在运行的 Camel 进程(仅在恰好有一个进程运行时有效)。 |
|---|
进程发现
| 工具 | 说明 |
|---|---|
camel_runtime_processes | 列出所有可被检查的正在运行的 Camel 进程。为每个发现的进程返回 PID、名称和上下文名称。 |
上下文与路由
| 工具 | 描述 |
|---|---|
camel_runtime_context | 获取 Camel 上下文信息:名称、版本、状态、运行时间、路由数量、Exchange 统计信息。 |
camel_runtime_routes | 列出 Camel 路由及其状态、运行时间、已处理消息数、最近错误以及吞吐量统计信息。 |
camel_runtime_route_source | 获取运行中的 Camel 应用程序里路由的源代码。支持通配符过滤。 |
camel_runtime_route_dump | 以 XML 或 YAML 格式导出路由定义。 |
camel_runtime_route_structure | 以处理器树的形式展示路由结构。 |
camel_runtime_route_control | 控制路由:通过路由 ID 启动、停止、挂起或恢复路由。 |
camel_runtime_route_topology | 获取路由间拓扑结构,展示各路由之间以及与外部端点的连接方式。返回描述路由图的节点和边。 |
可观测性
| 工具 | 说明 |
|---|---|
camel_runtime_health | 获取 Camel 应用程序的健康检查状态。 |
camel_runtime_endpoints | 列出 Camel 上下文中注册的所有端点,包括其 URI 和使用统计信息。 |
camel_runtime_inflight | 显示当前在途的交换(正在处理中的消息)。 |
camel_runtime_blocked | 显示被阻塞的交换,即卡住或正在等待的交换。 |
camel_runtime_top | 显示顶级处理器统计信息:哪些处理器最慢、最活跃。 |
camel_runtime_memory | 显示 JVM 内存使用情况(堆内存/非堆内存)、垃圾回收统计和线程数。 |
camel_runtime_heap_histogram | 获取类级别的堆直方图,展示每个类的实例数量和字节占用。有助于诊断内存泄漏,并了解哪些类占据了堆的大部分空间。 |
camel_runtime_memory_leak | 使用 Java Flight Recorder (JFR) 诊断正在运行的 Camel 集成中的内存泄漏。使用命令 'start' 开始记录,'stop' 获取结果,'status' 检查状态,'query' 检索缓存的结果。支持双记录模式以便进行趋势对比。 |
camel_runtime_history | 获取最近完成的交换的消息历史跟踪记录。展示路由路径、经过的处理器、消息头、消息体和耗时信息。 |
camel_runtime_thread_dump | 获取 JVM 线程转储,展示线程名称、状态和堆栈跟踪信息。 |
数据、弹性与分析
| 工具 | 说明 |
|---|---|
camel_runtime_sql | 针对正在运行的应用程序的 DataSource 执行 SQL 语句:SELECT 返回列和行,其他语句返回更新计数。让模型查看路由读取或写入的数据,或在将语句写入路由之前先进行尝试。 |
camel_runtime_datasources | 数据源连接池状态:活跃连接、空闲连接和总连接数,最大连接池大小以及等待中的线程数。 |
camel_runtime_sql_trace | camel-sql 和 camel-jdbc 组件已跟踪的 SQL 执行记录,包含耗时、行数、路由 ID 和失败状态。 |
camel_runtime_circuit_breakers | 熔断器状态(CLOSED/OPEN/HALF_OPEN)、调用次数、失败率以及未被允许的调用次数。 |
camel_runtime_metrics | Micrometer 指标:计数器、仪表、计时器和分布统计(需要 --observe 或 camel-micrometer)。 |
camel_runtime_eip_stats | 所有路由中 EIP 的使用情况,包含处理器数量和性能数据。 |
camel_runtime_spans | OpenTelemetry Span,包含跟踪 ID、持续时间、路由 ID 和状态(需要 --observe)。 |
camel_runtime_startup_steps | 启动记录器步骤,包含耗时、级别和类型(需要 camel.main.startup-recorder=true)。 |
camel_runtime_route_analysis | 针对每个路由的反模式和结构分析:错误处理、复杂度、组件使用情况。 |
camel_runtime_config_drift | 将正在运行的路由定义与源文件进行比较,以检测配置偏差。 |
配置与注册表
| 工具 | 说明 |
|---|---|
camel_runtime_variables | 显示 Camel 上下文中的交换变量。 |
camel_runtime_consumers | 显示消费者统计信息(轮询消费者、事件驱动消费者)。 |
camel_runtime_properties | 显示正在运行的 Camel 应用程序的配置属性。 |
camel_runtime_services | 显示 Camel 服务注册表中已注册的服务。 |
交互与调试
| 工具 | 说明 |
|---|---|
camel_runtime_send | 向运行中的应用程序里的 Camel 端点发送测试消息。 |
camel_runtime_trace | 为正在运行的 Camel 应用程序启用、禁用或转储消息跟踪。 |
camel_runtime_browse | 浏览 Camel 端点中的消息(例如,排队在 SEDA 端点中的消息)。 |
camel_runtime_receive | 从运行中的应用程序里的 Camel 端点接收(轮询)消息。从该端点消费一条消息。 |
可用提示(Prompt)
提示是结构化的多步骤工作流,用于引导 LLM 按正确顺序编排调用多个工具。LLM 无需自行判断应调用哪些工具以及以何种顺序调用,提示会以分步计划的形式提供完整的工作流。
支持提示的 MCP 客户端(如 Claude Desktop)会将提示作为可选择的工作流暴露出来。LLM 接收指令,并通过调用其中引用的工具来逐步执行每个步骤。
| 提示词 | 参数 | 说明 |
|---|---|---|
camel_build_integration | requirements(必填)、runtime(可选) | 用于根据自然语言需求构建 Camel 集成的引导式工作流。依次执行七个步骤:识别组件、识别 EIP、获取组件文档、构建 YAML 路由、使用 YAML DSL 模式进行验证、执行安全审查,以及展示最终结果及其说明和运行指令。 |
camel_migrate_project | pomContent(必填)、targetVersion(可选) | 用于将 Camel 项目迁移到新版本的引导式工作流。依次执行六个步骤:分析项目的 pom.xml、确定目标版本、检查兼容性(包括检测 WildFly/Karaf)、获取 OpenRewrite 迁移配方、按组件搜索迁移指南中的破坏性变更,并生成包含阻塞项、破坏性变更、命令和手动步骤的结构化迁移摘要。 |
camel_security_review | route(必填)、format(可选) | 用于对 Camel 路由执行安全审计的引导式工作流。依次执行三个步骤:分析路由中的安全敏感组件和漏洞、理解路由结构与数据流,并生成一份可操作的审计清单,按关键问题、警告、正面发现、建议和合规说明进行分类整理。 |
camel_diagnose_route | routeId(可选)、symptom(可选) | 用于诊断运行中的 Camel 路由问题的引导式工作流:收集运行时状态、错误、健康状况和消息历史,并生成包含可操作修复方案的根因分析。 |
camel_optimize_route | routeId(可选)、goal(可选) | 用于优化 Camel 应用程序性能的引导式工作流:分析吞吐量、识别瓶颈、审查资源使用情况,并生成按优先级排序的优化建议。 |
评论
登录后参与评论
KnowForge