前言:什么是MCP?为什么你需要它?

想象一下,如果Claude是一个超级聪明的助手,那么MCP(Model Context Protocol)就是给它装上了各种神奇的"义肢"。就像钢铁侠的盔甲一样,MCP让Claude能够连接到外部世界,访问数据库、API、文件系统,甚至你的GitHub仓库(1)

简单来说,MCP就像是AI界的USB-C接口——一个标准化的方式,让AI模型能够连接到各种不同的数据源和工具(1)。而Claude Code就是这个生态系统中最酷的客户端之一。

第一章:MCP基础知识(不要打瞌睡!)

MCP到底是什么鬼?

Model Context Protocol是一个开放协议,让LLM能够访问外部工具和数据源(2)。想象一下,如果Claude是一个被困在房间里的天才,MCP就是给它开了窗户,让它能看到外面的世界。

为什么选择MCP而不是其他方案?

因为MCP是标准化的!就像你不想每次买新手机都要换充电器一样,开发者也不想为每个AI模型写不同的集成代码。MCP让这一切变得简单优雅。

第二章:配置MCP服务器(开始动手吧!)

警告:请谨慎选择你的MCP服务器

在开始之前,有个重要提醒:使用第三方MCP服务器需要自担风险(2)。确保你信任这些服务器,特别是那些与互联网通信的服务器,因为它们可能会让你面临提示注入风险(2)。就像你不会随便让陌生人进你家一样,不要随便信任不明来源的MCP服务器。

添加stdio服务器(最常见的类型)

这是最基础的服务器类型,就像学开车先学手动挡一样:

# 基本语法
claude mcp add <name> <command> [args...] # 示例:添加一个本地服务器
claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2

(2)

添加SSE服务器(实时通信的好伙伴)

SSE(Server-Sent Events)服务器适合需要实时通信的场景:

# 基本语法
claude mcp add --transport sse <name> <url> # 示例:添加一个SSE服务器
claude mcp add --transport sse sse-server https://example.com/sse-endpoint # 示例:添加带自定义头部的SSE服务器
claude mcp add --transport sse api-server https://api.example.com/mcp --header "X-API-Key: your-key"

(2)

添加HTTP服务器(老实可靠的选择)

HTTP服务器就像是MCP世界里的"老实人"——可靠、稳定、大家都懂:

# 基本语法
claude mcp add --transport http <name> <url> # 示例:添加一个可流式传输的HTTP服务器
claude mcp add --transport http http-server https://example.com/mcp # 示例:添加带认证头部的HTTP服务器
claude mcp add --transport http secure-server https://api.example.com/mcp --header "Authorization: Bearer your-token"

(2)

管理你的MCP服务器(像管理你的朋友圈一样)

# 列出所有配置的服务器(看看你有多少"朋友")
claude mcp list # 获取特定服务器的详细信息(深入了解某个"朋友")
claude mcp get my-server # 删除服务器(有时候需要断舍离)
claude mcp remove my-server

(2)

第三章:理解MCP服务器作用域(像管理权限一样重要)

MCP服务器可以在三个不同的作用域级别进行配置,每个都有其独特的用途(3)

作用域层次结构和优先级

MCP服务器配置遵循清晰的优先级层次结构(3)。当同名服务器存在于多个作用域时,系统通过优先考虑本地作用域服务器,然后是项目作用域服务器,最后是用户作用域服务器来解决冲突(3)。这种设计确保个人配置可以在需要时覆盖共享配置(3)

Local作用域(你的私人空间)

本地作用域服务器代表默认配置级别,存储在你的项目特定用户设置中(3)。这些服务器对你保持私有,只有在当前项目目录中工作时才可访问(3)。这个作用域非常适合个人开发服务器、实验性配置或包含不应共享的敏感凭据的服务器(3)

# 添加本地作用域服务器(默认)
claude mcp add my-private-server /path/to/server # 明确指定本地作用域
claude mcp add my-private-server -s local /path/to/server

(3)

Project作用域(团队合作的桥梁)

