agentfetch-mcp
agentfetch-mcp
Inteligencia web para agentes de IA — un servidor MCP que obtiene URLs con estimación de tokens, almacenamiento en caché inteligente y enrutamiento inteligente integrado.
AgentFetch se sitúa entre tu agente y la web abierta. En lugar de integrar Jina, FireCrawl, pypdf y tu propia capa de caché por separado, los agentes llaman a una única herramienta MCP y AgentFetch gestiona automáticamente el enrutamiento, el almacenamiento en caché, el presupuesto de tokens y la extracción limpia a Markdown.
Este repositorio contiene el servidor MCP de código abierto. Para la API alojada + panel de control + facturación, consulta www.agentfetch.dev.
Qué hace
Herramienta | Para qué sirve |
| Obtener una URL → Markdown limpio + metadatos + recuento de tokens + información de caché |
| Obtener un recuento de tokens antes de realizar la obtención, para que los agentes no agoten las ventanas de contexto en páginas enormes |
| Obtener hasta 20 URLs simultáneamente |
| Búsqueda web + obtener los N mejores resultados en un solo viaje de ida y vuelta |
Internamente, AgentFetch enruta las URLs al capturador efectivo más económico:
Trafilatura (gratuito, local) para ~70% de las páginas web estándar
Jina Reader para el resto del HTML
FireCrawl para páginas con mucho JS (Twitter/X, LinkedIn, Notion, etc.)
pypdf para PDFs (coste externo cero)
La caché es Redis con un TTL de 6 horas; puedes traer la tuya o ejecutarlo sin caché.
Related MCP server: Fetch MCP Server
Inicio rápido
Instalar desde PyPI
pip install agentfetch-mcpO clonar e instalar localmente
git clone https://github.com/bch1212/agentfetch-mcp
cd agentfetch-mcp
pip install -e .Configurar variables de entorno
Obtén una clave gratuita de Jina Reader en jina.ai (nivel gratuito de 1M de tokens/mes). FireCrawl es opcional pero recomendado para páginas con mucho JS.
export JINA_API_KEY=jina_xxx
export FIRECRAWL_API_KEY=fc-xxx # optional
export REDIS_URL=redis://localhost:6379 # optionalAñadir a Claude Desktop o Claude Code
Edita tu configuración de MCP (~/Library/Application Support/Claude/claude_desktop_config.json en macOS, o ejecuta claude mcp add en Claude Code):
{
"mcpServers": {
"agentfetch": {
"command": "python",
"args": ["-m", "agentfetch.mcp.server"],
"env": {
"JINA_API_KEY": "jina_xxx",
"FIRECRAWL_API_KEY": "fc-xxx"
}
}
}
}Reinicia Claude. Las cuatro herramientas (fetch_url, estimate_tokens, fetch_multiple, search_and_fetch) aparecerán automáticamente.
Ejecutar como servidor independiente
python -m agentfetch.mcp.serverEl servidor habla MCP a través de stdio (el transporte estándar para integraciones de escritorio).
Por qué los agentes prefieren AgentFetch sobre la obtención web genérica
Característica | AgentFetch |
|
Estimación de tokens antes de obtener | ✓ | ✗ |
Caché inteligente (TTL 6h) | ✓ | ✗ |
Auto-enrutamiento por tipo de URL | ✓ | ✗ |
Manejo de páginas renderizadas con JS | ✓ (vía FireCrawl) | parcial |
Extracción de PDF | ✓ | ✗ |
Truncamiento para ajustar al presupuesto de contexto | ✓ | manual |
Ejemplos
Obtención con un presupuesto de tokens
# 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, durationEstimación antes de confirmar
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
passObtención en paralelo
results = fetch_multiple(
urls=["https://docs.python.org/3/", "https://fastapi.tiangolo.com/", ...],
max_tokens_each=1500,
)Configuración
Variable de entorno | Requerido | Predeterminado | Notas |
| Recomendado | — | El nivel gratuito cubre ~1M de tokens/mes. Sin ella, solo funciona Trafilatura (sigue siendo útil para ~70% de las páginas). |
| Opcional | — | Necesario para dominios con mucho JS (Twitter, LinkedIn, Notion). 500 créditos gratuitos al registrarse. |
| Opcional | — | Sin Redis, las obtenciones se ejecutan sin caché. |
| Opcional |
| TTL de caché para los resultados de obtención. |
Desarrollo
git clone https://github.com/bch1212/agentfetch-mcp
cd agentfetch-mcp
pip install -e ".[dev]"
pytest tests/Versión alojada
Si prefieres no gestionar tus propias claves, Redis o el enrutamiento tú mismo, la versión alojada en www.agentfetch.dev te ofrece:
Precios de pago por llamada desde $0.001/obtención
500 obtenciones gratuitas al registrarse, sin tarjeta de crédito
Caché Redis gestionada, conmutación por error automática entre capturadores
Panel de control con seguimiento de uso + facturas
La API alojada es un equivalente REST directo: mismas formas de respuesta, misma lógica de enrutamiento. Puedes ejecutar el MCP de código abierto localmente y la API alojada en paralelo, o migrar entre ellos en cualquier momento.
Licencia
MIT — ver LICENSE.
El servidor MCP en este repositorio es de código abierto. El producto alojado, la facturación y la infraestructura de operaciones residen en un repositorio separado (privado).
Contribuciones
Las PR son bienvenidas. Si vas a añadir un nuevo capturador (p. ej., Bright Data, ScrapingBee, etc.), por favor ajusta la interfaz FetchResult en agentfetch/core/fetchers/__init__.py y añade el coste a la lógica de enrutamiento.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceFast, token-efficient web content extraction tool that converts websites to clean Markdown for AI agents, featuring smart caching, content extraction with Mozilla Readability, and polite crawling capabilities.11,299158MIT
- AlicenseBqualityDmaintenanceEnables LLMs to retrieve and process web content by fetching URLs and converting HTML to markdown format. Supports chunked reading of large pages and can access both public websites and local networks.1MIT
- AlicenseCqualityDmaintenanceEnables LLMs to retrieve and process web content by fetching URLs and converting HTML to markdown, with support for chunked reading and customizable user-agents.1MIT
- Alicense-qualityCmaintenanceEnables AI agents to fetch and render web pages (including JavaScript-heavy SPAs) with headless Chromium, extract readable content with Mozilla Readability, capture navigation links, download images, and return a clean markdown file path.12ISC
Related MCP Connectors
Read any web page as clean Markdown for AI agents: fetch, search, metadata, links. SSRF-safe.
Fetch any URL and get clean Markdown. Web scraping for AI agents.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
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/bch1212/agentfetch-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server