eMCP 中文版
eMCP 是 LiteMCP 的一个分支,带有扩展功能,如内置的身份验证处理和自定义中间件支持。
功能特点
该库设计为LiteMCP的近乎原样替换工具。因此,所有新增功能都是可选的。
- 所有当前 LiteMCP 的功能
- 内置身份验证处理程序
- 自定义分层中间件支持
快速入门
通过 Bun 或 NPM 安装:
npm i emcp
bun add emcp
基本用法
(可选)运行示例:
bun run example:basic
bun run example:auth
bun run example:middleware
bun run example:advanced
const server = new eMCP("mcp-server-with-auth", "1.0.0", {
authenticationHandler: async (request) => {
return true;
},
});
server.addTool({
name: "add",
description: "Add two numbers",
parameters: z.object({
a: z.number(),
b: z.number(),
}),
execute: async (args) => {
server.logger.debug("正在添加两个数字", args);
return args.a + args.b;
},
});
自定义中间件
const server = new eMCP("mcp-server-with-middleware", "1.0.0", {
authenticationHandler: async (request) => {
return true;
},
});
server.use(async (request, next) => {
const startTime = Date.now();
server.logger.debug("请求开始", { method: request.method });
const response = await next();
const endTime = Date.now();
server.logger.debug("请求完成", {
method: request.method,
duration: `${endTime - startTime}ms`,
});
return response;
});
中间件的工作原理
eMCP中的中间件按注册顺序运行。一旦每个中间件处理程序都调用了其next()
块,则标准的 MCP 处理流程将开始。在服务器完成处理后,中间件将在相反的顺序执行带有next()
块之后的代码。
简单来说,流程如下:
<---- 请求接收 ---->
1. 中间件 1
2. 中间件 2
<---- 预处理完成 ---->
4. 服务器处理程序
<---- 后处理开始 ---->
5. 中间件 2
6. 中间件 1
---- 响应发送 ---->
如果你熟悉像 Hono 这样的框架,这对你来说应该很熟悉。
路线图
- 更加人性化的 MCP<->MCP 通信
- 集成到各种框架中
为什么?
因为我想要这样做