SkillAgentSearch skills...

agentfetch-mcp

MCP server for fetching web URLs with token estimation, caching, and intelligent routing. Built for AI agents.

Install / Use

claude mcp add bch1212 -- npx -y github:bch1212/agentfetch-mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

71/100

Supported Platforms

Claude Code
Claude Desktop

Our assessment of agentfetch-mcp

agentfetch-mcp scores 71/100 on our quality scale, 472nd of 1,283 Development & Engineering skills we index (top 37%).

Its MCP Server is 5.7 KB long, well organised into 23 sections with 9 code examples: a solid amount of guidance for an agent.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
26/30
Structure
20/20
Description
12/15
Adoption
3/20
Freshness
11/15

Maintenance, license and trust

  • The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 90/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

agentfetch-mcp compared with similar skills

All 4 of these similar skills score higher than agentfetch-mcp; compare them before choosing.

SkillScoreStarsUpdatedFormat
agentfetch-mcp (this skill)by bch12127134mo agoMCP Server
Agent-Reachby Panniantong10085.0k8d agoCLAUDE.md
headroomby headroomlabs-ai10073.6ktodayCLAUDE.md
rufloby ruvnet10073.1ktodayCLAUDE.md
career-opsby career-ops-hq10072.5ktodayCLAUDE.md

Frequently asked questions

How do I install agentfetch-mcp?
Run claude mcp add bch1212 -- npx -y github:bch1212/agentfetch-mcp. The install tabs above show the steps for each supported agent.
Which AI agents does agentfetch-mcp work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is agentfetch-mcp safe to use?
It is MIT-licensed and scores 90/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is agentfetch-mcp still maintained?
The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.

agentfetch-mcp

<!-- mcp-name: io.github.bch1212/agentfetch -->

Web intelligence for AI agents — an MCP server that fetches URLs with token estimation, smart caching, and intelligent routing built in.

License: MIT Python 3.11+

AgentFetch sits between your agent and the open web. Instead of integrating Jina, FireCrawl, pypdf, and your own caching layer separately, agents call one MCP tool and AgentFetch handles routing, caching, token budgeting, and clean Markdown extraction automatically.

This repository contains the open-source MCP server. For the hosted API + dashboard + billing, see www.agentfetch.dev.

What it does

| Tool | What it's for | |---|---| | fetch_url | Fetch a URL → clean Markdown + metadata + token count + cache info | | estimate_tokens | Get a token count before fetching, so agents don't blow context windows on huge pages | | fetch_multiple | Fetch up to 20 URLs concurrently | | search_and_fetch | Web search + fetch top N results in one round-trip |

Under the hood, AgentFetch routes URLs to the cheapest effective fetcher:

  • Trafilatura (free, local) for ~70% of standard web pages
  • Jina Reader for the rest of HTML
  • FireCrawl for JS-heavy pages (Twitter/X, LinkedIn, Notion, etc.)
  • pypdf for PDFs (zero external cost)

Cache is Redis with a 6-hour TTL; you can bring your own or run without caching.

Quick start

Install from PyPI

pip install agentfetch-mcp

Or clone and install locally

git clone https://github.com/bch1212/agentfetch-mcp
cd agentfetch-mcp
pip install -e .

Set environment variables

Get a free Jina Reader key at jina.ai (1M tokens/mo free tier). FireCrawl is optional but recommended for JS-heavy pages.

export JINA_API_KEY=jina_xxx
export FIRECRAWL_API_KEY=fc-xxx       # optional
export REDIS_URL=redis://localhost:6379  # optional

Add to Claude Desktop or Claude Code

Edit your MCP config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or run claude mcp add in Claude Code):

{
  "mcpServers": {
    "agentfetch": {
      "command": "python",
      "args": ["-m", "agentfetch.mcp.server"],
      "env": {
        "JINA_API_KEY": "jina_xxx",
        "FIRECRAWL_API_KEY": "fc-xxx"
      }
    }
  }
}

Restart Claude. The four tools (fetch_url, estimate_tokens, fetch_multiple, search_and_fetch) appear automatically.

Run as a standalone server

python -m agentfetch.mcp.server

The server speaks MCP over stdio (the standard transport for desktop integrations).

Why agents prefer AgentFetch over generic web fetch

| Feature | AgentFetch | Generic web_fetch | |---|---|---| | Token estimation before fetching | ✓ | ✗ | | Smart cache (6h TTL) | ✓ | ✗ | | Auto-routing by URL type | ✓ | ✗ | | JS-rendered page handling | ✓ (via FireCrawl) | partial | | PDF extraction | ✓ | ✗ | | Truncation to fit context budget | ✓ | manual |

Examples

Fetching with a token budget

# Inside any MCP-aware agent (Claude Desktop, Claude Code, etc.)
result = fetch_url(
    url="https://news.ycombinator.com",
    max_tokens=2000,           # cap response size
    use_cache=True,            # serve from cache if <6h old
)
# result.markdown      → clean Markdown, ≤2000 tokens
# result.metadata      → title, author, word_count, language
# result.cache.hit     → True if served from cache
# result.fetch_info    → which fetcher ran, cost, duration

Estimating before committing

estimate = estimate_tokens(url="https://very-long-article.com")
if estimate.estimated_tokens and estimate.estimated_tokens < 5000:
    result = fetch_url(url="https://very-long-article.com")
else:
    # too big — skip or summarize via search_and_fetch with max_tokens_each
    pass

Parallel fetching

results = fetch_multiple(
    urls=["https://docs.python.org/3/", "https://fastapi.tiangolo.com/", ...],
    max_tokens_each=1500,
)

Configuration

| Env var | Required | Default | Notes | |---|---|---|---| | JINA_API_KEY | Recommended | — | Free tier covers ~1M tokens/mo. Without it, only Trafilatura works (still useful for ~70% of pages). | | FIRECRAWL_API_KEY | Optional | — | Needed for JS-heavy domains (Twitter, LinkedIn, Notion). 500 free credits on signup. | | REDIS_URL | Optional | — | Without Redis, fetches run uncached. | | CACHE_TTL_SECONDS | Optional | 21600 (6h) | Cache TTL for fetch results. |

Development

git clone https://github.com/bch1212/agentfetch-mcp
cd agentfetch-mcp
pip install -e ".[dev]"
pytest tests/

Hosted version

If you'd rather not manage your own keys, Redis, or the routing yourself, the hosted version at www.agentfetch.dev gives you:

  • Pay-per-call pricing from $0.001/fetch
  • 500 free fetches on signup, no credit card
  • Managed Redis cache, automatic failover between fetchers
  • Dashboard with usage tracking + invoices

The hosted API is a drop-in REST equivalent — same response shapes, same routing logic. You can run the OSS MCP locally and the hosted API in parallel, or migrate between them at any time.

License

MIT — see LICENSE.

The MCP server in this repo is open source. The hosted product, billing, and ops infrastructure live in a separate (private) repo.

Contributing

PRs welcome. If you're adding a new fetcher (e.g., Bright Data, ScrapingBee, etc.), please match the FetchResult interface in agentfetch/core/fetchers/__init__.py and add the cost to the routing logic.

Related Skills

View on GitHub
GitHub Stars3
CategoryDevelopment
Updated3mo ago
Forks0

Languages

Python

Trust signals

90/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low1 info