OAuth MCP演示
使用模型上下文协议(MCP)和FastMCP对Google服务进行OAuth身份验证的演示。
概述
本项目展示了如何在MCP服务器中为Google服务(例如youtube和驱动器访问)实现OAuth 2.0身份验证。它提供了用于身份验证用户和安全访问Google API的工具。
特性
- 🔐 使用Google进行OAuth 2.0身份验证
- 📺 YouTube API访问(只读)
- 📁 Google Drive API访问
- 📄 Google Docs API访问
- 🔧 使用FastMCP实现MCP服务器
- 💾 令牌持久性,实现无缝重新身份验证
先决条件
- Python 3.8+
- 使用OAuth 2.0凭据的谷歌云项目
- uv(Python包管理器)
设置
- 克隆存储库:
git clone
cd oauthmcp-demo- 安装依赖项:
uv sync- 设置Google OAuth凭据:
- 转到 谷歌云控制台 - 创建新项目或选择现有项目 - 启用YouTube Data API v3、Google Drive API和Google Docs API - 创建OAuth 2.0凭据(桌面应用程序) - 下载凭据
- 配置环境变量:
创建一个 .env 项目根目录中的文件:
GOOGLE_CLIENT_ID=your_client_id_here
GOOGLE_CLIENT_SECRET=your_client_secret_here用法
- 在检查器中测试MCP服务器:
npx @modelcontextprotocol/inspector uv --directory . run python simplemcp.py- 使用Google进行身份验证:
使用 authenticate 启动OAuth流的工具。这将:
- 生成授权URL - 自动打开浏览器(如果可能) - 提示您复制授权码
- 完成身份验证:
使用 complete_auth 使用步骤2中的授权码。
可用工具
authenticate()
与Google启动OAuth 2.0流程。返回用户需要访问的授权URL。
complete_auth(authorization_code: str)
使用Google的授权码完成OAuth流程。保存凭据以供将来使用。
安全说明
- 这
.env包含OAuth凭据的文件被排除在版本控制之外 - OAuth令牌存储在本地
.token.json(也不包括在git中) - 该项目使用适用于桌面应用程序的“带外”OAuth流
API范围
应用程序请求访问:
https://www.googleapis.com/auth/youtube.readonly-只读YouTube访问https://www.googleapis.com/auth/drive.file-Google Drive文件访问https://www.googleapis.com/auth/documents-谷歌文档访问
贡献
请随时提交问题和拉取请求以改进此演示。
许可证
本项目按原样提供,用于教育目的。
