Skip to main content
Glama

My Cool Proxy

NPM Version

My Cool Proxy es una puerta de enlace de servidor Model Context Protocol (MCP) que intenta resolver muchos de los problemas percibidos con MCP tal como existe hoy. Sin ningún orden en particular, estos son:

  • Las descripciones de herramientas inflan la ventana de contexto: Este es un problema con la forma en que la mayoría de los agentes se integran con MCP. En lugar de implementar abstracciones que permitan cargar herramientas según sea necesario, la mayoría de las aplicaciones vuelcan todas las herramientas MCP en el contexto a la vez. Para mitigar esto, My Cool Proxy envuelve las herramientas en un intérprete de Lua y expone herramientas de nivel superior para descubrir herramientas de forma incremental. Consulta Divulgación progresiva para obtener más información.

  • Los resultados de las herramientas inflan la ventana de contexto, ¿por qué no usar Bash? En lugar de usar herramientas MCP, los agentes podrían simplemente ejecutar comandos de terminal y usar bash para filtrar sus resultados; sin embargo, esto implica permitir que el agente realice acciones de alto riesgo con más frecuencia. Por ejemplo, podrías permitir que un agente use la CLI gh para interactuar con GitHub, pero también puede usar la CLI gh para realizar operaciones de modificación o destructivas. Con el GitHub MCP Server, puedes limitar fácilmente el alcance a herramientas de solo lectura. MCP te permite controlar estrictamente a qué herramientas tienen acceso los agentes. Para ayudar con esto, My Cool Proxy te permite filtrar aún más las herramientas expuestas a los agentes.

  • La mayoría de las características de MCP no son compatibles: Desafortunadamente, la mayoría de las aplicaciones solo exponen herramientas MCP a los agentes, ignorando las otras características de cliente y servidor que ofrece el protocolo. My Cool Proxy pretende ser una capa de abstracción común para la mayor cantidad posible de características del protocolo, lo que permite a los desarrolladores usar las capacidades completas de MCP en cualquier aplicación compatible con MCP. Esto es un trabajo en curso; consulta la tabla de soporte de características para más detalles.

  • Gestionar un archivo de configuración para múltiples agentes es un quebradero de cabeza: Si usas más de una aplicación compatible con MCP, rápidamente te encontrarás con dificultades para mantener sincronizada la configuración de tu servidor MCP entre ellas. My Cool Proxy resuelve esto actuando como un único punto de integración para cada servidor que uses, reduciendo el número de servidores que mantener sincronizados a solo uno.

Inicio rápido

0. Instalación

Instálalo globalmente para usarlo como herramienta CLI:

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

O ejecútalo directamente con npx:

npx @karashiiro/my-cool-proxy

1. Configuración

La puerta de enlace crea automáticamente una configuración predeterminada en el primer inicio. Simplemente ejecútalo una vez para generar el archivo de configuración:

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

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

Luego edita la configuración para añadir tus servidores MCP.

Estructura de configuración de ejemplo:

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

O copia la configuración de ejemplo para un punto de partida más completo.

2. Ejecución

# If installed globally
my-cool-proxy

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

3. Conexión

Añádelo a la configuración de tu cliente MCP, por ejemplo, en Claude Desktop:

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

4. Uso

Pide a tu agente que realice una tarea con la que tus servidores MCP configurados puedan ayudarte, ¡y observa cómo lo hace!

Related MCP server: MCP Gateway

Divulgación progresiva

Este proxy actúa como una puerta de enlace entre los agentes y varios servidores MCP (Model Context Protocol). En lugar de conectarse a cada servidor MCP individualmente, los agentes se conectan a este único proxy y obtienen acceso a todos los servidores configurados a través de una interfaz unificada.

Los agentes comienzan con un conocimiento mínimo sobre qué servidores o herramientas están disponibles. Construyen el contexto de forma progresiva:

  1. Consulta las instrucciones del servidor: My Cool Proxy precarga un pequeño mensaje con extractos breves de los servidores y herramientas configurados para preparar al agente para que los use.

  2. Llama a list-servers: el contexto del agente ahora incluye nombres y descripciones de todos los servidores MCP disponibles (p. ej., "github", "slack", "database")

  3. Llama a list-server-tools(server_name): el contexto del agente se expande para incluir todos los nombres y descripciones de herramientas para ese servidor específico.

  4. Llama a tool-details(server_name, tool_name): el contexto del agente ahora tiene esquemas de parámetros completos, tipos de retorno (si están disponibles) y ejemplos de uso para una herramienta específica.

  5. Llama a execute(lua_script): con el contexto completo, el agente puede escribir scripts de Lua que llamen a las herramientas descubiertas

En lugar de cargar todas las herramientas y sus descripciones en el contexto de antemano, esto difiere la carga de herramientas hasta que el agente determina que son necesarias.

Encadenamiento de herramientas con Lua: Una vez que un agente sabe qué herramientas existen, puede componer flujos de trabajo complejos de varios pasos en una sola llamada a execute(), ahorrando la sobrecarga de contexto de cualquier resultado intermedio de herramientas. El entorno de ejecución de Lua proporciona acceso a todos los servidores descubiertos como variables globales, con herramientas invocables como funciones asíncronas.

Encadenamiento secuencial de herramientas:

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

Lógica condicional:

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

Iteración con bucles:

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

Gateway Skills

