@chrome-acp/proxy-server
v1.0.21
Published
Proxy server that connects ACP agents to Chrome extension, exposing browser tools via MCP
Readme
ACP Proxy Server
A WebSocket proxy server that bridges Chrome extensions to ACP (Agent Client Protocol) agents.
Part of the chrome-acp monorepo.
Installation
From npm
npm install -g @chrome-acp/proxy-serverFrom source
# From monorepo root
bun installUsage
Via npx
npx @chrome-acp/proxy-server /path/to/agentVia global install
acp-proxy /path/to/agentVia source
bun src/cli/bin.ts /path/to/agentExamples
# Basic usage
acp-proxy /path/to/agent
# With custom port
acp-proxy --port 9000 /path/to/agent
# With debug logging
acp-proxy --debug /path/to/agent
# Pass arguments to the agent (use -- to separate)
acp-proxy /path/to/agent -- --verbose --model gpt-4CLI Reference
USAGE
acp-proxy [--port value] [--debug] <command>...
acp-proxy --help
acp-proxy --version
FLAGS
[--port] Port to listen on [default = 9315]
[--debug] Enable debug logging
-h --help Print help information and exit
-v --version Print version information and exit
ARGUMENTS
command... Agent command followed by its argumentsHow It Works
The proxy server:
- Listens for WebSocket connections from the Chrome extension
- When a "connect" message is received, spawns the configured ACP agent as a subprocess
- Bridges messages between the WebSocket (extension) and stdin/stdout (agent)
- Exposes browser tools to agents via MCP (Model Context Protocol)
This allows Chrome extensions to communicate with ACP agents despite not being able to spawn subprocesses directly.
Browser Tools (via MCP)
The proxy server exposes an MCP endpoint at http://localhost:{port}/mcp with these tools:
| Tool | Description |
|------|-------------|
| browser_tabs | List all open tabs (returns id, url, title, active status) |
| browser_read | Read content of a specific tab (requires tabId from browser_tabs) |
| browser_execute | Execute JavaScript in a specific tab (requires tabId from browser_tabs) |
License
MIT
