
Dynamic MCP Server Framework

2025.05.07
0
TypeScript工具管理服务器框架开发效率
Dynamic MCP Server Framework 是一个灵活且可扩展的框架,用于构建符合 Model Context Protocol (MCP) 规范的服务器。该框架支持静态和动态工具注册,允许在运行时定义和注册工具,从而实现灵活和自适应的工具管理。
View on GitHub
Overview
基本能力
产品定位
Dynamic MCP Server Framework 是一个用于构建 MCP 服务器的框架,支持动态工具注册和管理,适用于需要灵活工具管理和扩展的场景。
核心功能
- 动态工具注册:支持在运行时定义和注册工具,实现灵活的工具管理。
- 基于处理器的架构:自定义处理器实现特定功能,可以被动态定义的工具调用。
- 可扩展设计:通过清晰、类型安全的 API 轻松添加新的处理器和工具类型。
- 内置工具管理:提供核心功能用于管理和监控注册的工具。
- MCP 规范兼容:完全符合 Model Context Protocol 规范。
适用场景
- 需要动态注册和管理工具的应用场景。
- 需要灵活扩展和自定义功能的服务器开发。
- 需要符合 MCP 规范的服务器实现。
工具列表
- 基础服务器工具:提供基本的服务器设置和工具管理功能。
- 自定义处理器:允许用户定义自己的处理器和工具。
- Web 服务处理器:支持 HTTP 请求的处理器,可用于调用外部 API。
常见问题解答
- 如何动态注册工具?:通过
registerHandler
方法注册自定义处理器和工具。 - 如何管理工具访问权限?:通过 Keycloak 属性
toolsAvailable
和toolsHidden
控制用户对工具的访问权限。
使用教程
使用依赖
安装 Node.js 和 npm。
安装教程
npm install dynamic-mcp-server
基本服务器设置
import { DynamicMcpServer } from "dynamic-mcp-server";
const server = new DynamicMcpServer({
name: "my-mcp-server",
version: "1.0.0",
port: 3000,
host: "localhost",
});
server.start().then(() => {
console.log("MCP server started");
});
创建自定义处理器
import { DynamicMcpServer } from "dynamic-mcp-server";
const myHandler = {
name: "my-handler",
tools: [
{
name: "my-tool",
description: "A custom tool",
inputSchema: {
type: "object",
properties: {
input: { type: "string" },
},
},
handler: {
type: "my-handler",
config: { action: "process" },
},
},
],
handler: async (args, context, config) => {
return {
result: { processed: args.input },
message: "Processing complete",
};
},
};
const server = new DynamicMcpServer({
/* config */
});
server.registerHandler(myHandler);
调试方式
# 运行测试
npm test
# 运行示例
npm run example:base
npm run example:echo