使用说明
@browswit/node mcp服务器
Node.js的最小可嵌入MCP服务器核心。为模型上下文协议(MCP)提供JSON-RPC 2.0处理、工具注册表和工具调用。
安装
- 作为本地工作区包或通过文件引用。没有外部运行时deps。
API
-
McpServer类
constructor()-创建服务器实例register(specLoader)-注册工具规范加载器功能- specLoader:()=>承诺<{MCP_TOOL_SPECS?:ToolSpec[]}>
start()-初始化服务器和预构建工具注册表handle(request)-处理JSON-RPC请求listTools()-获取可用工具
-
常量
- JSONRPC_版本
- JSONRPC_METHOD_INITIALIZE、jsonrpcmethod_TOOLS_LIST、jsonpc_METHOD_TOOLS调用
- JSONRPC_ERROR_*代码
- MCP_PROTOCOL_VERSION、MCP_SERVER_NAME、MCP_sserver_VERSION
ToolSpec形状
interface ToolSpec {
name: string;
description: string;
inputSchema: Record<string, unknown>;
params: string[];
fn: (...args: any[]) => Promise<any> | any;
}
示例
import { McpServer, JSONRPC_METHOD_TOOLS_LIST } from '@brooswit/node-mcp-server';
const server = new McpServer();
server.register(() => import('./my-tools.mjs'));
await server.start();
const resp = await server.handle({ jsonrpc: '2.0', id: 1, method: JSONRPC_METHOD_TOOLS_LIST });
console.log(resp);
备注
- 呼叫
register()要添加工具规范加载器,请执行以下操作start()初始化注册表。 - 重复的工具名称会在第一次出现时进行重复数据消除。
- 结果被包装以实现广泛的MCP客户端兼容性:字符串变成文本项;对象是JSON字符串化的,除非已经成形为MCP工具结果。