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.
Servidores relacionados
Context-Fabric
Corpus search and linguistic analysis for AI Agents
MuscleScience
Free hypertrophy knowledge base - based exclusively on scientific papers.
Datapoint AI
Run real human surveys, A/B preference tests, ratings, and rankings on text, images, audio, and video. Real human feedback inside any MCP client.
Crypto Price & Market Analysis (JJ Fork)
Provides real-time cryptocurrency price data, market analysis, and historical trends using the CoinCap API.
Cryptorefills
AI agent commerce: buy gift cards, top up phones, and get travel eSIMs with Bitcoin, Ethereum, Solana, USDC, USDT, Litecoin, Dogecoin, and 15+ cryptos on Base, Polygon, Arbitrum, Tron, and more. No account, no CLI install, no API key — connect via MCP or let your agent pay autonomously with x402.
Nano Currency MCP Server
Send Nano currency and retrieve account and block information using the Nano node RPC.
Chart Library
Pattern intelligence API for AI agents. Search 24M historical chart patterns, get forward returns, market regime analysis, and AI summaries for any stock ticker.
sats4ai
Bitcoin-powered tools marketplace. Image, text, video, music, speech, 3D, file conversion, SMS — all via Lightning micropayments. No signup required.
Procountor MCP Server
MCP server for Procountor — Finland's leading financial management platform. Invoices, business partners, ledger entries, and more.
Memento-cmp
A Three-Layer Memory Architecture for LLMs (Redis + Postgres + Vector) MCP