此仓库包含了各种模型上下文协议(MCP)服务器的配置和设置,用于与Claude桌面和其他AI助手一起使用。
该项目旨在简化MCP服务器的设置和管理,以便与Claude产品一起使用。我主要在Mac OS X上使用这些设置与Claude桌面和Claude Code一起工作,并计划在未来将其集成到Cursor中。
如果你使用的是Windows系统,可以将此作为一般指南,但需要相应地调整路径和命令。
该配置是在Cursor代理视图和网络搜索的帮助下,在Claude的帮助下制定的,以确保遵循最佳实践。它设计为安全、灵活且易于维护。
我们遵循以下约定来组织与MCP相关的文件:
~/mcp/ # 主MCP项目目录
├── .venv/ # 项目特定MCP服务器的Python虚拟环境
├── claude_desktop_config.json # 参考配置文件
├── README.md # 此文档
├── install-config.sh # 安装脚本
├── setup-mcp-secrets.sh # 密钥设置脚本
└── uv_notes.md # 关于使用uv进行Python依赖项管理的笔记
对于基于Python的MCP服务器,我们遵循以下约定:
项目特定的MCP服务器:
uv在此环境中安装MCP服务器cd ~/mcp && uv venv && source .venv/bin/activate全局MCP服务器:
uv tool install <server-name>安装~/.local/bin/找到始终使用uv进行Python包管理:
uv tool install <tool-name>uv venvuv pip install <package-name>已安装并配置了以下MCP服务器:
文件系统 - 访问本地文件系统中的文件和目录
npm install -g @modelcontextprotocol/server-filesystem安装SQLite - 查询SQLite数据库
uv tool install mcp-server-sqlite安装SQLite数据库注册表:
要添加多个项目数据库,请更新claude_desktop_config.json中的SQLite配置:
"sqlite": {
"command": "path/to/mcp-server-sqlite",
"args": [
"--db-path",
"path/to/your/database.db"
],
"env": {
"MCP_SQLITE_REGISTRY": "path/to/db1.sqlite:path/to/db2.db:path/to/db3.sqlite"
}
}
然后在Claude中通过指定完整路径来访问这些数据库:
-- 查询第一个数据库
SELECT * FROM users WHERE id = 1 -- 使用path/to/db1.sqlite
-- 切换到第二个数据库
USE DATABASE path/to/db2.db;
SELECT * FROM products;
重要提示: 修改配置文件后,务必重启Claude桌面。
Puppeteer - 网页浏览和自动化
npm install -g @modelcontextprotocol/server-puppeteer安装PUPPETEER_HEADLESS:设置为“true”以启用无头模式PUPPETEER_EXECUTABLE_PATH:指向本地Chrome安装GitHub - 访问GitHub存储库和问题
npm install -g @modelcontextprotocol/server-github安装GITHUB_PERSONAL_ACCESS_TOKEN时间 - 获取当前时间和日期信息
uv tool install mcp-server-time安装获取 - 发送HTTP请求并解析网页内容
uv tool install mcp-server-fetch安装CLI - 安全执行命令
cd ~/mcp && source .venv/bin/activate && uv pip install cli-mcp-serverClaude桌面配置文件位于:
~/Library/Application Support/Claude/claude_desktop_config.jsonC:\Users\USERNAME\AppData\Roaming\Claude\claude_desktop_config.json此仓库包括两个配置文件:
claude_desktop_config.template.json - 包含路径和设置占位符的模板设置你的配置:
cp claude_desktop_config.template.json claude_desktop_config.custom.json
# 使用你喜欢的文本编辑器编辑
nano claude_desktop_config.custom.json
# 在macOS上
./install-config.sh
# 在Windows(PowerShell)上
# 安装脚本将使用你的自定义配置
重要提示: 更新配置文件后,必须重启Claude桌面才能使更改生效。
我们已经实施了一个强大的策略来处理HTTP请求,使用多个MCP服务器:
主获取服务器
mcp-server-fetchHTTP别名服务器
CLI服务器备用
这种分层方法确保Claude有多种方式来发送HTTP请求,并内置了回退机制和明确的首选方法信号。
几个MCP服务器需要API密钥、令牌或其他敏感信息。以下是完整的设置过程,以确保你的密钥正确工作:
创建专用环境文件(推荐的方法):
# 创建环境变量文件
touch ~/.claude_env
chmod 600 ~/.claude_env # 限制权限以保证安全
将你的密钥添加到此文件中(每行一个):
CLAUDE_DESKTOP_GITHUB_TOKEN=your_github_token_here
BRAVE_API_KEY=your_brave_api_key_here
# 根据需要添加其他密钥
向你的shell配置文件添加代码,以便在shell启动时自动加载这些变量:
# 打开你的shell配置文件
echo 'if [ -f ~/.claude_env ]; then
export $(grep -v "^#" ~/.claude_env | xargs)
fi' >> ~/.zshrc # 或者对于bash用户,使用~/.bashrc
然后重新加载你的配置文件:
source ~/.zshrc # 或者source ~/.bashrc
验证变量是否正确加载:
# 应该显示你的token的前几个字符
echo ${CLAUDE_DESKTOP_GITHUB_TOKEN:0:5}...
对于GitHub,测试你的token是否有效:
curl -s -H "Authorization: token $CLAUDE_DESKTOP_GITHUB_TOKEN" https://api.github.com/user | grep login
你的claude_desktop_config.json应该引用这些变量:
"github": {
"command": "path/to/node",
"args": [
"path/to/server-github/dist/index.js"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${CLAUDE_DESKTOP_GITHUB_TOKEN}"
}
}
完全退出并重新启动Claude桌面以获取新的环境变量。
此仓库包含setup-mcp-secrets.sh,它自动化了上述步骤。
“身份验证失败:凭据无效”错误
echo $CLAUDE_DESKTOP_GITHUB_TOKEN检查变量是否设置环境变量无法持久
API访问在终端中有效但在Claude桌面中无效
open -a "Claude"“目标已关闭”错误与Puppeteer
“收到请求之前初始化未完成”错误与SQLite
uv tool install mcp-server-sqliteMCP更改未生效
Claude试图使用curl而不是获取服务器
MCP_FETCH_PREFERRED: "true")获取MCP服务器的JSON解析错误
MCP_FETCH_PARSE_FALLBACK: "text"--ignore-robots-txt到参数以避免解析robots.txt文件的问题示例配置以增强获取服务器:
"fetch": {
"command": "path/to/mcp-server-fetch",
"args": [
"--user-agent", "Claude Desktop MCP Client",
"--ignore-robots-txt"
],
"env": {
"MCP_FETCH_PREFERRED": "true",
"MCP_FETCH_DEFAULT": "true",
"MCP_FETCH_PARSE_FALLBACK": "text",
"MCP_FETCH_MAX_SIZE": "5242880",
"MCP_FETCH_TIMEOUT": "60000"
}
}
要在Claude Web或Claude Code中使用Claude桌面MCP服务器,你可以运行:
# 在macOS上
osascript -e 'tell application "Claude" to activate' && sleep 2 && osascript -e 'tell application "System Events" to keystroke "m" using {command down, shift down}'
# 在Windows(PowerShell)上
Start-Process "Claude" && Start-Sleep -Seconds 2 && Add-Type -AssemblyName System.Windows.Forms && [System.Windows.Forms.SendKeys]::SendWait("^+m")
这将激活Claude桌面并触发键盘快捷键以将MCP服务器添加到当前浏览器会话中。
有关使用uv进行基于Python的MCP服务器的详细信息,请参阅uv_notes.md。
在处理需要API密钥和令牌的MCP服务器时,遵循安全最佳实践非常重要:
永远不要提交敏感信息:
.gitignore中被排除避免意外提交:
git add命令而不是通用的git add .git diff --cached审查更改如果敏感数据意外提交:
git filter-repo永久从历史记录中删除配置分离:
claude_desktop_config.template.json与实际配置分离的方法提供了这种保护有关从仓库中移除敏感数据的更多细节,请参阅GitHub的官方文档。