ExMCP.ACP (ex_mcp v0.10.0)
View SourceFacade for the Agent Client Protocol (ACP).
ACP lets clients control coding agents over stdio using JSON-RPC 2.0 — the same
wire format as MCP. Many coding agents speak ACP natively (Gemini CLI,
OpenCode, Qwen Code, etc.), and Elixir applications can expose native ACP
agents with ExMCP.ACP.Agent.
Quick Start
{:ok, client} = ExMCP.ACP.start_client(command: ["gemini", "--acp"])
{:ok, %{"sessionId" => sid}} = ExMCP.ACP.Client.new_session(client, "/my/project")
{:ok, %{"stopReason" => _}} = ExMCP.ACP.Client.prompt(client, sid, "Fix the bug")
{:ok, agent} = ExMCP.ACP.start_agent(handler: MyApp.AgentHandler)Options
See ExMCP.ACP.Client and ExMCP.ACP.Agent for the full option lists.
Summary
Functions
Starts an ACP agent runtime and blocks until it exits.
Starts an ACP agent runtime.
Starts an ACP client connected to an agent subprocess.
Functions
Starts an ACP agent runtime and blocks until it exits.
Shorthand for ExMCP.ACP.Agent.run/1.
@spec start_agent(keyword()) :: GenServer.on_start()
Starts an ACP agent runtime.
Shorthand for ExMCP.ACP.Agent.start_link/1.
@spec start_client(keyword()) :: GenServer.on_start()
Starts an ACP client connected to an agent subprocess.
Shorthand for ExMCP.ACP.Client.start_link/1.