Claude Code与MCP:让AI拥有超能力的完全指南
前言:什么是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
添加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"
添加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"
管理你的MCP服务器(像管理你的朋友圈一样)
# 列出所有配置的服务器(看看你有多少"朋友")
claude mcp list
# 获取特定服务器的详细信息(深入了解某个"朋友")
claude mcp get my-server
# 删除服务器(有时候需要断舍离)
claude mcp remove my-server
第三章:理解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
Project作用域(团队合作的桥梁)
项目作用域服务器通过在项目根目录存储配置到.mcp.json文件中来实现团队协作(3)。这个文件设计为检入版本控制,确保所有团队成员都能访问相同的MCP工具和服务(3)。当你添加项目作用域服务器时,Claude Code会自动创建或更新这个文件,使用适当的配置结构(3)。
# 添加项目作用域服务器
claude mcp add shared-server -s project /path/to/server
生成的.mcp.json文件遵循标准化格式(3):
{
"mcpServers": {
"shared-server": {
"command": "/path/to/server",
"args": [],
"env": {}
}
}
}
出于安全原因,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):
- Local作用域:个人服务器、实验性配置或特定于一个项目的敏感凭据(3)
- Project作用域:团队共享服务器、项目特定工具或协作所需的服务(3)
- User作用域:多个项目需要的个人实用程序、开发工具或经常使用的服务(3)
环境变量扩展(让配置更灵活)
Claude Code支持在.mcp.json文件中进行环境变量扩展,允许团队共享配置,同时为机器特定路径和API密钥等敏感值保持灵活性(3)。
支持的语法:(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}"
}
}
}
}
如果所需的环境变量未设置且没有默认值,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:使用/mcp命令进行认证(2)
在Claude Code中,使用/mcp命令管理认证(2):
> /mcp
这会打开一个交互式菜单,你可以(2):
步骤3:完成OAuth流程(2)
当你为服务器选择"认证"时(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:用Claude查询你的数据库(2)
> describe the schema of our users table
> what are the most recent orders in the system?
> show me the relationship between customers and invoices
小贴士:
- 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)
claude mcp get weather-api
小贴士:
从Claude Desktop导入MCP服务器(懒人的救星)
假设你已经在Claude Desktop中配置了MCP服务器,想在Claude Code中使用相同的服务器而不需要手动重新配置(2)。
步骤1:从Claude Desktop导入服务器(2)
# 基本语法
claude mcp add-from-claude-desktop
步骤2:选择要导入的服务器(2)
运行命令后,你会看到一个交互式对话框,允许你选择要导入的服务器(2)。
步骤3:验证服务器已导入(2)
claude mcp list
小贴士:
- 此功能仅在macOS和Windows Subsystem for Linux (WSL)上
原文:https://ycnv7u8vf1o3.feishu.cn/wiki/DelswqLN0ixDXFkgGHFc01Oynet?from=from_copylink
Claude Code与MCP:让AI拥有超能力的完全指南的更多相关文章
- 专访阿里云MVP王俊杰:开发者的超能力是用技术让世界更美好
[王俊杰:阿里云MVP,陕西创博网络科技有限公司总经理.大数据与物联网的爱好者与实践者. 8年以上互联网从业经验,曾从事军工相关仿真分析软件研发与集成.4年以上大数据系统开发经验.目前正与天水市秦州区 ...
- 阿里云MVP:开发者的超能力,用技术创造更好世界
阿里云MVP:开发者的超能力,用技术创造更好世界 2019年3月,第8期阿里云MVP(最有价值专家)完成终审,截至目前,全球已有27个国家和地区.近500位云计算专家和优秀开发者成为阿里云MVP.阿里 ...
- 我们都可以把它放 Sidecar 容器中,这样微服务具备了 Super power,一种超能力
云原生时代,微服务如何演进? 原创 李响 阿里技术 2020-08-28 https://mp.weixin.qq.com/s/KQG2U8_aotDL4YFB8ee6Zw 一 微服务架构与云原 ...
- 腾讯AI开放平台的接口调用指南
最近无意发现腾讯AI开放平台上提供了大量好玩的人工智能云服务,而且是完全免费的.只需要用QQ号登录即可.这么好的东西,作为一个程序员,当然要试试了! 从上图可以看出腾讯AI开放平台提供的人工智能服务主 ...
- AI目标分割能力,无需绿幕即可实现快速视频抠图
绿幕抠图是影视制作过程中常见的技术手段,常用于视频中抠除并替换背景,通过后期加工实现视频剪辑制作的更多可能性.然而,绿幕抠图技术制作成本费时费力,无法应用于日常生活. 华为视频编辑服务近期上线目标分割 ...
- 数据科学家:神话 & 超能力持有者
一个打破神话的季节,正在降临. 我将坦诚地揭穿人们关于数据科学家所持有的惯有看法.在下文中,我将一个一个展示这些观点,宛如将一个又一个的玻璃瓶子摔碎在墙壁上一样. 关于数据 ...
- 控件风格19种,必须倒背如流——其实就是控件所拥有的能力,即有条件使用VCL框架所提供的(功能)代码
{ New TControlStyles: csNeedsBorderPaint and csParentBackground. These two ControlStyles are only ap ...
- 通过中看不中用的代码分析Ioc容器,依赖注入....
/** * 通过生产拥有超能力的超人实例 来理解IOC容器 */ //超能力模组接口 interface SuperModuleInterface{ public function activate( ...
- AngularJs-指令和指令之间的交互(动感超人)
前言: 上节我们学习到了指令和控制器之间的交互,通过给指令添加动作,调用了控制器中的方法.本节我们学习指令和指令之间是如何交互的,我们通过一个小游戏来和大家一起学习,听大漠老师说这是国外的人写的dem ...
- 黑吃黑第一季/全集Banshee迅雷下载
第一季 Banshee Season 1 (2013)看点:“Banshee”在爱尔兰盖尔语中被称为“bean sidhe”,意思是“拥有超能力的女人”.不过在鲍尔的新剧中,Banshee并不是指超自 ...
随机推荐
- [开源] Layouter(桌面助手)开源发布
Layouter(桌面助手)是一款简洁.易用.美观的桌面整理软件,基于.net 6开发,支持Windows 7及以上操作系统.以 Apache-2.0 license 进行开源. 开源地址 https ...
- mac 系统软件推荐
幕布: https://mubu.com/home 石墨文档: https://shimo.im
- 关于wireshark抓包工具抓取登录数据的一点心得
研究这个软件很久了,一直处于门外汉状态,今天终于用它抓到点有用的东西,做个简单的笔记吧,后面再继续完善. 最近研究跨域自动登录时一直不太顺利,今天就仿照网上前辈们的方法,用wireshark先抓一下手 ...
- macOS系统:新用户更新需谨慎‼️
发个牢骚:macOS系统的更新频率真的是太快了,基本都是BUG修复.功能更新等等.每更新一次版本,偌大的安装包就要重新将各种格式安装包封装一次.小更新还好,大更新直接会影响到软件APP的使用,尤其是小 ...
- Python3工具_C段扫描工具_主机存活探测初始
之前搞了多线程 然后基于多线程写了个C段主机存活探测工具 扫描主函数 def sub(): global num num=0 while not q.empty(): threadLock.acqui ...
- 同余最短路&转圈背包算法学习笔记(超详细)
一.问题引入 当你想要解决一个完全背包计数问题,但是 \(M\) 的范围太大,那么你就可以使用同余最短路. 二.算法推导过程 首先对于一个完全背包计数问题,我们要知道如果 \(x\) 这个数能凑出来, ...
- LSTM 原理
之前在讨论 RNN (递归神经网络) 的梯度消失 和 梯度爆炸都会对咱的网络结构产生极大的影响. 梯度爆炸, 也是在参数更新这块, 调整步伐太大, 产生 NaN 或 Inf, 代码就搞崩了直解决梯度消 ...
- ASP.NET Core Razor融合JS库Demo
cshtml.cs using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; namespace Razor ...
- C#实现自己的MCP Client
市面上,有很多免费Client客户端. 虽然说,这些Client客户端可以满足我们大部分的需求,但是在实际企业业务场景中,免费的Client无法全部满足我们的需求. 下面我们用C# 实现MCP Cli ...
- 【中英】【吴恩达课后测验】Course 3 -结构化机器学习项目 - 第二周测验
[中英][吴恩达课后测验]Course 3 -结构化机器学习项目 - 第二周测验 - 自动驾驶(案例研究) 上一篇:[课程3 - 第一周测验]※※※※※ [回到目录]※※※※※下一篇:[课程4 -第一 ...