OAuth认证演示

该项目展示了如何在MCP服务器中实现Google服务的OAuth 2.0认证,提供用户认证和访问Google API的工具。

  • by WittorioJaro
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 WittorioJaro/oauthmcp

使用说明

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包管理器)

设置

  1. 克隆存储库:

    git clone <your-repo-url>
    cd oauthmcp-demo
    
  2. 安装依赖项:

    uv sync
    
  3. 设置Google OAuth凭据:

    • 转到 谷歌云控制台
    • 创建新项目或选择现有项目
    • 启用YouTube Data API v3、Google Drive API和Google Docs API
    • 创建OAuth 2.0凭据(桌面应用程序)
    • 下载凭据
  4. 配置环境变量: 创建一个 .env 项目根目录中的文件:

    GOOGLE_CLIENT_ID=your_client_id_here
    GOOGLE_CLIENT_SECRET=your_client_secret_here
    

用法

  1. 在检查器中测试MCP服务器:

    npx @modelcontextprotocol/inspector uv --directory . run python simplemcp.py
    
  2. 使用Google进行身份验证: 使用 authenticate 启动OAuth流的工具。这将:

    • 生成授权URL
    • 自动打开浏览器(如果可能)
    • 提示您复制授权码
  3. 完成身份验证: 使用 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 -谷歌文档访问

贡献

请随时提交问题和拉取请求以改进此演示。

许可证

本项目按原样提供,用于教育目的。