intercept-mcp
intercept-mcp
Dale a tu IA la capacidad de leer la web. Un comando, sin necesidad de claves API.
Sin esto, tu IA accede a una URL y obtiene un 403, un muro o una pared de HTML sin procesar. Con intercept, casi siempre obtiene el contenido: markdown limpio, listo para usar.
Maneja tweets, videos de YouTube (con transcripciones cuando están disponibles), artículos de arXiv, PDFs, artículos de Wikipedia y repositorios de GitHub. Si la primera estrategia falla, intenta hasta 14 más antes de rendirse.
Funciona con cualquier cliente MCP: Claude Code, Claude Desktop, Codex, Cursor, Windsurf, Cline y más.
Instalación
Claude Code
claude mcp add intercept -s user -- npx -y intercept-mcpCodex
codex mcp add intercept -- npx -y intercept-mcpCursor
Settings → MCP → Add Server:
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": ["-y", "intercept-mcp"]
}
}
}Windsurf
Settings → MCP → Add Server → misma configuración JSON que la anterior.
Claude Desktop
Añadir a tu claude_desktop_config.json:
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": ["-y", "intercept-mcp"]
}
}
}Otros clientes MCP
Cualquier cliente que soporte servidores MCP stdio puede ejecutar npx -y intercept-mcp.
No se necesitan claves API para la herramienta fetch.
Related MCP server: urltomarkdown-mcp
Cómo funciona
Las URLs se procesan en cuatro etapas:
1. Manejadores específicos del sitio
Los patrones de URL conocidos se dirigen a manejadores dedicados antes de la tubería de respaldo:
Patrón | Manejador | Qué obtienes |
| Twitter/X | Texto del tweet, autor, medios, estadísticas de interacción (vía APIs de terceros) |
| YouTube | Título, canal, duración, vistas, descripción, transcripción (cuando hay subtítulos disponibles) |
| arXiv | Metadatos del artículo, autores, resumen, categorías |
| Texto extraído (solo PDFs con capa de texto) | |
| Wikipedia | Contenido limpio del artículo vía API REST de Wikimedia |
| GitHub | Contenido crudo de README.md |
2. Caché compartida (agentsweb.org)
Antes de llegar a cualquier buscador, cada solicitud verifica agentsweb.org, una caché global compartida de markdown para agentes de IA. Si otro agente ya obtuvo esta URL, obtienes el resultado en menos de 50ms.
Cada obtención exitosa contribuye automáticamente. Las entradas ganan confianza a través de un modelo de consenso de autocuración: cuando instancias independientes obtienen la misma URL y confirman el mismo contenido, la confianza aumenta.
Desactívalo por completo con INTERCEPT_SHARED_CACHE=false, o usa el modo de solo lectura (consumir pero nunca contribuir) con INTERCEPT_CACHE_READ_ONLY=true.
API de agentsweb.org
agentsweb.org también expone puntos finales independientes para uso directo:
/web?q=— buscar en la web/research?q=— buscar + obtener + almacenar en caché en una sola llamada/fetch?url=— obtener bajo demanda, auto-almacenado en caché
Consulta agentsweb.org/docs para la documentación completa de la API.
3. Tubería de respaldo
Si ningún manejador coincide (o el manejador no devuelve nada), la URL entra en la tubería de múltiples niveles:
Nivel | Buscador | Estrategia |
0 | agentsweb.org | Caché global compartida de markdown — instantáneo si otro agente ya obtuvo esta URL |
1 | Cloudflare Browser Run | Renderizado JS + extracción de markdown (opcional, necesita token API) |
1 | Jina Reader | Servicio de extracción de markdown limpio |
2 | Wayback Machine | Versión archivada de archive.org |
2 | archive.ph | Instantáneas archivadas vía API timemap + obtención TLS sigilosa |
2 | Google Cache | Versión de página almacenada en caché de Google |
2 | Arquivo.pt | Archivo web portugués (amplia cobertura internacional) |
2 | Codetabs | Proxy CORS |
3 | Obtención cruda | GET directo con encabezados de navegador + conversión de markdown Turndown |
3 | Obtención sigilosa | Suplantación de huella digital TLS del navegador vía got-scraping (opcional, ver abajo) |
4 | RSS, CrossRef, Semantic Scholar, HN, Reddit | Respaldos de metadatos / discusión |
5 | OG Meta | Etiquetas Open Graph (respaldo garantizado) |
Los buscadores de nivel 2 se ejecutan en paralelo. Cuando varios tienen éxito, gana el resultado de mayor calidad. Todos los demás niveles se ejecutan secuencialmente.
Todos los buscadores devuelven Markdown adecuado (encabezados, enlaces, negritas, tablas, bloques de código) vía Turndown, no texto plano.
4. Almacenamiento en caché
Los resultados se almacenan en memoria con TTL (30 min para éxitos, 5 min para fallos). Máximo 100 entradas con desalojo LRU. Las URLs fallidas se almacenan en caché para evitar reintentar URLs conocidas como muertas.
Herramientas
fetch
Obtén una URL y devuelve su contenido como markdown limpio.
url(cadena, requerido) — URL a obtenermaxTier(número, opcional, 1-5) — Detenerse en este nivel para casos sensibles a la velocidad
search
Busca en la web y devuelve resultados.
query(cadena, requerido) — Consulta de búsquedacount(número, opcional, 1-20, predeterminado 5) — Número de resultados
Utiliza la API de Brave Search si BRAVE_API_KEY está configurado, luego SearXNG si SEARXNG_URL está configurado, y luego DuckDuckGo como último recurso poco fiable.
Prompts
research-topic
Busca un tema y obtén los mejores resultados para un resumen de múltiples fuentes.
topic(cadena) — El tema a investigardepth(cadena, predeterminado "3") — Número de mejores resultados a obtener
extract-article
Obtén una URL y extrae los puntos clave del contenido.
url(cadena) — La URL a obtener y resumir
Variables de entorno
Variable | Requerido | Descripción |
| No | Clave de Brave Search API para búsqueda |
| No | URL de instancia de SearXNG autohospedada (recomendado) |
| No | Token de API de Cloudflare con permiso "Browser Rendering - Edit" |
| No | ID de cuenta de Cloudflare (requerido si |
| No | Establecer en |
| No | Establecer en |
| No | Establecer en |
| No | TTL de caché en memoria para obtenciones exitosas en ms (predeterminado |
| No | TTL de caché en memoria para obtenciones fallidas en ms (predeterminado |
| No | Entradas máximas de caché en memoria (predeterminado |
| No | Paso de proxy estándar — enruta todas las obtenciones salientes (incluyendo sigilosas) a través del proxy. Respeta |
Búsqueda: Tiene un respaldo de DuckDuckGo pero está limitado en tasa y no es fiable. Para uso en producción, autohospeda SearXNG y configura SEARXNG_URL (ver abajo), u obtén una clave de API de Brave Search.
Obtención: Funciona sin claves. Configura CF_API_TOKEN + CF_ACCOUNT_ID para habilitar Cloudflare Browser Run (anteriormente Browser Rendering) para páginas con mucho JavaScript (SPAs, sitios React).
Obtención sigilosa (USE_STEALTH_FETCH)
Úsalo bajo tu propio riesgo. Cuando está habilitado, esto añade un buscador que suplanta huellas digitales TLS reales del navegador (conjuntos de cifrado de Chrome/Firefox, configuraciones HTTP/2, orden de encabezados) usando got-scraping. Esto puede evitar la detección de bots y disparadores de CAPTCHA en sitios que de otro modo bloquearían solicitudes automatizadas.
Este buscador se ejecuta en el nivel 3 después de la obtención cruda regular. Si la obtención cruda es bloqueada (CAPTCHA, desafío de Cloudflare, 403), el buscador sigiloso reintenta con suplantación de navegador.
Esto puede violar los términos de servicio de algunos sitios web. Los autores de intercept-mcp no asumen ninguna responsabilidad por cómo se utiliza esta función. Está deshabilitada por defecto y debe ser activada explícitamente.
Trae tu propio proxy (HTTPS_PROXY)
Si las obtenciones crudas comienzan a ser marcadas, la solución más efectiva suele ser una IP saliente limpia, no una huella digital más sofisticada. intercept-mcp respeta las variables de entorno estándar HTTPS_PROXY / HTTP_PROXY / NO_PROXY, por lo que puedes enrutar todo el tráfico saliente a través de cualquier proxy que ya tengas:
HTTPS_PROXY=http://user:pass@proxy.example.com:8080 npx intercept-mcpEsto funciona con cualquier proxy HTTP(S): un Squid autohospedado, un nodo de salida Tailscale, un VPS de $5 ejecutando 3proxy, o proxies residenciales comerciales (Bright Data, Oxylabs, etc.). El buscador sigiloso y las llamadas a got-scraping también recogen esto automáticamente.
Autohospedaje de SearXNG
Para una búsqueda fiable, autohospeda SearXNG con Docker. Se incluye una configuración en el repositorio:
git clone https://github.com/bighippoman/intercept-mcp.git
cd intercept-mcp/searxng && docker compose up -dLuego configura SEARXNG_URL=http://localhost:8888. Sin límites de tasa, sin CAPTCHAs, agrega Google + Bing + DuckDuckGo + Wikipedia + Brave.
O usa cualquier instancia de SearXNG existente: simplemente configura SEARXNG_URL a su URL.
Normalización de URL
Las URLs entrantes se limpian automáticamente:
Elimina más de 60 parámetros de seguimiento (UTM, IDs de clic, analíticas, pruebas A/B, etc.)
Elimina fragmentos de hash
Actualiza a HTTPS
Limpia artefactos AMP
Conserva parámetros funcionales (
ref,format,page,offset,limit)
Detección de calidad de contenido
Cada resultado del buscador se califica por calidad. Fallo automático en:
Desafíos de CAPTCHA / Cloudflare
Muros de inicio de sesión
Páginas de error HTTP en el cuerpo
Contenido de menos de 200 caracteres
Requisitos
Node.js >= 18
No se requieren claves API para uso básico
Available Tools
2 toolsfetchFetch URLA
Fetch a URL and return its content as clean markdown. Handles Twitter/X tweets, YouTube videos, arXiv papers, and PDFs directly. Falls back to a multi-tier chain: Jina Reader, Wayback Machine, raw fetch, RSS, CrossRef, Semantic Scholar, HackerNews, Reddit, OG meta. Results are cached for the session.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to fetch | |
| maxTier | No | Stop at this tier (1-5, default 5). Lower = faster but fewer fallbacks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully describes the multi-tier fallback behavior, special handling for certain content types, and session caching. It lacks mention of authentication, rate limits, or error handling, but still provides good transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (approximately 100 words) and front-loaded with the main purpose. Each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality, special cases, fallback chain, and caching. It does not detail error behavior or output format beyond 'clean markdown', but for a fetch tool this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning by explaining the tier fallback system, which gives context to the maxTier parameter. The description complements the schema well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches a URL and returns content as clean markdown, with specific handling for Twitter, YouTube, arXiv, and PDFs. It distinguishes from sibling tool 'search' by focusing on fetching a specific URL rather than searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by explaining the fallback chain and caching, but does not explicitly state when to use this vs. search or when not to use it. Given the sibling is 'search', the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchWeb SearchA
Search the web and return results. Uses Brave Search API if BRAVE_API_KEY is set, otherwise falls back to SearXNG. Set BRAVE_API_KEY for best results (free tier: 2,000 queries/month).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results (1-20, default 5) | |
| query | Yes | Search query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the dual backend (Brave/SearXNG) and mentions the free tier limit, but omits details on error behavior, pagination, latency, or result structure. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with a clear front-loaded purpose. No wasted words, though the information about API key could be more structurally separated. Still effective and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain what 'results' contains (e.g., titles, URLs, snippets) but does not. It also lacks constraints like max count reasons or result ordering. Incomplete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters (query and count) with descriptions. The description adds backend context but no additional parameter insight beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the web and return results,' specifying a concrete verb and resource. It implicitly differentiates from sibling 'fetch' (which retrieves specific URLs) by focusing on general web search, though not explicitly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on backend choice and recommends setting BRAVE_API_KEY for best results, offering practical guidance. However, it does not explicitly state when to use this tool over 'fetch' or provide exclusion criteria (e.g., when not to use).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.2- Added
fetch - Added
search
TDQS
fetch and search have clearly distinct purposes: one retrieves content from a specific URL, the other performs web searches. No overlap or ambiguity.
Both tool names are single-word verbs ('fetch', 'search'), following a simple and consistent pattern.
With only 2 tools, the server is minimal but appropriate for its focused scope of fetching and searching. Could potentially benefit from a few more, but not necessary.
The tool surface covers the core operations of fetching content from URLs and searching the web. No obvious missing operations for the stated purpose.
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 Connectors
Fetch any URL and get clean Markdown. Web scraping for AI agents.
Read any web page as clean Markdown for AI agents: fetch, search, metadata, links. SSRF-safe.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Clean Markdown and AI-readability scoring for any URL. Built for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that provides access to Jina AI's powerful web services (page reading, web search, fact checking) through Claude.317828MIT
- AlicenseAqualityDmaintenanceConverts URLs and raw HTML to clean Markdown, enabling AI assistants to read web pages for summarization, analysis, or ingestion.2191MIT
- AlicenseAqualityBmaintenanceEnables AI agents to read web pages reliably, returning clean markdown content, hyperlinks, and metadata without navigation or ad noise.37MIT
- AlicenseAqualityCmaintenanceEnables AI agents to fetch any web page as clean markdown or screenshot it, turning URLs into LLM-ready context.211MIT
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/bighippoman/intercept-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server