MCP工具生成器

一个VS Code扩展,用于生成和管理MCP服务器工具,支持自定义工具配置和快速扩展开发。

  • by borgius
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 borgius/mcp-generator

使用说明

MCP发生器

VS代码扩展名:

  1. 在以下位置嵌入内部MCP配置 resources/mcp.json
  2. 生成 contributes.languageModelTools 在 package.json 通过查询所有MCP服务器
  3. 在激活时启动这些服务器并将每个VS Code工具调用代理到正确的MCP服务器/工具。

配置服务器

编辑 resources/mcp.json:

{
	"servers": {
		"brop-mcp": {
			"command": "npx",
			"args": ["@borgius/brop-mcp@latest"],
			"transport": { "type": "stdio", "framing": "ndjson" }
		}
	}
}

支持的stdio框架:

  • content-length (默认)
  • ndjson

生成工具

运行:

npm run update-tools

这将从以下位置启动所有服务器 resources/mcp.json,呼叫MCP tools/list,并重写 package.json.contributes.languageModelTools.

生成的工具ID使用友好的格式(例如 brop_cdp_navigate).每个贡献的工具还包括显式路由元数据(mcpServer 和 mcpTool)因此,扩展知道在运行时调用哪个MCP服务器和工具。

运行/调试

  • npm run compile
  • 按 F5 启动扩展主机。

注意:一些MCP服务器(如浏览器自动化服务器)可能需要在工具调用成功之前连接外部应用程序/扩展程序(如Chrome扩展程序)。

将此存储库用作模板✅

您可以将此项目用作创建自己的VS Code扩展的起点,该扩展公开了MCP支持的工具。以下是分步说明和示例,可帮助您分叉、自定义、测试和发布扩展。

副驾驶辅助设置(推荐)

如果您将此仓库用作模板,并希望通过最快的路径“使用我的MCP工具进行扩展”,您可以让 GitHub Copilot 为您定制。

  1. 克隆你的分叉并在VS Code中打开它。

  2. 打开 副驾驶聊天.

  3. 类型 @init-extension 并描述你想要什么。例如:

    @init-extension Set up my extension with:
    - name: my-browser-tools
    - displayName: My Browser Tools
    - publisher: mycompany
    - description: Browser automation tools for VS Code
    - GitHub owner: @myhandle
    - MCP server: npx @anthropic/mcp-server-puppeteer
    

    这 init-extension 代理定义见 .github/agents/init-extension.md.

  4. 回答任何后续问题。副驾驶将:

    • 更新 package.json 元数据
    • 更新 .github/CODEOWNERS
    • 写 resources/mcp.json
    • 跑 npm install, npm run update-tools,以及 npm run compile

发布前查看差异。

手册

  1. 使用GitHub 使用此模板 按钮或分叉仓库以创建自己的副本。

  2. 在本地克隆您的fork并安装依赖项:

    git clone <your-repo-url>
    cd <your-repo-folder>
    npm install
    
  3. 更新中的扩展元数据 package.json: 变化最小 这 name, displayName, description,以及 publisher 字段,以便唯一标识您的扩展名。

    例子:

    {
      "name": "my-mcp-extension",
      "displayName": "My MCP Extension",
      "description": "My custom tools backed by MCP servers",
      "publisher": "your-publisher-id"
    }
    
  4. 在中配置MCP服务器 resources/mcp.json每个服务器都需要一个 command (或绝对路径),可选 args和a transport 定义。

    示例(使用 npx):

    {
      "servers": {
    	 "my-server": {
    		"command": "npx",
    		"args": ["@example/my-mcp-server@latest"],
    		"transport": { "type": "stdio", "framing": "ndjson" }
    	 }
      }
    }
    

    提示:如果您的命令不在GUI PATH上(在macOS上很常见),请使用绝对命令路径(例如。 /opt/homebrew/bin/npx)或者从终端启动VS Code,使其继承您的shell PATH。

  5. 生成工具贡献并将其写入 package.json:

    npm run update-tools
    

    这将启动服务器,调用 tools/list 并重写 contributes.languageModelTools 具有友好的工具ID和路由元数据(mcpServer / mcpTool).

  6. 构建和测试:

    • 构建: npm run compile
    • 磨合开发:Press F5 启动扩展主机并使用工具。
    • 测验: npm test
  7. 发布(可选):

    • 安装 vsce 或使用 @vscode/vsce 打包并发布扩展。

    • 典型步骤:

      npm install -g vsce
      vsce package
      vsce publish
      

      确保你的 publisher 已设置,并且您已在VS Code Marketplace上创建了发布者。

常见定制和提示

  • 工具ID命名:生成器使用 serverShort_toolName (例如。, brop_cdp_navigate).您可以稍后在中重命名 package.json,但要保持 mcpServer 和 mcpTool 指向原始MCP工具的元数据。
  • PATH问题:如果服务器无法生成 ENOENT,从终端启动VS Code或设置 command 到绝对路径,或添加 env 进入 resources/mcp.json.
  • 外部依赖性:一些MCP服务器需要外部组件(例如浏览器扩展、正在运行的浏览器)。在README中记录先决条件。
  • 安全:永远不要将秘密或私钥提交给 resources/mcp.json.改用环境变量,并记录如何在本地或通过CI提供它们。

模板检查表

  1. 分叉或使用此模板
  2. 更新 package.json 元数据(name, displayName, publisher, description)
  3. 编辑 resources/mcp.json 包括您的服务器
  4. 跑 npm install 然后 npm run update-tools
  5. 构建和测试: npm run compile + F5, npm test
  6. 使用项目特定的说明和先决条件更新README
  7. 准备就绪后打包并发布

GitHub Actions工作流包含在 .github/workflows/ci.yml;它运行编译、测试和验证 update-tools该工作流还包括一个可选的自动提交步骤(在向默认分支推送时运行),该步骤将提交 package.json 更改时 update-tools 更新贡献的工具——如果您更喜欢手动提交,请编辑或删除该步骤。

更喜欢编辑 resources/mcp.example.json 开始时将其复制到 resources/mcp.json 准备好后放在叉子里。看 TEMPLATE.md 获取简明的入职检查表。使用交互式助手快速构建分叉项目: npm run init-extension --它会更新 package.json,写道 resources/mcp.json,以及更新 .github/CODEOWNERS 为你。更新 .github/CODEOWNERS 如果你喜欢手动操作,可以使用你的GitHub句柄。