项目作用域服务器通过在项目根目录存储配置到.mcp.json文件中来实现团队协作(3)。这个文件设计为检入版本控制,确保所有团队成员都能访问相同的MCP工具和服务(3)。当你添加项目作用域服务器时,Claude Code会自动创建或更新这个文件,使用适当的配置结构(3)

# 添加项目作用域服务器
claude mcp add shared-server -s project /path/to/server

(3)

生成的.mcp.json文件遵循标准化格式(3)

{
"mcpServers": {
"shared-server": {
"command": "/path/to/server",
"args": [],
"env": {}
}
}
}

(3)

出于安全原因,Claude Code在使用来自.mcp.json文件的项目作用域服务器之前会提示批准(3)。如果你需要重置这些批准选择,使用claude mcp reset-project-choices命令(3)

User作用域(跨项目的好帮手)

用户作用域服务器提供跨项目可访问性,使它们在你机器上的所有项目中都可用,同时对你的用户账户保持私有(3)。这个作用域非常适合个人实用程序服务器、开发工具或你在不同项目中经常使用的服务(3)

# 添加用户服务器
claude mcp add my-user-server -s user /path/to/server

(3)

如何选择正确的作用域

根据以下标准选择作用域(3)

  • Local作用域:个人服务器、实验性配置或特定于一个项目的敏感凭据(3)
  • Project作用域:团队共享服务器、项目特定工具或协作所需的服务(3)
  • User作用域:多个项目需要的个人实用程序、开发工具或经常使用的服务(3)

环境变量扩展(让配置更灵活)

Claude Code支持在.mcp.json文件中进行环境变量扩展,允许团队共享配置,同时为机器特定路径和API密钥等敏感值保持灵活性(3)

支持的语法:(3)

  • ${VAR} - 扩展为环境变量VAR的值(3)
  • ${VAR:-default} - 如果设置了VAR则扩展为其值,否则使用default(3)

扩展位置:(3) 环境变量可以在以下位置扩展:

  • command - 服务器可执行文件路径(3)
  • args - 命令行参数(3)
  • env - 传递给服务器的环境变量(3)
  • url - 用于SSE/HTTP服务器类型(3)
  • headers - 用于SSE/HTTP服务器认证(3)

带变量扩展的示例:(3)

{
"mcpServers": {
"api-server": {
"type": "sse",
"url": "${API_BASE_URL:-https://api.example.com}/mcp",
"headers": {
"Authorization": "Bearer ${API_KEY}"
}
}
}
}

(3)

如果所需的环境变量未设置且没有默认值,Claude Code将无法解析配置(3)

第四章:认证和安全(保护你的数字王国)

与远程MCP服务器认证

许多远程MCP服务器需要认证(2)。Claude Code支持OAuth 2.0认证流程,用于安全连接到这些服务器(2)

步骤1:添加需要认证的远程服务器(2)

# 添加需要OAuth的SSE或HTTP服务器
claude mcp add --transport sse github-server https://api.github.com/mcp

(2)

步骤2:使用/mcp命令进行认证(2)

在Claude Code中,使用/mcp命令管理认证(2)

> /mcp

(2)

这会打开一个交互式菜单,你可以(2)

  • 查看所有服务器的连接状态(2)
  • 与需要OAuth的服务器进行认证(2)
  • 清除现有认证(2)
  • 查看服务器功能(2)

步骤3:完成OAuth流程(2)

当你为服务器选择"认证"时(2)

  1. 你的浏览器会自动打开到OAuth提供商(2)
  2. 在浏览器中完成认证(2)
  3. Claude Code接收并安全存储访问令牌(2)
  4. 服务器连接变为活跃状态(2)

小贴士:

  • 认证令牌被安全存储并自动刷新(2)
  • /mcp菜单中使用"清除认证"来撤销访问(2)
  • 如果你的浏览器没有自动打开,复制提供的URL(2)
  • OAuth认证适用于SSE和HTTP传输(2)

第五章:实际应用示例(让理论变成实践)

连接到Postgres MCP服务器(数据库探索者)

假设你想给Claude只读访问PostgreSQL数据库,用于查询和模式检查(2)

步骤1:添加Postgres MCP服务器(2)

