[
https://issues.apache.org/jira/browse/CAMEL-26454?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-26454:
--------------------------------
Fix Version/s: 4.24.0
> camel-jbang-mcp - chaos tools for the MCP server and camel ask
> --------------------------------------------------------------
>
> Key: CAMEL-26454
> URL: https://issues.apache.org/jira/browse/CAMEL-26454
> Project: Camel
> Issue Type: Improvement
> Components: camel-jbang
> Reporter: shashank
> Assignee: shashank
> Priority: Major
> Fix For: 4.24.0
>
>
> Next stage of CAMEL-26330 (design/chaos.adoc, section "Control", step "The
> MCP tool group" of "Order of work"), on top of CAMEL-26436
> (apache/camel#28788), which gives a running application a read-only {{chaos}}
> dev console, a {{chaos}} action of the CLI connector and {{camel cmd
> chaos-*}} / {{camel get chaos}}. An AI agent working on an integration
> through the Camel MCP server cannot add a fault yet, or read what the faults
> did, except by asking the user to run the CLI.
> *Proposal*
> * camel-jbang-mcp ({{RuntimeTools}}, {{@McpSecured}}): six tools, the same
> six operations as the CLI, through the same {{chaos}} action of the CLI
> connector and the chaos console in the status, as the other runtime tools
> reach an integration:
> ** {{camel_runtime_chaos_list}}, {{camel_runtime_chaos_report}}:
> {{readOnlyHint=true}};
> ** {{camel_runtime_chaos_add}}, {{camel_runtime_chaos_change}}:
> {{readOnlyHint=false}}, {{destructiveHint=true}} (a rule makes messages fail,
> wait or get lost, and {{exception=}} can name any exception class), as agreed
> in the review of #28716; so the {{read-write}} access level of the MCP
> security layer does not offer them, as it does not offer
> {{camel_runtime_route_control}} or {{camel_runtime_sql}};
> ** {{camel_runtime_chaos_remove}}, {{camel_runtime_chaos_clear}}:
> {{readOnlyHint=false}}, {{destructiveHint=false}}: they only take faults away
> and the report keeps the removed rules, as starting and stopping the tracer
> ({{camel_runtime_trace}}) is not destructive either.
> * Shared {{ToolRegistry}} (used by {{camel ask}}): {{chaos_list}},
> {{chaos_report}}, {{chaos_add}}, {{chaos_change}}, {{chaos_remove}},
> {{chaos_clear}} with the same marks; the MCP tools delegate to them.
> * {{ToolConfirms.chaos}}: adding or changing a rule is a call the user
> confirms first, with the rule shown; {{camel ask}} asks before {{chaos_add}}
> and {{chaos_change}}. The security model ("Developer tools") lists it.
> * A {{chaos}} runtime tool group ({{ToolGroup.CHAOS}}, {{AppFeatures}},
> {{ToolGroups}}): it loads when the status of the application has the chaos
> console, with chaos on or off, and its guidance line says which. The AI panel
> of the TUI gets the group with no tools, only a line that faults may be
> injected on purpose.
> * A rule that is not valid comes back with the reason of the parser of
> {{camel.chaos.rules}}; with chaos off every tool that changes rules is
> refused with the reason; an unknown id is said; an integration that is not
> found or not the only one is refused (rule ids are per integration).
> * Not changed: the development MCP tools of {{camel run --mcp}}
> ({{camel.jbang.mcp=true}}, {{JbangDevMcpServer}}) expose every shared tool
> without asking, so also {{chaos_add}} and {{chaos_change}}, as they expose
> {{stop_route}} and {{execute_sql}}; the docs say so, and a follow-up can keep
> the calls of {{ToolConfirms}} out of that server.
> * Also fixed: the chaos plugin takes a property that tooling resolves to a
> placeholder (route diagram with {{ignoreMissingProperty}}) or to the magic
> value of {{camel export}} as not set, instead of vetoing the start; and
> {{AskTools.sharedToolNames}} replaces the longest tool names first
> ({{camel_runtime_sql}} is the start of {{camel_runtime_sql_trace}}).
> * Docs: the MCP server page (the tools, their hints, the group), the TUI
> local-models page (the group), the chaos page ("From an AI agent (MCP)"), the
> security model, and design/chaos.adoc (step done).
> _Filed with Claude Code on behalf of allthingssecurity._
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)