mcp-anything
mcp-anything
Один MCP-сервер, который может обнаруживать и вызывать (почти) любой MCP-сервер в мире.
mcp-anything — это мета-MCP-сервер: вместо настройки десятков MCP-серверов в вашем хосте (Claude Desktop, Claude Code, Cursor, ...) вы настраиваете ровно один. Он индексирует официальный реестр MCP локально и предоставляет пять небольших мета-инструментов, которые позволяют модели искать серверы, просматривать их и вызывать их инструменты на лету — без загрузки тысяч схем инструментов в окно контекста.
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)Зачем
Обнаружение: существуют тысячи MCP-серверов; ваш хост знает только те, которые вы настроили вручную.
Контекст: загрузка многих серверов сжигает окно контекста. Мета-инструменты сохраняют постоянную стоимость — модель ищет возможности в два этапа (поиск → просмотр → вызов), тот же паттерн, что использует Tool Search от Anthropic.
Одна конфигурация: одна запись в конфигурации вашего MCP-клиента вместо одной на сервер.
Быстрый старт
# 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 / другие хосты
{
"mcpServers": {
"anything": {
"command": "npx",
"args": ["-y", "mcp-anything", "serve"]
}
}
}Затем просто попросите вашу модель, например: «найди MCP-сервер, который может запрашивать Postgres, и перечисли его инструменты» — она сама воспользуется мета-инструментами.
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)Мета-инструменты
Инструмент | Что он делает |
| Поиск по ключевым словам (BM25 + нечёткий) по индексированному реестру. Возвращает кандидатов с вердиктом о возможности подключения. |
| Полные метаданные реестра: транспорты, пакеты, требуемые переменные окружения / секреты, вердикт политики. |
| Подключается вживую (согласно политике) и перечисляет фактические инструменты сервера с JSON-схемами. |
| Выполняет один инструмент на нижестоящем сервере. Сессии объединяются в пул и переиспользуются. |
| Принудительное обновление индекса (в противном случае автоматическое обновление по истечении TTL). |
Модель безопасности
Подключение LLM к произвольным серверам из публичного реестра по умолчанию опасно. mcp-anything поставляется с консервативными настройками по умолчанию и делает каждое ослабление явным:
Удалённые серверы (streamable-http / sse): разрешены, но частные/loopback/link-local адреса (включая облачные метаданные, такие как
169.254.169.254) и обычныйhttp:блокируются — защита SSRF для записей реестра, указывающих в вашу сеть. Отключите с помощьюremote.allowPrivateNetwork(полезно только для локальной разработки).Stdio-серверы (запуск процессов
npx/uvx): отключены по умолчанию. Запуск пакета из публичного реестра — это произвольное выполнение кода на вашей машине. Включайте только с явным списком разрешённых пакетов.Секреты: ключи API никогда не индексируются и не передаются модели. Вы сопоставляете их для каждого сервера в своей конфигурации; они внедряются при подключении (заголовки для remote, env для stdio).
Недоверенный вывод: результаты и описания инструментов с нижестоящих серверов помечаются как сторонние данные, чтобы модель обрабатывала их как данные, а не как инструкции. Это снижает риск инъекции в промпт, но не устраняет его — см. SECURITY.md.
Лимиты: таймауты подключения/вызова, усечение размера ответа, ограниченный пул сессий.
Конфигурация
~/.config/mcp-anything/config.json (или --config <путь>, или 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
}
}
}Каждое поле необязательно; значения по умолчанию выше (без примеров заголовков/env) — это то, что вы получаете при отсутствии конфигурации вообще. registryUrl принимает любой реестр, реализующий официальный REST API — включая частный/самостоятельно размещённый.
Источники индекса — расширение охвата
sources управляет тем, какая часть экосистемы индексируется:
Источник | Масштаб | Что добавляет |
| тысячи | Модерируемые записи с самыми богатыми метаданными (транспорты, переменные окружения, версии) |
| ~22k | Широкий каталог + звёзды GitHub и количество загрузок (влияет на ранжирование) |
| ~67k тегированных пакетов | Самый большой сырой пул stdio-серверов с ежемесячными загрузками |
| ~75k | Самый широкий индекс (адаптер best-effort) |
{ "sources": ["official", "pulsemcp", "npm"] }Записи, встречающиеся в нескольких каталогах, дедуплицируются по нормализованному URL репозитория и идентификатору пакета; наиболее доверенный источник получает идентичность, метаданные дополняются из остальных, а звёзды/загрузки накапливаются. Ранжирование затем сочетает релевантность BM25 с логарифмическим бустом популярности (и бонусом для записей официального реестра), поэтому search_mcp_servers показывает поддерживаемую реализацию возможности, а не сотый заброшенный клон. qualityFilter (включён по умолчанию) отбрасывает записи без возможности подключения и без полезного описания — при широких источниках больше лучше только если мусор не попадает в топ-5. Сбой источника обрабатывается корректно: синхронизация сохраняет то, что вернули другие источники, и сообщает об ошибке.
Заметки по дизайну
Лексический поиск, а не эмбеддинги. Полностью локально, нулевая стоимость API, нет этапа построения индекса — и для поиска инструментов поиск по ключевым словам с нечётким сопоставлением на практике работает сопоставимо (Tool Search от Anthropic сделал тот же выбор с BM25/регулярными выражениями).
Сессии, а не вызовы без состояния. MCP ориентирован на сессии (рукопожатие инициализации, согласование возможностей). Соединения с нижестоящими серверами объединяются в пул и переиспользуются между вызовами с вытеснением LRU.
Корректная деградация. Если реестр недоступен, последний синхронизированный кэш продолжает работать.
Предшественники и позиционирование
Эта область активна: MetaMCP и другие шлюзы агрегируют серверы, которые вы настраиваете; Composio's Rube маршрутизирует в свой собственный курируемый каталог; хосты развивают собственный поиск инструментов. Ниша mcp-anything — это открытая комбинация: публичный реестр как каталог, локально-ориентированный единый бинарник и явная политика безопасности — без облачного аккаунта, без привязки к курированию, с возможностью самостоятельного размещения против частного реестра.
Дорожная карта
Живые проверки работоспособности и сигналы качества результатов в ранжировании
Поиск по инструментам (не только по серверам) с индексацией
tools/listпопулярных серверовПроброс OAuth-потока для удалённых серверов, которые этого требуют
Песочница контейнеров/Wasm для stdio-серверов как альтернатива списку разрешённых
Несколько реестров с федерацией и дедупликацией
Опциональный режим обслуживания streamable-http (для общего/командного развёртывания)
Разработка
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 serverСм. CONTRIBUTING.md. Лицензия 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