Skip to main content
Glama

MCP Stdio Wrapper

CI CodeQL OpenSSF Scorecard Publish License: MIT GitHub stars

MCP Stdio Wrapper — это небольшой MCP-сервер, который позволяет одному MCP-клиенту запускать и проверять другой stdio MCP-сервер по требованию.

Его задача — устранить болезненный цикл разработки MCP: некоторые популярные MCP-хосты кэшируют процесс реального сервера, поэтому после каждого изменения кода вам приходится обновлять окно или перезапускать хост расширений только для того, чтобы провести дымовое тестирование изменений. Эта обертка располагается перед реальным целевым сервером и предоставляет вашему агенту стабильный мост для повторных дымовых тестов, пока целевая реализация продолжает меняться под ним.

Зачем это нужно

Используйте этот проект, если:

  • вы активно разрабатываете stdio MCP-сервер

  • ваш основной MCP-хост не выполняет надежную перезагрузку целевого сервера после каждого изменения

  • вы все еще хотите, чтобы агент перечислял инструменты, вызывал их, читал ресурсы и проверял промпты в процессе разработки

Этот проект намеренно ограничен. Он предназначен для локальной разработки и дымового тестирования, а не для проксирования производственного трафика.

Обертка также предоставляет встроенные руководства, которые агенты могут обнаружить напрямую:

  • ресурс: wrapper://how-to-use

  • промпт: tool_usage_guide

Related MCP server: Multi MCP

Как это работает

Обертка поддерживает два режима.

Инструменты для разовых операций (one-shot):

  • stdio_mcp_list_tools

  • stdio_mcp_call_tool

  • stdio_mcp_list_resources

  • stdio_mcp_read_resource

  • stdio_mcp_list_prompts

  • stdio_mcp_get_prompt

Каждый вызов моста для разовой операции:

  1. запускает целевой stdio MCP-сервер

  2. выполняет одну MCP-операцию

  3. возвращает результат

  4. закрывает целевой процесс

Дополнительные инструменты сессии:

  • stdio_mcp_open_session

  • stdio_mcp_get_session

  • stdio_mcp_close_session

  • stdio_mcp_session_list_tools

  • stdio_mcp_session_call_tool

  • stdio_mcp_session_list_resources

  • stdio_mcp_session_read_resource

  • stdio_mcp_session_list_prompts

  • stdio_mcp_session_get_prompt

Это означает:

  • чистый целевой процесс для каждого дымового теста

  • возможность явной кратковременной сессии для многошаговой проверки

  • отсутствие скрытого кэширования

  • упрощенная отладка, так как stderr целевого процесса выводится при сбое

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

Клонируйте репозиторий и установите зависимости:

nvm use
npm install

Запустите обертку:

npm start

Опубликованный пакет также можно запустить напрямую с помощью:

npx mcp-stdio-wrapper

Пакет опубликован по адресу https://www.npmjs.com/package/mcp-stdio-wrapper.

Этот репозиторий настроен для доверенной публикации npm из GitHub Actions. См. Контрольный список публикации для последовательности начальной публикации и передачи OIDC доверенной публикации.

Направьте ваш основной MCP-клиент на эту обертку, затем используйте один из инструментов моста с входными данными запуска, например:

{
  "command": "node",
  "args": ["C:\\path\\to\\your-mcp\\dist\\index.js"],
  "cwd": "C:\\path\\to\\your-mcp",
  "inheritParentEnv": true,
  "env": {
    "EXAMPLE_ENV": "value"
  },
  "startupTimeoutMs": 30000,
  "operationTimeoutMs": 30000
}

Затем попросите вашего агента:

  • перечислить инструменты с реального целевого сервера

  • вызывать один целевой инструмент после каждого изменения кода

  • проверять чтение ресурсов или промпты

