Serdar Gökay created CAMEL-26686:
------------------------------------

             Summary: camel-jbang-mcp - development against integrations that 
run on a server: can camel mcp serve integrations that connect to it 
(CAMEL-25197)?
                 Key: CAMEL-26686
                 URL: https://issues.apache.org/jira/browse/CAMEL-26686
             Project: Camel
          Issue Type: Improvement
          Components: camel-jbang
    Affects Versions: 4.23.0
            Reporter: Serdar Gökay


We develop integrations with coding agents, and we would like to ask whether 
the way we do it is one the MCP server is meant to cover.

h3. What we do and why

The integrations do not run on the developer's machine. Each one runs as a 
{{camel run}} container on a shared development server (a Kubernetes cluster in 
our case), next to the systems it talks to: SAP, databases, brokers. A laptop 
cannot reach those systems, several people work on the same running 
integration, and nothing has to be installed on the developer's machine. The 
developer's agent (Claude Code or another client) connects over MCP and works 
on the running integration: validate, look at routes and errors, send a 
message, read the log, fix and try again.

The Camel CLI and {{camel mcp}} are built around the developer's own machine: 
{{camel mcp}} finds integrations through the files in {{~/.camel}} and a check 
of the pid, so it serves the integrations of its own machine. CAMEL-25197 names 
this limit for tools in general ("no containers, dev containers or remote dev 
clusters") and added the integration's side of a way out.

h3. Where we are stuck

Both ways we found work on 4.23.0, and each has a cost:

|| Way || What we get || Cost ||
| The embedded server of {{camel run}} (its mcp option), one in each 
integration | No second process | 72 tools without hints, no resources, no 
prompts, and one process selection shared by all sessions |
| {{camel mcp}} over HTTP next to each integration, sharing its PID namespace, 
{{~/.camel}} and source directory | The whole surface: 86 tools with hints, 
resources and prompts. The tools find the integration with no selector, and a 
restarted integration is found again | A second JVM for every integration: 
about 145 MiB resident when idle, 300 to 330 MiB after a catalog search (heaps 
of 128 to 256 MB) |

What we would like is one {{camel mcp}} for the server, with the integrations 
connecting to it.

h3. Questions

# Is development against integrations on a server a use that {{camel mcp}} is 
meant to cover? Or are we looking at it with the wrong architecture, and there 
is a better shape than the two above?
# With CAMEL-25197 an integration can dial out to a developer tool 
({{camel.cli.transport=websocket}}). Is {{camel mcp}} accepting such 
connections, and serving the connected integrations like local ones (listed by 
{{camel_runtime_processes}}, selected by {{nameOrPid}}), on the roadmap? We 
found nothing in camel-jbang that accepts them, at 4.23.0 or on main.
# Is there a reason not to have it? The transport is for development only (it 
refuses the prod profile and asks for a token), which fits our use.
# If the embedded server is the intended way for an integration that is not 
local, is it planned to serve the CLI server's surface there?

If one of these fits, we would like to work on it, and we can test against real 
containers.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to