【MCP 全栈教程】第 36 篇在 Claude Desktop / Claude Code 中使用 MCP Server本系列定位从协议原理到 Server 开发、Client 开发、再到各大平台实战集成系统化掌握 MCPModel Context Protocol全栈技术体系。本篇你将学到掌握 Claude Desktop 的claude_desktop_config.json完整配置方法理解mcpServers字段中command、args、env三要素的作用与写法学会同时连接多个 MCP Server 并管理权限审批流程掌握 Claude Code 命令行模式的 MCP 配置方式一句话总结Claude Desktop / Claude Code 是 MCP 生态中最成熟的 Host 应用掌握其配置等于打开了 MCP 实战的大门。一、Claude Desktop 与 MCP 的关系在前面几篇文章中我们已经深入学习了 MCP 协议规范、Server 端和 Client 端的开发。但要真正把 MCP 用起来最直接的方式就是通过一个现成的 Host 应用。Claude Desktop 是最早原生支持 MCP 的桌面客户端之一。它内置了完整的 MCP Client 实现能够通过 STDIO 传输方式拉起本地 MCP Server 进程自动完成能力发现initialize→tools/list/resources/list/prompts/list并将结果呈现给用户。Claude Code 则是面向终端的 AI 编程工具同样内置 MCP Client但配置方式更加贴近开发者习惯。下表对比两者在 MCP 维度的差异特性Claude DesktopClaude Code界面形态图形化桌面应用命令行工具配置方式JSON 配置文件CLI 命令 JSON 配置传输方式STDIO本地进程STDIO Streamable HTTP权限审批GUI 弹窗交互终端确认提示适用场景通用对话与自动化编程与代码工程多 Server支持支持二、配置文件路径Claude Desktop 的 MCP 配置统一写在claude_desktop_config.json文件中不同操作系统的路径如下操作系统配置文件路径macOS~/Library/Application Support/Claude/claude_desktop_config.jsonWindows%APPDATA%\Claude\claude_desktop_config.jsonLinuxBeta~/.config/Claude/claude_desktop_config.json如果你找不到该文件可以手动创建。Claude Desktop 在启动时会读取这个文件如果文件不存在或格式错误MCP 功能不会生效但应用本身仍可正常使用。一个快速定位路径的技巧# macOSopen~/Library/Application\Support/Claude/# Windows (PowerShell)explorer$env:APPDATA\Claude三、claude_desktop_config.json 配置详解配置文件的顶层结构只有一个关键字段mcpServers它是一个对象键名是 Server 的逻辑名称值是该 Server 的启动配置。3.1 基本结构{mcpServers:{server-name:{command:启动命令,args:[参数列表],env:{ENV_KEY:ENV_VALUE}}}}三个核心字段说明字段类型必填说明commandstring是可执行命令如npx、python、uvx或绝对路径argsstring[]是传递给 command 的参数数组envobject否注入到子进程的环境变量3.2 理解 command args 的拼接逻辑Claude Desktop 实际上是在内部执行command args[0] args[1] ...这条 shell 命令来拉起 Server 进程。例如{mcpServers:{filesystem:{command:npx,args:[-y,modelcontextprotocol/server-filesystem,/Users/me/projects]}}}等价于在终端执行npx-ymodelcontextprotocol/server-filesystem /Users/me/projects3.3 使用 uvx 启动 Python Server对于用uv管理的 Python MCP Server推荐使用uvx启动它能自动处理虚拟环境{mcpServers:{my-python-server:{command:uvx,args:[my-mcp-server],env:{API_KEY:sk-xxx}}}}3.4 使用绝对路径避免 PATH 问题在 macOS 上GUI 应用启动的子进程可能无法继承完整的PATH环境变量导致找不到npx或python。推荐使用绝对路径{mcpServers:{filesystem:{command:/usr/local/bin/npx,args:[-y,modelcontextprotocol/server-filesystem,/Users/me/projects]}}}查找绝对路径的方法whichnpx# macOS/Linuxwhere npx# Windows四、Filesystem Server 实战Filesystem Server 是最经典的入门级 MCP Server它提供文件读写、目录浏览、文件搜索等能力。我们以此为例走通完整流程。4.1 配置{mcpServers:{filesystem:{command:npx,args:[-y,modelcontextprotocol/server-filesystem,/Users/me/projects,/Users/me/documents]}}}args最后的路径参数是允许访问的根目录白名单可以配置多个。Server 只能操作这些目录范围内的文件。4.2 启动与验证保存配置文件。完全退出 Claude DesktopmacOS 上CmdQ不只是关闭窗口。重新打开 Claude Desktop。在输入框左下角应该能看到一个工具图标点击展开会显示已连接的 Server 及其暴露的 Tools 和 Resources。4.3 实际对话示例连接成功后你可以直接用自然语言驱动文件操作你的输入Claude 调用的 Tool“读取 /Users/me/projects/README.md 的内容”read_file“在 projects 目录下搜索所有包含 TODO 的文件”search_files“把这段总结写入 notes.md”write_file“列出 documents 目录下的所有文件”list_directory每次调用敏感操作如写文件前Claude Desktop 会弹出权限确认框你可以选择允许本次、允许该会话或拒绝。五、多 Server 同时连接mcpServers是一个对象天然支持配置多个 Server。Claude Desktop 会并行启动所有 Server并各自维护独立的 STDIO 通道。{mcpServers:{filesystem:{command:npx,args:[-y,modelcontextprotocol/server-filesystem,/Users/me/projects]},sqlite:{command:uvx,args:[mcp-server-sqlite,--db-path,/Users/me/data/app.db]},fetch:{command:uvx,args:[mcp-server-fetch]}}}配置多个 Server 后Claude 会根据用户意图自动路由到对应的 Server。例如你说查询数据库里 users 表的行数它会调用 sqlite Server 的工具说抓取这个网页内容它会调用 fetch Server。多 Server 连接时的注意事项注意点说明资源占用每个 Server 是独立进程注意内存和 CPU工具名冲突不同 Server 可能暴露同名 ToolClaude 会用serverName_toolName消歧启动顺序并行启动某个 Server 失败不影响其他 Server日志排查单个 Server 启动失败时在工具图标处会显示错误提示六、权限审批流程Claude Desktop 对 MCP 工具调用采用按需授权模型。理解审批流程对于安全使用 MCP 至关重要。6.1 审批层级层级触发时机用户操作连接授权首次连接某个 Server确认信任该 Server工具授权每次调用 Tool允许 / 拒绝 / 始终允许资源读取读取 Resource通常跟随工具调用一起授权6.2 授权选项含义当你看到权限弹窗时通常有几个选项Allow once本次允许仅允许这一次调用下次再调用还会询问Allow for this chat本会话允许当前对话窗口内不再询问该工具Always allow始终允许永久信任后续不再询问可在设置中撤销Deny拒绝拒绝本次调用Claude 会收到错误并尝试其他方案6.3 管理已授权工具在 Claude Desktop 的设置界面中可以查看和管理所有已授权的工具列表随时撤销某个 Server 或某个 Tool 的授权。这是一个重要的安全防线——尤其在配置了第三方 Server 时定期审查授权列表是好习惯。七、Claude Code 的命令行 MCP 配置Claude Code 作为终端工具提供了比 Desktop 更灵活的 MCP 配置方式支持三种作用域。7.1 三种配置作用域作用域命令参数影响范围适用场景Local本地--scope local默认当前项目的当前目录项目专属 ServerProject项目--scope project写入项目.mcp.json团队共享团队协作User用户--scope user当前用户全局通用工具 Server7.2 添加 MCP Server# 添加一个 STDIO 类型的 Server本地作用域claude mcpaddfilesystem -- npx-ymodelcontextprotocol/server-filesystem /home/me/projects# 添加一个带环境变量的 Serverclaude mcpaddmy-api-eAPI_KEYsk-xxx -- python my_server.py# 添加一个 Streamable HTTP 类型的 Serverclaude mcpaddremote-server--transporthttp https://api.example.com/mcp7.3 管理命令# 查看所有已配置的 Serverclaude mcp list# 查看某个 Server 的详情claude mcp get filesystem# 删除某个 Serverclaude mcp remove filesystem7.4 项目级 .mcp.json 文件当使用--scope project时Claude Code 会在项目根目录生成.mcp.json文件格式与claude_desktop_config.json类似{mcpServers:{docs:{command:npx,args:[-y,modelcontextprotocol/server-filesystem,./docs]}}}团队成员克隆仓库后Claude Code 会检测到该文件并提示是否信任并启用这些 Server。八、调试技巧当 Server 无法正常连接时可以按以下步骤排查症状可能原因解决方案Server 未出现在工具列表配置文件路径错误或 JSON 格式错误用 JSON 校验工具检查语法启动后立即断开command找不到或args错误在终端手动运行command args测试工具调用返回错误Server 内部逻辑异常查看 Server 的 stderr 日志PATH 问题GUI 应用未继承终端 PATH使用绝对路径配置command一个实用的调试方法是把 Server 的输出重定向到日志文件便于事后分析{mcpServers:{my-server:{command:python,args:[-u,my_server.py],env:{MCP_LOG_LEVEL:DEBUG}}}}对于 Claude Code可以直接在会话中输入/mcp命令查看所有 Server 的连接状态和最近错误信息这是最快的排查手段。本篇小结知识点要点配置文件claude_desktop_config.json路径因系统而异核心字段commandargsenv三要素多 Server在mcpServers对象中并列配置Filesystem Server经典入门案例提供文件读写与搜索权限审批连接授权 工具授权两级模型Claude CodeCLI 配置支持 local/project/user 三种作用域调试手动运行命令、查看日志、使用/mcp命令下篇预告第 37 篇在 VS Code 中集成 MCP Server从编辑器视角出发讲解 VS Code 的 MCP 配置方式及其与 GitHub Copilot 的协作机制。如果本篇内容对你有帮助欢迎点赞收藏有任何疑问欢迎在评论区交流。
企业数字化 ERP 产品动态
相关推荐
基于SpringBoot的校园帮帮微信小程序设计与实现 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!
一、项目背景与意义
在高校校园生活中,学生之间存在着大量高频、零散、即时性的互助需求,例如代取快递、拼车出行、二手物品交易、课程资料分享… · 2026/9/25 15:37:48
第34篇-MCP调试全攻略-Inspector-日志-网络抓包 【MCP 全栈教程】第 34 篇:MCP 调试全攻略——Inspector、日志、网络抓包 本系列定位:从协议原理到 Server 开发、Client 开发、再到各大平台实战集成,系统化掌握 MCP(Model Context Protocol)全栈技术体系。 本篇你将… · 2026/9/25 15:37:48
gaussDB 5.0轻量级安装包Linux部署实战:从环境准备到避坑指南 简介:数据库部署是开发与运维中的基础环节,而轻量级安装包为单机开发、功能验证和边缘计算场景提供了高效路径。gaussDB 5.0轻量级版在保留完整内核能力的同时,去除了集群组件,支持单节点快速初始化。本文基于Linux环境࿰… · 2026/9/25 15:59:24
实战|Claude Code 实测分:用 TaoToken 统一 Key 打通国内环境变量配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 15:59:18
内置 MCP Server 与接口转发:让 r-nacos 注册的普通 HTTP 接口直接变成 MCP 服务 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 15:59:18
2023年银行卡BIN码识别:SQLite本地库设计与查询避坑指南 简介:2023年银行卡BIN码数据库文件,聚焦六位银行识别码(Bank Identification Number)的构成与管理标准,面向支付系统开发者、金融风控工程师、数据分析师以及对卡组织规则有研究需求的从业者。压缩包仅含1个SQL文件&am… · 2026/9/25 15:59:18
C语言数据结构实战:从严蔚敏教材到可运行代码与避坑指南 简介:这套资料精心整理了C语言数据结构与算法中的核心内容,从图、树等复杂存储结构(如邻接矩阵、邻接表、二叉树)到查找表、线性表、字符串处理,再到排序算法(冒泡、选择、插入、快速排序等)、外… · 2026/9/25 15:59:18
专升本数据结构备考:线性表、链表、树图与排序的代码与避坑全攻略 简介:这份数据结构复习资料专为专升本考生设计,内容系统覆盖数组、链表、栈、队列、二叉树、堆、图、散列表等核心结构,以及排序与查找算法的应用。资源以“数据结构1800例题与答案”为主体,共包含三十四个文件,其中二… · 2026/9/25 15:59:12
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37