mcp-anything
mcp-anything
Un servidor MCP que puede descubrir y llamar a (casi) cualquier servidor MCP del mundo.
mcp-anything es un servidor MCP meta: en lugar de configurar docenas de servidores MCP en tu host (Claude Desktop, Claude Code, Cursor, ...), configuras exactamente uno. Indexa el registro oficial de MCP localmente y expone cinco meta-herramientas pequeñas que permiten al modelo buscar servidores, inspeccionarlos y llamar a sus herramientas sobre la marcha, sin cargar nunca miles de esquemas de herramientas en la ventana de contexto.
Host / LLM
│ (5 meta-tools, constant context cost)
▼
mcp-anything ──── local BM25 index ◄──┬── official MCP registry (moderated, richest metadata)
│ (cross-source dedupe, ├── PulseMCP (~22k servers, stars & downloads)
│ popularity-boosted ├── npm (~67k packages tagged mcp)
│ ranking) └── Glama (~75k indexed servers)
│
│ security policy: SSRF guard · stdio allowlist · secrets injection · timeouts
▼
downstream MCP servers (streamable-http / sse / stdio via npx·uvx)Por qué
Descubrimiento: existen miles de servidores MCP; tu host solo conoce los que configuraste manualmente.
Contexto: cargar muchos servidores consume tu ventana de contexto. Las meta-herramientas mantienen el costo constante: el modelo busca capacidades en dos fases (buscar → inspeccionar → llamar), el mismo patrón que usa la búsqueda de herramientas de Anthropic.
Una configuración: una sola entrada en la configuración de tu cliente MCP en lugar de una por servidor.
Inicio rápido
# Run directly (Node >= 20):
npx mcp-anything sync # first-time index download (~few seconds)
npx mcp-anything serve # start the meta-MCP server on stdioClaude Code
claude mcp add anything -- npx -y mcp-anything serveClaude Desktop / otros hosts
{
"mcpServers": {
"anything": {
"command": "npx",
"args": ["-y", "mcp-anything", "serve"]
}
}
}Luego solo pídele a tu modelo cosas como "encuentra un servidor MCP que pueda consultar Postgres y lista sus herramientas" — usará las meta-herramientas por sí mismo.
CLI
mcp-anything sync # refresh the registry index
mcp-anything search "weather" # search the index from your terminal
mcp-anything serve # stdio MCP server (default command)Las meta-herramientas
Herramienta | Qué hace |
| Búsqueda por palabras clave (BM25 + difusa) sobre el registro indexado. Devuelve candidatos con un veredicto de conectividad. |
| Metadatos completos del registro: transportes, paquetes, variables de entorno / secretos requeridos, veredicto de política. |
| Se conecta en vivo (según la política) y lista las herramientas reales del servidor con esquemas JSON. |
| Ejecuta una herramienta en un servidor downstream. Las sesiones se agrupan y reutilizan. |
| Fuerza una actualización del índice (de lo contrario, se actualiza automáticamente al expirar el TTL). |
Modelo de seguridad
Conectar un LLM a servidores arbitrarios de un registro público es peligroso por defecto. mcp-anything viene con valores predeterminados conservadores y hace explícita cada relajación:
Servidores remotos (streamable-http / sse): permitidos, pero las direcciones privadas/loopback/link-local (incluidos los endpoints de metadatos de la nube como
169.254.169.254) yhttp:simple están bloqueados: una protección SSRF para entradas del registro que apuntan a tu red. Puedes desactivarla conremote.allowPrivateNetwork(útil solo para desarrollo local).Servidores stdio (que lanzan procesos
npx/uvx): deshabilitados por defecto. Ejecutar un paquete de un registro público es ejecución de código arbitrario en tu máquina. Actívalo solo con una lista blanca explícita por paquete.Secretos: las claves de API nunca se indexan ni se exponen al modelo. Las asignas por servidor en tu configuración; se inyectan al momento de la conexión (cabeceras para remoto, env para stdio).
Salida no confiable: los resultados y las descripciones de herramientas de servidores downstream se etiquetan como datos de terceros para que el modelo los trate como datos, no como instrucciones. Esto reduce el riesgo de inyección de prompts; no lo elimina — consulta SECURITY.md.
Límites: tiempos de espera de conexión/llamada, truncamiento del tamaño de la respuesta, grupo de sesiones acotado.
Configuración
~/.config/mcp-anything/config.json (o --config <ruta>, o MCP_ANYTHING_CONFIG):
{
"registryUrl": "https://registry.modelcontextprotocol.io",
"sources": ["official"],
"qualityFilter": true,
"cacheTtlHours": 24,
"maxServers": 10000,
"policy": {
"remote": {
"enabled": true,
"allowPrivateNetwork": false,
"headers": {
"io.github.example/github": { "Authorization": "Bearer ghp_..." }
}
},
"stdio": {
"enabled": false,
"allowPackages": ["@modelcontextprotocol/server-filesystem"],
"env": {
"io.github.example/postgres": { "DATABASE_URL": "postgres://..." }
}
},
"limits": {
"callTimeoutMs": 60000,
"connectTimeoutMs": 20000,
"maxSessions": 8,
"maxResultChars": 100000
}
}
}Cada campo es opcional; los valores predeterminados anteriores (menos los ejemplos de cabeceras/env) son lo que obtienes sin configuración alguna. registryUrl acepta cualquier registro que implemente la API REST oficial, incluido uno privado/autohospedado.
Fuentes de índice — ampliando el alcance
sources controla cuánto del ecosistema se indexa:
Fuente | Escala | Qué añade |
| miles | Entradas moderadas con los metadatos más ricos (transportes, variables de entorno, versiones) |
| ~22k | Catálogo amplio + estrellas de GitHub y recuentos de descargas (alimentan el ranking) |
| ~67k paquetes etiquetados | El mayor grupo bruto de servidores stdio, con descargas mensuales |
| ~75k | El índice más amplio (adaptador de mejor esfuerzo) |
{ "sources": ["official", "pulsemcp", "npm"] }Las entradas que aparecen en varios catálogos se deduplican por URL de repositorio normalizada e identificador de paquete; la fuente más confiable gana la identidad, los metadatos se completan desde las demás, y las estrellas/descargas se acumulan. El ranking combina entonces la relevancia BM25 con un impulso de popularidad logarítmico (y una bonificación para entradas del registro oficial), de modo que search_mcp_servers muestra la implementación mantenida de una capacidad en lugar del clon abandonado número cien. qualityFilter (activado por defecto) descarta entradas sin forma de conectarse y sin descripción utilizable — con fuentes amplias, más solo es mejor si la basura se mantiene fuera del top-5. Una fuente que falla se degrada con elegancia: la sincronización conserva lo que devolvieron las otras fuentes e informa del fallo.
Notas de diseño
Búsqueda léxica, no embeddings. Totalmente local, costo de API cero, sin paso de construcción de índice — y para el descubrimiento de herramientas, la búsqueda por palabras clave con coincidencia difusa funciona de manera comparable en la práctica (la búsqueda de herramientas de Anthropic tomó la misma decisión con BM25/regex).
Sesiones, no llamadas sin estado. MCP está orientado a sesiones (handshake de inicialización, negociación de capacidades). Las conexiones downstream se agrupan y reutilizan entre llamadas con evicción LRU.
Degradación elegante. Si el registro no está disponible, la caché de la última sincronización sigue funcionando.
Trabajo previo y posicionamiento
Este espacio está activo: MetaMCP y otras pasarelas agregan servidores que configuras; Rube de Composio enruta a su propio catálogo curado; los hosts están incorporando búsqueda nativa de herramientas. El nicho de mcp-anything es la combinación abierta: el registro público como catálogo, un binario único local-primero y una política de seguridad explícita — sin cuenta en la nube, sin bloqueo de curación, autohospedable contra un registro privado.
Hoja de ruta
Comprobaciones de salud en vivo y señales de calidad de resultados en el ranking
Búsqueda por herramienta (no solo por servidor) indexando
tools/listde servidores popularesPaso de flujo OAuth para servidores remotos que lo requieran
Sandboxing de contenedor/Wasm para servidores stdio como alternativa a la lista blanca
Múltiples registros con federación y deduplicación
Modo de servicio streamable-http opcional (para despliegue compartido/equipo)
Desarrollo
npm install
npm test # unit + end-to-end (mock registry + real downstream MCP server)
npm run typecheck
npm run build
node scripts/smoke.mjs # spawns the built CLI as a real stdio MCP serverConsulta CONTRIBUTING.md. Licencia MIT.
This server cannot be installed
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
Find and call the right MCP server for any task - pay per use, no install.
Search and browse every MCP server in the Model Context Protocol registry.
MCP Hub: AI service discovery, per-user OAuth, and multi-service workflow orchestration
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/Dror-Bengal/mcp-anything'
If you have feedback or need assistance with the MCP directory API, please join our Discord server