项目简介

'mcp-creator' 是一个高效的MCP (Model Context Protocol) 服务器快速启动模板。它提供了一个干净、功能完善的基础框架,帮助开发者快速创建与Claude Desktop、Cursor、Claude Code、Gemini等AI助手兼容的上下文服务器。通过该模板,您可以轻松地为AI助手定制工具、提供动态资源以及定义可复用的Prompt模板。

主要功能点

  • 自定义工具 (Tools):为AI助手开发特定功能,例如查询外部API、执行特定任务等。模板内置了“hello-world”和“get-mcp-docs”两个示例工具。
  • 动态资源 (Resources):向AI助手提供动态、结构化的数据内容,例如文档、代码片段或其他上下文信息。
  • Prompt模板 (Prompts):创建可复用的对话启动模板,帮助AI助手在特定场景下更有效地进行交互。
  • 多客户端兼容性:支持与Claude Desktop、Cursor、Claude Code、Gemini等主流AI助手客户端集成。
  • 自动化安装与发布:提供便捷的脚本,自动将您的MCP服务器安装到兼容客户端,并支持自动化发布到NPM。
  • 环境配置:通过'.env.local'文件轻松管理服务器所需的环境变量。
  • TypeScript支持:采用TypeScript编写,提供类型安全和更好的开发体验。

安装步骤

该模板提供了两种使用方式:

方式一:直接运行已发布的包(推荐)

如果您只是想快速体验或部署一个MCP服务器的通用版本,可以直接通过'npx'运行:

# 在终端中运行以下命令
npx @r-mcp/boilerplate

这会直接启动一个预配置的MCP服务器实例。

方式二:克隆并自定义开发

如果您希望基于此模板进行二次开发,添加自己的工具、资源或Prompt,请按以下步骤操作:

  1. 克隆仓库
    git clone https://github.com/BoosClues/mcp-creator.git
    cd mcp-creator
  2. 安装依赖: 确保您已安装 'pnpm' 包管理器。
    pnpm install
  3. 编译项目
    pnpm run build
  4. 启动服务器
    pnpm start
    服务器将在后台运行,并通过标准输入输出与MCP客户端通信。

服务器配置

MCP服务器需要与MCP客户端建立连接。为此,MCP客户端需要知道如何启动您的服务器。此仓库提供了自动化的配置脚本来简化这一过程:

  • 自动化安装脚本:运行 'pnpm run install-server' 会自动将您的MCP服务器配置到所有兼容的MCP客户端(如Claude Desktop, Cursor, Claude Code, Gemini)以及本地开发用的 '.mcp.json' 文件中。您也可以针对特定客户端进行安装,例如 'pnpm run install-cursor'。
  • 配置信息说明:安装脚本会生成一个配置项,其中包含以下关键信息:
    • 服务器名称:一个唯一的标识符,通常是您的项目目录名,用于客户端识别和引用您的MCP服务器。
    • 启动命令:指示客户端如何启动服务器进程。
      • 对于通过NPM发布的版本(推荐用于生产环境),启动命令是 'npx'。
      • 对于本地开发版本,启动命令是 'node'。
    • 启动参数:传递给启动命令的参数。
      • 'npx' 模式下,参数是您的NPM包名及其版本(例如 '@r-mcp/your-server-name@latest'),确保客户端始终使用最新版本。
      • 'node' 模式下,参数是您编译后的服务器入口文件(例如 '/absolute/path/to/your/project/dist/index.js')。
    • 环境变量:脚本会自动读取您项目根目录下的 '.env.local' 文件,将其中的环境变量注入到MCP服务器的启动环境中,确保服务器能够访问所需的API密钥或其他配置信息。

完成安装脚本运行后,请务必重启您的MCP客户端,以便它们加载并连接到新配置的MCP服务器。

基本使用方法

您可以根据需求定制 'src/index.ts' 或创建新的文件来定义更多功能。

  1. 添加工具 (Tools): 在服务器实例上使用 'server.tool()' 方法定义新工具。每个工具需要一个唯一的名称、描述、使用 Zod 定义的参数 Schema,以及一个异步处理函数。

    // 示例:添加一个获取用户信息的工具
    server.tool(
      "get-user-info",
      "获取指定用户ID的详细信息",
      {
        userId: z.string().describe("要查询的用户ID"),
      },
      async ({ userId }) => {
        // 在这里实现获取用户信息的逻辑,例如调用数据库或外部API
        return {
          content: [
            {
              type: "text",
              text: '用户 ${userId} 的信息:...',
            },
          ],
        };
      }
    );
  2. 添加资源 (Resources): 使用 'server.resource()' 方法定义可被AI助手访问的动态内容。通过URI路径中的参数,AI可以获取特定资源。

    // 示例:添加一个提供文章内容的资源
    server.resource(
      "resource://articles/{articleId}",
      "提供指定ID的文章内容",
      async (uri) => {
        const articleId = uri.path.split("/").pop();
        // 根据 articleId 获取文章内容
        return {
          contents: [
            {
              uri,
              mimeType: "text/plain",
              text: '文章 ${articleId} 的具体内容...',
            },
          ],
        };
      }
    );
  3. 添加Prompt模板 (Prompts): 使用 'server.prompt()' 方法定义可复用的对话模板。可以包含参数,允许AI助手根据不同情境生成定制的对话内容。

    // 示例:添加一个代码审查Prompt模板
    server.prompt(
      "code-review",
      "针对提供的代码片段进行审查并给出改进建议",
      {
        codeLanguage: z.string().describe("代码的编程语言"),
        codeContent: z.string().describe("需要审查的代码内容"),
      },
      async ({ codeLanguage, codeContent }) => {
        return {
          description: '审查一段 ${codeLanguage} 语言的代码',
          messages: [
            {
              role: "user",
              content: {
                type: "text",
                text: '请作为一名资深开发者,审查以下 ${codeLanguage} 代码并提供改进建议和潜在问题:\n\'\'\'${codeLanguage}\n${codeContent}\n\'\'\``,
              },
            },
          ],
        };
      }
    );
  4. 发布您的服务器: 当您完成定制并希望发布您的MCP服务器时,只需运行:

    pnpm run release

    此命令会自动化完成版本更新、代码编译、Git提交和推送到远程仓库,并将您的服务器发布到NPM。发布后,您的MCP客户端将能够通过 'npx @r-mcp/<您的项目名称>@latest' 命令自动更新到最新版本。

下一步

  • 克隆或Fork此模板。
  • 在 'src/index.ts' 中根据您的需求添加、修改工具、资源和Prompt。
  • 如有需要,创建 '.env.local' 文件配置环境变量。
  • 运行 'pnpm run release' 发布您的服务器,或使用 'pnpm run install-server' 安装到本地客户端进行测试。

信息

分类

AI与计算