mcp-funnel

mcp-funnel

chris-schraMIT
153 звёзд13 форков
MCP-серверы подключаются к AI-ассистентам по одному. Когда задач много, конфигурация становится громоздкой. mcp-funnel — прокси-слой, объединяющий несколько MCP-серверов в единую точку подключения. Вы управляете инструментами: решаете, какие из них видит ассистент, как они называются и из какого сервера берутся. Сервер написан на TypeScript и работает через стандартный ввод-вывод (stdio). Он подходит для любых MCP-клиентов: Claude Desktop, Continue.dev, VS Code и других. Не требует постоянного демона — запускается по требованию через npx. Код открыт под лицензией MIT — можно использовать в коммерческих проектах.

Установка

npx -y mcp-funnel

Характеристики

Общее

  • СтатусСообщество
  • Разработчикchris-schra
  • ЛицензияMIT

Технологии

  • Языки
    TypeScript
  • Транспорт
    stdio

Описание

Возможности

  • Объединяет несколько MCP-серверов в один endpoint
  • Фильтрует инструменты по имени или серверу-источнику
  • Переименовывает инструменты, чтобы избежать конфликтов имён
  • Настраивает доступ: скрывает или разрешает определённые инструменты
  • Принимает конфигурацию через JSON-файл или аргументы командной строки
  • Запускается через npx без предварительной установки
  • Работает с любыми MCP-клиентами, поддерживающими stdio
  • Не накладывает ограничений на количество подключаемых серверов

Как подключить

1. Установите mcp-funnel одной командой:

npx -y mcp-funnel

2. Создайте конфигурационный файл, например funnel.json, с описанием подключаемых серверов и правил фильтрации:

{ "servers": { "fs": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"] }, "git": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-git", "/home/user/projects/repo"] } }, "tools": { "fs": { "include": ["read_file", "write_file", "list_directory"], "rename": { "list_directory": "dir" } }, "git": { "include": ["status", "log", "commit"], "block": ["push", "pull"] } } }

В примере из сервера filesystem доступны три инструмента, причём list_directory переименован в dir. Из git-сервера видны только status, log и commit; push и pull заблокированы.

3. Добавьте прокси в настройки вашего MCP-клиента. Для Claude Desktop отредактируйте файл claude_desktop_config.json:

{ "mcpServers": { "funnel": { "command": "npx", "args": ["-y", "mcp-funnel", "--config", "./funnel.json"] } } }

4. Перезагрузите клиент. Теперь ассистент видит только настроенные инструменты, объединённые из двух серверов.

Примеры запросов

  • «Объедини сервер файловой системы и сервер Docker, оставив только инструменты для просмотра логов и списка контейнеров.»

  • «Переименуй инструмент execute из сервера shell в run_script, чтобы он не пересекался с execute из сервера database.»

  • «Создай конфигурацию, которая подключает три сервера, но скрывает все инструменты, кроме двух из каждого.»

  • «Покажи текущую конфигурацию прокси и список доступных инструментов.»

Технические детали

  • Язык: TypeScript
  • Транспорт: stdio
  • Лицензия: MIT
  • Совместимые клиенты: Claude Desktop, Continue.dev, VS Code, JetBrains и любые другие MCP-клиенты

Поделиться