Google API MCP服务

一个整合了Google Calendar、Gmail、Google Sheets和Google Docs的MCP服务器群,提供OAuth认证和配置管理功能。

  • by shivaduke28
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 shivaduke28/google-mcp

使用说明

谷歌mcp

汇总了Google API的MCP(Model Context Protocol)服务器群的pnpm workspace单报告。

包裹

软件包|说明| |---|---| | packages/auth |共通OAuth认证(PKCE对应)| | packages/calendar 谷歌Calendar MCP服务器 | packages/gmail |Gmail MCP服务器| | packages/sheets 谷歌Sheets MCP服务器 | packages/docs 谷歌Docs MCP服务器

设置

1.GCP项目准备

  1. 谷歌云控制台 在中创建项目
  2. 启用要使用的API(Calendar/Gmail/Sheets/Drive)
  3. 设置“授权”屏幕
  4. 创建OAuth2.0客户端ID(桌面应用程序)
  5. 下载认证信息的JSON文件→ credentials.json 保存为

2. MCP设定

npx 中所述修改相应参数的值。

{
  "mcpServers": {
    "google-calendar": {
      "command": "npx",
      "args": ["-y", "@shivaduke28/google-calendar-mcp"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/credentials.json",
        "GOOGLE_MCP_CONFIG": "/path/to/config.json"
      }
    },
    "gmail": {
      "command": "npx",
      "args": ["-y", "@shivaduke28/gmail-mcp"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/credentials.json"
      }
    },
    "google-sheets": {
      "command": "npx",
      "args": ["-y", "@shivaduke28/google-sheets-mcp"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/credentials.json",
        "GOOGLE_MCP_CONFIG": "/path/to/config.json"
      }
    },
    "google-docs": {
      "command": "npx",
      "args": ["-y", "@shivaduke28/google-docs-mcp"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/credentials.json",
        "GOOGLE_MCP_CONFIG": "/path/to/config.json"
      }
    }
  }
}

3.环境变数

变数 必须 说明
GOOGLE_OAUTH_CREDENTIALS 是:客户机凭据的JSON文件路径
GOOGLE_MCP_CONFIG 否:公用配置文件路径(用于calendar/sheets/docs)
GOOGLE_OAUTH_TOKENS |否|令牌保存位置(默认值: ~/.config/<package>-mcp/tokens.json)

路径包括 ~ 可以使用$HOME 对较大场景进行渲染期间已观察到该故障。

4.认证

首次启动时浏览器打开,要求用谷歌账户进行认证。认证后,令牌 ~/.config/<package>-mcp/tokens.json 中所述修改相应参数的值。支持PKCE(Proof Key for Code Exchange)。

配置

GOOGLE_MCP_CONFIG 中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长。

{
  "calendar": {
    "internalDomain": "example.com",
    "permissions": {
      "read": { "self_only": "allow", "internal": "allow", "external": "allow" },
      "create": { "self_only": "allow", "internal": "deny", "external": "deny" },
      "update": { "self_only": "allow", "internal": "deny", "external": "deny" },
      "delete": { "self_only": "deny", "internal": "deny", "external": "deny" }
    }
  },
  "sheets": {
    "allowedSpreadsheets": [
      { "id": "spreadsheet-id", "name": "表示名", "access": "readonly" }
    ]
  },
  "docs": {
    "allowedDocuments": [
      { "id": "document-id", "name": "表示名" }
    ],
    "allowedFolders": [
      { "id": "folder-id", "name": "表示名" }
    ]
  }
}

每个包都有自己的键(calendar, sheets, docs),忽略其他关键帧。有关详细信息,请参见每个包的自述文件。

发展

构建测试

pnpm install          # 依存解決
pnpm build            # 全パッケージビルド
pnpm typecheck        # 全パッケージ型チェック
pnpm -r test          # 全パッケージテスト

在本地构建中启动MCP服务器

构建的 dist/index.js 中所述修改相应参数的值。

{
  "mcpServers": {
    "google-calendar": {
      "command": "node",
      "args": ["/path/to/google-mcp/packages/calendar/dist/index.js"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "/path/to/credentials.json",
        "GOOGLE_MCP_CONFIG": "/path/to/config.json"
      }
    }
  }
}

许可证

国际协调委员会