OAuth认证演示服务器

一个演示OAuth 2.0和API密钥认证模式的MCP服务器,支持Google日历和天气API的多用户会话管理。

  • by Jgilhuly
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Jgilhuly/mcp-webinar-demo

使用说明

带有OAuth演示的MCP服务器

一个展示OAuth 2.0和API密钥认证模式的MCP服务器。

这是做什么的

  • Google 日历 - OAuth 2.0 认证(列出/创建事件)
  • 天气API API密钥认证(当前天气/预报)
  • 多用户 - 每个用户都有自己的会话
  • 网页认证流程 - 无需手动复制令牌

快速入门

1. 获取凭据

Google OAuth:

  • 访问 https://console.cloud.google.com/apis/credentials
  • 创建OAuth 2.0客户端ID(网页应用)
  • 添加重定向URI: http://localhost:8000/auth/callback

天气API:

  • 访问 https://openweathermap.org/api
  • 注册并获取API密钥

2. 在本地运行

# Copy .env template
cp .env.example .env

# Edit .env with your credentials
# GOOGLE_CLIENT_ID=...
# GOOGLE_CLIENT_SECRET=...
# OPENWEATHER_API_KEY=...

# Run server
./run_local.sh

# Visit http://localhost:8000

3. 部署至铁路(或“应用于铁路系统”)

# Install Railway CLI
npm install -g @railway/cli

# Deploy
railway login
railway init
railway up

# Set environment variables in Railway dashboard

铁路环境变量:

GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-secret
GOOGLE_REDIRECT_URI=https://your-app.railway.app/auth/callback
OPENWEATHER_API_KEY=your-key
JWT_SIGNING_KEY=random-string-here
BASE_URL=https://your-app.railway.app

4. 连接到光标

选项A:一键安装(推荐)

  1. 访问您的服务器URL(本地或Railway部署的)
  2. 点击“使用 Google 登录”
  3. 点击“🚀 立即在Cursor中安装”按钮
  4. 完成!MCP服务器已自动配置

选项B:手动配置

  1. 访问您的服务器URL(本地或Railway)
  2. 点击“使用Google连接”
  3. 复制配置JSON
  4. 打开光标设置(Cmd/Ctrl + ,)
  5. 搜索“MCP”并编辑settings.json文件
  6. 粘贴配置并重启 Cursor

工具

日历:

  • calendar_list_events - 列出即将举行的活动
  • calendar_create_event - 创建新事件

天气:

  • weather_current - 某城市的当前天气
  • weather_forecast - 天气预报

建筑

Cursor → MCP Server (Railway) → Google/Weather APIs
            ↓
      OAuth Web Flow
            ↓
      JWT Session (24h)

项目结构

mcp-webinar-demo/
├── server/
│   ├── main.py              # FastAPI + MCP endpoint
│   ├── auth/                # OAuth + sessions
│   ├── tools/               # Calendar + weather
│   └── templates/           # Web UI
├── Dockerfile
├── railway.toml
└── requirements.txt

它是如何工作的

  1. 用户身份验证 通过Google OAuth(浏览器)
  2. 服务器创建会话 - 24小时有效的JWT令牌
  3. 成功页面显示配置 - 包含会话令牌
  4. 用户将内容复制到光标处 一键设置
  5. 工具立即生效 - 服务器处理认证

故障排除

“OAuth 未配置” - 在Railway/本地设置环境变量

“无效的重定向URI” - 在Google控制台中精确匹配(不带尾部斜杠)

“会话已过期” - 重新验证(24小时限制)

许可证

麻省理工学院(MIT)