使用说明
使用Google OAuth的MCP获取服务器-安装指南
本指南将引导您在以下位置设置安全的MCP获取服务器 mcp-fetch.atradev.org 使用Google OAuth 2.0进行身份验证,并将其与Claude.ai集成。
先决条件
- 域控制
hexaplant.com - 具有管理员权限的Google Workspace帐户
- 安装了Docker和Docker Compose的服务器
- DNS配置的基本知识
手动配置步骤
1.谷歌云控制台设置
创建新项目
- 首选 谷歌云控制台
- 点击“选择项目”→ “新项目”
- 将其命名为“MCP Fetch Server”并创建
启用所需的API
- 转到“API和服务”→ “图书馆”
- 启用以下API:
- Google+API
- Google标识工具包API
- MCP服务器可能需要的任何其他API
配置OAuth同意屏幕
- 转到“API和服务”→ “OAuth同意屏幕”
- 选择 内部 (仅适用于Google Workspace用户)
- 填写所需信息:
- 应用程序名称:MCP获取服务器
- 用户支持电子邮件:atrawog@hexaplant.com
- 授权域名:添加
hexaplant.com - 开发者联系方式:atrawog@hexaplant.com
- 添加作用域:
openidemailprofile
- 保存配置
创建OAuth 2.0凭据
- 转到“API和服务”→ “凭据”
- 点击“创建凭据”→ “OAuth客户端ID”
- 选择 Web应用程序
- 配置客户端:
Name: MCP Fetch Server Web Client Authorized JavaScript origins: - https://mcp-fetch.atradev.org - https://auth.atradev.org Authorized redirect URIs: - https://auth.atradev.org/oauth/callback - https://mcp-fetch.atradev.org/oauth/callback - 点击“创建”
- 重要:下载JSON配置文件
- 保存客户端ID和客户端密码以供以后使用
2.DNS配置
将以下DNS记录添加到您的域中:
| 类型 | 名称 | 值 | TTL |
|---|---|---|---|
| A | mcp-fetch.atradev.org | YOUR_SERVER_IP | 300 |
| A | auth.atradev.org | YOUR_SERVER_IP | 300 |
等待DNS传播(通常为5-30分钟)。
3.服务器准备
创建目录结构
mkdir -p mcp-server/{secrets,config/{redis,oauth-proxy,fetch}}
cd mcp-server
准备秘密
# Move the downloaded Google OAuth JSON to secrets
mv ~/Downloads/client_secret_*.json secrets/google_oauth_config.json
# Generate JWT secret
openssl rand -hex 32 > secrets/jwt_secret.txt
# Generate session secret
openssl rand -hex 32 > secrets/session_secret.txt
# Set proper permissions
chmod 600 secrets/*
创建环境文件
cat > .env << EOF
# Domain Configuration
DOMAIN=atradev.org
ACME_EMAIL=letsencrypt@dorgeln.org
# Access Control
ALLOWED_EMAILS=atrawog@hexaplant.com
EOF
Redis配置
cat > config/redis/redis.conf << EOF
# Redis configuration for MCP
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo no
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
maxmemory 256mb
maxmemory-policy allkeys-lru
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
EOF
4.部署堆栈
# Clone or create the implementation files
# (See claude.md for implementation details)
# Build and start services
docker-compose build
docker-compose up -d
# Check logs
docker-compose logs -f
# Verify all services are healthy
docker-compose ps
5.第ai条整合
在Claude.ai设置中
- 转到Claude.ai→ 设置→ 集成
- 添加新的自定义MCP集成
- 配置以下内容:
| 字段 | 值 |
|---|---|
| 名称 | MCP获取服务器 |
| 类型 | 远程MCP服务器 |
| 授权类型 | OAuth 2.0 |
| 客户端ID | YOUR_GOOGLE_Client_ID |
| 客户端密码 | YOUR_GOOGLE_Client_CRET |
| 授权URL | https://auth.atradev.org/oauth/authorize |
| 令牌URL | https://auth.atradev.org/oauth/token |
| MCP端点 | https://mcp-fetch.atradev.org/api/v1/mcp |
| 作用域 | 获取:读取 |
- 保存并测试集成
6.测试和验证
测试OAuth流
- 打开私人浏览器窗口
- 首选
https://auth.atradev.org/oauth/authorize - 您应该被重定向到谷歌登录
- 登录后,使用令牌验证您是否被重定向回
测试MCP端点
# Get a token first through the OAuth flow
# Then test the MCP endpoint
curl -X POST https://mcp-fetch.atradev.org/api/v1/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"describe","id":1}'
验证SSL证书
# Check auth domain
openssl s_client -connect auth.atradev.org:443 -servername auth.atradev.org
# Check MCP domain
openssl s_client -connect mcp-fetch.atradev.org:443 -servername mcp-fetch.atradev.org
7.维护
查看日志
# All services
docker-compose logs -f
# Specific service
docker-compose logs -f oauth-proxy
docker-compose logs -f mcp-gateway
docker-compose logs -f caddy
更新服务
# Pull latest images
docker-compose pull
# Rebuild and restart
docker-compose down
docker-compose build --no-cache
docker-compose up -d
备份
# Backup data volumes
docker run --rm -v mcp-server_redis-data:/data -v $(pwd)/backup:/backup alpine tar czf /backup/redis-data-$(date +%Y%m%d).tar.gz -C /data .
故障排除
常见问题
-
“重定向URI无效”错误
- 确保Google Cloud Console中的重定向URI完全匹配
- 检查尾部斜线
- 验证HTTPS是否正常工作
-
谷歌的“403禁止”
- 确保OAuth同意屏幕配置为内部使用
- 验证用户电子邮件域是否为@hexaplant.com
- 检查用户是否在ALLOWED_EMAILS中(如果已配置)
-
SSL证书问题
- 确保端口80和443打开
- 检查Caddy日志中的Let’s Encrypt错误
- 验证DNS记录是否配置正确
-
MCP端点“未经授权”
- 检查令牌过期(令牌有效期为1小时)
- 验证Redis是否正在运行且可访问
- 检查oauth代理日志是否存在验证错误
调试模式
要启用调试日志记录,请执行以下操作:
# Update .env file
echo "LOG_LEVEL=debug" >> .env
# Restart services
docker-compose restart
安全说明
- 永远不要泄露秘密:The
secrets/目录应位于.gitignore - 定期更新:保持Docker映像更新以获取安全补丁
- 监控日志:定期检查日志中的可疑活动
- 备份机密:保存机密文件的安全备份
- 速率限制:默认值为每个用户每分钟100个请求
支持
针对以下特定问题:
- Google OAuth设置:请参阅 Google OAuth文档
- MCP协议:检查 MCP规范
- Claude.ai集成:联系Anthropic支持
许可证
此配置按原样提供,用于MCP获取服务器。