关于 MCP Servers for Cursor IDE
这是一个面向 Cursor IDE 的 TypeScript MCP 服务集合,包含 PostgreSQL、Kubernetes 和 PDF 功能,并提供脚本配置及运行单个或全部服务。
主要功能
- 01执行 PostgreSQL 查询并检查结构
- 02管理 Kubernetes Pod 和日志
- 03处理 PDF 文本与表单
- 04使用脚本运行单个或全部服务
- 05通过环境变量配置服务
适用场景
- 01检查数据库表并执行 SQL
- 02查看 Pod 并获取 Kubernetes 日志
- 03提取 PDF 文本或修改表单
- 04让 Cursor 连接多个 MCP 服务
MCP 相关
为 Cursor IDE 提供 MCP 服务,通过 stdio 通信,并向 Cursor 暴露数据库、Kubernetes 和 PDF 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Cursor IDE 的 MCP 服务
本项目托管了多个专为 Cursor IDE 设计的模型上下文协议(MCP)服务。MCP 服务通过标准化的通信协议,让 Cursor 能够使用外部工具和功能。
目录
前提条件
- Node.js(v16 或更高版本)
- npm 或 yarn
使用方法
-
克隆此仓库:
git clone https://github.com/yourusername/mcp-servers.git cd mcp-servers -
安装依赖并完成所有设置:
npm run setup此命令将:
- 安装所有依赖
- 构建 TypeScript 项目
- 生成用于集成 Cursor IDE 的必要脚本
- 提供在 Cursor 中设置各个服务的说明
-
配置 Cursor IDE:
- 打开 Cursor IDE
- 前往 Cursor 设置 > 功能 > Mcp Servers
- 点击“Add New Mcp Server”
- 输入服务名称(例如,“postgres”)
- 在“Connection Type”中选择“command”
- 在“command”中粘贴 prepare 脚本提供的路径
- 点击“Save”
-
环境变量:
- 将
.env.example文件复制为.env - 使用各项服务对应的凭据更新变量
- 将
-
在 Cursor IDE 中使用 MCP:
- 打开 composer
- 确保使用 Agent 模式(推荐使用 claude 3.7 sonnet thinking)
- 提交你想发送给 Cursor 的消息
什么是 MCP?
模型上下文协议(MCP)是一种开放协议,用于规范应用程序向大模型提供上下文的方式。可以将 MCP 看作 Cursor IDE 与外部工具之间的通信接口。MCP 服务会公开供 Cursor IDE 使用的工具,以增强其功能。
项目结构
mcp-servers/
├── src/
│ ├── servers/ # Individual MCP servers
│ │ ├── postgres-server/ # PostgreSQL integration server
│ │ │ └── postgres-server.ts
│ │ ├── kubernetes-server/ # Kubernetes integration server
│ │ │ └── kubernetes-server.ts
│ │ ├── lease-pdf-server/ # PDF processing server
│ │ │ └── pdf-server.ts
│ │ └── ... (more servers)
│ ├── template/ # Reusable templates
│ │ └── mcp-server-template.ts
│ ├── index.ts # Server runner utility
│ └── run-all.ts # Script to run all servers
├── package.json
└── tsconfig.json
可用服务
目前提供以下 MCP 服务:
- PostgreSQL 服务 - 提供对 PostgreSQL 数据库的访问,以执行查询并获取架构信息
- Kubernetes 服务 - 提供对 Kubernetes 集群的访问,以管理 Pod、执行命令并获取日志
- PDF 服务 - 提供 PDF 文档处理功能,包括文本提取、表单字段读写和 PDF 生成
服务配置
所有服务均通过环境变量配置。在项目根目录下创建 .env 文件(或从 .env.example 复制),并配置计划使用的服务:
# PostgreSQL Configuration (for PostgreSQL server)
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=your_database_name
POSTGRES_USER=your_username
POSTGRES_PASSWORD=your_password
# POSTGRES_SSL_MODE=require # Uncomment if SSL is required
# POSTGRES_MAX_CONNECTIONS=10 # Optional: limit connection pool size
# Kubernetes Configuration (for Kubernetes server)
KUBECONFIG=/path/to/your/kubeconfig
# Alternative Kubernetes configuration:
# KUBE_API_URL=https://your-kubernetes-api-server
# KUBE_API_TOKEN=your-kubernetes-service-account-token
# PDF Server requires no additional configuration
可用工具
PostgreSQL 服务工具
mcp__get_database_info- 获取已连接数据库的信息mcp__list_tables- 列出当前数据库架构中的所有表mcp__get_table_structure- 获取指定表的列定义mcp__execute_query- 对数据库执行自定义 SQL 查询
Kubernetes 服务工具
get_pods- 从指定命名空间获取 Pod,可选字段和标签选择器find_pods- 在指定命名空间中查找名称符合指定模式的 Podkill_pod- 删除指定命名空间中的 Podexec_in_pod- 在指定 Pod 和容器中执行命令get_pod_logs- 获取指定 Pod 的日志,可设置容器、行数和先前实例等选项
PDF 服务工具
-
read_pdf- 从 PDF 文档中提取文本内容和表单字段数据- 参数:
input(字符串)- PDF 文件路径或经过 Base64 编码的 PDF 内容 - 返回: JSON,包含成功状态、页数、提取的文本、表单字段和元数据
- 参数:
-
write_pdf- 创建新的 PDF,或使用内容和表单字段更新修改现有 PDF- 参数:
content(对象)- 要写入的内容(文本和/或表单字段)templatePdf(可选字符串)- 模板 PDF 文件路径或 Base64 内容outputPath(可选字符串)- 输出文件路径(如果未提供,则返回 Base64)
- 返回: JSON,包含成功状态、输出路径和 Base64 数据(如果适用)
- 参数:
运行服务
快速开始
设置命令会为每个服务创建独立的 shell 脚本,可直接与 Cursor IDE 配合使用。
运行 npm run setup 后,你会看到每个服务配置的说明。
使用辅助脚本运行服务
要使用随附的辅助脚本运行指定服务:
npm run server -- [server-name]
例如,要运行 postgres 服务:
npm run server -- postgres
或者运行 PDF 服务:
npm run server -- pdf
这会自动构建 TypeScript 代码并启动服务。
手动运行单个服务
要手动运行指定服务:
npm run dev -- [server-name]
例如,要运行 postgres 服务:
npm run dev -- postgres
或者运行 PDF 服务:
npm run dev -- pdf
运行所有服务
要同时运行所有服务:
npm run dev:all
列出可用服务
要查看所有可用服务的列表:
npm run dev -- --list
测试 MCP 服务
连接 Cursor IDE 之前,你可以测试 MCP 服务的功能:
-
构建 TypeScript 项目:
npm run build -
运行服务:
npm run start:postgres或者运行 PDF 服务:
npm run start:pdf -
为方便起见,本项目提供了可直接使用的 Cursor 脚本:
/path/to/mcp-servers/cursor-mcp-server.sh [server-name]你可以直接在 Cursor IDE 配置中使用此脚本路径。如果未提供服务名称,则默认为 postgres 服务。示例:
# Run postgres server (default) /path/to/mcp-servers/cursor-mcp-server.sh # Run PDF server /path/to/mcp-servers/cursor-mcp-server.sh pdf # Run kubernetes server /path/to/mcp-servers/cursor-mcp-server.sh kubernetes
添加新的 MCP 服务
要向此项目添加新的 MCP 服务:
-
在
src/servers/下为服务创建新目录:mkdir -p src/servers/my-new-server -
创建服务实现:
// src/servers/my-new-server/my-new-server.ts import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { z } from "zod"; // Create an MCP server const server = new McpServer({ name: "My New Server", version: "1.0.0", }); // Add your tools server.tool( "my-tool", { param1: z.string().describe("Parameter description"), param2: z.number().describe("Parameter description"), }, async ({ param1, param2 }) => { // Tool implementation return { content: [{ type: "text", text: `Result: ${param1} ${param2}` }], }; } ); // Start the server async function startServer() { const transport = new StdioServerTransport(); await server.connect(transport); console.log("My New Server started and ready to process requests"); } // Start the server if this file is run directly if (process.argv[1] === new URL(import.meta.url).pathname) { startServer(); } export default server; -
在
src/index.ts和src/run-all.ts的服务列表中添加该服务:const servers = [ // ... existing servers { name: "my-new-server", displayName: "My New Server", path: join(__dirname, "servers/my-new-server/my-new-server.ts"), }, ]; -
更新 package.json 脚本(可选):
"scripts": { // ... existing scripts "dev:my-new-server": "ts-node --esm src/servers/my-new-server/my-new-server.ts" }
了解 MCP 服务开发
开发 MCP 服务时,请牢记:
-
工具 是公开功能的主要方式。每个工具都应:
- 拥有唯一名称
- 使用 Zod 定义参数并进行验证
- 以标准化格式返回结果
-
通信 通过 stdio 实现,以便与 Cursor 集成。
-
响应格式 至关重要——MCP 服务必须严格遵循以下格式:
- 工具应在文本响应中返回
type: "text"类型的内容 - 避免直接使用
type: "json"等不受支持的类型 - 对于结构化数据,应将其转换为 JSON 字符串,并使用
type: "text" - 示例:
return { content: [ { type: "text", text: "Human-readable response" }, { type: "text", text: JSON.stringify(structuredData, null, 2) }, ], };
- 工具应在文本响应中返回
构建项目
要构建项目,请运行:
npm run build
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。