ACP Governance MCP Server
Officialacp-mcp-server
An MCP server that lets Claude, ChatGPT, Cursor and other MCP clients ask Agentic Control Plane whether a tool call would be allowed, and read their own workspace's status.
If you use a coding agent with the ACP hook installed (acp-install), tool calls are already checked automatically. You need this server for MCP clients that have no hook, such as Claude.ai and ChatGPT.
Limit: acp_check is advisory. The client has to call it, and nothing stops a client that doesn't. It returns allow, deny or cant_predict, and a call that needs a person's approval comes back as deny with "requires human approval" in the reason. If the gateway can't read your policy it answers allow with governed: false. The self-hosted bridge also answers allow (reason acp-network-error or acp-http-error) when it can't reach the gateway. Either way it fails open. For enforcement you need the hook.
Connect
The hosted server is at https://api.agenticcontrolplane.com/mcp. Add it as a connector in your MCP client.
Claude Desktop and Claude.ai:
URL: https://api.agenticcontrolplane.com/mcp
Auth: OAuth (you sign in through ACP)ChatGPT, Cursor, Cline and other MCP clients: add the same URL. Clients that support MCP OAuth sign you in the same way; for the rest, use a bearer key as below.
Your own agent code:
POST https://api.agenticcontrolplane.com/mcp
Authorization: Bearer gsk_<your-acp-api-key>
Content-Type: application/jsonYou need an ACP workspace. Free up to 5 initiating agents, with unlimited calls. Sign up at cloud.agenticcontrolplane.com/login.
Related MCP server: @palveron/mcp-server
Tools
The hosted endpoint serves these eleven tools by default; a workspace with a customised tool allowlist may show fewer. None of them can approve a held call or apply a policy.
Tool | What it does |
| Would this call be allowed? Returns |
| Check the connection and your workspace identity and mode. |
| Read your workspace's own audit, spend and savings data. |
| Draft a policy rule. A human confirms it in the console. It never applies policy itself. |
| Wait for a person to decide a held call, then report approved, denied, expired or pending. It never approves anything. |
| Withdraw a pending hold you raised. It can only stop a call. |
The source in this repo (src/tools/tools.ts) defines only acp_check, acp_status and acp_permission_prompt. The hosted endpoint is the reference. If you self-host this repo, you get those three, not the hosted set above.
Self-host
For air-gapped setups, or to point at a self-hosted ACP gateway:
git clone https://github.com/agentic-control-plane/acp-mcp-server
cd acp-mcp-server
npm install
npm run build
# Point at the ACP API (default: https://api.agenticcontrolplane.com)
export ACP_API_BASE=https://your-acp-gateway.example.com
# Required: the OAuth issuer that signs your users' tokens
# (the server refuses to start without it)
export OAUTH_ISSUER=https://your-tenant.us.auth0.com
# Optional: service-level API key for OAuth users (ChatGPT, Claude.ai)
# whose JWTs aren't directly usable as ACP tokens
export ACP_SERVICE_KEY=gsk_workspace_...
npm start
# MCP endpoint: POST http://0.0.0.0:3000/mcp
# OAuth discovery: GET /.well-known/oauth-protected-resourceThe bridge speaks streamable-HTTP MCP and forwards to ACP's /govern/tool-use endpoint.
How a call flows
your AI client this MCP server ACP gateway
Claude / ChatGPT -> api.agenticcontrolplane -> POST /govern/tool-use
Cursor / Cline POST /mcp (acp_check) policy + audit + identity
-> allow / deny / askEach call writes an audit row. On the hosted endpoint it's attributed to the signed-in person; a self-hosted bridge using ACP_SERVICE_KEY attributes calls to that key. One workspace shows every governed call from every MCP client your team uses.
Auth
OAuth for human-driven clients (Claude.ai, ChatGPT). The client signs in against ACP's identity provider, and the Auth0 JWT identifies the person. The bridge uses an
ACP_SERVICE_KEYto make the governance call on their behalf.Bearer
gsk_API key for programmatic clients. The key's identity is the actor. No OAuth.
OAuth discovery metadata is at /.well-known/oauth-protected-resource, per the MCP authorization spec.
Develop
npm install
npm run dev # tsx hot reloadTools: src/tools/tools.ts. JSON-RPC handler: src/handlers/mcpHandler.ts. Express entry point and rate limits: src/server/expressServer.ts.
Links
ACP · Sign up · AgentGovBench · Issues · MIT, see LICENSE · Email: su***************************om
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
MCP gateway: one connection for your AI apps, with tool policies, PII redaction and audit logs.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceWraps your existing MCP servers and checks each tool call against policy and live state before it runs. Allow, block, or require a refresh, with a reason the agent can act on.5-
- AlicenseAqualityCmaintenanceProvides advisory AI-governance checks for MCP hosts and coding agents, enabling policy verdicts, PII masking, and audit traces before executing tool calls.395 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server that provides a security gateway for AI agents, enforcing allow/confirm/deny policies on tool calls and requiring human approval for risky operations, with full audit logging.-
- AlicenseNot gradedqualityCmaintenanceProvides a human-in-the-loop approval gateway for AI agents, enforcing policies and audit logging for MCP-compatible tool calls.Apache 2.0