---
title: "Fetchira: web search for agents that never runs dry"
description: "Fetchira puts 24 search, scrape and research providers behind one MCP server and CLI. Each call goes to an account with quota left. Free and open source."
url: "https://fetchira.dev/"
---

**Open source** MCP server and CLI · Apache 2.0

# Web search for agents that never runs dry

Fetchira puts 24 search, scrape and research providers behind one MCP server and CLI. It sends each call to the account with quota left and fails over on errors, so your agent just calls `search`.

`npx -y fetchira`

macOS and Linux · or `brew install ImmuneFOMO/tap/fetchira`

**2.7k** tokens of tool definitions instead of **95k** · **24** providers · **6** tools

![The fetchira dashboard: burn radar listing the accounts closest to empty, quota meters for serper, tinyfish, tavily and linkup, and a live route log showing searches, reads, deep research and a failover from firecrawl to zenrows.](https://fetchira.dev/_astro/dashboard.BGg0a2_J_ndeBS.webp)

## Connecting providers one by one eats your context

- Each provider ships its own MCP server, and every tool definition rides along on every request.
- Every free tier has its own limit, window and reset date. Nobody tracks them by hand.
- One `429` in the middle of a long task and your agent stops searching.

17 separate MCP servers **≈ 95k** tokens

fetchira **≈ 2.7k** tokens

Median 3.7k per official server. tools/list JSON at 4 chars per token; server instructions and output schemas not counted.

## Your agent asks for a capability. The router handles the rest.

### Your agent stops hitting dead keys

Fetchira reads live balances and rate limit headers, skips accounts with nothing left and retries the next one on a `429` or `402`. The agent sees one answer.

### Free tiers add up

Add several accounts per provider and the router spreads the load across all of them.

keenable _100,000 / month_

tinyfish _12,000 / day_

langsearch _≈10,000 / day_

serper _2,500 one time_

### Deep research without an API key

Log in to ChatGPT, Gemini or Grok once. Fetchira uses that browser session for `deep_research` and `create_image`.

### One gauge for every limit

`fetchira ui` shows remaining quota, burn rate per hour, reset dates and every routed call as it happens.

### Local first, shared when you want

Keys stay in your config on this machine. Run a hosted server to give a team one endpoint with encrypted credentials.

Your agent names a capability. Fetchira picks who still has quota.

## Running in three commands

1. ### Install

    One command installs the binary and opens the dashboard. Homebrew and a shell installer work too.

    ```sh
    npx -y fetchira
    ```

2. ### Add providers

    Paste an API key, or log in with a browser for web sessions. Start with one or two and add more later.

    ```sh
    fetchira add serper --key KEY
    fetchira add gemini_web
    ```

3. ### Connect your agent

    Pick Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Zed or Windsurf. Restart the agent and it has six new tools.

    ```sh
    fetchira install
    ```

## Watch the router fail over in real time

The real dashboard beside a terminal. Keys go in from the CLI, tavily runs dry, the next search lands on exa, and deep research runs on your ChatGPT login.

[Demo video, 34 seconds, no sound: the fetchira dashboard and a terminal while accounts are added and calls fail over from tavily to exa.](https://fetchira.dev/media/fetchira-demo-1280.mp4)

34 seconds, no sound · the local dashboard at `127.0.0.1:7878`

## Six tools, about 2.7k tokens

The same six operations work over MCP and from your shell. Pass `provider` to pin a backend; otherwise the router picks.

`search`

Web, news, academic and Google results, routed across 18 search backends.

`read`

Any URL as clean markdown. Escalates to a headless browser when a plain read comes back empty.

`deep_research`

Long research runs through exa, parallel, tavily or your logged in ChatGPT, Gemini and Grok.

`browser`

Full JavaScript rendering through steel, hyperbrowser or browserless.

`create_image`

Images from your ChatGPT, Gemini or Grok session, saved straight to disk.

`usage`

Modes, models and examples for each provider, so the agent calls them right.

## 24 providers, 21 APIs and 3 browser sessions

Every provider is optional. Free allowances below are what each provider offers today and can change.

### Search (14)

- serper (search, read): 2,500 free, one time
- tavily (search, research): 1,000 free / month
- exa (search, research): $20 signup + $10 / month
- keenable (no key, read): 100,000 free / month
- tinyfish (search, research): 12,000 searches / day
- langsearch (search): ≈10,000 searches / day
- parallel (search, research): Up to $80 signup + $5 / month
- you (search, research): $100 credit, one time
- linkup (search, research): $20 credit, topped up monthly
- nimble (search): 5,000 free requests, one time
- octen (search): $5 credit, one time
- serpapi (search): 250 free searches / month
- openalex (no key): Scholarly papers, ≈100 / day keyless
- gdelt (no key): Global news, free

### Read and scrape (4)

- firecrawl (read, search): 1,000 free / month
- jina (no key, read): 20 / min keyless, 10M tokens with a key
- scrapingant (read): 10,000 credits / month
- zenrows (read): 5,000 credits / month

### Browser (3)

- steel (browser): $30 credit, 90 days
- hyperbrowser (browser): 5,000 credits, one time
- browserless (browser): 1,000 units / month

### Web sessions (3)

- chatgpt_web (research, image): Your logged in ChatGPT
- gemini_web (research, image): Your logged in Gemini
- grok_web (research, image): Your logged in Grok

Provider names and logos belong to their respective owners.

## Questions before you install

Something missing? [Open an issue on GitHub](https://github.com/ImmuneFOMO/fetchira/issues).

### Is fetchira free?

Yes. Fetchira is open source under Apache 2.0. Each provider has its own plan and quota, and paid features can draw from a paid balance on that provider.

### Which agents does it work with?

Any MCP client. `fetchira install` sets it up in Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Zed and Windsurf, as MCP, CLI only, or MCP with CLI fallback.

### Do I need API keys?

No. gdelt, keenable, jina and openalex work without a key, and `chatgpt_web`, `gemini_web` and `grok_web` use a browser login. Keys unlock larger free tiers.

### What happens when a provider runs out?

The router skips accounts with no quota left and fails over to the next one on a `429` or `402`. It reads live balances where providers report them and tracks every reset date. A temporary rate limit triggers a retry delay, not a monthly reset.

### Where are my keys stored?

Locally, in `~/.config/fetchira` unless you set `FETCHIRA_HOME`. Local config can hold plaintext keys, so treat it like any dotfile with secrets. A hosted server encrypts stored credentials with its master key.

### Can I force a specific provider?

Yes. Pass `provider` over MCP or `--provider` in the CLI. You can also drag providers into your own failover order per capability in the dashboard.

### Can my team share one setup?

Run a hosted server and give each person a URL and an API key. `fetchira setup` connects to it; CLI and MCP both use the same server.

### Which platforms are supported?

Prebuilt releases for macOS arm64 and x86_64, and Linux arm64 and x86_64 with glibc 2.34 or newer. Anything else can build from source with `cargo install`.

### How do I remove it?

Remove the fetchira entry from your agent's MCP config, then delete the `fetchira` binary from `~/.local/bin` and the config folder.

## Give your agent every free quota you have

One command. Nothing to sign up for on our side.

`npx -y fetchira`

- Free and open source
- Runs on your machine
- Apache 2.0 license
