MCP Hub
Back to servers

Agent Toolbox

Production-ready MCP server for AI agents — web search, content extraction, screenshots, weather, finance, email validation, translation, and IP geolocation.

glama
Updated
Mar 4, 2026

🧰 Agent Toolbox

REST API + MCP Server giving AI agents real-world superpowers

Web search · Content extraction · Screenshots · Weather · Finance · Email validation · Translation

npm version License API Status MCP Compatible


What is Agent Toolbox?

Agent Toolbox is a 7-endpoint API and MCP server that gives AI agents access to real-world data and actions — web search, page scraping, screenshots, weather, finance, email validation, and translation. Zero AI cost: all endpoints use free, open-source backends.

Use it as:

  • 🔌 MCP Server — plug into Claude Desktop, Cursor, Windsurf, or any MCP-compatible client
  • 🌐 REST API — call from any language, any framework, any agent
  • 🐳 Self-hosted — run on your own infrastructure with full control

Quick Start

Option 1: MCP Server (Recommended for Claude/Cursor)

# Clone and build
git clone https://github.com/Vincentwei1021/agent-toolbox.git
cd agent-toolbox
npm install
npx playwright install chromium --with-deps
npm run build

Claude Desktop Configuration

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "agent-toolbox": {
      "command": "node",
      "args": ["/absolute/path/to/agent-toolbox/dist/mcp-server.js"],
      "env": {}
    }
  }
}

Cursor Configuration

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "agent-toolbox": {
      "command": "node",
      "args": ["/absolute/path/to/agent-toolbox/dist/mcp-server.js"]
    }
  }
}

Windsurf / Continue / Other MCP Clients

{
  "mcpServers": {
    "agent-toolbox": {
      "command": "node",
      "args": ["/absolute/path/to/agent-toolbox/dist/mcp-server.js"]
    }
  }
}

Option 2: REST API (Self-hosted)

git clone https://github.com/Vincentwei1021/agent-toolbox.git
cd agent-toolbox
npm install
npx playwright install chromium --with-deps

# Configure
cp .env.example .env
# Edit .env with your settings

# Build and run
npm run build
npm start
# → API running at http://localhost:3100

Option 3: npm (coming soon)

npx @agent-toolbox/mcp-server

MCP Server

The MCP server exposes 7 tools over stdio, compatible with the Model Context Protocol:

ToolDescription
searchSearch the web via DuckDuckGo
extractExtract readable content from any URL
screenshotCapture a full-page screenshot
weatherGet current weather and forecasts
financeStock quotes and currency exchange rates
validate_emailValidate email addresses (MX + SMTP + disposable check)
translateTranslate text with auto-detection and glossary support

Example: Claude Desktop using Agent Toolbox

User: What's the weather in Tokyo and take a screenshot of the forecast?

Claude: I'll check the weather and capture a screenshot for you.

[Using agent-toolbox:weather] → Tokyo: 12°C, Clear skies, Wind 15 km/h
[Using agent-toolbox:screenshot] → Captured screenshot of weather.com/tokyo

REST API Endpoints

All endpoints require Bearer authentication (except /health and /v1/docs).

Authorization: Bearer your-api-key

POST /v1/search

Search the web via DuckDuckGo. Returns titles, URLs, and snippets.

curl -X POST https://api.agenttoolbox.dev/v1/search \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "best AI agent frameworks 2025", "count": 5}'
Response
{
  "success": true,
  "data": [
    {
      "title": "Top AI Agent Frameworks in 2025",
      "url": "https://example.com/ai-frameworks",
      "snippet": "A comprehensive comparison of the leading AI agent frameworks..."
    }
  ],
  "meta": {
    "requestId": "a1b2c3d4",
    "latencyMs": 420,
    "endpoint": "/v1/search"
  }
}

POST /v1/extract

Extract readable content from any web page. Supports markdown, text, and JSON output.

curl -X POST https://api.agenttoolbox.dev/v1/extract \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "format": "markdown"}'
Response
{
  "success": true,
  "data": {
    "content": "# Example Domain\n\nThis domain is for use in illustrative examples...",
    "metadata": {
      "title": "Example Domain",
      "length": 1234,
      "excerpt": "This domain is for use in illustrative examples..."
    }
  },
  "meta": {
    "requestId": "e5f6g7h8",
    "latencyMs": 850,
    "endpoint": "/v1/extract"
  }
}

POST /v1/screenshot

Capture a full-page screenshot using headless Chromium. Returns base64-encoded PNG.

curl -X POST https://api.agenttoolbox.dev/v1/screenshot \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "width": 1280, "height": 720}'
Response
{
  "success": true,
  "data": {
    "base64": "iVBORw0KGgoAAAANSUhEUg...",
    "width": 1280,
    "height": 720,
    "format": "png"
  },
  "meta": {
    "requestId": "i9j0k1l2",
    "latencyMs": 2100,
    "endpoint": "/v1/screenshot"
  }
}

POST /v1/weather

Get current weather and forecasts from Open-Meteo (free, no API key needed).

curl -X POST https://api.agenttoolbox.dev/v1/weather \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location": "San Francisco"}'
Response
{
  "success": true,
  "data": {
    "location": "San Francisco, California, United States",
    "current": {
      "temperature": 15.2,
      "feelsLike": 13.8,
      "humidity": 72,
      "description": "Partly cloudy",
      "windSpeed": 18.5
    },
    "forecast": [
      { "date": "2026-03-03", "high": 17.0, "low": 10.2, "description": "Partly cloudy" }
    ]
  },
  "meta": {
    "requestId": "m3n4o5p6",
    "latencyMs": 310,
    "endpoint": "/v1/weather"
  }
}

