Skip to main content
Glama

My Cool Proxy

NPM Version

My Cool Proxy — это серверный шлюз для Model Context Protocol (MCP), который пытается решить множество кажущихся проблем MCP в его нынешнем виде. В произвольном порядке это:

  • Описания инструментов раздувают контекстное окно: Это проблема того, как большинство агентов интегрируются с MCP. Вместо реализации абстракций, позволяющих загружать инструменты по мере необходимости, большинство приложений разом помещают все MCP-инструменты в контекст. Чтобы смягчить это, My Cool Proxy оборачивает инструменты в интерпретатор Lua и предоставляет инструменты более высокого уровня для постепенного обнаружения инструментов. См. раздел Прогрессивное раскрытие для получения дополнительной информации.

  • Результаты работы инструментов раздувают контекстное окно, почему бы не использовать Bash? Вместо использования MCP-инструментов агенты могли бы просто выполнять команды терминала и использовать bash для фильтрации результатов — однако это означает, что агенту чаще разрешаются действия с высоким риском. Например, вы можете разрешить агенту использовать CLI gh для взаимодействия с GitHub, но тогда он также сможет выполнять с помощью CLI gh изменяющие или разрушительные операции. С GitHub MCP Server вместо этого можно без труда ограничить доступ только инструментами чтения. MCP позволяет точно контролировать, к каким инструментам имеют доступ агенты. Чтобы помочь с этим, My Cool Proxy позволяет дополнительно фильтровать инструменты, доступные агентам.

  • Большинство возможностей MCP не поддерживаются: К сожалению, большинство приложений предоставляют агентам только MCP-инструменты, игнорируя другие возможности клиента и сервера, предлагаемые протоколом. My Cool Proxy стремится быть общим уровнем абстракции для как можно большего числа возможностей протокола, что позволяет разработчикам использовать полные возможности MCP в любом MCP-совместимом приложении. Это работа в процессе — см. таблицу поддержки функций для подробностей.

  • Управление файлом конфигурации для нескольких агентов — это боль: Если вы используете более одного MCP-совместимого приложения, вы быстро столкнетесь с проблемами синхронизации конфигурации MCP-сервера между ними. My Cool Proxy решает эту проблему, выступая в качестве единой точки интеграции для каждого используемого вами сервера, сокращая количество серверов, которые нужно синхронизировать, до одного.

Быстрый старт

0. Установка

Установите его глобально, чтобы использовать как CLI-инструмент:

npm install -g @karashiiro/my-cool-proxy

Или запустите его напрямую через npx:

npx @karashiiro/my-cool-proxy

1. Настройка

Шлюз автоматически создает конфигурацию по умолчанию при первом запуске. Просто запустите его один раз, чтобы сгенерировать файл конфигурации:

my-cool-proxy  # Creates config and starts (with no servers)

# Find your config location
my-cool-proxy --config-path

Затем отредактируйте конфигурацию, чтобы добавить свои MCP-серверы.

Пример структуры конфигурации:

{
  "port": 3000,
  "host": "localhost",
  "mcpClients": {
    "my-server": {
      "type": "http",
      "url": "https://example.com/mcp"
    }
  }
}

Или скопируйте пример конфигурации для более полной отправной точки.

2. Запуск

# If installed globally
my-cool-proxy

# If running via npx
npx @karashiiro/my-cool-proxy

3. Подключение

Добавьте его в конфигурацию MCP-клиента, например, в Claude Desktop:

