AgentGate MCP Server
Provides AI agents with secure MCP tools to navigate, authenticate, and transact on web applications via OAuth 2.1 and Stripe Issuing.
README
AgentGate
Stripe + Auth0 for AI Agents ā The machine-readable infrastructure and programmable payment layer for autonomous AI agents.
What is AgentGate?
AgentGate solves the three structural barriers blocking autonomous AI agents from operating on the real web:
| Barrier | Solution |
|---|---|
| š§ Navigation ā HTML built for humans | DOM-to-MCP Synthesizer (Playwright) |
| š Identity ā Raw keys in prompts | OAuth 2.1 PKCE + MCP-I scoped tokens |
| š³ Payment ā No physical card | Stripe Issuing single-use virtual cards |
Project Structure
agent gate/
āāā apps/
ā āāā landing/ # Marketing landing page (HTML/CSS/JS)
ā āāā dashboard/ # Developer dashboard (Next.js 14)
āāā packages/
ā āāā api/ # Core Proxy API (Fastify/TypeScript)
ā āāā mcp-server/ # @agentgate/mcp-server npm package
āāā sdk/
ā āāā antigravity/ # Google Antigravity 2.0 integration
ā āāā skills/agentgate/SKILL.md
ā āāā main.py
āāā docs/
āāā business-plan.md
Quick Start
1. Clone & Install
git clone https://github.com/your-org/agentgate
cd agentgate
# Install API dependencies
cd packages/api && npm install
# Install MCP server dependencies
cd ../mcp-server && npm install
2. Configure Environment
# packages/api/.env
STRIPE_SECRET_KEY=sk_test_...
STRIPE_ISSUING_WEBHOOK_SECRET=whsec_...
JWT_SECRET=your-super-secret-key-min-32-chars
PORT=4000
NODE_ENV=development
3. Start the API
cd packages/api
npm run dev
# ā AgentGate API running on http://localhost:4000
4. Test the health endpoint
curl http://localhost:4000/health
# ā { "status": "ok", "service": "agentgate-api", "version": "1.0.0" }
Core API Reference
OAuth 2.1 ā Issue Agent Token
curl -X POST http://localhost:4000/oauth/token \
-H "Content-Type: application/json" \
-d '{
"grant_type": "client_credentials",
"client_id": "my-agent-app",
"client_secret": "my-secret",
"scope": "mcp:read mcp:execute payment:issue"
}'
Response:
{
"access_token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "mcp:read mcp:execute payment:issue",
"agent_id": "agent_a1b2c3d4..."
}
MCP Tool Discovery
curl -X POST http://localhost:4000/mcp/discover \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "url": "https://shop.example.com" }'
Response:
{
"session_id": "sess_...",
"title": "Example Shop",
"tools": [
{
"name": "search_content",
"description": "Search the page for products...",
"inputSchema": { "type": "object", "properties": { "query": { "type": "string" } }, "required": ["query"] }
},
{
"name": "add_to_cart",
"description": "Add the currently viewed product to the shopping cart.",
"inputSchema": { "type": "object", "properties": { "quantity": { "type": "number" } }, "required": [] }
},
{
"name": "fill_checkout",
"description": "Fill in the checkout form...",
"inputSchema": { "type": "object", "properties": { "email": {...}, "card_number": {...} } }
}
],
"latency_ms": 847
}
MCP Tool Execution (JSON-RPC 2.0)
curl -X POST http://localhost:4000/mcp/execute \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "search_content",
"arguments": { "query": "wireless keyboard" },
"context": { "target_url": "https://shop.example.com" }
}
}'
Issue Virtual Card
curl -X POST http://localhost:4000/payments/issue-card \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"merchant_domain": "shop.example.com",
"amount_limit_cents": 8000,
"currency": "usd"
}'
Google Antigravity Integration
from google.antigravity import Agent, LocalAgentConfig
from google.antigravity.types import McpStdioServer
config = LocalAgentConfig(
system_instructions="You are an autonomous buyer agent.",
mcp_servers=[
McpStdioServer(
name="agentgate_mcp_proxy",
command="npx",
args=["-y", "@agentgate/mcp-server"],
env={"AGENTGATE_API_KEY": "ag_live_..."}
)
]
)
async with Agent(config) as agent:
response = await agent.chat(
"Go to developer-tool-x.com, purchase the Starter plan for $29, return the confirmation ID."
)
print(await response.text())
See sdk/antigravity/main.py for the full runtime example.
Stripe Issuing Webhook
Configure your Stripe dashboard webhook to send issuing_authorization.request events to:
https://your-domain.com/webhooks/stripe-issuing
Test locally with Stripe CLI:
stripe listen --forward-to localhost:4000/webhooks/stripe-issuing
Architecture
AI Agent (Antigravity/LangChain/Claude)
ā
ā OAuth 2.1 PKCE token request
ā¼
AgentGate Proxy API (Fastify/TypeScript)
ā
āāā Layer 1: Identity & Auth Middleware (OAuth 2.1 / MCP-I)
āāā Layer 2: DOM-to-MCP Synthesizer (Playwright/Chromium)
āāā Layer 3: Payment Engine (Stripe Issuing)
ā
ā¼
Target Web Application
(E-commerce / SaaS / Legacy HTML)
Pricing
| Plan | Price | MCP Calls | Virtual Cards |
|---|---|---|---|
| Starter | Free | 1,000/mo | 10/mo |
| Pro | $299/mo | 100,000/mo | Unlimited |
| Enterprise | $999/mo | Unlimited | Unlimited |
All plans: 1.2% + $0.15 per programmatic transaction.
License
MIT Ā© 2026 AgentGate, Inc.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.