从零开始,手把手带你玩转 MCP(Model Context Protocol)


开篇:你有没有这种困惑?

用 ChatGPT、Claude 这些 AI 助手的时候,是不是经常遇到这样的尴尬:

  • "帮我看看今天茅台涨了还是跌了?" → AI 说数据只到去年

  • "把我 GitHub 上的 issue 整理一下。" → AI 说它访问不了

  • "这个网页里写了什么?" → AI 让你自己复制粘贴

AI 脑子确实聪明,但它的眼睛看不到外面,手也伸不出去——它是一个困在聊天框里的天才

MCP 就是给这个天才装上了眼睛和双手。


一、MCP 到底是个啥?

一句话解释

MCP(Model Context Protocol,模型上下文协议)是一种标准协议,让 AI 助手能够调用外部工具、访问实时数据。

打个比方:

比喻 对应 说明
🧠 AI 模型本身 大脑 能思考、能推理、能计算
🔌 MCP 协议 神经系统 把大脑的指令传给手脚
🛠️ MCP 服务器 手和眼睛 具体干活的东西

没有 MCP 的 AI:你问"今天天气怎么样?",它说"我的数据截止到去年……"

有了 MCP 的 AI:你问"今天天气怎么样?",它真的去查了天气接口,然后告诉你现在的温度。

MCP 能做什么?

举几个真实例子(这些就是本文作者实际在用的):

  • 📈 查股票:实时行情、K线数据、财务报表、技术指标,对话中就能完成完整分析

  • 🗓️ 查黄历/排八字:输入生日,直接排出八字命盘

  • 🌐 读网页:给一个链接,AI 直接抓取内容然后总结给你

  • 🐙 管 GitHub:创建 Issue、查看 PR、管理仓库

  • 🗄️ 操作数据库:AI 直接写 SQL 查数据、分析报表

  • 🌍 浏览器自动化:打开网页、截图、填表单、自动化测试

一句话:你能想到的需要"联网"或"操作外部系统"的事,MCP 基本都能搞定。


二、MCP 是怎么工作的?

两种连接方式

MCP 服务器有两种存在形式:

方式一:远程服务(HTTP 模式)

你的电脑  → 互联网 → 远程 MCP 服务器(别人搭好的)

就像调用一个 API,配好地址就能用。比如 GitHub 的 MCP 服务就托管在 GitHub 的服务器上。

方式二:本地进程(命令行模式)

Claude Code → 启动一个本地程序 → 这个程序提供工具

MCP 服务器直接跑在你电脑上,Claude 跟它通信。比如 Playwright MCP 会在你本地启动浏览器。

一个完整的调用流程

你:帮我看看平安银行今天行情怎么样?
      ↓
Claude:(需要查股票数据 → 找可用的 MCP 工具 → 发现 china-stock-mcp 有 get_realtime_data)
      ↓
Claude → 调用 get_realtime_data("000001")
      ↓
MCP 服务器 → 获取实时行情 → 返回数据
      ↓
Claude → 解读数据 → 用自然语言回复你
      ↓
你看到:今天平安银行报收 XX.XX 元,涨跌幅 +X.XX%...

全程你不需要知道工具名叫啥,你只负责说人话就行。


三、怎么配置 MCP?

配置文件放在哪?

MCP 用 JSON 文件配置,有三个级别:

配置文件 位置 谁能用 建不建议提交 Git
.mcp.json 项目根目录 该项目所有人 ✅ 推荐提交
~/.claude.json 用户个人目录 仅你自己 ❌ 不提交
插件自带 插件目录 安装插件的用户 随插件分发

远程服务的配置(HTTP 模式)

比如连接一个 GitHub MCP:

{
  "github": {
    "type": "http",
    "url": "https://api.githubcopilot.com/mcp/",
    "headers": {
      "Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
    }
  }
}

注意 Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN} 这一行——密钥用环境变量,不要硬编码在文件里

本地进程的配置(命令行模式)

比如在项目里配一个 PostgreSQL 数据库的 MCP:

{
  "postgres": {
    "command": "npx",
    "args": ["-y", "@anthropic-ai/mcp-postgres", "postgresql://localhost/mydb"]
  }
}

command 是启动程序(npx、python、node、docker 都可以),args 是参数。保存文件后重启对话,工具就生效了。

团队协作的最佳实践

.mcp.json 签入项目 git 仓库,团队成员 pull 下来就能用同一套工具。比如你们公司内部有个数据查询接口,配置好 MCP 后,全团队跟 AI 对话都能直接查数据,不用每个人都去学 SQL。


四、在对话里怎么用?(重点)

你不需要记任何工具名。

这是 MCP 最大的设计亮点——你只管用自然语言提需求,AI 自己会选择合适的工具。

以下是你跟 Claude 说话,它底层自动调用的对应关系:

你说的话 Claude 默默做的事
"今天大盘怎么样?" 调用行业板块分析、查看涨跌家数
"帮我分析 000001" 拉行情数据、财务指标、技术图形
"有哪些半导体股票在涨?" 热门行业排行 + 连涨选股
"算一下 2000 年正月十五出生的八字" 调 Bazi-MCP 排盘
"把这篇文章翻译一下" fetch 网页 → 翻译

你用 MCP 的时候跟在用普通 AI 完全一样——唯一区别是,它能真正帮你"干活"了。


五、常见问题 FAQ

Q1:我怎么知道当前有哪些 MCP 工具?

在 Claude Code 里输入 /mcp 就能看到所有已连接的 MCP 服务。或者在对话里直接问"你有哪些工具?"。

