把MCP Server接入Claude Desktop和Cursor

📅 2026/8/14 15:15:37
把MCP Server接入Claude Desktop和Cursor
摘要详细介绍MCP Server接入Claude Desktop和Cursor的完整配置流程包含claude_desktop_config.json编写、stdio传输配置、常见连接问题排查让AI工具调用你的自定义MCP工具。把MCP Server接入Claude Desktop和Cursor上一篇我们写了个计算器Server在MCP Inspector里跑通了。但Inspector只是调试工具真正用起来得让AI客户端认识你的Server。我当时第一次接Claude Desktop配了半天没反应重启了五六次才搞明白是路径写错了。Cursor那边更折腾配置文件位置找了半天。这篇我把两个主流客户端的接入方法一次性讲清楚附上我踩过的连接坑和排查思路。我们继续用上一篇的calc_server.py看看它在Claude Desktop和Cursor里被AI调用的完整效果。接入Claude DesktopClaude Desktop是接入MCP最顺手的客户端原生支持配置文件就一个。先确认你装了Claude Desktop并且更新到最新版。旧版本可能没有MCP支持入口。配置文件的位置按系统不同。macOS~/Library/Application Support/Claude/claude_desktop_config.jsonWindows%AppData%\Claude\claude_desktop_config.jsonWindows下完整路径一般是C:\Users\你的用户名\AppData\Roaming\Claude\claude_desktop_config.json。如果文件不存在自己建一个。打开Claude Desktop进设置找到Developer或开发者选项点Edit Config它会自动用默认编辑器打开这个json文件。这比手动找路径方便。配置文件的内容长这样。{mcpServers:{calculator:{command:python,args:[C:\\ABSOLUTE\\PATH\\TO\\calc_server.py]}}}这里有几个容易出错的细节我逐个说。第一路径必须用绝对路径。Claude Desktop启动Server时的工作目录不是你的项目目录用相对路径会找不到文件。第二Windows路径里的反斜杠要写两遍。JSON里单个反斜杠是转义符C:\Users\xxx会解析出错。要么写成C:\\Users\\xxx要么直接用正斜杠C:/Users/xxx两种都行。第三command字段填的是启动命令。如果你用uv管理建议写成下面这样更稳。{mcpServers:{calculator:{command:uv,args:[--directory,C:\\projects\\my-first-mcp,run,calc_server.py]}}}用uv的好处是它会自动激活虚拟环境不用你操心Python解释器路径。如果你直接用python要确保这个python能找到mcp包否则启动即报错。第四如果uv或python不在系统PATH里Claude Desktop会启动失败。这种情况把command换成可执行文件的完整路径比如C:\\Users\\xxx\\AppData\\Local\\Programs\\Python\\Python311\\python.exe。Windows下可以用where uv或where python查到完整路径。保存配置文件后彻底退出Claude Desktop再重新打开。注意是退出不是最小化。Mac上CmdQ退出Windows右键托盘图标退出。重启后在对话界面的输入框附近会多出一个工具图标展开能看到你配置的Server和它提供的工具。试着问一句帮我算一下12的阶乘。Claude会识别出需要调用factorial工具弹出一个确认提示你点允许它就调用并返回12 的阶乘是 479001600。第一次看到AI调用自己写的工具感觉挺奇妙。接入CursorCursor的MCP接入稍微绕一点配置文件位置和Claude Desktop不同。Cursor支持两种配置范围。一种是全局配置对所有项目生效文件在~/.cursor/mcp.json。Windows下是%USERPROFILE%\.cursor\mcp.json完整路径大概是C:\Users\你的用户名\.cursor\mcp.json。另一种是项目级配置只对当前项目生效文件在项目根目录的.cursor\mcp.json。更简单的办法是走图形界面。打开Cursor进Settings找到MCP这一项点Add new MCP server。它让你填名字、类型选stdio、再填command和args。填完它会自动生成配置文件省得手动找路径。不管哪种方式最终生成的json格式都一样。{mcpServers:{calculator:{command:uv,args:[--directory,C:\\projects\\my-first-mcp,run,calc_server.py]}}}注意Cursor的配置结构跟Claude Desktop几乎一样都是mcpServers下面挂Server名再挂command、args、可选的env。所以一份配置基本能两边通用。如果Server需要环境变量比如数据库密码、API key用env字段传入。{mcpServers:{calculator:{command:uv,args:[--directory,C:\\projects\\my-first-mcp,run,calc_server.py],env:{SOME_API_KEY:your-key-here}}}}保存后重启Cursor。在Cursor的对话窗口里输入框上方有个工具开关确认你的calculator Server是启用状态。然后输入用calculator工具算一下7加8。Cursor会调用add工具并返回结果。这里要提醒一个Cursor的限制。Cursor目前主要消费MCP的Tools能力对Resources和Prompts的支持不如Claude Desktop完整。如果你的Server重度依赖Resources和Prompts建议优先在Claude Desktop里验证。调试技巧接入客户端后经常会遇到连不上的情况。我总结了一套排查流程按顺序往下查。第一步先确认Server本身能独立跑。在终端里直接执行python calc_server.py它应该阻塞等待输入不报错。如果一启动就报错那是Server代码或环境的问题跟客户端无关。第二步检查配置文件JSON格式。JSON对逗号、引号很敏感多一个少一个都解析失败。把整个文件粘到任意JSON校验工具里检查一遍。我踩过一次坑最后一个配置项后面多了个逗号Claude Desktop静默忽略整个文件。第三步看客户端日志。Claude Desktop的日志位置macOS是~/Library/Logs/Claude/mcp.logWindows是%AppData%\Claude\logs\mcp.log。Server启动失败的原因基本都在这里。Cursor的日志在Settings的MCP面板里能直接看到每个Server的状态和报错。第四步用MCP Inspector复现客户端的启动方式。Inspector其实就是个MCP客户端它连得上说明Server没问题问题在客户端配置。Inspector连不上问题在Server本身。第五步注意stdout污染。这个坑上一篇提过这里再强调。如果你在Server里写了print()接客户端后Server会启动失败或者调用时断连。日志里会看到JSON解析错误。把所有print改成stderr输出。完整配置示例我把两个客户端的完整配置放在一起方便你对照。假设项目在C:\projects\my-first-mcpServer文件是calc_server.py。Claude Desktop的claude_desktop_config.json。{mcpServers:{calculator:{command:uv,args:[--directory,C:\\projects\\my-first-mcp,run,calc_server.py]}}}Cursor的.cursor\mcp.json。{mcpServers:{calculator:{command:uv,args:[--directory,C:\\projects\\my-first-mcp,run,calc_server.py]}}}macOS用户把路径换成/Users/你的用户名/projects/my-first-mcp这种形式注意用正斜杠不用双反斜杠。效果验证接好后实测一遍。在Claude Desktop里问帮我算15加27再算10的阶乘。Claude会连续调用两次工具先add(15, 27)得到15 加 27 等于 42.0再factorial(10)得到10 的阶乘是 3628800。整个过程你能看到每次调用的确认弹窗工具名、参数都列得清清楚楚。在Cursor里问用计算器工具算一下9的阶乘。Cursor调用factorial(9)返回9 的阶乘是 362880。结果会直接出现在对话里像AI本来就会算一样。两个客户端用的是同一份Server代码一行没改。这就是MCP标准化的好处。常见问题与避坑坑一配置改了但客户端没反应。九成是没彻底重启。Claude Desktop关窗口不算退出要退出进程。Cursor改了配置也要重启或重新加载MCP。改完配置先彻底退出再打开。坑二Windows路径反斜杠没转义。JSON里C:\Users的\U会被当成转义序列导致路径错误。解决全部用双反斜杠\\或正斜杠/。这是Windows用户最常踩的坑。坑三command找不到。python、uv、npx这些命令不在客户端能找到的PATH里。症状是日志里报command not found或类似错误。解决把command换成完整可执行文件路径用where命令查。坑四虚拟环境没激活导致import失败。直接用python calc_server.py时如果当前python不是虚拟环境里的找不到mcp包。解决用uv的--directory run方式或者command指向虚拟环境的python比如C:\projects\my-first-mcp\.venv\Scripts\python.exe。坑五多个Server配在一起其中一个出错导致整体加载失败。Claude Desktop对一个Server启动失败有时会影响整个MCP面板不显示。解决排查时先只配一个Server确认能跑再加其他的。日志里会标出是哪个Server出的问题。两个客户端的接入对比对比项Claude DesktopCursor配置文件claude_desktop_config.json.cursor/mcp.json配置位置AppData或Library下用户目录或项目目录图形化配置间接编辑器打开json有图形界面添加Tools支持完整完整Resources支持完整较弱Prompts支持完整较弱日志查看mcp.log文件设置面板内直接看适合验证全部原语主要是工具如果你的Server用了Resources和Prompts用Claude Desktop验证最全。如果只做工具两个都行Cursor还更方便在编码场景里用。小结接入客户端的核心就是写对那个JSON配置文件。Claude Desktop和Cursor的配置结构几乎一样都是mcpServers下挂command和args。最大的几个坑是路径要绝对、Windows反斜杠要转义、command要在PATH里、改完要彻底重启。排查连不上问题按先验Server、再查JSON、再看日志、最后用Inspector复现的顺序走基本都能定位。下一节我们写一个真正有用的Server让AI能查你本地的文件。相关推荐5分钟跑通你的第一个MCP ServerPython版Claude Desktop集成配置、调试与最佳实践Cursor集成让AI编程工具调用你的MCP Server