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!

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).

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
16hResponse time
4dRelease cycle
17Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.

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/karashiiro/my-cool-proxy'

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