Используйте режим разовых операций для начальной проверки и небольших вызовов без сохранения состояния. Если цель возвращает дескрипторы в стиле jobId, ожидает сохранения состояния в памяти между вызовами или просто имеет долгий запуск, сначала откройте явную сессию, а затем используйте инструменты stdio_mcp_session_* перед ее закрытием.

Поверхность инструментов

Общие поля запуска:

  • command: целевой исполняемый файл

  • args: аргументы целевой команды

  • cwd: необязательная рабочая директория цели

  • inheritParentEnv: если true, объединяет переменные окружения процесса обертки с запуском цели

  • env: дополнительные переменные окружения цели

  • startupTimeoutMs: необязательный таймаут запуска и инициализации MCP для разовой операции

  • operationTimeoutMs: необязательный таймаут операции для разовой операции

  • timeoutMs: устаревший ярлык для обоих этапов разовой операции; инструменты сессии все еще используют timeoutMs

Операции моста:

  • stdio_mcp_list_tools: проверка целевых инструментов

  • stdio_mcp_call_tool: вызов одного целевого инструмента

  • stdio_mcp_list_resources: проверка целевых ресурсов

  • stdio_mcp_read_resource: чтение одного целевого ресурса

  • stdio_mcp_list_prompts: проверка целевых промптов

  • stdio_mcp_get_prompt: получение определения одного целевого промпта

Операции сессии:

  • stdio_mcp_open_session: запуск одного целевого процесса и поддержание его работы для нескольких операций

  • stdio_mcp_get_session: проверка диагностики сессии, такой как статус, временные метки, pid, код выхода и хвост stderr

  • stdio_mcp_close_session: закрытие активной или завершенной сессии и удаление ее записи

  • stdio_mcp_session_list_tools: проверка инструментов через существующую сессию

  • stdio_mcp_session_call_tool: вызов одного целевого инструмента через существующую сессию

  • stdio_mcp_session_list_resources: проверка ресурсов через существующую сессию

  • stdio_mcp_session_read_resource: чтение одного целевого ресурса через существующую сессию

  • stdio_mcp_session_list_prompts: проверка промптов через существующую сессию

  • stdio_mcp_session_get_prompt: получение определения одного целевого промпта через существующую сессию

Руководства обертки:

  • wrapper://how-to-use: текстовое руководство по использованию

  • tool_usage_guide: форма промпта с теми же инструкциями

Режим сессии лучше подходит, когда:

  • цель возвращает отложенные дескрипторы, такие как jobId

  • последующие вызовы должны попадать в тот же активный целевой процесс

  • запуск цели достаточно затратен, чтобы его повторение скрывало реальный цикл обратной связи

Заметки о безопасности

  • Эта обертка запускает произвольные команды, предоставленные вызывающей стороной.

  • Относитесь к аргументам запуска и переменным окружения как к конфиденциальным данным.

  • Используйте только с доверенными целевыми командами и доверенными локальными проектами.

  • Не выставляйте это как общедоступный многопользовательский сервис.

Документация

История звезд

Star History Chart

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
1dResponse time
0dRelease cycle
2Releases (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 Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that enables programmatic management and monitoring of development servers through a unified interface and interactive TUI. It provides tools for process control, log streaming, and experimental browser automation via Playwright.
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A flexible proxy server that aggregates multiple backend MCP servers into a single interface using STDIO or SSE transports. It supports dynamic server management via an HTTP API and utilizes namespacing to prevent tool conflicts across connected services.
    3
    1
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A dynamic server that automatically discovers and executes scripts from a tools directory as isolated processes using the MCP protocol. It enables users to easily extend server capabilities by adding new tool scripts that communicate via JSON.
  • A
    license
    Not graded
    quality
    C
    maintenance
    A flexible MCP proxy server that connects to and routes between multiple backend MCP servers over STDIO or SSE, enabling dynamic management and namespacing of tools.
    111
    MIT

View all related MCP servers

Related MCP Connectors

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/JoshuaGreeff/mcp-stdio-wrapper'

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