VOOZH about

URL: https://glama.ai/mcp/servers/ssut/Remote-MCP?locale=es-ES

⇱ Servidor MCP remoto by ssut | Glama


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.

👁 avance

Arquitectura

%%{init: {"flowchart": {"htmlLabels": false}} }%%
graph TD
 %% Modern, Bright Color Styling with white text
 classDef client fill:#22c55e,stroke:#059669,stroke-width:2px,color:#ffffff
 classDef gateway fill:#06b6d4,stroke:#0891b2,stroke-width:2px,color:#ffffff
 classDef backend fill:#f97316,stroke:#ea580c,stroke-width:2px,color:#ffffff
 classDef resource fill:#8b5cf6,stroke:#7c3aed,stroke-width:2px,color:#ffffff
 classDef server fill:#06b6d4,stroke:#0891b2,stroke-width:2px,color:#ffffff

 linkStyle default stroke:#64748b,stroke-width:1.5px,stroke-dasharray: 5 5

 %% Current MCP Setup (Multiple Local Servers)
 subgraph Current["Current Setup (Local)"]
 direction LR
 subgraph ClientGroup["Client"]
 A[Client]:::client
 end

 subgraph Servers["Local MCP Servers"]
 direction TB
 B1["Local MCP Server (DB)"]:::server -->|"DB Access"| C1[DB]:::resource
 B2["Local MCP Server (API 1)"]:::server -->|"API Access"| C2["Web API 1"]:::resource
 B3["Local MCP Server (API 2)"]:::server -->|"API Access"| C3["Web API 2"]:::resource
 end

 A -->|"MCP Protocol"| B1
 A -->|"MCP Protocol"| B2
 A -->|"MCP Protocol"| B3
 end

 %% Vertical separator
 Current --> Proposed

 %% Proposed MCP Architecture (Decoupled)
 subgraph Proposed["Proposed Architecture (Remote)"]
 direction LR
 D[Client/Host]:::client -->|"MCP Protocol"| E["Local MCP Server (@remote-mcp/client)"]:::server
 E <-->|"tRPC(HTTP)"| F["Remote MCP Server (@remote-mcp/server)"]:::backend

 %% Separated Resources
 F -->|"DB Access"| G1[DB]:::resource
 F -->|"API Access"| G2["Web API 1"]:::resource
 F -->|"API Access"| G3["Web API 2"]:::resource
 end

Related MCP server: MCP Python Server

¿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

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/ssut/Remote-MCP'

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