POST /v1/finance

Get real-time stock quotes and currency exchange rates via Yahoo Finance.

# Stock quote
curl -X POST https://api.agenttoolbox.dev/v1/finance \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"symbol": "AAPL", "type": "quote"}'

# Exchange rate
curl -X POST https://api.agenttoolbox.dev/v1/finance \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from": "USD", "to": "EUR", "amount": 100}'
Response (stock quote)
{
  "success": true,
  "data": {
    "symbol": "AAPL",
    "name": "Apple Inc.",
    "price": 178.52,
    "change": 2.35,
    "changePercent": 1.33,
    "currency": "USD"
  },
  "meta": {
    "requestId": "q7r8s9t0",
    "latencyMs": 450,
    "endpoint": "/v1/finance"
  }
}

POST /v1/validate-email

Validate email addresses with syntax check, MX record lookup, SMTP handshake, and disposable domain detection. Zero cost — no external APIs.

curl -X POST https://api.agenttoolbox.dev/v1/validate-email \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "test@gmail.com"}'
Response
{
  "success": true,
  "data": {
    "email": "test@gmail.com",
    "valid_syntax": true,
    "mx_found": true,
    "mx_records": [
      { "exchange": "gmail-smtp-in.l.google.com", "priority": 5 }
    ],
    "smtp_reachable": true,
    "smtp_response": "250 2.1.5 OK",
    "is_disposable": false,
    "score": 0.95,
    "verdict": "deliverable"
  },
  "meta": {
    "requestId": "u1v2w3x4",
    "latencyMs": 1200,
    "endpoint": "/v1/validate-email"
  }
}

Verdicts: deliverable | risky | undeliverable | invalid

POST /v1/translate

Translate text between 100+ languages with auto-detection, Markdown preservation, glossary support, and batch processing. Free.

# Single text
curl -X POST https://api.agenttoolbox.dev/v1/translate \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello, how are you?", "target": "zh"}'

# Batch translation
curl -X POST https://api.agenttoolbox.dev/v1/translate \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"texts": ["Hello", "Goodbye"], "target": "ja"}'

# With glossary (terms preserved as-is)
curl -X POST https://api.agenttoolbox.dev/v1/translate \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "The API endpoint returns JSON.", "target": "zh", "glossary": {"API": "API", "JSON": "JSON"}}'
Response (single)
{
  "success": true,
  "data": {
    "text": "Hello, how are you?",
    "translation": "你好,你好吗?",
    "detectedLanguage": { "code": "en", "confidence": 0.98 },
    "target": "zh"
  },
  "meta": {
    "requestId": "y5z6a7b8",
    "latencyMs": 180,
    "endpoint": "/v1/translate"
  }
}
Response (batch)
{
  "success": true,
  "data": {
    "translations": [
      { "text": "Hello", "translation": "こんにちは", "detectedLanguage": { "code": "en", "confidence": 1.0 }, "target": "ja" },
      { "text": "Goodbye", "translation": "さようなら", "detectedLanguage": { "code": "en", "confidence": 1.0 }, "target": "ja" }
    ],
    "target": "ja"
  },
  "meta": {
    "requestId": "c9d0e1f2",
    "latencyMs": 350,
    "endpoint": "/v1/translate"
  }
}

Parameters: text | texts (max 20) | target (required, ISO 639-1) | source (default: auto) | glossary (optional)

Utility Endpoints

EndpointAuthDescription
GET /healthNoHealth check
GET /v1/docsNoOpenAPI 3.0 spec (JSON)
POST /v1/auth/registerNoRegister for a free API key
GET /v1/auth/usageYesCheck your usage stats
POST /v1/billing/checkoutYesUpgrade plan via Creem

Environment Variables

VariableDescriptionDefault
PORTServer port3100
API_KEYSComma-separated admin API keys(required)
NODE_ENVEnvironmentdevelopment
CREEM_API_KEYCreem payment API key
CREEM_API_BASECreem API base URLhttps://test-api.creem.io
CREEM_WEBHOOK_SECRETCreem webhook HMAC secret
CREEM_PRODUCT_PROCreem Pro plan product ID

Pricing

PlanPriceRequests/moRate Limit
Free$01,00060/min
Builder$0.005/callUnlimited60/min
Pro$29/mo50,000120/min
Scale$99/mo500,000300/min

Tech Stack

  • Runtime: Node.js 18+
  • Framework: Hono (ultrafast web framework)
  • MCP SDK: @modelcontextprotocol/sdk
  • Browser: Playwright (Chromium)
  • Search: DuckDuckGo (free, no API key)
  • Weather: Open-Meteo (free, no API key)
  • Finance: Yahoo Finance
  • Translation: Google Translate (free)
  • Email: Native DNS + SMTP + disposable-email-domains
  • Database: SQLite (better-sqlite3)
  • Payments: Creem (Merchant of Record)

Production Deployment

# Using PM2
npm install -g pm2
npm run build
pm2 start ecosystem.config.js

Contributing

Issues and PRs welcome. Please open an issue first to discuss what you'd like to change.

License

MIT

Reviews

No reviews yet

Sign in to write a review