Agentic Orchestration Ecosystem
Execution orchestrator and message router for AI agent platforms
Execution orchestrator and message router for AI agent platforms
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 = /* ... */;