如何在 VS Code 中将 MCP 与 GitHub Copilot 集成

Jacki

模型上下文协议 (MCP)是一个Anthropic 开发的开放标准简化和标准化大型语言模型 (LLM) 与外部工具、数据库和 API 的集成方式。将 MCP 视为 AI 模型的“USB-C 端口”:就像 USB-C 统一设备连接一样,MCP 旨在为 AI 与工具交互创建通用接口。

最初是为了增强克劳德的与外部系统交互的能力,MCP2024 年初开源促进全行业的采用。通过公开协议,Anthropic 的目标是建立一个用于工具通信的共享基础设施,最大限度地减少定制集成的需求,同时促进模块化,互操作性, 和开发人员生产力在人工智能应用中。

通过 MCP,语言模型可以:

  • 动态调用API并获取实时数据
  • 使用一致的方式与数据库和第三方工具进行交互
    格式
  • 避免硬编码逻辑,使模型行为更加灵活
    可维护的

简而言之,MCP 正在重塑 AI 模型融入现实世界的方式,从孤立的整体系统转变为灵活的、具有工具感知能力的代理,可以使用标准化方法进行推理、检索和操作。

先决条件

在开始之前,请确保您具备以下条件:

Visual Studio 代码(VS 代码): 更新到最新版本。

GitHub 帐户:可以访问 GitHub Copilot(免费、专业版、商业版或企业版计划)。

GitHub Copilot 扩展:在 VS Code 中安装并启用了 GitHub Copilot 和 GitHub Copilot Chat 扩展。

Node.js:安装了最新的 LTS 版本(检查node -v在您的终端中)。从下载Node.js 官方网站如果需要的话。

Python:为 PIP 包安装(可选,具体取决于 MCP 服务器)。从下载Python 官方网站如果需要的话。

git:安装用于版本控制和存储库管理。

第 1 步:设置
环境

更新 VS 代码:

打开 VS Code 并通过“帮助”>“检查更新”菜单检查更新。

确保您运行的是最新的稳定版本或 Insiders 版本以支持 MCP 集成。

登录 GitHub:

在 VS Code 中,转到活动栏中的“帐户”菜单。

选择“通过 GitHub 登录以使用 GitHub Copilot”,然后按照提示使用您的 GitHub 帐户进行身份验证。如果您没有 Copilot 订阅,您将注册 Copilot 免费计划,但完成次数和聊天互动有限。

安装 Node.js 和 Python:

通过运行验证 Node.js 安装node -v在您的终端中。如果不存在,请安装最新的 LTS 版本。

通过运行验证 Python 安装python --version或者python3 --version。如果基于 PIP 的 MCP 服务器需要,请安装 Python。

