I’m trying to use the Jenkins MCP server from cloud agent chat, with a self-hosted / private worker that can reach our internal Jenkins.
What I want
From an agent chat session, call Jenkins MCP tools (e.g. get build status, trigger a job).
My setup
Jenkins MCP plugin at http://10.1.10.60:8080/mcp-server/mcp (private LAN, not public internet).
~/.cursor/mcp.json uses npx mcp-remote with --allow-http and Basic auth in a custom header.
Cloud agent runs on my private worker (usePrivateWorker: true, worker name e.g. jenkins-agent).
What works on the worker
mcp-remote is running.
agent mcp list shows jenkins: ready.
agent mcp list-tools jenkins lists all tools.
Direct HTTP to Jenkins MCP (initialize, tools/list, whoAmI) works from the same machine.
What fails in chat
GetDynamicTools for namespace jenkins shows namespaceStatus: error — “failed during live tool discovery”.
CallDynamicTool says MCP server does not exist: jenkins.
So the worker MCP looks healthy, but chat doesn’t seem to use that connection for tool calls.
Question
For private workers + MCP servers on internal IPs, should chat MCP tools run through the worker’s mcp-remote process? If yes, is this a known bug or missing piece? What’s the recommended setup today?
What you are seeing is how MCP is routed for self-hosted machines today: MCP servers configured with a URL (HTTP / Streamable HTTP) are connected from Cursor’s backend, not from your worker, so a private address like http://10.1.10.60:8080 is unreachable from there and shows up as “failed during live tool discovery”. MCP servers configured with a command (stdio) are started on your worker machine and share its network. Your jenkins entry in the Cloud Agents MCP settings is currently the URL type, which is why the agent can never reach it.
The ~/.cursor/mcp.json on the worker is used by the local CLI (agent mcp list), which is why that side looks healthy, but cloud agent sessions get their MCP set from the Cloud Agents MCP settings.