Skip to main content
Glama

mcp-anything

CI npm License: MIT Node >= 20

Один 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 stdio

Claude Code

claude mcp add anything -- npx -y mcp-anything serve

Claude 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)

Мета-инструменты

Инструмент

Что он делает

search_mcp_servers

Поиск по ключевым словам (BM25 + нечёткий) по индексированному реестру. Возвращает кандидатов с вердиктом о возможности подключения.

describe_mcp_server

Полные метаданные реестра: транспорты, пакеты, требуемые переменные окружения / секреты, вердикт политики.

list_mcp_tools

Подключается вживую (согласно политике) и перечисляет фактические инструменты сервера с JSON-схемами.

call_mcp_tool

Выполняет один инструмент на нижестоящем сервере. Сессии объединяются в пул и переиспользуются.

sync_registry

Принудительное обновление индекса (в противном случае автоматическое обновление по истечении 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 управляет тем, какая часть экосистемы индексируется:

Источник

Масштаб

Что добавляет

official (по умолчанию)

тысячи

Модерируемые записи с самыми богатыми метаданными (транспорты, переменные окружения, версии)

pulsemcp

~22k

Широкий каталог + звёзды GitHub и количество загрузок (влияет на ранжирование)

npm

~67k тегированных пакетов

Самый большой сырой пул stdio-серверов с ежемесячными загрузками

glama

~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.

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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

  • 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

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/Dror-Bengal/mcp-anything'

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