05 实战篇MCP 服务器与技能扩展通过 MCP 连接外部世界用 Skills 扩展 Claude 的能力边界。5.1 MCP 协议概念MCPModel Context Protocol是 Anthropic 的开源协议标准化 AI 模型与外部数据源的交互方式。核心概念Claude Code ←→ MCP Server ←→ 外部服务 (客户端) (中间层) (数据源)MCP Server一个独立进程提供工具Tools和资源Resources传输方式stdio本地进程通信或 HTTP网络通信协议JSON-RPC 2.0MCP 能做什么能力说明示例ToolsClaude 可调用的函数搜索 GitHub Issue、查询数据库ResourcesClaude 可读取的数据文件内容、API 响应Prompts预定义的提示模板代码审查模板5.2 添加与管理 MCP 服务器添加 stdio 服务器本地进程# 基本格式claude mcpadd名称命令[参数...]# 示例添加 GitHub MCPclaude mcpaddgithub-ymodelcontextprotocol/server-github# 示例添加带环境变量的服务器claude mcp add-json brave-search{ command: npx, args: [-y, brave-search-mcp], env: { BRAVE_API_KEY: your-api-key } }添加 HTTP 服务器远程服务# 基本 HTTP 服务器claude mcpadd--transporthttp my-server https://api.example.com/mcp# 带认证头的 HTTP 服务器claude mcpadd--transporthttp\--headerAuthorization: Bearer your-token\my-server https://api.example.com/mcp指定作用范围# 全局所有项目可用claude mcpadd--scopeuser github-ymodelcontextprotocol/server-github# 仅当前项目claude mcpadd--scopeproject my-db-ymodelcontextprotocol/server-postgres管理命令# 列出所有已配置的服务器claude mcp list# 查看服务器详情claude mcp get github# 移除服务器claude mcp remove github# 在对话中检查服务器状态/mcp配置文件全局配置~/.claude.json{mcpServers:{github:{command:npx,args:[-y,modelcontextprotocol/server-github],env:{GITHUB_TOKEN:ghp_xxxxx}}}}项目配置.mcp.json项目根目录{mcpServers:{postgres:{command:npx,args:[-y,modelcontextprotocol/server-postgres],env:{POSTGRES_URL:postgresql://localhost:5432/mydb}}}}最佳实践全局通用的服务器用--scope user如 GitHub、搜索项目特定的服务器用--scope project如数据库、内部 API敏感信息API Key放在env中不要硬编码在命令行定期用/mcp检查服务器状态移除不用的服务器5.3 常用 MCP 服务器推荐开发工具类服务器安装命令功能GitHubclaude mcp add github -y modelcontextprotocol/server-githubIssue、PR、代码搜索PostgreSQLclaude mcp add postgres -y modelcontextprotocol/server-postgres数据库查询SQLiteclaude mcp add sqlite -y modelcontextprotocol/server-sqliteSQLite 操作Filesystemclaude mcp add fs -y modelcontextprotocol/server-filesystem /path安全文件访问搜索与信息类服务器安装命令功能Brave Searchclaude mcp add-json brave-search {...}网页搜索Puppeteerclaude mcp add puppeteer -y modelcontextprotocol/server-puppeteer浏览器自动化Memoryclaude mcp add memory -y modelcontextprotocol/server-memory持久化知识图谱设计与协作类服务器安装命令功能Figma通过 Figma 插件市场安装设计到代码工作流Slackclaude mcp add slack -y modelcontextprotocol/server-slackSlack 消息读写基础设施类服务器安装命令功能Dockerclaude mcp add docker -y modelcontextprotocol/server-docker容器管理SSHclaude mcp add ssh -y mcp-ssh-managerSSH 连接管理5.4 Skills 技能体系Skills 是 Claude Code 的可扩展能力包按需加载节省 token。技能类型类型位置作用范围是否共享个人技能~/.claude/skills/所有项目否项目技能.claude/skills/当前项目是提交 Git插件技能随插件安装插件范围是技能目录结构my-skill/ ├── SKILL.md # 必需指令和元数据 ├── scripts/ # 可选可执行脚本 ├── references/ # 可选参考文档 └── assets/ # 可选模板、资源SKILL.md 格式--- name: code-review description: 代码审查技能检查安全、性能和可维护性 triggers: - review code - 审查代码 - code review --- # 代码审查技能 ## 审查维度 1. **安全性**SQL 注入、XSS、敏感信息泄露 2. **性能**N1 查询、内存泄漏、不必要的循环 3. **可维护性**函数长度、命名规范、注释质量 4. **错误处理**异常捕获、边界条件、资源释放 ## 审查流程 1. 读取目标文件 2. 按维度逐项检查 3. 标注严重程度Critical / Warning / Suggestion 4. 给出修复建议 ## 输出格式 ### [Critical] 问题标题 - 位置文件:行号 - 描述问题说明 - 建议修复方案内置技能一览技能调用方式功能/init/init生成项目 CLAUDE.md/review/review审查 Pull Request/security-review/security-review安全审查/simplify/simplify优化代码质量/commit/commit智能提交/loop/loop 5m /check-deploy定时循环执行/insights/insights使用分析报告5.5 自定义斜杠命令在.claude/commands/目录下创建.md文件自动变成斜杠命令。创建自定义命令.claude/commands/review.md审查当前分支的所有变更关注以下维度 1. **安全性**是否有敏感信息泄露、注入风险 2. **性能**是否有 N1 查询、不必要的计算 3. **可维护性**函数是否过长、命名是否清晰 4. **测试覆盖**变更是否有对应测试 输出格式 - 每个问题标注严重程度 [Critical/Warning/Suggestion] - 给出具体的修复建议 - 最后给出整体评分 (A/B/C/D).claude/commands/test-changed.md检测当前分支相对于 main 分支的变更文件 为每个变更的源文件找到对应的测试文件 运行所有相关测试报告结果。 如果没有测试建议应该添加哪些测试。命令命名规则文件路径命令名.claude/commands/review.md/project:review.claude/commands/test-changed.md/project:test-changed~/.claude/commands/daily.md/user:daily项目命令前缀/project:个人命令前缀/user:带参数的命令在命令文件中使用$ARGUMENTS占位符.claude/commands/explain.md详细解释以下代码的工作原理$ARGUMENTS 要求 1. 逐行解释关键逻辑 2. 画出执行流程图用文字描述 3. 指出潜在的边界情况 4. 给出优化建议使用方式 /project:explain src/auth.py:validate_token5.6 MCP vs Skills vs Hooks 选择指南需求选择原因连接外部服务GitHub、数据库MCP需要外部 API 交互代码质量自动化格式化、lintHooks需要在特定时机自动触发重复性工作流审查、测试Skills按需加载节省 token安全防护阻止危险操作Hooks 权限PreToolUse 钩子 deny 规则自定义提示模板斜杠命令简单、可参数化持久化知识存储MCP Memory跨会话知识保留组合使用示例MCPGitHub Skill/review HookESLint → Claude 自动获取 PR → 按审查技能分析 → 编辑后自动 lint5.7 小结概念关键要点MCP连接外部服务的标准协议stdio 或 HTTP 传输添加 MCPclaude mcp add 名称 命令Skills按需加载的能力包SKILL.md 定义斜杠命令.claude/commands/*.md自动注册选择策略MCP 连外部Hooks 做自动化Skills 做工作流上一篇04 进阶篇权限、Hooks 与自动化下一篇06 高级篇记忆系统与工作流优化