第五节:MCP Servers——AI 的“万能插座”
一、什么是 MCP(Model Context Protocol)?
Agent Skills 解决了“AI 知道该怎么做”的问题,但如果 AI 需要直接操作外部系统——查询数据库、调用云 API、读写远程文件——单靠指令和脚本是不够的。
MCP(Model Context Protocol)正是为解决这个问题而生的。它是由 Anthropic 于 2024 年 11 月推出的开放标准,用于将 AI 助手连接到外部数据源和工具。
💡 核心理解:如果把 Agent Skills 比作“教 AI 怎么做”的知识注入,MCP 就是“让 AI 能做什么”的执行基础设施。Skill 是“大脑”——告诉 AI 流程和步骤;MCP 是“双手”——让 AI 能真正执行操作。
1.1 MCP 的工作原理
MCP 服务器作为独立进程运行,通过标准化接口向 AI 客户端暴露“工具”(Tools,即可调用的函数)。AI 在对话中可以判断何时需要调用哪个工具,并请求 MCP 服务器执行。
MCP 服务器的能力包括:
- 执行代码或脚本
- 查询数据库
- 访问文件系统
- 调用外部 API
- 与云服务交互
二、MCP 服务器类型
Copilot SDK 支持两种类型的 MCP 服务器配置:
| 类型 | 通信方式 | 适用场景 |
|---|---|---|
| Local/Stdio | 作为子进程运行,通过 stdin/stdout 通信 | 本地工具、文件访问、自定义脚本 |
| HTTP/SSE | 通过 HTTP 访问远程服务器 | 共享服务、云托管工具、团队共用 |
💡 使用建议:日常开发优先使用 Local 服务器,简单可靠。当需要多人共享同一套工具时,再考虑 HTTP 方案。
三、MCP 配置方法
3.1 在 Copilot CLI 中配置 MCP 服务器
Copilot CLI 通过 /mcp 命令家族支持 MCP 服务器。
交互式添加 MCP 服务器:
# 启动 Copilot CLI 交互模式
copilot
# 在交互会话中执行
/mcp add
系统会打开配置表单,需要填写以下字段:
| 字段 | 说明 | 示例 |
|---|---|---|
| Server Name | MCP 服务器标识名 | azure-mcp |
| Server Type | 1(Local)或 2(HTTP) |
1 |
| Command | 启动服务器的命令 | npx -y @azure/mcp@latest server start |
| Environment Variables | 环境变量(可选) | 可留空 |
| Tools | 允许使用的工具范围 | *(全部)或 ["tool1", "tool2"] |
配置后按 Ctrl+S(或 Cmd+S)保存,按 Esc 关闭配置界面。
验证配置:
/mcp show
成功配置后会显示类似输出:
● MCP Server Configuration:
• azure-mcp (local): Command: npx
Total servers: 1
Config file: ~/.copilot/mcp-config.json
3.2 在 VS Code 中配置 MCP(通过 .mcp.json)
在项目根目录创建 .mcp.json 文件,可以定义工作区级的 MCP 服务器配置。
基础结构示例:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"],
"env": {},
"tools": ["*"]
},
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_TOKEN}"
},
"tools": ["list_issues", "create_issue"]
}
}
}
3.3 通过 Copilot SDK 编程配置
如果你正在使用 Copilot SDK 开发 AI 应用,可以在代码中直接配置 MCP 服务器。
Node.js / TypeScript:
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
const session = await client.createSession({
model: "gpt-5",
mcpServers: {
// Local MCP server (stdio)
"my-local-server": {
type: "local",
command: "node",
args: ["./mcp-server.js"],
env: { DEBUG: "true" },
cwd: "./servers",
tools: ["*"], // "*" = 全部工具, [] = 无, 或列出具体工具
timeout: 30000,
},
// Remote MCP server (HTTP)
"github": {
type: "http",
url: "https://api.githubcopilot.com/mcp/",
headers: { "Authorization": "Bearer ${TOKEN}" },
tools: ["*"],
},
},
});
四、MCP vs. Skill——核心区别与协作
这是两个最容易被混淆的概念,以下是它们的本质区别:
| 维度 | Agent Skills | MCP Servers |
|---|---|---|
| 定位 | 知识层——注入流程和指南 | 执行层——连接外部工具 |
| 核心内容 | 用自然语言写成的步骤和指引 | 用代码编写的功能函数 |
| 能否独立运行 | 否,依赖 AI 理解并执行指令 | 是,作为独立进程运行 |
| 典型能力 | 告诉 AI “按 A→B→C 步骤执行” | 提供 list_workflows、create_issue 等可调用函数 |
| 与前三节关系 | Skill = Instructions + Prompt + Agent(增强版) | 完全新的维度,供 Agent 调用 |
💡 一句话区分:Skill 中的脚本是“AI 帮我执行”的脚本(AI 调用),而 MCP 暴露的工具是“AI 自己决定调不调用”的函数。Skill 是“手册”,MCP 是“工具库”。
五、完整实战示例:集成 Azure MCP Server
以下是一个完整的 Azure MCP Server 集成示例。
前置条件
- 安装 GitHub Copilot CLI
- 安装并登录 Azure CLI(
az login) - 安装 Node.js
在 Copilot CLI 中配置 Azure MCP Server
# 启动 Copilot CLI
copilot
# 进入 MCP 配置
/mcp add
填写配置表单:
| 字段 | 值 |
|---|---|
| Server Name | azure-mcp |
| Server Type | 1 (Local) |
| Command | npx -y @azure/mcp@latest server start |
| Environment Variables | 留空(利用 Azure CLI 认证) |
| Tools | * |
按 Ctrl+S 保存配置后,即可开始使用。
使用示例
在 Copilot CLI 会话中输入自然语言指令:
> 列出我的 Azure 资源组
Copilot 会识别意图,通过 Azure MCP Server 的工具执行操作,并返回结果。
六、参考资料
- GitHub SDK Docs: Using MCP servers with the GitHub Copilot SDK
- GitHub Skills: Integrate MCP with GitHub Copilot
- Microsoft Learn: Integrate Azure MCP Server with GitHub Copilot CLI
- Anthropic: Introducing the Model Context Protocol
- MCP Specification: modelcontextprotocol.io
- GitHub Blog: The era of “AI as text” is over. Execution is the new interface.
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)