Transport-level routing for MCP/ACP protocols
We appreciate your patience. The service is temporarily operating in an external runtime environment.
Transport-level routing for MCP/ACP protocols
We appreciate your patience. The service is temporarily operating in an external runtime environment.
Bridges MCP clients (like IDEs) to ACP agents through stdio Bus.
The MCP-to-ACP Proxy enables Model Context Protocol (MCP) clients, such as IDEs and development tools, to communicate with Agent Client Protocol (ACP) agents through stdio Bus kernel. It acts as a protocol bridge, translating MCP messages to ACP format and routing them to the appropriate agents.
Location: workers-registry/mcp-to-acp-proxy/
Loading diagram...
The proxy sits between MCP clients and stdio Bus, enabling seamless integration without requiring clients to implement the ACP protocol directly.
AGENT_ID configurationConfigure the proxy in your IDE's MCP settings. The exact configuration format depends on your IDE, but typically follows this pattern:
Add to your Kiro MCP settings:
{"mcpServers": {"stdio-bus-acp": {"command": "npx","args": ["@stdiobus/workers-registry","mcp-to-acp-proxy"],"env": {"ACP_HOST": "localhost","ACP_PORT": "9000","AGENT_ID": "claude-acp"}}}}
{"mcpServers": {"stdio-bus-acp": {"command": "stdiobus-mcp-to-acp-proxy","env": {"ACP_HOST": "0.0.0.0","ACP_PORT": "9000","AGENT_ID": "claude-acp"}}}}
| Variable | Type | Required | Default | Description |
|---|---|---|---|---|
ACP_HOST | string | No | localhost | stdio Bus kernel host address |
ACP_PORT | string | No | 9000 | stdio Bus kernel port number |
AGENT_ID | string | Yes | - | Target ACP agent identifier (e.g., claude-acp, goose) |
Ensure stdio Bus kernel is running with Registry Launcher or ACP Worker:
{"pools": [{"id": "registry-launcher","command": "npx","args": ["@stdiobus/workers-registry","registry-launcher","./api-keys.json"],"instances": 1}]}
Connect your IDE to ACP agents through stdio Bus:
AGENT_ID to your desired agent (e.g., claude-acp, goose)Benefits:
AGENT_IDRoute different IDE instances to different agents:
{"mcpServers": {"claude-agent": {"command": "stdiobus-mcp-to-acp-proxy","env": {"ACP_HOST": "localhost","ACP_PORT": "9000","AGENT_ID": "claude-acp"}},"goose-agent": {"command": "stdiobus-mcp-to-acp-proxy","env": {"ACP_HOST": "localhost","ACP_PORT": "9000","AGENT_ID": "goose"}}}}
Use the proxy for testing ACP agents with MCP clients:
# Terminal 1: Start stdio Bus with Registry Launcherdocker run -p 9000:9000 \-v $(pwd)/workers-registry:/workers-registry:ro \-v $(pwd)/config.json:/config.json:ro \stdiobus/stdiobus:latest \--config /config.json --tcp 0.0.0.0:9000# Terminal 2: Start MCP-to-ACP Proxyexport ACP_HOST=localhostexport ACP_PORT=9000export AGENT_ID=claude-acpnpx @stdiobus/workers-registry mcp-to-acp-proxy# Terminal 3: Connect with MCP client# Your MCP client will communicate through the proxy
Connect to remote stdio Bus instances:
{"mcpServers": {"remote-agent": {"command": "stdiobus-mcp-to-acp-proxy","env": {"ACP_HOST": "agent-server.example.com","ACP_PORT": "9000","AGENT_ID": "claude-acp"}}}}
The proxy handles translation between MCP and ACP message formats:
MCP Initialize Request:
{"jsonrpc": "2.0","id": 1,"method": "initialize","params": {"protocolVersion": "2024-11-05","capabilities": {},"clientInfo": {"name": "my-ide","version": "1.0.0"}}}
Translated to ACP:
{"jsonrpc": "2.0","id": "1","method": "initialize","params": {"agentId": "claude-acp","clientInfo": {"name": "my-ide","version": "1.0.0"}}}
The proxy maintains session state across the protocol bridge:
Ensure stdio Bus kernel is accessible:
# Test TCP connectionnc -zv localhost 9000# Test with echo messageecho '{"jsonrpc":"2.0","id":"1","method":"initialize","params":{"clientInfo":{"name":"test"}}}' | nc localhost 9000
Run the proxy and verify it starts without errors:
export ACP_HOST=localhostexport ACP_PORT=9000export AGENT_ID=claude-acpnpx @stdiobus/workers-registry mcp-to-acp-proxy
Expected output (to stderr):
MCP-to-ACP Proxy starting...Connecting to stdio Bus at localhost:9000Target agent: claude-acpProxy ready
Configure your MCP client with the proxy and send a test message. The proxy should:
Symptom: Proxy cannot connect to stdio Bus
Solutions:
ACP_HOST and ACP_PORT environment variablesSymptom: Error message about unknown agent ID
Solutions:
AGENT_ID matches an available agent in the ACP RegistrySymptom: Message format errors or unexpected responses
Solutions:
Symptom: IDE doesn't show the MCP server
Solutions:
// Import MCP-to-ACP Proxyimport mcpToAcpProxy from '@stdiobus/workers-registry/workers/mcp-to-acp-proxy';
import type { MCPToACPProxy } from '@stdiobus/workers-registry/workers/mcp-to-acp-proxy';// Use types for type-safe developmentconst proxy: MCPToACPProxy = /* ... */;