mcp-прокси
- mcp-прокси
О
mcp-proxy
— это инструмент, позволяющий переключаться между транспортами сервера. Поддерживаются два режима:
- stdio в SSE/StreamableHTTP
- SSE в stdio
1. stdio в SSE/StreamableHTTP
Запустите прокси-сервер из stdio, который подключается к удаленному серверу SSE.
Этот режим позволяет клиентам, таким как Claude Desktop, взаимодействовать с удаленным сервером через SSE, даже если он изначально не поддерживается.
1.1 Конфигурация
Этот режим требует предоставления URL конечной точки SSE сервера MCP в качестве первого аргумента программы. Если сервер использует потоковый HTTP-транспорт, обязательно примените его на стороне mcp-proxy
, передав --transport=streamablehttp
.
Аргументы
Имя | Необходимый | Описание | Пример |
---|---|---|---|
command_or_url | Да | Конечная точка SSE сервера MCP для подключения | http://example.io/sse |
--headers | Нет | Заголовки, используемые для подключения SSE к серверу MCP | Авторизация «Предъявитель моего секретного токена доступа» |
--transport | Нет | Решает, какой транспортный протокол использовать при подключении к серверу MCP. Может быть 'sse' или 'streamablehttp' | потоковоеhttp |
Переменные среды
Имя | Необходимый | Описание | Пример |
---|---|---|---|
API_ACCESS_TOKEN | Нет | Можно использовать вместо --headers Authorization 'Bearer <API_ACCESS_TOKEN>' | ВАШ_ТОКЕН |
1.2 Пример использования
Предполагается, что mcp-proxy
запускается клиентом MCP, поэтому настройка должна быть выполнена соответствующим образом.
Для Claude Desktop запись конфигурации может выглядеть следующим образом:
2. SSE в stdio
Запустите прокси-сервер, предоставляющий доступ к серверу SSE, который подключается к локальному серверу stdio.
Это позволяет удаленно подключаться к локальному серверу stdio. mcp-proxy
открывает порт для прослушивания запросов SSE, создает локальный сервер stdio, который обрабатывает запросы MCP.
2.1 Конфигурация
Для этого режима необходимо задать аргумент --sse-port
. Аргумент --sse-host
можно задать для указания IP-адреса хоста, который будет прослушивать сервер SSE. Дополнительные переменные среды можно передать локальному серверу stdio с помощью аргумента --env
. Аргументы командной строки для локального сервера stdio необходимо передавать после разделителя --
.
Аргументы
Имя | Необходимый | Описание | Пример |
---|---|---|---|
command_or_url | Да | Команда для запуска сервера MCP stdio | uvx mcp-сервер-fetch |
--port | Нет, доступен случайный выбор | Порт сервера MCP для прослушивания | 8080 |
--host | Нет, по умолчанию 127.0.0.1 | IP-адрес хоста, который будет прослушивать сервер MCP | 0.0.0.0 |
--env | Нет | Дополнительные переменные среды для передачи на сервер MCP stdio. Можно использовать несколько раз. | ФУ БАР |
--cwd | Нет | Рабочий каталог для передачи в процесс сервера MCP stdio. | /тмп |
--pass-environment | Нет | Пройти через все переменные среды при создании сервера | --непроходная-среда |
--allow-origin | Нет | Разрешенные источники для сервера SSE. Можно использовать несколько раз. По умолчанию CORS не разрешен. | --allow-origin "*" |
--stateless | Нет | Включить режим без сохранения состояния для потоковых http-транспортов. Значение по умолчанию — False | --no-stateless |
--named-server NAME COMMAND_STRING | Нет | Определяет именованный сервер stdio. | --named-server fetch 'uvx mcp-server-fetch' |
--named-server-config FILE_PATH | Нет | Путь к JSON-файлу, определяющему именованные серверы stdio. | --named-server-config /path/to/servers.json |
--sse-port (устарело) | Нет, доступен случайный выбор | Порт сервера SSE для прослушивания | 8080 |
--sse-host (устарело) | Нет, по умолчанию 127.0.0.1 | IP-адрес хоста, который будет прослушивать сервер SSE. | 0.0.0.0 |
2.2 Пример использования
Чтобы запустить сервер mcp-proxy
, который прослушивает порт 8080 и подключается к локальному серверу MCP:
Именованные серверы
NAME
используется в URL-пути/servers/NAME/
.COMMAND_STRING
— команда для запуска сервера (например, «uvx mcp-server-fetch»).- Можно использовать многократно.
- Этот аргумент игнорируется, если используется
--named-server-config
.
FILE_PATH
— если указан, это единственный источник для именованных серверов, а аргументы CLI--named-server
игнорируются.
Если указан сервер по умолчанию (аргумент command_or_url
без --named-server
или --named-server-config
), он будет доступен по корневым путям (например, http://127.0.0.1:8080/sse
).
Именованные серверы (определенные как --named-server
или --named-server-config
) будут доступны в /servers/<server-name>/
(например, http://127.0.0.1:8080/servers/fetch1/sse
). Конечная точка /status
предоставляет глобальный статус.
Формат файла конфигурации JSON для --named-server-config
:
Файл JSON должен иметь следующую структуру:
mcpServers
: словарь, где каждый ключ — это имя сервера (используется в пути URL, например,/servers/fetch/
), а значение — это объект, определяющий сервер.command
: (обязательно) Команда для выполнения на сервере stdio.args
: (Необязательно) Список аргументов для команды. По умолчанию пустой список.enabled
: (Необязательно) Еслиfalse
, это определение сервера будет пропущено. По умолчаниюtrue
.timeout
иtransportType
: эти поля присутствуют в стандартных конфигурациях клиента MCP, но в настоящее время игнорируютсяmcp-proxy
при загрузке именованных серверов. Тип транспорта неявно "stdio".
Установка
Установка через Smithery
Чтобы автоматически установить MCP Proxy для Claude Desktop через Smithery :
Установка через PyPI
Стабильная версия пакета доступна в репозитории PyPI. Установить ее можно с помощью следующей команды:
После установки вы можете запустить сервер с помощью команды mcp-proxy
. Смотрите параметры конфигурации для каждого режима выше.
Установка через репозиторий Github (последняя версия)
Последнюю версию пакета можно установить из репозитория git с помощью следующей команды:
[!ПРИМЕЧАНИЕ] Если вы уже установили сервер, вы можете обновить его с помощью команды
uv tool upgrade --reinstall
.
[!ПРИМЕЧАНИЕ] Если вы хотите удалить сервер, используйте команду
uv tool uninstall mcp-proxy
.
Установка как контейнера
Начиная с версии 0.3.2, можно извлечь и запустить соответствующий образ контейнера:
Поиск неисправностей
- Проблема : Claude Desktop не может запустить сервер: код ENOENT в журналахРешение : Попробуйте использовать полный путь к бинарнику. Для этого откройте терминал и выполните команду
where mcp-proxy
(macOS, Linux) илиwhere.exe mcp-proxy
(Windows). Затем используйте выходной путь в качестве значения атрибута 'command':
Расширение изображения контейнера
Вы можете расширить образ контейнера mcp-proxy
, включив в него дополнительные исполняемые файлы. Например, uv
не включен по умолчанию, но вы можете создать с его помощью собственный образ:
Настройка Docker Compose
С помощью пользовательского Dockerfile вы можете определить службу в файле Docker Compose:
[!ПРИМЕЧАНИЕ] Не забудьте установить аргумент
--pass-environment
, иначе вы получите ошибку «Интерпретатор не найден в управляемых установках или пути поиска»
Аргументы командной строки
Пример файла конфигурации
Тестирование
Проверьте сервер mcp-proxy
, запустив его с сервером mcp-server-fetch
. Вы можете использовать инструмент инспектора для проверки целевого сервера.
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Обеспечивает взаимодействие с удаленными серверами MCP с использованием транспорта SSE вместо STDIO для расширения возможностей связи.
- О
- stdio в SSE/StreamableHTTP
- SSE в stdio
- Именованные серверы
- Установка
- Расширение изображения контейнера
- Настройка Docker Compose
- Аргументы командной строки
- Тестирование
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA simple MCP server that facilitates website fetching through a configurable server platform using stdio or SSE transport, allowing integration with tools like Cursor for streamlined access.Last updated -223PythonMIT License
- -securityFlicense-qualityMCP server enabling LLMs to perform browser tasks via SSE transport, allowing clients like Cursor.ai and Claude to open websites and interact with web content through natural language commands.Last updated -
- -securityFlicense-qualityA remote MCP server implementation for Cloudflare that uses server-sent events (SSE) to enable Model Control Protocol communication.Last updated -TypeScript
- AsecurityAlicenseAqualityThe most powerful MCP server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins 😏.Last updated -263GoMIT License