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并不是指超自 ...
随机推荐
- 编译执行与解释执行的区别是什么?JVM 使用哪种方式?
编译执行与解释执行的区别 1. 编译执行(Compiled Execution) 定义: 将源代码一次性翻译为机器码(目标代码),生成可直接运行的二进制文件. 特点: 翻译只发生一次,生成的目标代码可 ...
- Python实验2 turtle 库绘制进阶图形
实验任务: 绘制嵌套彩色五角星(大小逐层递减) 设计函数绘制自定义正多边形(边数与颜色参数化) 扩展:实现动态旋转花瓣图案. 源代码:import turtle 绘制嵌套彩色五角星 def neste ...
- 前端 Vue 后端返回流,前端通过流进行下载
前端写法 //文件下载 async handleDownload(row) { try { // 假设文件是通过 GET 请求获取的,url 为文件资源的 API 地址 const response ...
- 使用Tortoise-ORM和FastAPI构建评论系统
title: 使用Tortoise-ORM和FastAPI构建评论系统 date: 2025/04/25 21:37:36 updated: 2025/04/25 21:37:36 author: c ...
- Python提交 post方法之‘Content-Type‘: multipart/form-datay
最近写s2_061 Python脚本得时候遇到了POST 提交 'Content-Type': multipart/form-data 这个问题,然后查阅资料开始解决. 一.首先说一下POST 提交数 ...
- 服务器时间漂移,如何开启Linux NTP自动同步
前言 在日常服务器运维中,我们往往默认服务器的时间是精准的.但最近一次偶然的 date 查询,让我发现--服务器时间竟然悄悄地漂移了-- 本文记录了整个排查与解决的过程,希望能帮到遇到类似问题的朋友, ...
- rider 跑不动了,快找车吧=vscode
我的笔记本跑rdier有点吃紧了,T440s; rider的慢速是我有点难以接受了,在开发效率和性能方面综合考虑,我考虑换上vscode了. 做.net core web开发完全够用了,也不用各种等待 ...
- 词库过大导致的Redis超时问题-RedisCommandTimeoutException
问题 Redis缓存超时问题 报错内容 redis io.lettuce.core.RedisCommandTimeoutException: Command timed out after 10 s ...
- k8s之ingress反向代理pod
Ingress controller Nginx -->后来改造 Traefik -->也是用于微服务 Envoy -->微服务 Ingress资源 目前使用0.17.1版本ing ...
- Django实例(3)-用户连数据库登入系统
App01--->urls.py from django.contrib import adminfrom django.conf.urls import urlfrom app01 impor ...