carbs
Carbs
A research MCP server that bundles SearXNG (meta-search) + Crawl4AI (JS-rendered web scraping) behind one command. Runs 100% local.
Quick start
make up # generates .env (token) if needed, starts searxng + crawl4ai + carbsMCP endpoint: http://localhost:8765/mcp (streamable-http).
Register in your agent (opencode example):
// ~/.config/opencode/opencode.jsonc
"mcp": {
"carbs": {
"type": "http",
"url": "http://127.0.0.1:8765/mcp",
"enabled": true
}
}For Claude Code / Codex, the same http://127.0.0.1:8765/mcp URL works in
their MCP configs.
Tools
Tool | Purpose |
| Meta-search with academic bias, deduped |
| Raw SearXNG JSON (answers, infoboxes) |
| Single URL → clean markdown (with fallback chain) |
| Batch crawl, concurrency-capped |
| LLM JSON extraction from a page |
| Search → parallel scrape → synthesize |
| Backend status |
Config
Everything is env-driven — see src/carbs/config.py for the full list
(SEARXNG_URL, CRAWL4AI_URL, CRAWL4AI_API_TOKEN, LLM_PROVIDER, cache
TTL, crawl concurrency, ports).
Development
uv sync --dev
uv run pytest
uv run python -m carbs --http --host 127.0.0.1 --port 8765 # run MCP locally against running backendsLicense
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ferre-z/carbs'
If you have feedback or need assistance with the MCP directory API, please join our Discord server