Remote-MCP Server

by ssut

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables hosting the Remote MCP server on Cloudflare Workers, with example implementation provided

  • Planned integration with NestJS framework mentioned in the roadmap

  • Supports standalone Node.js deployment for the Remote MCP server with example implementation provided

Remote-MCP: Protocolo de contexto de modelo remoto

Una solución simple, bidireccional y segura para la comunicación MCP remota , que permite el acceso remoto y la gestión centralizada de los contextos del modelo.

Arquitectura

¿Por qué hice esto? (ahora)

Sí, sé que la hoja de ruta oficial de MCP incluye compatibilidad con MCP remoto en el primer trimestre de 2025. Sin embargo, la necesidad de acceso remoto fue inmediata para mí, y probablemente para muchos otros. Esta biblioteca se creó para cubrir esa necesidad, ofreciendo una forma de conectarse a un servidor MCP remoto desde un cliente MCP local de inmediato , sin esperar futuras implementaciones oficiales.

Nota: No quiero que esto sea algo sofisticado ni demasiado complicado. De momento, este método funciona .

Empezando

Nota: Este proyecto se encuentra actualmente en desarrollo y se considera experimental. Se prevén cambios importantes y posibles problemas.

Uso del cliente

Utilice un paquete publicado públicamente

Simplemente coloque el siguiente código en la configuración de su cliente MCP, aquí estoy usando a Claude como ejemplo:

{ "mcpServers": { "remote-mcp": { "command": "npx", "args": ["-y", "@remote-mcp/client"], "env": { "REMOTE_MCP_URL": "http://localhost:9512", "HTTP_HEADER_Authorization": "Bearer <token>" } } } }

Codifique su propio servidor MCP local

Requisitos de instalación:

$ npm install @remote-mcp/client @trpc/client@next zod

Luego escribe tu propio código como el siguiente:

import { RemoteMCPClient } from "@remote-mcp/client"; const client = new RemoteMCPClient({ remoteUrl: "http://localhost:9512", onError: (method, error) => console.error(`Error in ${method}:`, error) }); void client.start();

Uso del servidor (implementación de MCP remoto)

Puedes ver algunos ejemplos en el directorio de examples .

Codifique su propio servidor MCP remoto

Después de npm install @remote-mcp/server , puede crear su propio servidor MCP remoto como el siguiente:

import { MCPRouter, LogLevel } from "@remote-mcp/server"; import { createHTTPServer } from '@trpc/server/adapters/standalone'; import { z } from "zod"; // Create router instance const mcpRouter = new MCPRouter({ logLevel: LogLevel.DEBUG, name: "example-server", version: "1.0.0", capabilities: { logging: {}, }, }); // Add example tool mcpRouter.addTool( "calculator", { description: "Perform basic calculations. Add, subtract, multiply, divide. Invoke this every time you need to perform a calculation.", schema: z.object({ operation: z.enum(["add", "subtract", "multiply", "divide"]), a: z.string(), b: z.string(), }), }, async (args) => { const a = Number(args.a); const b = Number(args.b); let result: number; switch (args.operation) { case "add": result = Number(a) + b; break; case "subtract": result = a - b; break; case "multiply": result = a * b; break; case "divide": if (b === 0) throw new Error("Division by zero"); result = a / b; break; } return { content: [{ type: "text", text: `${result}` }], }; }, ); const appRouter = mcpRouter.createTRPCRouter(); void createHTTPServer({ router: appRouter, createContext: () => ({}), }).listen(Number(process.env.PORT || 9512));

Luego podrás ver algo como lo siguiente en tu cliente MCP:

Paquetes

Este repositorio contiene:

  • @remote-mcp/client : biblioteca cliente que actúa como un servidor MCP local y se conecta a una implementación remota.
  • @remote-mcp/server : biblioteca de servidor para crear servicios MCP accesibles de forma remota (utilizada como implementación remota).

Hoja de ruta

Características principales

  • [x] Comunicación básica cliente/servidor con seguridad de tipos
    • [x] Soporte básico de comandos MCP
    • [x] Soporte básico de herramientas MCP
    • [x] Soporte básico de indicaciones de MCP
    • [ ] Manejo seguro ante accidentes (WIP, máxima prioridad)
  • [ ] Sistema completo de suscripción a eventos
    • [ ] Notificaciones de cambios de recursos
    • [ ] Notificaciones de cambios en la lista de herramientas/mensajes
  • [ ] Compatibilidad con encabezados HTTP
    • [x] Encabezados personalizados
    • [ ] Middleware de autenticación
  • [ ] Mejoras básicas en el manejo de errores
  • [ ] Soporte básico de middleware

Soporte del marco

  • [ ] Integración con Nest.js ( @remote-mcp/nestjs )

Funciones avanzadas

  • [ ] Comunicación bidireccional
    • [ ] Solicitudes de servidor a cliente
    • [ ] Intercambio de recursos entre servidor/cliente
  • [ ] Monitoreo y registro básicos

Contribuir

Se agradecen las contribuciones. Para más detalles, consulte CONTRIBUTING.md .

Descargo de responsabilidad

Esta biblioteca es una extensión complementaria, no parte de la especificación oficial de MCP, construida sobre conceptos de MCP existentes.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo de LICENCIA para más detalles.

Referencias

-
security - not tested
A
license - permissive license
-
quality - not tested

Permite una comunicación bidireccional y segura con los servicios del Protocolo de Contexto de Modelo, lo que permite la gestión centralizada de los contextos de modelo a través de HTTP.

  1. Architecture
    1. Why I Made This (Now)
      1. Getting Started
        1. Client Usage
          1. Use Publicly Published Package
          2. Code Your Own Local MCP Server
        2. Server Usage (Remote MCP Implementation)
          1. Code Your Own Remote MCP Server
        3. Packages
          1. Roadmap
            1. Core Features
            2. Framework Support
            3. Advanced Features
          2. Contribute
            1. Disclaimer
              1. License
                1. References
                  ID: 260gv0nzsp