Skip to main content
Glama
ManiaSacha
by ManiaSacha

web-mcp

ci PyPI Python License: MIT

Búsqueda semántica en fuentes RSS/Atom para agentes de IA: un servidor MCP de un solo archivo. Sin clave de API, sin nube, solo las fuentes que elijas.

Apúntalo a un puñado de fuentes RSS/Atom y dale a un agente herramientas para buscarlas por significado (TF-IDF + impulso de actualidad), ver qué está en tendencia, generar un resumen y supervisar la salud de las fuentes, todo ejecutándose localmente sobre las fuentes que tú controlas.

web-mcp demo

Características

  • Añadir/eliminar/listar fuentes — RSS 2.0 y Atom

  • Búsqueda clasificada — similitud coseno TF-IDF con impulso de actualidad, solo stdlib (sin embeddings, sin llamadas de red más allá de obtener las propias fuentes)

  • Temas en tendencia — los términos más frecuentes en artículos recientes

  • Salud de las fuentes — marca las fuentes que dan error, están silenciosas o desactualizadas

  • Resúmenes en Markdown — resumen de artículos recientes agrupados por fuente

  • Actualización en segundo plano — las fuentes se actualizan automáticamente con un temporizador

Instalación

Requiere Python 3.10+.

Sobre el nombre del paquete: el proyecto es web-mcp, pero la distribución en PyPI es feed-mcp — PyPI rechaza web-mcp por ser demasiado similar a un paquete webmcp existente no relacionado. Así que puedes pip install feed-mcp, y se instalan tanto un comando web-mcp como un feed-mcp; son el mismo programa, usa el que prefieras.

Opción A — plugin de Claude Code (recomendado)

Instala el servidor MCP y las habilidades y agentes incluidos en un solo paso:

pip install feed-mcp

Luego, dentro de Claude Code:

/plugin marketplace add ManiaSacha/web-mcp
/plugin install web-mcp@maniasacha-web-mcp

El plugin registra automáticamente el servidor MCP web y te pide una lista inicial de fuentes. Si el resumen de instalación dice Run /reload-plugins to activate., ejecuta eso.

El paso de pip install es necesario: el servidor MCP del plugin invoca el comando web-mcp, que pip coloca en tu PATH.

Opción B — solo servidor MCP

pip install feed-mcp
claude mcp add web -- web-mcp --feeds https://hnrss.org/frontpage

Para Claude Desktop, añade esto a claude_desktop_config.json:

{
  "mcpServers": {
    "web": {
      "command": "web-mcp",
      "args": ["--feeds", "https://hnrss.org/frontpage,https://github.blog/feed/"]
    }
  }
}

Opción C — desde el código fuente

git clone https://github.com/ManiaSacha/web-mcp.git
cd web-mcp
./install.sh          # Windows: .\install.ps1

Los scripts de instalación comprueban tu versión de Python, instalan el paquete e imprimen el siguiente comando exacto para tu configuración.

Inicio rápido

Ejecuta el servidor directamente para comprobar que funciona:

web-mcp --feeds https://hnrss.org/frontpage,https://github.blog/feed/

Habla MCP sobre stdio, así que permanecerá en silencio esperando a un cliente; eso es un comportamiento correcto, no un bloqueo. Pulsa Ctrl+C para salir.

Una vez conectado, pide a tu agente cosas como:

  • "¿Qué está en tendencia en mis fuentes hoy?"

  • "Busca en mis fuentes algo sobre el rendimiento de Postgres."

  • "Dame un resumen de las últimas 24 horas."

  • "¿Hay alguna de mis fuentes rota?"

Qué incluye

Componente

Nombre

Propósito

Servidor MCP

web

Las 9 herramientas siguientes

Habilidad

feed-curation

Añadir, auditar y depurar fuentes

Habilidad

feed-digest

Convertir la salida bruta de las herramientas en un informe sintetizado

Agente

pm

Enmarca las funciones según la filosofía de un solo archivo

Agente

security-reviewer

Audita la superficie SSRF/fetch

Agente

git-pipeline

Ramas, commits y traspaso de revisión

Herramientas

Herramienta

Descripción

add_feed(url)

Añade una fuente RSS/Atom e indexa sus artículos actuales

remove_feed(url)

Elimina una fuente y sus artículos indexados

list_feeds()

Lista las fuentes configuradas con el número de artículos

search(query, limit=10, max_days=30)

Búsqueda clasificada con impulso de actualidad

recent(limit=20)

Artículos más recientes de todas las fuentes

trending(hours=24, limit=10)

Términos en tendencia en las últimas N horas

digest(hours=24, limit=8)

Resumen en Markdown agrupado por fuente

source_health()

Qué fuentes están sanas, retrasadas o con errores

refresh()

Fuerza la actualización inmediata de todas las fuentes

Notas de seguridad

add_feed(url) hace que el servidor obtenga una URL que puede haber llegado a tu agente desde una página web en lugar de desde ti, por lo que esa ruta se trata como no confiable:

  • Lista blanca de esquemas — solo http:// y https://. Se rechazan file://, ftp://, gopher:// y data:.

  • Solo direcciones públicas — una URL se rechaza a menos que todas las direcciones a las que resuelve sean enrutables públicamente. Se bloquean las direcciones de bucle local, privadas, de enlace local (incluido el endpoint de metadatos de nube 169.254.169.254), multicast y reservadas, así como sus formas IPv6 mapeadas desde IPv4.

  • Fijación de IP en el momento de la conexión — la dirección que se validó es la que realmente se contacta, por lo que el DNS no puede responder de forma diferente entre la comprobación y la conexión (rebinding). TLS sigue validando los certificados contra el nombre de host.

  • Validación de redirecciones por salto — las redirecciones se siguen manualmente y se vuelven a validar en cada salto, por lo que una URL pública no puede rebotar la obtención a un host interno. Límite de 5 saltos.

  • Límites de recursos — 5 MB por cuerpo de fuente, un tiempo de espera de socket explícito y un tope en el limit de cada herramienta.

Dos cosas que esto no hace: no tiene autenticación (está pensado para ejecutarse localmente sobre stdio — no lo expongas en una red), y no examina el contenido de las fuentes. El texto de los artículos indexados lo escribe quien controla la fuente, así que trátalo como datos, nunca como instrucciones.

El detalle completo, incluidos los límites que quedan, está en docs/SECURITY-MODEL.md. Para informar de una vulnerabilidad, consulta SECURITY.md.

Desarrollo

pip install -e ".[dev]"
pytest              # 53 tests, no network access
ruff check .        # lint
python scripts/validate_plugin.py   # manifests, frontmatter, version sync

CI ejecuta los tres en Python 3.10–3.13 (Linux, además de macOS y Windows en 3.12), y además instala el wheel construido para confirmar que los scripts de consola funcionan.

Consulta CONTRIBUTING.md para el flujo de trabajo y CHANGELOG.md para el historial de versiones.

Licencia

MIT

-
license - not tested
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
3Releases (12mo)
Commit activity

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

View all MCP Connectors

Latest Blog Posts

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/ManiaSacha/web-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server