proxy mcp
- proxy mcp
Acerca de
El mcp-proxy
es una herramienta que permite cambiar entre transportes de servidor. Se admiten dos modos:
- stdio a SSE/StreamableHTTP
- SSE a stdio
1. stdio a SSE/StreamableHTTP
Ejecute un servidor proxy desde stdio que se conecte a un servidor SSE remoto.
Este modo permite que clientes como Claude Desktop se comuniquen con un servidor remoto a través de SSE aunque no sea compatible de forma nativa.
1.1 Configuración
Este modo requiere proporcionar la URL del punto final SSE del servidor MCP como primer argumento del programa. Si el servidor utiliza el transporte HTTP Streamable, asegúrese de aplicarlo en el mcp-proxy
mediante --transport=streamablehttp
.
Argumentos
Nombre | Requerido | Descripción | Ejemplo |
---|---|---|---|
command_or_url | Sí | El punto final SSE del servidor MCP al que conectarse | http://ejemplo.io/sse |
--headers | No | Encabezados a utilizar para la conexión SSE del servidor MCP | Autorización 'Portador de mi token de acceso secreto' |
--transport | No | Decide qué protocolo de transporte usar al conectarse a un servidor MCP. Puede ser "sse" o "streamablehttp". | http transmisible |
Variables de entorno
Nombre | Requerido | Descripción | Ejemplo |
---|---|---|---|
API_ACCESS_TOKEN | No | Se puede utilizar en lugar de --headers Authorization 'Bearer <API_ACCESS_TOKEN>' | TU_TOKEN |
1.2 Ejemplo de uso
Se supone que mcp-proxy
debe ser iniciado por el cliente MCP, por lo que la configuración debe realizarse en consecuencia.
Para Claude Desktop, la entrada de configuración puede verse así:
2. SSE a stdio
Ejecute un servidor proxy que exponga un servidor SSE que se conecta a un servidor stdio local.
Esto permite conexiones remotas al servidor stdio local. El mcp-proxy
abre un puerto para escuchar solicitudes SSE y genera un servidor stdio local que gestiona las solicitudes MCP.
2.1 Configuración
Este modo requiere el parámetro --sse-port
. El parámetro --sse-host
puede especificar la dirección IP del host en el que el servidor SSE escuchará. Se pueden pasar variables de entorno adicionales al servidor stdio local mediante el parámetro --env
. Los argumentos de la línea de comandos para el servidor stdio local deben pasarse después del separador --
.
Argumentos
Nombre | Requerido | Descripción | Ejemplo |
---|---|---|---|
command_or_url | Sí | El comando para generar el servidor stdio de MCP | uvx mcp-server-fetch |
--port | No, disponible al azar | El puerto del servidor MCP para escuchar | 8080 |
--host | No, 127.0.0.1 por defecto | La dirección IP del host en la que escuchará el servidor MCP | 0.0.0.0 |
--env | No | Variables de entorno adicionales para pasar al servidor MCP stdio. Se pueden usar varias veces. | BAR DE COMIDA |
--cwd | No | El directorio de trabajo que se pasará al proceso del servidor stdio de MCP. | /tmp |
--pass-environment | No | Pasar por todas las variables de entorno al generar el servidor | --entorno sin pase |
--allow-origin | No | Orígenes permitidos para el servidor SSE. Se pueden usar varias veces. CORS no está permitido por defecto. | --permitir-origen "*" |
--stateless | No | Habilitar el modo sin estado para los transportes HTTP con transmisión. El valor predeterminado es Falso. | --sin estado |
--named-server NAME COMMAND_STRING | No | Define un servidor stdio con nombre. | --named-server fetch 'uvx mcp-server-fetch' |
--named-server-config FILE_PATH | No | Ruta a un archivo JSON que define servidores stdio nombrados. | --named-server-config /ruta/a/servidores.json |
--sse-port (obsoleto) | No, disponible al azar | El puerto del servidor SSE para escuchar | 8080 |
--sse-host (obsoleto) | No, 127.0.0.1 por defecto | La dirección IP del host en la que escuchará el servidor SSE | 0.0.0.0 |
2.2 Ejemplo de uso
Para iniciar el servidor mcp-proxy
que escucha en el puerto 8080 y se conecta al servidor MCP local:
Servidores con nombre
NAME
se utiliza en la ruta URL/servers/NAME/
.COMMAND_STRING
es el comando para iniciar el servidor (por ejemplo, 'uvx mcp-server-fetch').- Se puede utilizar varias veces.
- Este argumento se ignora si se utiliza
--named-server-config
.
FILE_PATH
: si se proporciona, esta es la fuente exclusiva para servidores nombrados y se ignoran los argumentos CLI--named-server
.
Si se especifica un servidor predeterminado (el argumento command_or_url
sin --named-server
o --named-server-config
), será accesible en las rutas raíz (por ejemplo, http://127.0.0.1:8080/sse
).
Los servidores con nombre (definidos mediante --named-server
o --named-server-config
) serán accesibles en /servers/<server-name>/
(p. ej., http://127.0.0.1:8080/servers/fetch1/sse
). El punto de conexión /status
proporciona el estado global.
Formato de archivo de configuración JSON para --named-server-config
:
El archivo JSON debe seguir esta estructura:
mcpServers
: un diccionario donde cada clave es el nombre del servidor (usado en la ruta URL, por ejemplo,/servers/fetch/
) y el valor es un objeto que define el servidor.command
: (Obligatorio) El comando a ejecutar para el servidor stdio.args
: (Opcional) Lista de argumentos para el comando. El valor predeterminado es una lista vacía.enabled
: (opcional) Sifalse
, se omitirá esta definición de servidor. El valor predeterminado estrue
.timeout
ytransportType
: Estos campos están presentes en las configuraciones estándar de cliente MCP, peromcp-proxy
los ignora actualmente al cargar servidores con nombre. El tipo de transporte es implícitamente "stdio".
Instalación
Instalación mediante herrería
Para instalar MCP Proxy para Claude Desktop automáticamente a través de Smithery :
Instalación mediante PyPI
La versión estable del paquete está disponible en el repositorio de PyPI. Puede instalarla con el siguiente comando:
Una vez instalado, puede ejecutar el servidor con el comando mcp-proxy
. Consulte las opciones de configuración para cada modo más arriba.
Instalación a través del repositorio de Github (última versión)
La última versión del paquete se puede instalar desde el repositorio git usando el siguiente comando:
[!NOTA] Si ya ha instalado el servidor, puede actualizarlo utilizando el comando
uv tool upgrade --reinstall
.
[!NOTA] Si desea eliminar el servidor, utilice el comando
uv tool uninstall mcp-proxy
.
Instalación como contenedor
A partir de la versión 0.3.2, es posible extraer y ejecutar la imagen del contenedor correspondiente:
Solución de problemas
- Problema : Claude Desktop no puede iniciar el servidor: código ENOENT en los registrosSolución : Intente usar la ruta completa del binario. Para ello, abra una terminal y ejecute el comando
where mcp-proxy
(MacOS, Linux) owhere.exe mcp-proxy
(Windows). A continuación, use la ruta de salida como valor para el atributo 'command':
Ampliación de la imagen del contenedor
Puedes ampliar la imagen del contenedor mcp-proxy
para incluir ejecutables adicionales. Por ejemplo, uv
no está incluido por defecto, pero puedes crear una imagen personalizada con él:
Configuración de Docker Compose
Con el Dockerfile personalizado, puedes definir un servicio en tu archivo Docker Compose:
[!NOTA] No olvides configurar el argumento
--pass-environment
; de lo contrario, obtendrás el error "No se encontró ningún intérprete en las instalaciones administradas ni en la ruta de búsqueda".
Argumentos de la línea de comandos
Ejemplo de archivo de configuración
Pruebas
Compruebe el servidor mcp-proxy
ejecutándolo con el servidor mcp-server-fetch
. Puede usar la herramienta de inspección para probar el servidor de destino.
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Permite la interacción con servidores MCP remotos utilizando el transporte SSE en lugar de STDIO para mejorar las capacidades de comunicación.
- Acerca de
- stdio a SSE/StreamableHTTP
- SSE a stdio
- Servidores con nombre
- Instalación
- Ampliación de la imagen del contenedor
- Configuración de Docker Compose
- Argumentos de la línea de comandos
- Pruebas
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