Routes tool calls through a waterfall of providers, free and local first, paid only as fallback. Ships with three tools: search (SearXNG, Marginalia, Serper, You.com), extract (go-readability local, Firecrawl for JS pages), and browse (Browserless headless Chrome). You supply API keys for the providers you want; it registers only the tools you can actually use. The pitch is simple: if your agent is making hundreds of tool calls per session, the savings add up fast. Includes an auto-installer that writes itself into Claude Desktop, Cursor, and Claude Code configs. BUSL licensed, converts to Apache 2.0 after four years.
Tool calls are the new tokens.
For most agentic workloads the tool bill exceeds the model bill. Frugal is an MCP server that routes every tool call your agent makes to the cheapest provider that returns a result — free / local first, paid only as fallback, premium only when you opt in.
Works with any model. One signed Go binary. Your keys. No account. Source-available (BUSL 1.1 → Apache 2.0).
curl -fsSL https://frugal.sh/install | bash
frugal mcp install
The first command drops the binary in your $PATH. The second auto-detects
Claude Desktop, Cursor, and Claude Code and merges frugal into each
configured MCP server list.
Search and extract work out of the box — Marginalia (free, public web index) and go-readability (free, pure-Go local extractor) ship enabled with zero configuration. Restart your agent and ask it something:
> recent AI news?
frugal__search → marginalia (free, no key)
gpt-4.1-nano synthesizes · $0.0006
done. total: $0.0006 — zero search cost.
Tool call: free. The rack-rate gap is the gap you keep.
Add keys to unlock cheaper paid providers. Frugal reads them from your environment and only registers tools whose providers are configured:
# Search — frugal__search
export SEARXNG_URL=... # free, self-hosted (also Marginalia free, no key)
export SERPER_API_KEY=... # cheap paid
export YDC_API_KEY=... # premium paid (You.com)
# Extract — frugal__extract (goreadability is free, no key)
export FIRECRAWL_API_KEY=... # premium paid (JS-rendered pages)
# Browse — frugal__browse
export BROWSERLESS_TOKEN=... # headless render
That's it. Restart your agent. frugal__search, frugal__extract, and
frugal__browse show up in the tool picker (only the tools whose
providers are configured get registered).
Tool prices haven't fallen the way model prices have. You.com at $0.005/call is 5× Serper at $0.001/call. SearXNG, running on your own machine, is free.
| Capability | Free / local | Cheap paid | Premium paid | Status |
|---|---|---|---|---|
| Search | SearXNG · Marginalia | Serper $0.001/call | You.com $0.005/call | shipping |
| Extract | go-readability (local) | — | Firecrawl $0.001/page | shipping |
| Browse | local Playwright (deferred) | Browserless $0.002/render | Browserbase | partial |
| Code exec | local Docker | E2B ~$0.10/hr (2 vCPU) | Modal | planned |
| Embeddings | nomic-embed-text, bge-large | text-embedding-3-small $0.02/1M tok | 3-large, Voyage-3, Cohere | planned |
| Transcription | whisper.cpp | Deepgram Nova $0.0043/min | OpenAI Whisper $0.006/min | planned |
Frugal walks the columns left to right. Each tool call goes to the leftmost configured provider that returns a result; you keep the gap.
One MCP server, three tools, seven providers:
frugal__search — shipping. Routed across SearXNG (free,
self-hosted), Marginalia (free, public), Serper ($0.001/call),
and You.com ($0.005/call).frugal__extract — shipping. Routed across go-readability
(free, pure-Go local Readability) and Firecrawl (~$0.001/page,
JS-rendered).frugal__browse — partial. Browserless (~$0.002/render,
headless Chrome) shipping; local Playwright deferred.FRUGAL_AUTH_TOKEN),
per-IP rate limiting, and a /metrics endpoint (Prometheus text:
frugal_calls_total{tool=,provider=} etc.).frugal mcp install writes the right config into Claude Desktop,
Cursor, and Claude Code.git clone https://github.com/brainsparker/frugal.git && cd frugal && make build
BUSL 1.1 — self-hosting and internal commercial use are permitted. Each release converts to Apache 2.0 four years after publication. Plain-English summary in LICENSE-BUSL-FAQ.md.
Private vulnerability reports via GitHub Security Advisories. Full policy in SECURITY.md.