One endpoint for all your AI agent tools. Unified auth, rate limiting, and observability. Dual protocol: HTTP REST + MCP stdio.
AI agents fail not because they can't reason — they fail because tool integration is chaos: 5 APIs, 5 auth methods, 5 formats. AgentBridge unifies this into a single proxy, so your agent focuses on reasoning while the gateway handles the plumbing.
npm install
cp .env.example .env # fill in your API keys
# HTTP mode (dashboard at http://localhost:3100)
npm run dev
# MCP mode (for Codex, Hermes, Claude Desktop)
npm run mcp| Mode | Command | Protocol | Use Case |
|---|---|---|---|
| HTTP | npm run dev |
REST API | Standalone proxy; dashboard at :3100 |
| MCP | npm run mcp |
MCP stdio | Native integration with Codex, Hermes, Claude |
Both modes share the same tool registry and gateway logic. Define tools once, use them everywhere.
Already configured. If you need to re-add:
# ~/.codex/config.toml
[mcp_servers.agentbridge]
command = "/Users/lybang/Documents/赚钱/agentbridge/node_modules/.bin/tsx"
args = ["/Users/lybang/Documents/赚钱/agentbridge/src/mcp.ts"]
startup_timeout_sec = 30Restart Codex, then ask: "Search GitHub for 'mcp gateway'" — the agent will discover and use the github-search tool through the gateway.
See config-snippets.md for Hermes and Claude Desktop config.
AI Agent → tools/call (MCP) → AgentBridge → Upstream API
or
AI Agent → POST /gateway/:toolName (HTTP) → Gateway Server → Upstream API
↓
unified auth / rate limit / logging
Tools are defined as JSON files in /tools/. Example:
{
"name": "github-search",
"label": "GitHub Code Search",
"description": "Search GitHub repositories",
"base_url": "https://api.github.com",
"endpoint": "/search/repositories?q=:query",
"method": "GET",
"auth": {
"type": "bearer",
"header_name": "Authorization",
"prefix": "Bearer ",
"source": "passthrough"
},
"rate_limit_rpm": 30,
"enabled": true,
"category": "Developer Tools"
}- env — Credentials stored server-side in
.env. Best for shared API keys. - passthrough — Caller provides the credential with each request. Best for user-specific tokens.
| Endpoint | Description |
|---|---|
POST /gateway/:toolName |
HTTP: proxy a tool call |
GET /health |
Health check |
GET /api/tools |
List all registered tools with metrics |
GET /api/stats |
Aggregate stats (success rate, P99, etc.) |
GET /api/logs |
Recent call logs |
Once agents route through the gateway, you own the control plane:
- Usage-based billing — charge per call ($0.001–0.01), revenue scales with customer growth
- Tiered plans — Free (3 tools, 100 calls/day) → Pro ($29/mo, unlimited) → Enterprise ($499/mo)
- Observability upsell — Basic logging free; advanced tracing, alerting, and dashboards are paid
- Managed auth — Store credentials server-side as a premium security feature
- Tool marketplace — Curated tool packs for verticals, 30% revenue share
src/
index.ts — Fastify HTTP server entry
mcp.ts — MCP stdio server entry (for Codex/Hermes/Claude)
gateway-core.ts — Shared tool execution logic (used by both protocols)
gateway.ts — HTTP route handlers (thin wrapper around core)
registry.ts — Tool registry + metrics + rate limiting
auth.ts — Auth resolver (env / passthrough / custom)
logger.ts — Ring buffer logger + stats
api.ts — Dashboard data API routes
tools/ — Tool definition JSON files
public/ — Admin dashboard (single-page HTML, real-time)
- Persistent storage (SQLite) for tool configs and logs
- OAuth 2.0 flow support
- Webhook callbacks for async tool results
- Usage-based billing integration (Stripe)
- Tool marketplace with one-click install
- Custom
input_schemavalidation per tool