mcpField
M
Mcp Server

Mcp Server

本地服务
github.com/trasousa通信协作080 周前更新

关于 Mcp Server

Mcp Server 提供用于获取 Gmail 未读邮件摘要和按 Gmail 查询搜索邮件的 MCP 工具。它通过 Google OAuth2 认证,也可经 mcpo 提供给 Open WebUI 等客户端使用。

主要功能

  1. 01获取未读邮件摘要
  2. 02按 Gmail 查询搜索邮件
  3. 03OAuth2 认证与令牌缓存
  4. 04通过 mcpo 提供 OpenAPI
  5. 05Docker 容器化

适用场景

  1. 01查看 Gmail 未读邮件
  2. 02按查询条件搜索特定邮件
  3. 03从 Open WebUI 操作邮件

MCP 相关

该 MCP 服务向客户端提供 `list_unread` 和 `search_emails` 工具。也可通过 mcpo 运行,提供 OpenAPI 端点和文档。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Gmail 服务

此存储库提供 Gmail 的 MCP(Model Context Protocol)服务,让你能够通过 MCP 协议使用定义的工具(list_unread、search_emails)与 Gmail 帐户交互。它负责处理 Google OAuth2 身份验证,并提供基于 asyncio 的服务,以便与 Open WebUI 或其他 MCP 客户端集成。

功能
  • list_unread:获取未读 Gmail 邮件的摘要。
  • search_emails:根据 Gmail 查询条件搜索邮件(例如,from:[email protected])。
  • 无缝 OAuth2 流程,并缓存令牌。
  • 基于 asyncio 的服务,可与 MCP 客户端(例如 Open WebUI)配合使用。

什么是 MCP?

Model Context Protocol(MCP)是一种开放标准,用于定义应用程序如何向大语言模型(LLM)提供上下文。可以将 MCP 视为一种标准化接口——类似于硬件领域的 USB-C——让 AI 模型能够与各种工具和数据源无缝连接。


为什么使用 mcpo?

虽然 MCP 服务功能强大,但它们通常通过标准输入/输出(stdio)进行通信,这可能会带来一些限制:

  • 在不同环境中不安全。
  • 与许多现代工具、UI 或平台不兼容。
  • 缺少身份验证、文档和错误处理等功能。

mcpo(MCP-to-OpenAPI 代理)通过以下方式解决这些问题:

  • 使用安全、可扩展的 HTTP 端点封装 MCP 工具。
  • 让这些工具立即兼容现有的 OpenAPI 工具、SDK 和客户端。
  • 为每个工具自动生成交互式 OpenAPI 文档。
  • 使用纯 HTTP,无需设置套接字或编写特定于平台的代码。

这意味着你无需修改现有 MCP 服务代码,就能将 AI 工具部署到云端,与 Open WebUI 等 Web 界面集成,并提升安全性和可扩展性。


通过 mcpo 暴露 MCP Gmail 服务

要使用 mcpo 通过 OpenAPI 暴露 MCP Gmail 服务,请按照以下步骤操作:

  1. 安装 mcpo:

    使用 pip:

    pip install mcpo
    

    或使用 uv(推荐,可更快启动):

    uv pip install mcpo
    
  2. 使用 mcpo 运行 MCP Gmail 服务:

    mcpo --port 8000 -- uv run gmail-server
    

    此命令会在端口 8000 上启动 mcpo 代理,并在其后运行 Gmail MCP 服务。

  3. 访问 OpenAPI 文档:

    启动后,在浏览器中访问 http://localhost:8000/docs,查看为 Gmail 工具自动生成的 OpenAPI 文档。

  4. 与 Open WebUI 集成:

    在 Open WebUI 中,通过指定端点(例如,http://localhost:8000)添加新的 OpenAPI 工具服务。这样,你就可以在 Open WebUI 界面中使用定义的工具与 Gmail 帐户交互。


将 mcpo 与 MCP Gmail 服务集成,可以提升其易用性、安全性,以及与现代工具和平台的兼容性,让你能够通过标准化 API 与 Gmail 帐户无缝交互。


前置条件

  • Python 3.13 或更高版本
  • uv 包管理器
  • Google 帐户
  • 在 Google Cloud Console 中创建项目和 OAuth 凭据的权限

项目结构

├── mcp_server/
│   ├── __init__.py       # Package initialization
│   └── gmail/
│       ├── __init__.py   # Module initialization
│       └── server.py     # Main server implementation
├── tests/
│   ├── __init__.py
│   └── test_gmail_server.py  # Test suite for Gmail server
├── secrets/
│   ├── credentials.json  # OAuth2 client credentials (downloaded)
│   └── token.json        # Cached user tokens (auto-created)
├── pyproject.toml        # Project metadata and dependencies
├── pytest.ini           # Pytest configuration
├── run_tests.sh         # Script to run tests with uv
├── Dockerfile           # Docker configuration
└── README.md            # This documentation

Gmail API 凭据设置

  1. 前往 Google Cloud Console。
  2. 创建新项目(或选择现有项目)。
  3. 在 APIs & Services > Library 下启用 Gmail API。
  4. 在 APIs & Services > OAuth consent screen 下,配置 External 同意屏幕:
    • 应用名称:MCP Gmail Server
    • 将你的电子邮件地址添加为 Test user(服务不会发布)。
  5. 在 APIs & Services > Credentials 下,点击 Create Credentials > OAuth client ID。
    • 应用类型:Desktop app
    • 下载 JSON 文件。
  6. 将下载的文件重命名为 credentials.json,并放入 secrets/ 目录。

安装

  1. 克隆此仓库:

  2. 如果尚未安装 uv,请先安装:

    pipx install uv
    
  3. 使用 uv 创建并激活虚拟环境:

    # Create a virtual environment
    uv venv
    
    # Activate the virtual environment
    # On Unix/macOS:
    source .venv/bin/activate
    
    # On Windows:
    .\.venv\Scripts\activate
    
  4. 使用 uv 安装依赖:

    # Install the package in development mode
    uv pip install -e .
    

配置

  • 确保存在 secrets/credentials.json 文件。
  • 首次运行时,系统会提示你在浏览器中授权应用;之后会创建 secrets/token.json 文件。

运行服务

通过以下命令启动 MCP 服务:

# Run directly with uv
uv run gmail-server

# Alternative: Run with MCP OpenAPI Proxy
uvx mcpo --port 8000 --api-key "your-api-key" -- uv run gmail-server

你应该会看到提示服务正在运行并等待 MCP 客户端连接的输出。

使用方法

  • 连接任意兼容 MCP 的客户端(例如 Open Web UI)。
  • 使用以下工具/操作:
    • list_unread:返回未读邮件摘要。
    • search_emails:返回与提供的 Gmail 查询条件匹配的邮件。

Docker 设置

项目包含一个用于容器化的 Dockerfile:

  1. 构建 Docker 镜像:

    docker build -t gmail-mcp-server .
    
  2. 运行 Docker 容器:

    docker run -p 8000:8000 \
      -e API_KEY="your-secure-api-key" \
      gmail-mcp-server
    
Docker 配置详情
  • 基础镜像:Python 3.13-slim
  • 依赖项:使用 uv 安装
  • 卷挂载:/app/secrets 应包含你的 Google OAuth 凭据
  • 环境变量:
    • API_KEY:MCP OpenAPI 代理的安全密钥(默认值:"top-secret")
  • 端口:开放 8000 端口,用于 MCP OpenAPI 代理

许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。