使用说明
mcp实验室--глобальныйmcp-сервер(Node.js+TypeScript)
可扩展的MCP服务器,带有Cursor的标准STDIO传输和插件工具体系结构。
- 运输:stdio(与cursor兼容)
- 工具箱:
health.ping-检查可用性fs.readText-仅在内部安全读取UTF-8文件ALLOW_DIRimages.generate通过OpenAI(Base64 PNG)生成图像
要求
- Node.js 18+
- Cursor安装
安装
npm install
npm run build
Настройкав光标
- 打开:Tools&Integrations→MCP Tools→New MCP Server(打开MCP JSON设置编辑器)
- 添加/更新配置(dist/server.js绝对路径):
{
"mcpServers": {
"mcp-lab": {
"command": "node",
"args": [
"C:/Users/Home/Desktop/projects/mcp-server/dist/server.js"
],
"env": {
"OPENAI_API_KEY": "${secrets:OPENAI_API_KEY}",
"ALLOW_DIR": "${workspaceRoot}"
}
}
}
}
- B.设置→ 秘密
OPENAI_API_KEY(OpenAI密钥的值)
注:
- 修改源代码后,执行
npm run build,因为cursor启动dist/server.js. - Cursor配置中的值优先于来自Cursor的值。
.env项目。
环境变化
OPENAI_API_KEYOpenAI密钥(必备)images.generate)ALLOW_DIR-文件工具的安全根(默认)${workspaceRoot}).fs.readText只能在这个目录中阅读。OPENAI_IMAGE_MODEL-图像模型(默认)dall-e-3)
服务器也在读取文件 .env 每个项目(通过) dotenv).
使用
打开Cursor服务器中的任何项目-将自动激活。MCP工具列表中的工具 mcp-lab.
调用示例(在工具窗口中输入参数):
health.ping没有论据,答案是:pongfs.readText身体{ "relPath": "package.json" }→ 文本文件images.generate身体{ "prompt": "a simple blue circle", "size": "512x512" }图片(Base64)
Пояснение параметров:
fs.readText.relPath相对路径从ALLOW_DIR(默认情况下,这是开源项目的根,${workspaceRoot}).可以用正则表达式(/)在任何操作系统上。超出范围ALLOW_DIR(例如,通过..)被错误“Access denied:outside allowdir”阻止。它只读取UTF−8编码的文本。
扩展(添加新工具)
创建文件 src/tools/my-tool.ts 然后导出记录器:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
export function registerMyTool(server: McpServer) {
server.registerTool(
"my.doStuff",
{ title: "My Tool", description: "Does stuff", inputSchema: { id: z.string() } },
async ({ id }) => ({ content: [{ type: "text", text: `ok:${id}` }] })
);
}
连接到 src/server.ts:
import { registerMyTool } from "./tools/my-tool.js";
registerMyTool(server);
安全
- 没有删除工具(没有删除/删除)
- 仅在边界内访问文件系统
ALLOW_DIR(禁止) - 秘密不会被记录。密钥通过Secrets/ENV传输
调试
- 如果看不到工具:检查全局JSON MCP设置,是否存在
OPENAI_API_KEY重新启动cursor