Q2:工具调用失败了怎么办?

最常见三种原因:

  1. 本地进程没装依赖 → 检查 Node.js、Python 环境

  2. API Key 过期 → HTTP 模式的常见问题,重新配一下

  3. 网络不通 → 少见,检查防火墙和代理

排错命令:claude --mcp-debug,会显示详细的 MCP 调用日志。

Q3:配了 MCP 会不会泄露隐私?

  • 本地进程模式:数据不出电脑,隐私最安全

  • HTTP 模式:数据会发送到远程服务器,确保你信任那个服务

不管哪种,别把密钥硬编码在 JSON 文件里,用环境变量 ${VAR} 引用。

Q4:MCP 和传统的 API 调用有什么区别?

传统方式:你要自己写代码调 API、解析 JSON、格式化输出; MCP 方式:你说一句话,AI 完成上面所有步骤,给你整理好的结果。

MCP 是把"API 调用"这件事对普通用户透明化了。


六、手把手实战:以 GitHub MCP 为例

上面的内容比较概念化。接下来用一个真实案例——安装 GitHub MCP 插件并打通——让你看看整个过程有多简单,以及遇到问题该怎么排错。

6.1 第一步:安装插件

在 Claude Code 里输入一条命令:

/plugin install github

系统输出:

✓ Installed github. Run /reload-plugins to apply.

装好了。但这时工具还不能用——因为它需要你证明你有访问 GitHub 的权限

6.2 第二步:重载插件(第一次尝试)

按提示执行:

/reload-plugins

再去 /mcp 面板里看:

Failed to reconnect to plugin:github:github.

连不上。 这是新手最容易遇到的坑。别慌,看看插件配置文件就明白了。

6.3 第三步:看配置,找问题

插件的 .mcp.json 长这样:

{
  "github": {
    "type": "http",
    "url": "https://api.githubcopilot.com/mcp/",
    "headers": {
      "Authorization": "Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}"
    }
  }
}

注意 Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN} 这行——它在引用一个叫 GITHUB_PERSONAL_ACCESS_TOKEN 的环境变量,而当前系统里没设这个变量。GitHub 服务器收到空的 Token,直接拒绝了连接。

问题根因:缺 GitHub 访问令牌。

6.4 第四步:创建 GitHub Token

  1. 打开浏览器,登录 GitHub → Settings → Developer settings → Personal access tokens

  2. 点 "Generate new token (classic)"

  3. 勾选 reporead:user 这些基本权限

  4. 点生成,立刻复制 Token(关掉页面就看不到了)

生成出来的 Token 类似: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

6.5 第五步:写入环境变量

打开 ~/.claude/settings.json,在 env 字段里加上:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "sk-xxxxxxxx",
    "ANTHROPIC_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
    "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
  },
  "enabledPlugins": {
    "github@claude-plugins-official": true
  }
}

⚠️ 注意:Token 存配置文件里有泄露风险。实际使用时建议 Token 权限收窄到只勾 public_reporead:user,够用就行。

6.6 第六步:重载,验证

再次执行 /reload-plugins

Reloaded: 1 plugin · 0 skills · 5 agents · 0 hooks · 1 plugin MCP server

1 plugin MCP server——这次带上了!

6.7 第七步:真正使用

在对话里说一句:

"看看我有哪些 GitHub 仓库"

Claude 自动调用了 get_me 工具获取你的 GitHub 身份:

登录名: xxx
公开仓库: 1 个

然后自动调用 search_repositories,返回:

仓库名 描述 链接
skills-introduction-to-github My clone repository github.com/xxx/skills-introduction-to-github

全程你就说了 9 个字。 没有手写 API 调用,没有解析 JSON,没有拼接 URL。

6.8 GitHub MCP 还能做什么?

安装这个插件后,Claude 获得了 30+ 个 GitHub 操作工具,包括:

分类 可以做的事
📂 仓库管理 查看仓库、列目录、读文件、创建/修改文件
📝 Issue 创建 Issue、查看、修改状态、添加评论
🔀 Pull Request 创建 PR、查看 diff、review、合并
📊 搜索 搜代码、搜仓库、搜 Issue、搜用户
🏷️ 标签与发布 管理标签、创建 Release
🌿 分支 查看分支、创建新分支

常用的对话场景:

你说的话 Claude 做的事
"帮我创建一个 Issue:登录页样式炸了" Issue 创建完成,返回链接
"这个 PR 改了什么?" 拉 diff、总结变更
"把最近的 commit 整理成周报" 查 commit 历史 → 归纳汇总
"这个 bug 在代码里哪里出现的?" GitHub 搜索代码 → 定位文件
"帮我 Review 一下 #42 这个 PR" 读代码变更 → 逐条给出建议

七、入门路线总结

  1. 先体验 → 按上面的教程装 GitHub MCP 插件,10 分钟搞定,感受 MCP 能做什么

  2. 再扩展 → 在项目里写 .mcp.json,配跟你工作直接相关的服务(前端配 Playwright,后端配 Postgres)

  3. 进阶 → 自己开发 MCP 服务器,封装团队特有的工具。不难,一小时能搞出原型


结尾

MCP 并不是什么高深的技术,它本质上就是给 AI 接上外部世界的插头

配置好了之后你会发现:AI 从一个"只能陪你聊天"的工具,变成了一个真正能帮你完成工作的助手

如果你还在观望,不妨现在就装上第一个 MCP 插件,试一下——我敢说试完之后,你就回不去纯聊天模式了 😄

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构