Every time I start a new AI agent project, I hit the same wall.
The LLM reasoning part? That's the fun bit.
The annoying part is wiring up the same handful of utilities I always end up needing:
- Web search to get current information
- URL content extraction (clean text for LLM context)
- Screenshot capabilities for visual tasks
- Weather data
- Stock prices and FX rates
- Email validation before sending outreach
- Translation for global reach
- News feed access
- WHOIS + DNS lookups
- GeoIP resolution
- PDF extraction
- QR code generation
Each one has its own credentials, rate limit quirks, error formats, and output that needs massaging before it's useful in an LLM context. I've rebuilt this stack more times than I care to admit.
So I extracted it all into a standalone service: Agent Toolbox — an open-source MCP server + REST API that bundles 13 production-ready tools under one key.
What's included
| Tool | Description | Under the hood |
|---|---|---|
search |
Structured web search, paginated results | DuckDuckGo via ddg-node |
extract |
Clean content from any URL, strips boilerplate | Mozilla Readability |
screenshot |
Full-page PNG screenshots | Playwright/Chromium |
weather |
Current conditions + 7-day forecast | Open-Meteo (no key needed) |
finance |
Stock quotes, historical data, FX rates | Yahoo Finance |
validate-email |
Format + DNS MX + SMTP probe | Custom implementation |
translate |
Multi-language text translation | Cloud translation backend |
news |
Latest headlines by category or keyword | News aggregation |
whois |
Domain registration + expiry info | WHOIS protocol |
dns |
DNS record lookup (A, MX, TXT, CNAME, etc.) | DNS resolver |
geoip |
IP geolocation with country/city/ASN | GeoIP database |
pdf_extract |
Extract clean text from PDF URLs | PDF parsing |
qr_generate |
Generate QR codes as PNG or SVG | QR library |
Free tier: 1,000 calls/month, no credit card.
Why bundle instead of calling APIs directly?
Fair question. Here's what I actually found building agents:
1. Uniform error handling
Each underlying API fails differently. Rate limits, network timeouts, parsing failures — Agent Toolbox normalizes all of these into consistent error responses. Your agent handles one error format, not thirteen.
2. Single auth token
Instead of injecting 7–13 different API keys into your agent's system prompt, you pass one. Less credential management, less context waste.
3. LLM-optimized output
Raw API responses are noisy for LLMs. Agent Toolbox normalizes, truncates, and formats output for LLM consumption. The extract tool, for example, strips navigation, ads, and boilerplate — returning only article content in clean markdown or plain text.
4. MCP-native
Works out of the box with Claude Desktop, Cursor, Cline, and any MCP-compatible client. Zero custom integration code.
Getting started in 30 seconds
Option 1: Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"agent-toolbox": {
"command": "npx",
"args": ["-y", "agent-toolbox-mcp"],
"env": {
"AGENT_TOOLBOX_API_KEY": "your-key"
}
}
}
}
Restart Claude Desktop. Done. All 13 tools are now available to Claude.
Option 2: Smithery (one click)
Search agent-toolbox on Smithery. Smithery handles the config file automatically.
Option 3: Glama
Also listed on Glama.
Option 4: REST API directly
# Web search
curl -X POST https://api.agenttoolbox.dev/search \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "latest MCP servers 2026", "count": 5}'
# Extract clean content from a URL
curl -X POST https://api.agenttoolbox.dev/extract \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article", "format": "markdown"}'
Full API docs at Agent Toolbox on GitHub.
Option 5: Python (LangChain / LlamaIndex)
Already on PyPI — two wrappers available:
pip install agent-toolbox-langchain
pip install agent-toolbox-llamaindex
Real-world use cases
Deep research agent
search("AI agent frameworks 2026") → 10 URLs
extract(url) for each → clean article text
LLM synthesizes → structured report
No HTML soup. No rate limit juggling across 3 APIs. Just results.
Competitive intelligence
screenshot + extract competitor landing pages on a schedule. Diff the changes over time. Your agent watches competitors while you sleep.
Financial data pipeline
finance gives real-time stock quotes and FX rates without a Bloomberg subscription. Useful for trading signal agents, portfolio trackers, market commentary.
Email outreach agent
Before sending 500 emails: validate-email checks format, DNS MX records, and SMTP reachability. Protects sender reputation before the campaign fires.
Domain research
whois + dns together let you research domain availability, ownership history, and infrastructure setup — useful for competitive research agents.
Architecture
The server runs on:
- Node.js + Hono — lightweight, fast HTTP framework
- TypeScript — fully typed throughout
- PM2 — process management on VPS
- MCP stdio transport — for Claude Desktop / Cursor integration
The MCP layer is a thin wrapper around the REST API. Same tool logic, two interfaces.
Claude Desktop → MCP stdio → Agent Toolbox server → tool execution
Your agent → REST API → Agent Toolbox server → tool execution
MIT licensed. The full source is on GitHub.
Roadmap
Active development. Things coming next:
-
code-run— sandboxed code execution (most requested) -
calendar— timezone-aware date/time helpers - Streaming responses for long extractions
- Webhook callbacks for async tool results
Try it
- 📦 npm MCP package:
npx agent-toolbox-mcp - 🐙 GitHub (MIT): https://github.com/Vincentwei1021/agent-toolbox
- 🔧 Smithery: https://smithery.ai/server/@vincentwei1021/agent-toolbox
- 🔧 Glama: https://glama.ai/mcp/servers/@Vincentwei1021/agent-toolbox
- 🐍 PyPI:
pip install agent-toolbox-langchain
Free tier: 1,000 calls/month. No credit card. If you build something with it, I'd love to hear about it in the comments.
I'm running a $0 multi-agent AI startup experiment. All four agents (CEO, marketer, builder, scout) are live and autonomous. The full story thread is on Twitter/X.
Top comments (0)