Skip to main content
Glama
README.md
# AgentGate

> **Stripe + Auth0 for AI Agents** — The machine-readable infrastructure and programmable payment layer for autonomous AI agents.

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Protocol: MCP 2024-11-05](https://img.shields.io/badge/Protocol-MCP%202024--11--05-violet)]()
[![Auth: OAuth 2.1](https://img.shields.io/badge/Auth-OAuth%202.1-green)]()
[![Payments: Stripe Issuing](https://img.shields.io/badge/Payments-Stripe%20Issuing-blueviolet)]()

---

## 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

```bash
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

```bash
# 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

```bash
cd packages/api
npm run dev
# → AgentGate API running on http://localhost:4000
```

### 4. Test the health endpoint

```bash
curl http://localhost:4000/health
# → { "status": "ok", "service": "agentgate-api", "version": "1.0.0" }
```

---

## Core API Reference

### OAuth 2.1 — Issue Agent Token

```bash
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:**
```json
{
  "access_token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type":   "Bearer",
  "expires_in":   3600,
  "scope":        "mcp:read mcp:execute payment:issue",
  "agent_id":     "agent_a1b2c3d4..."
}
```

---

### MCP Tool Discovery

```bash
curl -X POST http://localhost:4000/mcp/discover \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://shop.example.com" }'
```

**Response:**
```json
{
  "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)

```bash
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

```bash
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

```python
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`](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:
```bash
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.

Maintenance

ActivityStale
ResponsivenessNo issues