Actiongate
Pre-execution safety layer for autonomous agent wallets — risk scoring, simulation, and policy enforcement via MCP, with free tier and pay-per-call pricing over x402
Developer Docs
Proxy paid tools over REST and MCP.
ActionGate loads one config file, exposes each tool over /proxy/:toolName and /mcp, and settles paid usage with x402 or Stripe-funded API credits.
If you do not provide a config file, ActionGate falls back to the original safety demo endpoints under /v1/* and keeps the bundled treasury prompts.
Machine discovery
https://api.actiongate.xyz/.well-known/agent.json
https://api.actiongate.xyz/.well-known/mcp/server-card.json
Reference
https://api.actiongate.xyz/docs/openapi.yaml
Legacy fallback demo: https://api.actiongate.xyz/docs/openapi-fallback-demo.yaml
Generic proxy: https://api.actiongate.xyz/proxy/:toolName
Remote MCP: https://api.actiongate.xyz/mcp
Proxy config guide: /docs/proxy-config-guide.md
Example config: /examples/proxy-config.public-api.json
MCP Registry namespace: xyz.actiongate.api/actiongate
Bring Your Own API
Start with the hosted proxy-config guide, copy the example JSON, then replace the upstream URLs, schemas, prices, and forwarded headers with your own API contract.
curl https://api.actiongate.xyz/examples/proxy-config.public-api.json -o proxy-config.json
Then read the operator guide:
https://api.actiongate.xyz/docs/proxy-config-guide.md
Quickstart
curl -X POST https://api.actiongate.xyz/v1/risk-score
-H "content-type: application/json"
-d '{"actor":{"actor_id":"treasury-bot"},"action":{"action_type":"transfer","network":"base","asset_symbol":"USDC","amount":"2500"}}'
npm install @actiongate/sdk
import { ActionGateClient } from "@actiongate/sdk";
const client = new ActionGateClient({ baseUrl: "https://api.actiongate.xyz" }); const result = await client.policyGate({ actor: { actor_id: "agent_ops_02" }, action: { action_type: "transfer", network: "base", asset_symbol: "USDC", amount: "150000" }, policy: { policy_id: "treasury_default_v1" } });
Install Surfaces
npm install @actiongate/sdk pip install actiongate-sdk
{ "mcpServers": { "actiongate": { "url": "https://api.actiongate.xyz/mcp" } } }
npm install -g actiongate-mcp
Client Configs
Use these exact snippets to connect ActionGate's remote MCP server in popular agent clients.
Claude Code
claude mcp add --transport http actiongate --scope project https://api.actiongate.xyz/mcp
VS Code
{ "servers": { "actiongate": { "type": "http", "url": "https://api.actiongate.xyz/mcp" } } }
Save that as .vscode/mcp.json.
Windsurf
{ "mcpServers": { "actiongate": { "serverUrl": "https://api.actiongate.xyz/mcp" } } }
Save that as ~/.codeium/windsurf/mcp_config.json.
Cursor
Save that as .cursor/mcp.json for a project-scoped setup or ~/.cursor/mcp.json for a global setup.
Free Tier
Every agent gets 50 total calls per day across tool-specific buckets: 20 risk score calls, 20 simulate calls, and 10 policy gate calls for free each day. No wallet, no signup — just connect and call. When you hit the limit you will receive a 402 response with x402 payment requirements. Follow the guide below to upgrade to paid calls.
How to Pay with x402
x402 is an open protocol for HTTP-native micropayments. When a tool call requires payment, ActionGate returns an HTTP 402 with payment requirements in the response headers. Your agent signs a USDC payment on Base and resends the request with the payment proof attached.
What you need
1. A wallet with USDC on Base (Coinbase Smart Wallet, MetaMask, or any EVM wallet). 2. The @x402/core package (or any x402-compatible client).
TypeScript example
import { paymentMiddleware } from "@x402/core";
// Wrap any HTTP client with x402 payment middleware. // When a 402 is received, the middleware automatically // signs a USDC payment and retries the request. const client = paymentMiddleware(fetch, { walletPrivateKey: process.env.WALLET_PRIVATE_KEY, network: "base", });
// Now calls that exceed the free tier will auto-pay: const res = await client("https://api.actiongate.xyz/v1/risk-score", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({"actor":{"actor_id":"treasury-bot"},"action":{"action_type":"transfer","network":"base","asset_symbol":"USDC","amount":"2500"}}), }); // Paid response includes a settlement receipt.
MCP with payment
For MCP clients that support x402 natively (like the actiongate-mcp stdio package), set PAYTO_ADDRESS and your wallet key in the environment. The MCP transport handles payment negotiation automatically.
{ "mcpServers": { "actiongate": { "command": "npx", "args": ["actiongate-mcp"], "env": { "PAYTO_ADDRESS": "0xYourWalletAddress", "WALLET_PRIVATE_KEY": "0xYourPrivateKey", "ACTIONGATE_BASE_URL": "https://api.actiongate.xyz" } } } }
Flow summary
1. Agent calls a tool (free tier or paid). 2. If free quota remains, the response is returned immediately — no payment needed. 3. If quota is exhausted, ActionGate returns HTTP 402 with x402 payment requirements. 4. Your x402 client signs a USDC micropayment on Base and resends the request with a PAYMENT-SIGNATURE header. 5. ActionGate verifies and settles the payment, then returns the tool result with a settlement receipt.
Launch Proof
ActionGate advertises paid discovery over x402 headers and returns signed receipts on successful calls.
HTTP/2 402 PAYMENT-REQUIRED:
curl -X POST https://api.actiongate.xyz/v1/risk-score
-H "PAYMENT-SIGNATURE: "
-H "content-type: application/json"
-d '{"actor":{"actor_id":"treasury-bot"},"action":{"action_type":"transfer","network":"base","asset_symbol":"USDC","amount":"2500"}}'
HTTP/2 200 PAYMENT-RESPONSE: {"request_id":"rq_demo_risk","score":18,"severity":"low","confidence":0.81}
Troubleshooting
I connected the MCP server but calls fail with a payment error. That usually means the free tier is exhausted or your x402 wallet is not configured. Use the free tier first, or add PAYTO_ADDRESS plus your wallet credentials for the stdio package.
I received an HTTP 402 response. That is expected once free calls are used up. Retry with an x402-compatible client so it can attach a PAYMENT-SIGNATURE header automatically.
The remote MCP endpoint works in one client but not another. Make sure the client is using Streamable HTTP against https://api.actiongate.xyz/mcp and accepts both JSON and event-stream responses during MCP negotiation.
I need help debugging an integration. Start with https://api.actiongate.xyz/support, then include the request ID from the ActionGate response when you contact support.
相关服务器
Weather Edge MCP
Calibrated weather probability signals for Kalshi prediction markets. Dual-model: NWS forecast + GFS 31-member ensemble. Real-time METAR from settlement stations.
Mind Reasoner MCP Server
Mind Reasoner's MCP Server
OctoEverywhere For 3D Printing
A 3D Printing MCP server that allows for querying for live state, webcam snapshots, and 3D printer control.
Vibe Ads
I-powered Google Ads manager for local service businesses. 37 categories. 5-minute setup. $20/mo.
Draw-it MCP
An AI-powered drawing application for your browser. Draw, save, and get AI-powered insights.
Nano Currency MCP Server
Send Nano currency and retrieve account and block information using the Nano node RPC.
Wormhole MCP Server
Cross-chain bridge data, VAAs, and transaction status on Wormhole.
SmartThingsMCP
A comprehensive FastMCP 2.0 server and client for interacting with SmartThings devices, locations, rooms, modes, scenes, and automation rules through the SmartThings API.
Tarkov MCP Server
Provides access to Escape from Tarkov game data using the community-maintained Tarkov API.
Video Still Capture MCP
An MCP server for accessing and controlling webcams using OpenCV.