claude mcp add postgres-server /path/to/postgres-mcp-server --connection-string "postgresql://user:pass@localhost:5432/mydb"

(2)

步骤2:用Claude查询你的数据库(2)

> describe the schema of our users table

(2)

> what are the most recent orders in the system?

(2)

> show me the relationship between customers and invoices

(2)

小贴士:

  • Postgres MCP服务器为了安全提供只读访问(2)
  • Claude可以帮助你探索数据库结构并运行分析查询(2)
  • 你可以使用这个功能快速理解不熟悉项目中的数据库模式(2)
  • 确保你的连接字符串使用具有最小所需权限的适当凭据(2)

从JSON配置添加MCP服务器(配置文件爱好者的福音)

假设你有一个单个MCP服务器的JSON配置,想要添加到Claude Code中(2)

步骤1:从JSON添加MCP服务器(2)

# 基本语法
claude mcp add-json <name> '<json>' # 示例:使用JSON配置添加stdio服务器
claude mcp add-json weather-api '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'

(2)

步骤2:验证服务器已添加(2)

claude mcp get weather-api

(2)

小贴士:

  • 确保JSON在你的shell中正确转义(2)
  • JSON必须符合MCP服务器配置模式(2)
  • 你可以使用-s global将服务器添加到全局配置而不是项目特定配置(2)

从Claude Desktop导入MCP服务器(懒人的救星)

假设你已经在Claude Desktop中配置了MCP服务器,想在Claude Code中使用相同的服务器而不需要手动重新配置(2)

步骤1:从Claude Desktop导入服务器(2)

# 基本语法
claude mcp add-from-claude-desktop

(2)

步骤2:选择要导入的服务器(2)

运行命令后,你会看到一个交互式对话框,允许你选择要导入的服务器(2)

步骤3:验证服务器已导入(2)

claude mcp list

(2)

小贴士:

  • 此功能仅在macOS和Windows Subsystem for Linux (WSL)上

原文:https://ycnv7u8vf1o3.feishu.cn/wiki/DelswqLN0ixDXFkgGHFc01Oynet?from=from_copylink

