low-code-mcp-stdio
npm install low-code-mcp-stdio这是一个基于 Model Context Protocol (MCP) 的服务器项目,支持与 Cursor 等 AI 编辑器进行流式通信。
1. McpServer: MCP 服务器核心
2. StreamableHTTPServerTransport: 支持流式传输的 HTTP 传输层
3. Express Server: HTTP 服务器框架
4. 工具注册系统: 可扩展的工具注册机制
#### 1. 传输层流式支持
项目使用 StreamableHTTPServerTransport 来实现流式通信:
``typescript`
const transport = new StreamableHTTPServerTransport({
sessionIdGenerator: () => randomUUID(),
onsessioninitialized: (sessionId) => {
transports[sessionId] = transport;
},
});
#### 2. 会话管理
每个 Cursor 连接都有唯一的 sessionId,通过会话管理确保流式通信的连续性:
`typescript`
const transports: { [sessionId: string]: StreamableHTTPServerTransport } = {};
#### 3. 工具实现
工具通过标准的 MCP 接口返回内容,流式传输由传输层自动处理:
`typescript`
server.registerTool(
"tool-name",
{
description: "工具描述",
inputSchema: {
// 输入参数定义
}
},
async (args, { signal }) => {
// 工具逻辑实现
return {
content: [
{
type: "text",
text: "返回的内容"
}
]
};
}
);
MCP 协议本身支持流式传输,当使用 StreamableHTTPServerTransport 时:
- 工具返回的内容会自动以流式方式传输给 Cursor
- 不需要在工具层面实现特殊的流式逻辑
- 传输层会处理分块传输和实时推送
`typescript`
// 支持取消操作
async ({ message }, { signal }) => {
if (signal?.aborted) {
// 处理取消逻辑
return;
}
// 工具逻辑
return {
content: [
{
type: "text",
text: "处理结果"
}
]
};
}
- 实时响应: Cursor 可以实时显示工具执行结果
- 用户体验: 用户无需等待完整结果,可以立即看到部分输出
- 资源效率: 避免长时间阻塞,支持取消操作
`bash安装依赖
pnpm install
服务器将在
http://localhost:8000/low-code-mcp 启动。在 Cursor 中配置
1. 打开 Cursor 设置
2. 找到 MCP 配置部分
3. 添加以下配置:
`json
{
"mcpServers": {
"low-code-mcp": {
"command": "node",
"args": ["/path/to/your/project/dist/index.js"],
"env": {
"NODE_ENV": "production"
}
},
"low-code-mcp-streamable": {
"transport": "http",
"url": "http://localhost:8000/low-code-mcp?name=1",
"name": "low-code-mcp",
"version": "1.0.0"
},
}
}`4. 重启 Cursor
5. 现在你可以在 Cursor 中使用以下工具:
-
hello-world: 获取一个打招呼的方式
- stream-demo: 演示流式返回结果的工具
- advanced-stream: 高级流式工具,演示长时间任务和进度更新
- real-time-data: 实时数据流工具,模拟数据采集工具扩展
要添加新工具,只需:
1. 在
src/tools/ 目录下创建新的工具文件
2. 实现工具逻辑
3. 在 src/index.ts` 中注册工具- 标准化: 遵循 MCP 协议标准
- 可扩展: 支持动态工具注册
- 流式支持: 原生支持流式数据传输
- 会话管理: 支持多会话并发处理