{
  "mcpServers": {
    "my-cool-proxy": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

4. Используйте

Попросите вашего агента выполнить задачу, с которой могут помочь ваши настроенные MCP-серверы, и наблюдайте за её выполнением!

Related MCP server: MCP Gateway

Прогрессивное раскрытие

Этот прокси действует как шлюз между агентами и несколькими MCP-серверами (Model Context Protocol). Вместо подключения к каждому MCP-серверу по отдельности агенты подключаются к этому единому прокси и получают доступ ко всем настроенным серверам через унифицированный интерфейс.

Агенты начинают с минимальными знаниями о том, какие серверы или инструменты доступны. Они постепенно наращивают контекст:

  1. Проверьте инструкции сервера — My Cool Proxy предварительно загружает небольшой промпт с краткими выдержками о настроенных серверах и инструментах, чтобы подготовить агента к их использованию.

  2. Вызовите list-servers — теперь в контексте агента есть имена и описания всех доступных MCP-серверов (например, "github", "slack", "database")

  3. Вызовите list-server-tools(server_name) — контекст агента расширяется, включая все имена и описания инструментов для этого конкретного сервера

  4. Вызовите tool-details(server_name, tool_name) — теперь в контексте агента есть полные схемы параметров, возвращаемые типы (если доступны) и примеры использования для конкретного инструмента

  5. Вызовите execute(lua_script) — имея полный контекст, агент может писать Lua-скрипты, которые вызывают обнаруженные инструменты

Вместо загрузки всех инструментов и их описаний в контекст заранее, это откладывает загрузку инструментов до тех пор, пока агент не решит, что эти инструменты нужны.

Объединение инструментов в цепочки с помощью Lua: Когда агент знает, какие инструменты существуют, он может составлять сложные многошаговые рабочие процессы в одном вызове execute(), экономя контекст от промежуточных результатов инструментов. Среда выполнения Lua предоставляет доступ ко всем обнаруженным серверам как к глобальным объектам, а инструменты можно вызывать как асинхронные функции.

Последовательное объединение инструментов в цепочку:

local raw_data = api_server.fetch({ id = 123 }):await()
local processed = processor.transform({ input = raw_data }):await()
result(processed)

Условная логика:

local status = checker.validate({}):await()
if status.ok then
  result(processor.run({}):await())
else
  result(error_handler.notify({ error = status.message }):await())
end

Итерация с циклами:

local results = {}
for i = 1, 5 do
  results[i] = worker.process({ index = i }):await()
end
result({ total = #results, data = results })

Gateway Skills

Gateway Skills — это реализация Agent Skills в My Cool Proxy — переиспользуемые контекстные документы, которые агенты могут загружать как MCP Resources. Когда эта функция включена, агенты могут:

  • Обнаруживать навыки с помощью автоматически внедряемой подсказки в инструкциях сервера шлюза (или через встроенную функцию Lua _gateway.list_resources(); ищите URI gw-skill://)

  • Читать содержимое навыков через встроенную функцию Lua _gateway.read_resource()

  • Выполнять скрипты навыков через встроенную функцию Lua _gateway.invoke_skill_script()

Хотя многие агенты уже реализуют собственные системы навыков, эти системы сильно фрагментированы, и сложно переиспользовать одни и те же навыки в нескольких отдельных приложениях агентов. Некоторые системы, такие как skills.sh, решают эту проблему явным копированием навыков между приложениями, а My Cool Proxy решает её путём централизации всех навыков в собственной системе управления навыками и предоставления их через MCP. Чтобы отличать эти навыки от существующих систем навыков, My Cool Proxy называет их «Gateway Skills».

Gateway Skills отключены по умолчанию, поскольку они могут конфликтовать с существующими системами навыков, встроенными в вашего агента. См. Руководство по настройке для получения информации о параметрах настройки.

Для более глубокого обсуждения дизайна, почему Gateway Skills реализованы именно так, обратитесь к этому разделу в документации по дизайну.

Веб-панель

My Cool Proxy включает опциональную веб-панель для мониторинга активности шлюза. Когда она включена, она работает на отдельном порту и предоставляет:

  • История выполнения — Просматривайте все выполнения Lua-скриптов с подсветкой синтаксиса и результатами

  • Журнал вызовов инструментов — Смотрите, какие MCP-инструменты вызывались во время каждого выполнения

  • Мониторинг сессий — Просматривайте активные сессии, подключенные серверы и возможности

  • Обновления в реальном времени — Новые выполнения передаются на панель через WebSocket

Включите её, добавив раздел dashboard в вашу конфигурацию:

{
  "dashboard": {
    "port": 3100,
    "host": "localhost"
  }
}

Затем откройте http://localhost:3100 в вашем браузере. Подробности см. в Руководстве по настройке.

Конфигурация

Полную справочную информацию о конфигурации см. в Руководстве по настройке.

Таблица поддержки функций MCP

Возможность

Поддерживается?

Подробности

Инструменты

✅

My Cool Proxy ожидает, что инструменты поддерживаются как минимум. К счастью, всё, что поддерживает MCP, поддерживает инструменты.

Промпты

✅

My Cool Proxy пересылает промпты из ваших MCP-серверов подключённому клиенту и предоставляет встроенные функции Lua _gateway.get_prompt() и _gateway.list_prompts() для загрузки их агентами в скриптах.

Ресурсы

✅

My Cool Proxy пересылает ресурсы из ваших MCP-серверов подключённому клиенту и предоставляет встроенные функции Lua _gateway.read_resource() и _gateway.list_resources() для загрузки их агентами в скриптах.

Инструкции сервера

✅

My Cool Proxy загружает фрагменты инструкций подключённых MCP-серверов в свои собственные серверные инструкции, а также отправляет полные копии через инструмент list-servers при вызове.

Уведомления об обнаружении

✅

My Cool Proxy прослушивает уведомления об изменении инструментов/промптов/ресурсов подключённых MCP-серверов, чтобы автоматически обновлять свои внутренние реестры, что отражается в последующих вызовах инструментов.

Автодополнение

✅

Автодополнение аргументов промптов и переменных шаблонов ресурсов пересылается от вышестоящих серверов подключённому клиенту. Агенты также могут вызывать _gateway.complete() в Lua-скриптах, чтобы выяснить допустимые значения для переменных шаблонов ресурсов и аргументов промптов.

Логирование

✅

My Cool Proxy пересылает уведомления логирования подключённому клиенту, а также записывает их сам.

Корни

✅

Запросы roots/list пересылаются от вышестоящих серверов нижестоящему клиенту. Уведомления notifications/roots/list_changed от нижестоящего клиента рассылаются всем вышестоящим серверам. Когда активна прослойка семплирования, первый допустимый локальный корень используется в качестве рабочей директории ACP-агента.

Семплирование

✅

My Cool Proxy поддерживает создание прослойки для поддержки семплирования через ACP, хотя по умолчанию эта функция отключена. Дополнительную информацию см. в документации по конфигурации.

Элиситация

⚠️

Запросы элиситации (в форме и URL-режиме) проксируются от вышестоящих серверов подключённому клиенту. Для клиентов, которые не поддерживают элиситацию нативно, прослойка (в настоящее время) недоступна (в отличие от семплирования, которое может быть реализовано через ACP).

Прогресс

✅

Уведомления о прогрессе от вышестоящих серверов пересылаются подключённому клиенту. Когда Lua-скрипт вызывает несколько инструментов параллельно, их прогресс агрегируется (суммируется) в единый поток.

Задачи

⚠️

Поддерживается вызов инструментов, поддерживающих задачи, но без использования обновлений статуса для чего-либо интересного. Задачи семплирования/элиситации в настоящее время не поддерживаются.

OAuth 2.0

❌

Запросы аутентификации OAuth 2.0 пока не поддерживаются (но будут)

MCP Apps

❌

MCP Apps пока не поддерживаются (но будут).

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A meta-server that aggregates multiple MCP servers into a single interface, reducing token usage by 98%+ through progressive tool discovery and direct code execution that processes data between tools without consuming context window space.
    16 npm
    10
    Apache 2.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    A universal gateway that aggregates multiple MCP servers into a single interface while providing advanced token optimization, result filtering, and automated summarization. It enables efficient management of large tool catalogs and reduces context usage by up to 95% for major AI clients.
    33 npm
    16
    MIT
  • F
    license
    A
    quality
    A
    maintenance
    A multiplexing gateway that aggregates multiple MCP servers into a single port, significantly reducing context token usage through a Meta-MCP discovery system. It enables dynamic tool discovery and invocation across various transport protocols including stdio, HTTP, and SSE.
    15
    78
    -
  • A
    license
    A
    quality
    B
    maintenance
    A single MCP server gateway that reduces context bloat by providing progressive tool discovery and invocation, dynamically provisioning downstream servers on demand.
    26
    113 PyPI
    21
    MIT