Claude Code MCP Server 配置指南与实战用例
全面介绍 Claude Code 的 MCP Server 功能。从外部工具连接、服务器配置到真实集成案例,一文掌握 MCP 生态。
什么是 MCP?
MCP(Model Context Protocol)是一个用于将 AI 助手连接到外部工具和数据源的开放协议。Claude Code 作为 MCP 客户端,能够通过 MCP Server 与数据库、API 和各种服务进行交互。
配置 MCP Server
MCP Server 的设置写在 .claude/settings.json 或 ~/.claude/settings.json 中:
{
"mcpServers": {
"server-name": {
"command": "executable-command",
"args": ["arg1", "arg2"],
"env": {
"ENV_VAR": "value"
}
}
}
}
也可以通过 CLI 添加服务器:
claude mcp add server-name -- command arg1 arg2
示例 1:数据库集成
配置 MCP Server 直接查询 PostgreSQL:
claude mcp add postgres-server -- npx -y @modelcontextprotocol/server-postgres postgresql://user:pass@localhost:5432/mydb
配置完成后,你可以在 Claude Code 会话中查询数据库:
> 查询 users 表中过去一周的新注册用户数
> 以表格形式展示每日趋势
Claude Code 会自动生成并执行 SQL 查询,然后将结果格式化展示。
示例 2:GitHub 集成
GitHub MCP Server 让你直接在 Claude Code 中管理 Issue 和 PR:
claude mcp add github -- npx -y @modelcontextprotocol/server-github
通过环境变量设置 Token:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
你可以这样操作:
> 列出仓库中所有打开的 Issue
> 查看 Issue #42,创建修复分支并实现修复
> 修复完成后创建 PR
示例 3:文件系统扩展
提供对指定目录安全访问的 MCP Server:
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory
示例 4:网页抓取
Puppeteer MCP Server 支持网页获取和交互操作:
claude mcp add puppeteer -- npx -y @modelcontextprotocol/server-puppeteer
> 读取 https://example.com/api/docs 上的 API 文档
> 并为该 API 创建客户端库
示例 5:Slack 集成
Slack MCP Server 可以读取频道消息和发送通知:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-xxxxxxxxxxxx"
}
}
}
}
> 查看 #dev 频道的最新消息
> 在 #daily-report 频道发送今天的工作进展
管理 MCP Server
查看已注册的服务器
claude mcp list
删除服务器
claude mcp remove server-name
设置作用域
你可以指定 MCP Server 配置的作用域:
# 项目级别(默认)
claude mcp add --scope project db-server -- command
# 用户级别(全局)
claude mcp add --scope user db-server -- command
构建自定义 MCP Server
你也可以将项目特有的工具封装为自定义 MCP Server:
// my-mcp-server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "my-project-tools",
version: "1.0.0",
});
// 定义自定义工具
server.tool(
"deploy-staging",
"部署到预发布环境",
{ branch: z.string().describe("要部署的分支名称") },
async ({ branch }) => {
// 部署逻辑
return {
content: [{ type: "text", text: `已将 ${branch} 部署到预发布环境` }],
};
}
);
const transport = new StdioServerTransport();
await server.connect(transport);
注册方式:
claude mcp add my-tools -- npx tsx my-mcp-server.ts
安全注意事项
1. 凭证管理
MCP Server 配置中的 Token 和密码应通过环境变量或 .env 文件管理,切勿提交到 Git。
2. 限制访问范围
遵循最小权限原则——例如,为数据库 MCP Server 使用只读权限的数据库用户。
3. 使用本地配置
将包含凭证的配置存放在 .claude/settings.local.json 中,并将其添加到 .gitignore。
总结
MCP Server 让你可以将 Claude Code 的能力扩展到整个项目生态系统。从数据库查询到 GitHub 工作流再到 Slack 通知,Claude Code 可以成为你开发工作流的中枢。先从官方 MCP Server 开始,然后根据需要构建自定义服务器。