Gateway Skills son la implementación de Agent Skills por parte de My Cool Proxy: documentos de contexto reutilizables que los agentes pueden cargar como Recursos MCP. Cuando están habilitadas, los agentes pueden:

  • Descubrir habilidades a través de un mensaje inyectado automáticamente en las instrucciones del servidor de la puerta de enlace (o mediante la función integrada de Lua _gateway.list_resources(); busca URIs gw-skill://)

  • Leer el contenido de las habilidades mediante la función integrada de Lua _gateway.read_resource()

  • Ejecutar scripts de habilidades mediante la función integrada de Lua _gateway.invoke_skill_script()

Si bien muchos agentes ya implementan sus propios sistemas de habilidades, estos sistemas están muy fragmentados y es difícil reutilizar las mismas habilidades en múltiples aplicaciones de agentes separadas. Mientras que algunos sistemas como skills.sh resuelven esto copiando habilidades entre aplicaciones explícitamente, My Cool Proxy lo resuelve centralizando todas las habilidades en su propio sistema de gestión de habilidades y exponiéndolas a través de MCP. Para distinguirlas de los sistemas de habilidades existentes, My Cool Proxy las denomina «Gateway Skills».

Las Gateway Skills están deshabilitadas por defecto, ya que pueden entrar en conflicto con los sistemas de habilidades existentes integrados en tu agente. Consulta la Guía de configuración para conocer las opciones de configuración.

Para una discusión de diseño más profunda sobre por qué las Gateway Skills se implementan de esta manera, consulta esta sección en la documentación de diseño.

Panel web

My Cool Proxy incluye un panel web opcional para supervisar la actividad de la puerta de enlace. Cuando está habilitado, se ejecuta en un puerto separado y proporciona:

  • Historial de ejecuciones — Examina todas las ejecuciones de scripts de Lua, con scripts y resultados con resaltado de sintaxis

  • Registro de llamadas a herramientas — Ve qué herramientas MCP se llamaron durante cada ejecución

  • Supervisión de sesiones — Consulta sesiones activas, servidores conectados y capacidades

  • Actualizaciones en tiempo real — Las nuevas ejecuciones se transmiten al panel a través de WebSocket

Actívalo añadiendo una sección dashboard a tu configuración:

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

Luego visita http://localhost:3100 en tu navegador. Consulta la Guía de configuración para más detalles.

Configuración

Consulta la Guía de configuración para la referencia completa de configuración.

Tabla de soporte de características de MCP

Funcionalidad

¿Compatible?

Detalles

Tools

✅

My Cool Proxy espera que las herramientas sean compatibles como mínimo absoluto. Afortunadamente, todo lo que es compatible con MCP es compatible con las herramientas.

Prompts

✅

My Cool Proxy reenvía los prompts desde sus servidores MCP al cliente conectado y proporciona las funciones integradas de Lua _gateway.get_prompt() y _gateway.list_prompts() para que los agentes los carguen dentro de los scripts.

Resources

✅

My Cool Proxy reenvía tanto los recursos desde sus servidores MCP al cliente conectado como proporciona las funciones integradas de Lua _gateway.read_resource() y _gateway.list_resources() para que los agentes los carguen dentro de los scripts.

Server Instructions

✅

My Cool Proxy carga extractos de las instrucciones de los servidores MCP conectados en sus propias instrucciones de servidor, y también envía copias completas a través de la herramienta list-servers cuando se invoca.

Discovery Notifications

✅

My Cool Proxy escucha las notificaciones de cambio de herramientas/prompts/recursos de los servidores MCP conectados para actualizar automáticamente sus propios registros internos, lo que se refleja en llamadas de herramientas posteriores.

Completions

✅

Los completados de argumentos de prompts y variables de plantilla de recursos se reenvían desde los servidores upstream al cliente conectado. Los agentes también pueden llamar a _gateway.complete() dentro de scripts de Lua para descubrir valores válidos para las variables de plantilla de recursos y los argumentos de prompts.

Logging

✅

My Cool Proxy reenvía las notificaciones de registro al cliente conectado, y también las registra él mismo.

Roots

✅

Las solicitudes roots/list se reenvían desde los servidores upstream al cliente downstream. Las notificaciones notifications/roots/list_changed del cliente downstream se distribuyen a todos los servidores upstream. Cuando el sampling shim está activo, la primera raíz local válida se utiliza como directorio de trabajo del agente ACP.

Sampling

✅

My Cool Proxy admite proporcionar un shim para el soporte de sampling a través de ACP, aunque esto está deshabilitado por defecto. Consulte la documentación de configuración para obtener más información.

Elicitation

⚠️

Las solicitudes de elicitación (modo formulario y URL) se transmiten mediante proxy desde los servidores upstream al cliente conectado. No hay ningún shim (actualmente) disponible para clientes que no admiten elicitación de forma nativa (a diferencia del sampling, que se puede adaptar mediante un shim a través de ACP).

Progress

✅

Las notificaciones de progreso de los servidores upstream se reenvían al cliente conectado. Cuando un script de Lua llama a múltiples herramientas de forma concurrente, su progreso se agrega (se suma) en un único flujo.

Tasks

⚠️

Se admite llamar a herramientas que admiten tareas, pero sin aprovechar las actualizaciones de estado para nada interesante. Las tareas de sampling/elicitación no se admiten actualmente.

OAuth 2.0

❌

Los desafíos de autenticación OAuth 2.0 aún no son compatibles (pero lo serán)

MCP Apps

❌

Las MCP Apps aún no son compatibles (pero lo serán).

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