Claude Code与MCP:让AI拥有超能力的完全指南的更多相关文章

  1. 专访阿里云MVP王俊杰:开发者的超能力是用技术让世界更美好

    [王俊杰:阿里云MVP,陕西创博网络科技有限公司总经理.大数据与物联网的爱好者与实践者. 8年以上互联网从业经验,曾从事军工相关仿真分析软件研发与集成.4年以上大数据系统开发经验.目前正与天水市秦州区 ...

  2. 阿里云MVP:开发者的超能力,用技术创造更好世界

    阿里云MVP:开发者的超能力,用技术创造更好世界 2019年3月,第8期阿里云MVP(最有价值专家)完成终审,截至目前,全球已有27个国家和地区.近500位云计算专家和优秀开发者成为阿里云MVP.阿里 ...

  3. 我们都可以把它放 Sidecar 容器中,这样微服务具备了 Super power,一种超能力

    云原生时代,微服务如何演进? 原创 李响 阿里技术 2020-08-28   https://mp.weixin.qq.com/s/KQG2U8_aotDL4YFB8ee6Zw 一  微服务架构与云原 ...

  4. 腾讯AI开放平台的接口调用指南

    最近无意发现腾讯AI开放平台上提供了大量好玩的人工智能云服务,而且是完全免费的.只需要用QQ号登录即可.这么好的东西,作为一个程序员,当然要试试了! 从上图可以看出腾讯AI开放平台提供的人工智能服务主 ...

  5. AI目标分割能力,无需绿幕即可实现快速视频抠图

    绿幕抠图是影视制作过程中常见的技术手段,常用于视频中抠除并替换背景,通过后期加工实现视频剪辑制作的更多可能性.然而,绿幕抠图技术制作成本费时费力,无法应用于日常生活. 华为视频编辑服务近期上线目标分割 ...

  6. 数据科学家:神话 &amp; 超能力持有者

    一个打破神话的季节,正在降临.        我将坦诚地揭穿人们关于数据科学家所持有的惯有看法.在下文中,我将一个一个展示这些观点,宛如将一个又一个的玻璃瓶子摔碎在墙壁上一样.        关于数据 ...

  7. 控件风格19种,必须倒背如流——其实就是控件所拥有的能力,即有条件使用VCL框架所提供的(功能)代码

    { New TControlStyles: csNeedsBorderPaint and csParentBackground. These two ControlStyles are only ap ...

  8. 通过中看不中用的代码分析Ioc容器,依赖注入....

    /** * 通过生产拥有超能力的超人实例 来理解IOC容器 */ //超能力模组接口 interface SuperModuleInterface{ public function activate( ...

  9. AngularJs-指令和指令之间的交互(动感超人)

    前言: 上节我们学习到了指令和控制器之间的交互,通过给指令添加动作,调用了控制器中的方法.本节我们学习指令和指令之间是如何交互的,我们通过一个小游戏来和大家一起学习,听大漠老师说这是国外的人写的dem ...

  10. 黑吃黑第一季/全集Banshee迅雷下载

    第一季 Banshee Season 1 (2013)看点:“Banshee”在爱尔兰盖尔语中被称为“bean sidhe”,意思是“拥有超能力的女人”.不过在鲍尔的新剧中,Banshee并不是指超自 ...

随机推荐

  1. MySQL 中 AUTO_INCREMENT 列达到最大值时会发生什么?

    在MySQL中,AUTO_INCREMENT列用于自动生成唯一的数字值,通常用于主键.当AUTO_INCREMENT列达到最大值时,会发生以下几种情况,具体取决于列的数据类型以及MySQL的配置. 对 ...

  2. access 类对象使用

    类模块代码如下: Option Explicit '定义按钮对象和onclick 触发内容 Private WithEvents m_Closebtn As Access.CommandButton ...

  3. STM32F407——使用systick定时器裸机制作延时函数

    准备工作: 软件:keil5 硬件:STM32F407ZET6芯片,gec6818开发板,st-link调试器 文档:<开发板原理图>,<Cortex M3与M4权威指南>,& ...

  4. 【工具】F_Record|和画世界一样录制PS的画画过程的插件(亲测好用)

    亲测日期:2024/04/11 亲测版本:PS 2024 首先, 作者自己制作的使用视频在这里:https://www.bilibili.com/video/BV1bm411Z762 作者的Githu ...

  5. Mysql 常用时间函数(上)

    也是做数据分析嘛, SQL 必然是每天都要用的, 然后在分析中, 时间是数据分析中极为重要的部分, 可以说是承上启下或者是贯穿整个分析. 比如, 日, 周, 月, 季度, 年度 与之相对应的 环比, ...

  6. (补) HMM 求解参数-状态转移矩阵 A

    昨天在看的时候, 才发现, HMM参数求解给忘了 状态转移矩阵A的求解, 我以为我做了...好气哦, 不多比比, 直接来. A 是状态转移矩阵, 表示在 已知前一个状态下, 求解后一个概率(写出来就是 ...

  7. 全网第二细致的Verl GRPO实现拆解讲解

    全网第二细致的Verl GRPO实现拆解讲解 标题党致歉,纯引流 观前提示,内含大量注释代码,善用左侧目录跳过可改善阅读体验 本篇文章是在锝人的报告下继续撰写,主要着重于讲解verl实现中一些GRPO ...

  8. 第二次blog作业

    1.前言 这是第二次接触 Java 编程语言大题.相比第一次的电梯调度问题,这次面对航空货运管理系统时我不再迷茫.反复读题后,我很快确定了代码编辑方向,并一步步完成代码编写.航空货运管理系统难度不大但 ...

  9. Nginx配置HTTPS认证

    概述 什么是https? 可以阅读这篇文章:https://www.cnblogs.com/huangSir-devops/p/18806406 在生产环境中,网站的访问一般都是使用https加密的, ...

  10. CommonsBeanutils链与无commons collections的shiro反序列化利用

    CommonsBeanutils链与无commons collections的shiro反序列化利用 在cc2中,我们知道可以在commons-collections4通过java.util.Comp ...