一、什么是 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_workflowscreate_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 的工具执行操作,并返回结果。

六、参考资料

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