使用说明
谷歌工作区MCP服务器
通过所有MCP客户端、人工智能助手和开发工具,对谷歌日历、云端硬盘、Gmail、文档、表格、幻灯片、表单、任务和聊天进行完全自然语言控制。
功能最齐全的Google Workspace MCP服务器,现在支持Remote OAuth2.1多用户支持,一键安装Claude。
支持所有免费的谷歌帐户(Gmail、Docs、Drive等)和谷歌工作区计划(Starter、Standard、Plus、Enterprise、Non-Prefit),并提供聊天和共享空间等扩展应用程序选项。
对私有云实例感兴趣? 这是可以安排的。
看看它在行动:
AI增强文档的快速插件
◆ But why?
本自述是在人工智能的帮助下编写的,这就是为什么这很重要
作为构建开源工具的独立开发人员,如果没有人工智能的帮助,通常不会有全面的文档。使用代理开发工具,如 鲁 & 克劳德代码 AI能够理解整个代码库,它不仅会重复通用内容,还会提取真正的实现细节,并创建准确、具体的文档。
在这种情况下,十四行诗4通过了验证,一个人(我)在25年8月16日验证了它们。
概述
一个生产就绪的MCP服务器,将所有主要的谷歌工作区服务与人工智能助手集成在一起。它通过OAuth 2.1支持单用户操作和多用户身份验证,使其成为定制应用程序的强大后端。采用FastMCP构建,可实现最佳性能,具有高级身份验证处理、服务缓存和简化的开发模式。
简化设置:现在使用谷歌桌面OAuth客户端-无需重定向URI或端口配置!
🌐 网络就绪!
此服务器是 针对web应用程序和网站进行了全面优化!
- ✅ 完全CORS支持 -适用于任何web客户端
- ✅ OAuth 2.1就绪 -web应用程序的多用户身份验证
- ✅ 示例web客户端 -几分钟后开始
- ✅ 一个命令启动 -
./start-web.sh
特性
|
@ Gmail • ≡ 驾驶 • ⧖ 日历 ≡ 文档
≡ 表单 • @ 聊天 • ≡ 表格 • ≡ 幻灯片
|
⊠ 身份验证和安全
✓ 任务 • ◆ 自定义搜索 • ↻ 运输支持
|
▶ 快速开始
≡ Quick Reference Card← Essential commands & configs at a glance
|
⊠证书 |
▶ 启动命令 |
★ 工具层
|
1.一键式Claude桌面安装(推荐)
- 下载: 获取最新消息
google_workspace_mcp.dxt从“发布”页面 - 安装: 双击文件–Claude Desktop打开并提示您 安装
- 配置: 在克劳德桌面→ 设置→ 扩展→ 谷歌工作区MCP,粘贴您的Google OAuth凭据
- 使用它: 开始一个新的克劳德聊天,并调用任何谷歌工作区工具
为什么选择DXT?
桌面扩展(
.dxt)捆绑服务器、依赖项和清单,以便用户从下载→ 工作MCP 一次点击 -没有终端,没有JSON编辑,没有版本冲突。
所需配置
◆ Environment Variables ← Click to configure in Claude Desktop
|
必需
|
可选的
|
Claude Desktop将这些安全地存储在操作系统钥匙链中;在扩展窗格中设置一次。
先决条件
配置
◆ Google Cloud Setup ← OAuth 2.0 credentials & API enablement
|
1.创建项目 |
2.OAuth凭据 下载并保存凭据 |
3.启用API 查看下面的快速链接 |
≡ OAuth Credential Setup Guide ← Step-by-step instructions完成设置过程:
≡ 全部文件→ |
⊥ Quick API Enable Links ← One-click enable each Google API
You can enable each one by clicking the links below (make sure you're logged into the Google Cloud Console and have the correct project selected):1.1. 凭证:参见 凭证配置 有关详细的设置选项
- 环境配置:
◆ Environment Variables ← Configure your runtime environment
|
◆ 发展模式 允许HTTP重定向URI |
@默认用户 单用户身份验证 |
◆ 自定义搜索 可选:搜索API设置 |
- 服务器配置:
◆ Server Settings ← Customize ports, URIs & proxies
|
◆ 基本配置 服务器URL和端口设置 |
↻ 代理支持 利用多用户OAuth2.1客户端 |
@默认电子邮件 在单用户模式下的身份验证流中跳过电子邮件 |
≡ Configuration Details ← Learn more about each setting
| 变量 | 描述 | 默认值 |
|---|---|---|
WORKSPACE_MCP_BASE_URI |
基本服务器URI(无端口) | http://localhost |
WORKSPACE_MCP_PORT |
服务器侦听端口 | 8000 |
WORKSPACE_EXTERNAL_URL |
反向代理设置的外部URL | 无 |
GOOGLE_OAUTH_REDIRECT_URI |
覆盖OAuth回调URL | 自动构造 |
USER_GOOGLE_EMAIL |
默认身份验证电子邮件 | 无 |
Google自定义搜索设置
◆ Custom Search Configuration ← Enable web search capabilities
|
1.创建搜索引擎 |
2.获取API密钥 |
3.设置变量 在环境中配置 |
≡ Quick Setup Guide ← Step-by-step instructions完成设置过程:
≡ 全部文件→ |
启动服务器
▶ Launch Commands ← Choose your startup mode
|
▶ 快速开始 默认stdio模式 |
◆ HTTP模式 Web界面和调试 |
@单用户 简化身份验证 |
◆ Advanced Options ← Tool selection, tiers & Docker▶ 选择性工具加载 ★ 工具层 ◆ Docker部署 可用服务: |
工具层
服务器将工具组织成 三个渐进的层次 以简化部署。选择与您的使用需求和API配额要求相匹配的层。
可用层● 核心 ( ● 扩展的 ( ● 完成 ( |
重要说明▶ 从开始 |
使用示例
# Basic tier selection
uv run main.py --tool-tier core # Start with essential tools only
uv run main.py --tool-tier extended # Expand to include management features
uv run main.py --tool-tier complete # Enable all available functionality
# Selective service loading with tiers
uv run main.py --tools gmail drive --tool-tier core # Core tools for specific services
uv run main.py --tools gmail --tool-tier extended # Extended Gmail functionality only
uv run main.py --tools docs sheets --tool-tier complete # Full access to Docs and Sheets
📋 凭证配置
🔑 OAuth Credentials Setup ← Essential for all installations
|
🚀 环境变量 最适合生产 |
📁 基于文件 传统方法 |
⚡ .env文件 最有利于发展 |
📖 Credential Loading Details ← Understanding priority & best practices加载优先级
为什么是环境变量?
|
🧰 可用工具
备注:所有工具都支持通过以下方式进行自动身份验证
@require_google_service()带有30分钟服务缓存的装饰器。
📅 谷歌日历
|
| 工具 | 层级 | 描述 |
|---|---|---|
list_calendars |
核心 | 列出可访问的日历 |
get_events |
核心 | 使用时间范围过滤检索事件 |
create_event |
核心 | 创建带有附件和提醒的事件 |
modify_event |
核心 | 更新现有事件 |
delete_event |
扩展 | 删除事件 |
📁 Google 云端硬盘 drive_tools.py
| 工具 | 层级 | 描述 |
|---|---|---|
search_drive_files |
核心 | 使用查询语法搜索文件 |
get_drive_file_content |
核心 | 读取文件内容(Office格式) |
create_drive_file |
核心 | 创建文件或从URL获取 |
list_drive_items |
扩展 | 列出文件夹内容 |
update_drive_file |
扩展 | 更新文件元数据,在文件夹之间移动 |
📧 Gmail gmail_tools.py
| 工具 | 层级 | 描述 |
|---|---|---|
search_gmail_messages |
核心 | 通过Gmail运营商进行搜索 |
get_gmail_message_content |
核心 | 检索邮件内容 |
get_gmail_messages_content_batch |
核心 | 批量检索邮件内容 |
send_gmail_message |
核心 | 发送电子邮件 |
get_gmail_thread_content |
扩展 | 获取完整的线程内容 |
modify_gmail_message_labels |
扩展 | 修改邮件标签 |
list_gmail_labels |
扩展 | 列出可用标签 |
manage_gmail_label |
扩展 | 创建/更新/删除标签 |
draft_gmail_message |
扩展 | 创建草稿 |
get_gmail_threads_content_batch |
完成 | 批量检索线程内容 |
batch_modify_gmail_message_labels |
完成 | 批量修改标签 |
start_google_auth |
完成 | 初始化身份验证 |
📝 谷歌文档 docs_tools.py
| 工具 | 层级 | 描述 |
|---|---|---|
get_doc_content |
核心 | 提取文档文本 |
create_doc |
核心 | 创建新文档 |
modify_doc_text |
核心 | 修改文档文本 |
search_docs |
扩展 | 按名称查找文档 |
find_and_replace_doc |
扩展 | 查找和替换文本 |
list_docs_in_folder |
扩展 | 列出文件夹中的文档 |
insert_doc_elements |
扩展 | 添加表格、列表、分页符 |
insert_doc_image |
完成 | 从驱动器/URL插入图像 |
update_doc_headers_footers |
完成 | 修改页眉和页脚 |
batch_update_doc |
完成 | 执行多个操作 |
inspect_doc_structure |
完成 | 分析文档结构 |
export_doc_to_pdf |
扩展 | 将文档导出为PDF |
create_table_with_data |
完成 | 创建数据表 |
debug_table_structure |
完成 | 调试表问题 |
*_document_comments |
完成 | 阅读、回复、创建、解决 |
📊 谷歌表格 sheets_tools.py
| 工具 | 层级 | 描述 |
|---|---|---|
read_sheet_values |
核心 | 读取单元格范围 |
modify_sheet_values |
核心 | 写入/更新/清除单元格 |
create_spreadsheet |
核心 | 创建新的电子表格 |
list_spreadsheets |
扩展 | 列出可访问的电子表格 |
get_spreadsheet_info |
扩展 | 获取电子表格元数据 |
create_sheet |
完成 | 将图纸添加到现有文件 |
*_sheet_comment |
完成 | 阅读/创建/回复/解决评论 |
🖼️ 谷歌幻灯片 slides_tools.py
| 工具 | 层级 | 描述 |
|---|---|---|
create_presentation |
核心 | 创建新演示文稿 |
get_presentation |
核心 | 检索演示文稿详细信息 |
batch_update_presentation |
扩展 | 应用多个更新 |
get_page |
扩展 | 获取特定幻灯片信息 |
get_page_thumbnail |
扩展 | 生成幻灯片缩略图 |
*_presentation_comment |
完成 | 阅读/创建/回复/解决评论 |
📝 谷歌表单 forms_tools.py
| 工具 | 层级 | 描述 |
|---|---|---|
create_form |
核心 | 创建新表单 |
get_form |
核心 | 检索表单详细信息和URL |
set_publish_settings |
完成 | 配置表单设置 |
get_form_response |
完成 | 获取个人回复 |
list_form_responses |
扩展 | 列出所有带页码的回复 |
✓ 工作表 tasks_tools.py
| 工具 | 层级 | 描述 |
|---|---|---|
list_tasks |
核心 | 列出带有筛选功能的任务 |
get_task |
核心 | 检索任务详细信息 |
create_task |
核心 | 创建具有层次结构的任务 |
update_task |
核心 | 修改任务属性 |
delete_task |
扩展 | 删除任务 |
move_task |
完成 | 重新定位任务 |
clear_completed_tasks |
完成 | 隐藏已完成的任务 |
*_task_list |
完成 | 列出/获取/创建/更新/删除任务列表 |
💬 谷歌聊天 chat_tools.py
| 工具 | 层级 | 描述 |
|---|---|---|
list_spaces |
扩展 | 列出聊天空间/房间 |
get_messages |
核心 | 检索空间消息 |
send_message |
核心 | 向空间发送消息 |
search_messages |
核心 | 在聊天记录中搜索 |
🔍 谷歌自定义搜索 search_tools.py
| 工具 | 层级 | 描述 |
|---|---|---|
search_custom |
核心 | 执行网络搜索 |
get_search_engine_info |
完成 | 检索搜索引擎元数据 |
search_custom_siterestrict |
扩展 | 在特定域内搜索 |
工具层图例:
- • 核心:基本功能的基本工具•API使用率最低•入门
- • 扩展的:核心工具+附加功能•常规使用•扩展功能
- • 完成:所有可用工具,包括高级功能•高级用户•API完全访问
连接到克劳德桌面
服务器支持两种传输模式:
标准模式(默认-建议用于Claude Desktop)
一般来说,您应该使用Claude Desktop的一键式DXT安装程序包。
如果您因某种原因无法配置,可以通过手动配置 claude_desktop_config.json
手动克劳德配置(备选)
📝 Claude Desktop JSON Config ← Click for manual setup instructions
-
打开克劳德桌面设置→ 开发者→ 编辑配置
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
添加服务器配置:
{
"mcpServers": {
"google_workspace": {
"command": "uvx",
"args": ["workspace-mcp"],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "your-client-id",
"GOOGLE_OAUTH_CLIENT_SECRET": "your-secret",
"OAUTHLIB_INSECURE_TRANSPORT": "1"
}
}
}
}
2.高级/跨平台安装
如果您正在开发、部署到服务器或使用另一个支持MCP的客户端,请继续阅读。
即时命令行界面(uvx)
⚡ Quick Start with uvx ← No installation required!
# Requires Python 3.10+ and uvx
# First, set credentials (see Credential Configuration above)
uvx workspace-mcp --tool-tier core # or --tools gmail drive calendar
备注:配置 OAuth凭据 跑步前。支持环境变量,
.env文件,或client_secret.json.
地方发展设置
🛠️ Developer Workflow ← Install deps, lint, and test
# Install everything needed for linting, tests, and release tooling
uv sync --group dev
# Run the same linter that git hooks invoke automatically
uv run ruff check .
# Execute the full test suite (async fixtures require pytest-asyncio)
uv run pytest
uv sync --group test如果你需要一个更精简的环境,只安装测试栈。uv run main.py --transport streamable-http使用您签出的代码启动服务器进行手动验证。- Ruff是
dev组,因为预推挂钩调用ruff checkautomatic——在提交之前在本地运行它,以避免钩子失败。
OAuth 2.1支持(多用户承载令牌身份验证)
该服务器包括对承载令牌身份验证的OAuth 2.1支持,支持多用户会话管理。 OAuth 2.1会自动重用您现有的 GOOGLE_OAUTH_CLIENT_ID 和 GOOGLE_OAUTH_CLIENT_SECRET 凭证 -无需额外配置!
何时使用OAuth 2.1:
- 多个用户访问同一MCP服务器实例
- 需要进行承载令牌身份验证,而不是传递用户电子邮件
- 在MCP服务器上构建web应用程序或API
- 需要安全会话管理的生产环境
- 需要CORS支持的基于浏览器的客户端
启用OAuth 2.1:
要启用OAuth 2.1,请设置 MCP_ENABLE_OAUTH21 环境变量 true.
# OAuth 2.1 requires HTTP transport mode
export MCP_ENABLE_OAUTH21=true
uv run main.py --transport streamable-http
如果 MCP_ENABLE_OAUTH21 未设置为 true,服务器将使用传统身份验证,这适用于不支持OAuth 2.1的客户端。
🔐 How the FastMCP GoogleProvider handles OAuth ← Advanced OAuth 2.1 details
FastMCP运送本地 GoogleProvider 我们现在直接依赖它。它解决了在MCP客户端上使用Google OAuth的两个棘手部分:
-
动态客户端注册:谷歌仍然不支持OAuth 2.1 DCR,但FastMCP提供商公开了完整的DCR表面,并使用您的固定凭据将注册转发给谷歌。MCP客户端像往常一样注册,提供商会私下向他们提供您的谷歌客户端ID/秘密。
-
CORS和浏览器兼容性:提供程序包括一个OAuth代理,该代理使用适当的CORS标头为所有发现、授权和令牌端点提供服务。我们不再维持习俗
/oauth2/*路由——提供者安全地处理上游交换,并向客户端通告正确的元数据。
结果是一个更精简的服务器,仍然允许任何符合OAuth 2.1的客户端(包括基于浏览器的客户端)通过谷歌进行身份验证,而无需定制代码。
无状态模式(容器友好)
服务器支持为容器化环境设计的无状态模式,在这种环境中应避免文件系统写入:
启用无状态模式:
# Stateless mode requires OAuth 2.1 to be enabled
export MCP_ENABLE_OAUTH21=true
export WORKSPACE_MCP_STATELESS_MODE=true
uv run main.py --transport streamable-http
主要特点:
- 无文件系统写入:凭据永远不会写入磁盘
- 无调试日志:完全禁用基于文件的日志记录
- 仅内存会话:通过OAuth 2.1会话存储存储在内存中的所有令牌
- 集装箱准备就绪:非常适合Docker、Kubernetes和无服务器部署
- 每个请求的令牌:每个请求都必须包含一个有效的Bearer令牌
要求:
- 必须与
MCP_ENABLE_OAUTH21=true - 与单用户模式不兼容
- 客户端必须处理OAuth流,并在每次请求时发送有效令牌
此模式非常适合:
- 持久存储不可用的云部署
- 需要严格隔离的多租户环境
- 具有只读文件系统的容器化应用程序
- 无服务器功能和临时计算环境
MCP检查员:桌面OAuth客户端不需要额外配置。
Claude代码检查器:桌面OAuth客户端不需要额外配置。
外部OAuth 2.1提供者模式
对于由外部系统处理身份验证的场景,服务器支持外部OAuth 2.1提供程序模式。在这种模式下,MCP服务器本身并不管理OAuth流,而是希望在工具调用的Authorization标头中有有效的承载令牌。
启用外部OAuth 2.1提供程序模式:
# External OAuth provider mode requires OAuth 2.1 to be enabled
export MCP_ENABLE_OAUTH21=true
export EXTERNAL_OAUTH21_PROVIDER=true
uv run main.py --transport streamable-http
工作原理:
- 协议级身份验证已禁用:MCP握手(
initialize)以及tools/list不需要身份验证 - 需要工具级身份验证:所有工具调用必须包括
Authorization: Bearer <token>头球 - 外部OAuth流:您的外部系统处理OAuth流并获取Google访问令牌
- 令牌验证:服务器通过Google的tokeninfo API验证承载令牌
- 多用户支持:每个请求都根据其承载令牌独立进行身份验证
主要特点:
- 没有本地OAuth流:服务器不提供OAuth回调端点或管理OAuth状态
- 仅限持有者代币:所有身份验证均通过授权标头进行
- 设计无状态:与无缝协作
WORKSPACE_MCP_STATELESS_MODE=true - 外部身份提供者:与您现有的身份验证基础架构集成
- 工具发现:客户端可以在不进行身份验证的情况下列出可用工具
要求:
- 必须与
MCP_ENABLE_OAUTH21=true - 令牌验证仍然需要OAuth凭据(
GOOGLE_OAUTH_CLIENT_ID,GOOGLE_OAUTH_CLIENT_SECRET) - 外部系统必须获得有效的Google OAuth访问令牌(ya29.*)
- 每个工具调用请求都必须包含有效的承载令牌
使用案例:
- 与现有身份验证系统集成
- 由您的应用程序管理的自定义OAuth流
- 处理上游身份验证的API网关
- 具有集中身份验证的多租户SaaS应用程序
- 具有自己的OAuth实现的移动或web应用程序
VS代码MCP客户端支持
🆚 VS Code Configuration ← Setup for VS Code MCP extension
{
"servers": {
"google-workspace": {
"url": "http://localhost:8000/mcp/",
"type": "http"
}
}
}
反向代理设置
如果你在反向代理(nginx、Apache、Cloudflare等)后面运行MCP服务器,你有两个配置选项:
问题:当在反向代理后面时,服务器使用内部端口(例如。, http://localhost:8000)但是外部客户端需要公共URL(例如。, https://your-domain.com).
解决方案1:设置 WORKSPACE_EXTERNAL_URL 对于所有OAuth端点:
# This configures all OAuth endpoints to use your external URL
export WORKSPACE_EXTERNAL_URL="https://your-domain.com"
解决方案2:设置 GOOGLE_OAUTH_REDIRECT_URI 对于回调:
# This only overrides the OAuth callback URL
export GOOGLE_OAUTH_REDIRECT_URI="https://your-domain.com/oauth2callback"
您还可以选择:
| OAUTH_CUSTOM_REDIRECT_URIS (可选) |以逗号分隔的附加重定向URI列表|
| OAUTH_ALLOWED_ORIGINS (可选) |逗号分隔的其他CORS源列表|
重要:
- 使用
WORKSPACE_EXTERNAL_URL当所有OAuth端点都应该使用外部URL时(建议用于反向代理设置) - 使用
GOOGLE_OAUTH_REDIRECT_URI当您只需要覆盖回调URL时 - 重定向URI必须与您的Google Cloud控制台中配置的完全匹配
- 您的反向代理必须转发与OAuth相关的请求(
/oauth2callback,/oauth2/*,/.well-known/*)到MCP服务器
🚀 Advanced uvx Commands ← More startup options
# Configure credentials first (see Credential Configuration section)
# Start with specific tools only
uvx workspace-mcp --tools gmail drive calendar tasks
# Start with tool tiers (recommended for most users)
uvx workspace-mcp --tool-tier core # Essential tools
uvx workspace-mcp --tool-tier extended # Core + additional features
uvx workspace-mcp --tool-tier complete # All tools
# Start in HTTP mode for debugging
uvx workspace-mcp --transport streamable-http
需要Python 3.10+和 uvx。该套餐可在 PyPI.
开发安装
对于开发或定制:
git clone https://github.com/taylorwilsdon/google_workspace_mcp.git
cd google_workspace_mcp
uv run main.py
开发安装(供贡献者使用):
🔧 Developer Setup JSON ← For contributors & customization
{
"mcpServers": {
"google_workspace": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/repo/google_workspace_mcp",
"main.py"
],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "your-client-id",
"GOOGLE_OAUTH_CLIENT_SECRET": "your-secret",
"OAUTHLIB_INSECURE_TRANSPORT": "1"
}
}
}
}
HTTP模式(用于调试或web界面)
如果您需要在Claude Desktop中使用HTTP模式:
{
"mcpServers": {
"google_workspace": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:8000/mcp"]
}
}
}
注意:请确保使用以下命令启动服务器 --transport streamable-http 当使用HTTP模式时。
首次身份验证
服务器使用 谷歌桌面OAuth 为了简化身份验证:
- 不需要重定向URI:桌面OAuth客户端无需复杂的回调URL即可处理身份验证
- 自动流量:服务器透明地管理整个OAuth过程
- 运输无关:可在stdio和HTTP模式下无缝工作
调用工具时:
- 服务器返回授权URL
- 在浏览器中打开URL并授权
- Google提供授权码
- 在提示时粘贴代码(或自动处理)
- 服务器完成身份验证并重试您的请求
◆ 发展
项目结构
google_workspace_mcp/
├── auth/ # Authentication system with decorators
├── core/ # MCP server and utilities
├── g{service}/ # Service-specific tools
├── main.py # Server entry point
├── client_secret.json # OAuth credentials (not committed)
└── pyproject.toml # Dependencies
添加新工具
from auth.service_decorator import require_google_service
@require_google_service("drive", "drive_read") # Service + scope group
async def your_new_tool(service, param1: str, param2: int = 10):
"""Tool description"""
# service is automatically injected and cached
result = service.files().list().execute()
return result # Return native Python objects
建筑亮点
- 服务缓存:30分钟TTL减少了身份验证开销
- 范围管理:集中在
SCOPE_GROUPS便于维护 - 错误处理:本机异常,而不是手动错误构造
- 多服务支持:
@require_multiple_services()用于复杂工具
凭证存储系统
该服务器包括一个抽象凭证存储API和一个用于管理Google OAuth的默认后端 支持多个存储后端的凭据:
特征:
- 抽象接口:
CredentialStore基类定义了标准操作(获取、存储、删除、列出用户) - 本地文件存储:
LocalDirectoryCredentialStore实现将凭据存储为JSON文件 - 可配置存储:环境变量
GOOGLE_MCP_CREDENTIALS_DIR设置存储位置 - 多用户支持:存储和管理多个Google帐户的凭据
- 自动目录创建:如果存储目录不存在,则会自动创建
配置:
# Optional: Set custom credentials directory
export GOOGLE_MCP_CREDENTIALS_DIR="/path/to/credentials"
# Default locations (if GOOGLE_MCP_CREDENTIALS_DIR not set):
# - ~/.google_workspace_mcp/credentials (if home directory accessible)
# - ./.credentials (fallback)
使用示例:
from auth.credential_store import get_credential_store
# Get the global credential store instance
store = get_credential_store()
# Store credentials for a user
store.store_credential("user@example.com", credentials)
# Retrieve credentials
creds = store.get_credential("user@example.com")
# List all users with stored credentials
users = store.list_users()
凭证存储会自动处理凭证序列化、过期解析,并为存储操作提供错误处理。
⊠安全
- 凭证:从不承诺
.env,client_secret.json或.credentials/目录到源代码管理! - OAuth回调:用途
http://localhost:8000/oauth2callback发展(需要OAUTHLIB_INSECURE_TRANSPORT=1) - 传输感知回调:Stdio模式仅为OAuth启动一个最小的HTTP服务器,确保回调在所有模式下都能工作
- 生产:使用HTTPS和OAuth 2.1并相应配置
- 范围最小化:工具仅请求必要的权限
≡许可证
MIT许可证-请参阅 LICENSE 文件以获取详细信息。
验证: