这是一个提供LLMs访问Gmail功能的Model Context Protocol(MCP)服务器,由MCP Python SDK驱动。
安装项目依赖项(uv会自动创建并管理虚拟环境)
uv sync
不幸的是,要使用Gmail API需要很多步骤。我试图捕捉所有必需的步骤(截至2025年3月28日),但情况可能会发生变化。
创建Google Cloud项目
启用Gmail API
配置OAuth同意屏幕
创建OAuth凭证
credentials.json添加范围
.../auth/gmail.modify范围,该范围授予“读取、编写和发送来自您的Gmail账户的邮件”的权限通过运行简单的测试脚本来验证您的OAuth配置是否正确。
uv run python scripts/test_gmail_setup.py
您应该能够在https://console.cloud.google.com/apis/api/gmail.googleapis.com/metrics查看使用指标。
开发模式:
uv run mcp dev mcp_gmail/server.py
这将启动一个MCP Inspector应用程序,您可以使用它与MCP服务器交互。
或者为Claude Desktop安装:
uv run mcp install \
--with-editable .
--name gmail \
--env-var MCP_GMAIL_CREDENTIALS_PATH=$(pwd)/credentials.json \
--env-var MCP_GMAIL_TOKEN_PATH=$(pwd)/token.json \
mcp_gmail/server.py
[!NOTE] 如果在启动Claude Desktop并初始化MCP服务器时遇到类似于
Error: spawn uv ENOENT的错误,您可能需要更新claude_desktop_config.json以提供uv的绝对路径。前往Claude Desktop -> 设置 -> 开发者 -> 编辑配置。{ "mcpServers": { "gmail": { "command": "~/.local/bin/uv", } } }
运行代码检查和格式化:
# 格式化代码
uv run ruff format .
# 使用自动修复进行代码检查
uv run ruff check --fix .
# 运行测试
uv run pytest tests/
此项目使用提交前钩子来确保代码质量。这些钩子会在每次提交前自动运行,以验证代码格式和代码检查标准。
安装提交前钩子:
pre-commit install
手动在所有文件上运行提交前钩子:
pre-commit run --all-files
一旦运行,您可以使用任何MCP客户端或通过Claude Desktop连接到MCP服务器。
gmail://messages/{message_id} - 访问电子邮件消息gmail://threads/{thread_id} - 访问电子邮件线程compose_email - 创建新的电子邮件草稿send_email - 发送电子邮件search_emails - 使用特定过滤器搜索电子邮件(如发件人、收件人、主题、日期等)query_emails - 使用原始Gmail查询语法搜索电子邮件get_emails - 通过其ID检索多封电子邮件list_available_labels - 获取所有可用的Gmail标签mark_message_read - 标记邮件为已读add_label_to_message - 向邮件添加标签remove_label_from_message - 从邮件中移除标签您可以使用环境变量来配置服务器:
MCP_GMAIL_CREDENTIALS_PATH:OAuth凭证JSON文件的路径(默认:"credentials.json")MCP_GMAIL_TOKEN_PATH:存储OAuth令牌的路径(默认:"token.json")MCP_GMAIL_MAX_RESULTS:搜索查询的默认最大结果数(默认:110)MIT