modelscope·@ssut/Remote-MCP
启用与模型上下文协议服务的类型安全、双向通信,允许通过 HTTP 集中管理模型上下文。
一种类型安全、双向且简单的解决方案,用于远程MCP通信,允许远程访问和集中管理模型上下文。
%%{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
是的,我知道官方MCP路线图计划在2025年第一季度支持远程MCP。然而,对于我以及可能对许多人来说,远程访问的需求是迫切的。创建此库是为了填补这一空白,提供一种方法可以立即从本地MCP客户端连接到远程MCP服务器,而无需等待未来的官方实现。
注意:我不希望这变得复杂或过度繁琐。这种方式现在就能工作。
注意:此项目目前正处于积极开发中,被视为实验性质。预计会有破坏性变更及潜在问题。
只需将以下代码放入您的MCP客户端设置中,在这里我以Claude为例:
{
"mcpServers": {
"remote-mcp": {
"command": "npx",
"args": ["-y", "@remote-mcp/client"],
"env": {
"REMOTE_MCP_URL": "http://localhost:9512",
"HTTP_HEADER_Authorization": "Bearer <token>"
}
}
}
}
安装需求:
$ npm install @remote-mcp/client @trpc/client@next zod
然后像下面这样编写您自己的代码:
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();
您可以在examples目录中查看一些示例。
在执行npm install @remote-mcp/server后,您可以如下方式编写您自己的远程MCP服务器:
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));
随后,您可以在您的MCP客户端看到类似以下的内容:
<img src="https://github.com/user-attachments/assets/86cf500e-b937-47fc-9ac1-db106ab7a6a3" width="450">此仓库包含:
@remote-mcp/client: 作为本地MCP服务器的客户端库,连接到远程实现。@remote-mcp/server: 用于创建可远程访问的MCP服务的服务器库(用作远程实现)。@remote-mcp/nestjs)欢迎贡献。详情请见CONTRIBUTING.md。
该库是一个补充扩展,不是官方MCP规范的一部分,它基于现有的MCP概念构建。
本项目采用MIT许可证。详情请参阅LICENSE文件。
一个为大型语言模型(LLM)设计的、高可用的12306余票查询工具服务,现已搭载智能会话管理引擎。 12306-MCP-Server 将复杂的12306余票查询接口封装为符合 Model Context Protocol (MCP) 规范的工具集,允许AI Agent通过自然语言无缝查询实时火车票、中转换乘和经停站信息。 从 v1.0.0 版本开始,项目引入了全新的智能会话管理系统,通过会话池、动态User-Agent轮换和自动错误恢复机制,将服务的稳定性与反屏蔽能力提升至全新高度。
福昕PDF服务API提供了一个基于云的REST API,允许通过HTTP客户端处理PDF文件。它提供了丰富的功能,适合集成到各种应用程序中。 📌 主要特性: PDF创建与转换 从Word、Excel和PowerPoint等格式创建PDF文件。 将PDF文件转换为其他格式,包括HTML、Word和图像。 PDF合并与拆分 将多个PDF文件合并成一个文档。 将单个PDF文件拆分成多个文档。 PDF压缩与优化 通过图像压缩、文档展平和线性化来减小文件大小。 PDF安全 支持密码保护、权限控制和高级加密以确保文档安全。 如何快速与MCP(多功能云平台)集成? 📖 集成文档: 服务API集成指南: https://cloudapi.fuxinsoft.cn/zh-CN/docs/services/guide MCP初学者教程: https://cloudapi.fuxinsoft.cn/zh-CN/docs/services/mcp…
快递100 MCP Server提供快递信息查询、快递运费预估比价、快递时效查询(含发货前时效查询与在途动态时效查询)等功能。
基于Model Context Protocol的原型生成功能服务,专注于HTML代码生成、设计描述生成和HTML导入功能。
暂无描述。
一个用于生成思维导图的 MCP (Model Context Protocol) 服务器。 看起来您的请求中没有提供具体的英文技术文档内容以供翻译。如果您能分享更多详细信息或具体段落,我将能够帮助您将其准确地翻译成中文,同时保留代码块、链接、格式结构和专业术语的准确性。请提供需要翻译的具体文本。