MCP 支持多种语言和包(例如,TypeScript、Docker、C#),但本指南重点关注用于 NPX 包的 Node.js 和用于 PIP 包的 Python。

安装 GitHub Copilot 扩展:

在 VS Code 中,转到扩展视图 (Ctrl+Shift+X或者Cmd+Shift+X在 macOS 上)。

搜索“GitHub Copilot”并安装GitHub 副驾驶GitHub 副驾驶聊天扩展。

安装后重新启动 VS Code。

步骤 2:在 VS Code 中配置 MCP

MCP 服务器增强了 GitHub Copilot 的功能代理模式通过提供用于存储库管理、文件操作或 API 调用等任务的工具。以下是在 VS Code 中配置 MCP 服务器的方法:

建议阅读:逐步将 Zoom 与 Google 日历集成

选择 MCP 服务器:

参观MCP 文档或者GitHub 的 MCP 服务器存储库查看支持的服务器列表(例如,GitHub MCP 服务器、Microsoft Playwright MCP 服务器)。

对于本指南,我们将使用GitHub MCP 服务器用于与存储库相关的操作,例如创建问题或比较文件。

安装 MCP 服务器:

在 VS Code 中打开终端(Ctrl+`(next 1) or在 macOS 上为 Cmd+`)。

对于 GitHub MCP 服务器,请按照官方存储库中的设置说明进行操作(例如,npm install @github/copilot-language-server对于基于 Node.js 的服务器)。

或者,使用 VS Code 界面:

打开 GitHub Copilot 聊天视图 (Ctrl+Alt+I或者Cmd+Alt+I)。

选择代理模式从聊天模式下拉列表中。

如果出现提示,请单击“安装 MCP 服务器”按钮(例如,对于 Azure MCP 服务器或 GitHub MCP 服务器)。

在工作区设置中配置 MCP:

创建一个.vscode/mcp.json工作区文件夹中的文件来定义 MCP 服务器设置。例子:

复制


{
	"servers": [
	{
		"name": "GitHub MCP Server",
		"transport": "stdio",
		"command": ["node", "./node_modules/@github/copilot-language-server/dist/language-server.js", "--stdio", "true"]
	}
	]
}
											

或者,将 MCP 服务器设置添加到您的用户设置(Ctrl+,或者Cmd+,> 搜索“MCP”):

复制


{
	"mcp.servers": [
		{
		"name": "GitHub MCP Server",
		"transport": "stdio",
		"command": ["node", "./node_modules/@github/copilot-language-server/dist/language-server.js", "--stdio", "true"]
		}
	]
	}
											

确保command指向 MCP 服务器可执行文件的正确路径。

启用 MCP 工具:

在副驾驶聊天视图中,切换到代理模式

单击工具按钮并刷新工具列表。应出现已安装的 MCP 服务器(例如“GitHub MCP 服务器”)。如果需要,将其打开。

第 3 步:编写和测试 MCP 代码

MCP 使 Copilot 能够执行创建 GitHub 问题或比较文件等操作。以下是编写和测试 MCP 相关交互的方法:

编写 MCP 提示:

在副驾驶聊天视图中,确保代理模式被选中。

  • 使用带有上下文变量的自然语言提示。示例:
    • 迅速的:“创建一个 GitHub 问题以添加新的
      功能到我的存储库。”
    • 迅速的:“比较我的ServerConfig.json
      具有类似的公共 GitHub 存储库配置并建议
      改进。 #文件:ServerConfig.json”
  • 使用添加上下文添加上下文按钮或变量,例如#file或者#codebase

    测试 MCP 交互:

    在 Copilot Chat 输入字段中输入提示,然后按 Enter。

    Copilot 将调用 MCP 服务器的工具(例如,用于创建问题的 GitHub API)并在聊天视图中显示结果。

    查看输出(例如,在存储库中创建的新问题或文件比较的差异)。

    通过选择接受更改保持或者接受在聊天视图中,或者如果不正确则拒绝它们。

    MCP 交互的示例 Node.js 代码:

    如果开发自定义 MCP 服务器,请使用 MCP SDK。下面是一个基本的 Node.js 示例,用于创建用于列出存储库文件的工具:

    复制

    
    const { MCPServer } = require('@anthropic/mcp-sdk');
    	
    const server = new MCPServer({
    transport: 'stdio',
    tools: [
    	{
    	name: 'list_repository_files',
    	description: 'Lists files in a GitHub repository',
    	execute: async (params) => {
    		const { repo } = params;
    		// Simulated GitHub API call
    		return ['index.js', 'package.json', 'README.md'];
    	},
    	},
    ],
    });
    
    server.start();
    											

    将此另存为mcp-server.js并运行它node mcp-server.js配置 VS Code 以使用此服务器,如步骤 2 所示。

    MCP 交互的 Python 代码示例:

    对于基于 Python 的 MCP 服务器,请使用 Python MCP SDK:

    复制

    
    from mcp_sdk import MCPServer
    
    server = MCPServer(
    	transport="stdio",
    	tools=[
    		{
    			"name": "create_github_issue",
    			"description": "Creates a GitHub issue in a repository",
    			"execute": lambda params: f"Issue created in {params['repo']} with title: {params['title']}",
    		}
    	],
    )
    
    server.start()span>Use async/await for asynchronous code.
    										

    另存为mcp_server.py并运行python mcp_server.py。更新.vscode/mcp.json文件指向此脚本。

    第 4 步:高级功能和定制

    定制说明:

    创建一个.github/copilot-instructions.md文件以提供特定于项目的上下文(例如,编码标准、首选库)。例子:

    复制

    
    # Copilot Instructions
    This project is a web application built with Node.js and Express.
    - Use camelCase for variable names.
    - Prefer async/await over callbacks.
    - Use the GitHub MCP server for repository actions.
    											

    Copilot 在代理模式下自动应用这些指令。

    动态工具更新:

    MCP 服务器可以使用列表更改事件动态更新工具。修改您的 MCP 服务器代码以在添加新工具时发出更新。

    远程 MCP 服务器:

    在 Azure 容器应用等平台上托管 MCP 服务器以进行远程访问。将 VS Code 配置为通过服务器发送事件 (SSE) 而不是 stdio 进行连接。

    及时工程:

    使用特定提示以获得更好的结果。示例:“生成 Node.js 函数以使用 GitHub MCP 服务器从 API 获取数据。

    第 5 步:故障排除和最佳实践

    故障排除:

    • 未检测到 MCP 服务器:检查
      .vscode/mcp.json文件以获得正确的命令路径。跑步
      MCP: List Servers从命令面板进行验证。
    • 没有建议:确保代理模式处于活动状态并且
      MCP 服务器在“工具”菜单中打开。
    • 聊天视图中的错误:选择错误通知
      并选择“显示输出”以查看服务器日志。
    • 身份验证问题:重新验证您的 GitHub
      如果 Copilot 连接失败,请通过帐户菜单创建帐户。

    最佳实践:

    • 使用受信任的 MCP 服务器:仅安装服务器
      核实来源,避免安全风险。
    • 保持提示具体:将任务分解为更小的任务,
      清晰的提示(例如,“生成一个函数”而不是“构建一个函数”)
      应用程序”)。
    • 版本控制说明: 店铺
      .github/copilot-instructions.md在您的存储库中进行共享
      与你的团队。
    • 测试变更:始终检查和测试 Copilot 的
      在接受之前建议,因为 MCP 操作可能会修改文件或
      存储库。

    结论

    在 VS Code 中将模型上下文协议 (MCP) 与 GitHub Copilot 集成,可释放强大的 AI 驱动功能,从而实现与 GitHub 存储库、API 和外部工具的无缝交互。通过遵循本指南,您已了解如何设置环境、配置 MCP 服务器、编写和测试 MCP 交互以及利用自定义指令等高级功能。借助 MCP 的标准化接口,您可以扩展 Copilot 的代理模式以满足您的项目需求,从而提高生产力和模块化程度。

    如需进一步探索,请检查以下资源:

    尝试不同的 MCP 服务器和提示,根据您的工作流程定制 Copilot,并与社区分享您的反馈,以帮助塑造 AI 驱动开发的未来!