mcpField
M
MCP Servers for Cursor IDE

MCP Servers for Cursor IDE

本地服务
github.com/michael-trullion开发工具147 周前更新

关于 MCP Servers for Cursor IDE

这是一个面向 Cursor IDE 的 TypeScript MCP 服务集合,包含 PostgreSQL、Kubernetes 和 PDF 功能,并提供脚本配置及运行单个或全部服务。

主要功能

  1. 01执行 PostgreSQL 查询并检查结构
  2. 02管理 Kubernetes Pod 和日志
  3. 03处理 PDF 文本与表单
  4. 04使用脚本运行单个或全部服务
  5. 05通过环境变量配置服务

适用场景

  1. 01检查数据库表并执行 SQL
  2. 02查看 Pod 并获取 Kubernetes 日志
  3. 03提取 PDF 文本或修改表单
  4. 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

使用方法

  1. 克隆此仓库:

    git clone https://github.com/yourusername/mcp-servers.git
    cd mcp-servers
    
  2. 安装依赖并完成所有设置:

    npm run setup
    

    此命令将:

    • 安装所有依赖
    • 构建 TypeScript 项目
    • 生成用于集成 Cursor IDE 的必要脚本
    • 提供在 Cursor 中设置各个服务的说明
  3. 配置 Cursor IDE:

    • 打开 Cursor IDE
    • 前往 Cursor 设置 > 功能 > Mcp Servers
    • 点击“Add New Mcp Server”
    • 输入服务名称(例如,“postgres”)
    • 在“Connection Type”中选择“command”
    • 在“command”中粘贴 prepare 脚本提供的路径
    • 点击“Save”
  4. 环境变量:

    • 将 .env.example 文件复制为 .env
    • 使用各项服务对应的凭据更新变量
  5. 在 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 服务:

  1. PostgreSQL 服务 - 提供对 PostgreSQL 数据库的访问,以执行查询并获取架构信息
  2. Kubernetes 服务 - 提供对 Kubernetes 集群的访问,以管理 Pod、执行命令并获取日志
  3. 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 - 在指定命名空间中查找名称符合指定模式的 Pod
  • kill_pod - 删除指定命名空间中的 Pod
  • exec_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 服务的功能:

  1. 构建 TypeScript 项目:

    npm run build
    
  2. 运行服务:

    npm run start:postgres
    

    或者运行 PDF 服务:

    npm run start:pdf
    
  3. 为方便起见,本项目提供了可直接使用的 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 服务:

  1. 在 src/servers/ 下为服务创建新目录:

    mkdir -p src/servers/my-new-server
    
  2. 创建服务实现:

    // 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;
    
  3. 在 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"),
      },
    ];
    
  4. 更新 package.json 脚本(可选):

    "scripts": {
      // ... existing scripts
      "dev:my-new-server": "ts-node --esm src/servers/my-new-server/my-new-server.ts"
    }
    

了解 MCP 服务开发

开发 MCP 服务时,请牢记:

  1. 工具 是公开功能的主要方式。每个工具都应:

    • 拥有唯一名称
    • 使用 Zod 定义参数并进行验证
    • 以标准化格式返回结果
  2. 通信 通过 stdio 实现,以便与 Cursor 集成。

  3. 响应格式 至关重要——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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。