项目简介
Google通讯录MCP服务器是一个生产级的无服务器应用,专为集成AI助手(如Claude)而设计。它遵循Model Context Protocol (MCP),允许AI助手通过安全的、按用户OAuth认证的方式访问和管理用户的Google通讯录数据。所有通讯录数据都是实时从Google获取,不进行服务器端存储,最大限度地确保用户隐私和数据安全。
主要功能点
- 安全认证: 支持OAuth 2.1,每个用户通过自己的Google账户进行认证,确保数据访问权限精确到个人。
- 无数据存储: 服务器不存储任何通讯录数据,仅存储加密的OAuth令牌,所有通讯录信息实时从Google People API获取,最大限度保护用户隐私。
- 无服务器架构: 基于AWS Lambda构建,利用AWS API Gateway、DynamoDB等服务实现自动扩缩容,按需付费,无需管理底层基础设施。
- AI助手集成: 可与Claude Web和Claude Desktop等AI助手无缝集成,提供统一的上下文服务访问接口。
- 工具集: 提供以下工具,供AI助手调用以执行特定操作:
- 'list_contacts':列出认证用户的所有通讯录联系人,支持分页和排序。
- 'get_contact':根据联系人ID(resourceName)获取特定联系人的详细信息。
- 'search_contacts':在所有通讯录字段中搜索联系人,如姓名、电话、邮件等。
- 'search_directory':搜索Google Workspace目录联系人(此功能仅适用于Google Workspace账户)。
安装步骤
-
前提条件:
- 安装Node.js (推荐版本 >= 18.0.0)。
- 配置好AWS CLI,并确保您的AWS账户有足够的权限部署Lambda、API Gateway和DynamoDB等资源。
- 在Google Cloud项目中启用了People API。
- 安装AWS CDK:'npm install -g aws-cdk'。
-
项目克隆与依赖安装:
git clone https://github.com/OffleashXYZ/google-contacts-mcp-server.git cd google-contacts-mcp-server npm install -
Google OAuth配置:
- 前往Google Cloud Console。
- 确保已启用People API。
- 创建OAuth 2.0凭据,选择“Web 应用程序”类型。
- 记下您获得的'client_id'和'client_secret'。
- 暂时跳过重定向URI的添加,您将在部署后获得准确的重定向URI。
-
部署到AWS: 在项目根目录下运行以下命令来构建和部署服务器到您的AWS账户:
# 构建TypeScript代码 npm run build # 构建Lambda部署包 npm run build:lambda # 使用CDK部署AWS资源 npm run cdk:deploy部署完成后,您将在终端看到CDK输出,其中包含MCP服务器的API Endpoint、Google OAuth回调URL等重要信息。
-
配置OAuth凭据: 部署后,您需要将Google OAuth的'client_id'和'client_secret'配置到AWS Systems Manager Parameter Store中。请将 'YOUR_CLIENT_ID' 和 'YOUR_CLIENT_SECRET' 替换为实际值,并将 'YOUR_AWS_REGION' 替换为您的AWS部署区域:
aws ssm put-parameter \ --name "/google-contacts-mcp/oauth-credentials" \ --value '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}' \ --type String \ --overwrite \ --region YOUR_AWS_REGION重要: 复制CDK输出中的'GoogleCallbackUrl' (例如:'https://abc123.execute-api.us-west-2.amazonaws.com/google/callback')。 返回Google Cloud Console -> APIs & Services -> 凭据,编辑您的OAuth 2.0客户端ID,将这个'GoogleCallbackUrl'添加到“Authorized redirect URIs”中。
服务器配置 (针对MCP客户端)
此MCP服务器是基于HTTP协议部署的远程服务。因此,MCP客户端(如Claude)无需配置本地启动命令和参数。客户端只需配置一个MCP服务器的URL,通过该URL与远程服务器建立连接。这个URL在您完成AWS部署后,会从CDK输出中获得。
-
对于Claude Web:
- 访问Claude.ai -> Settings -> Integrations。
- 点击“Add server”。
- 在提供的输入框中,输入您的MCP服务器URL。该URL的格式通常为 'https://[您的API_ENDPOINT]/mcp'(API_ENDPOINT可在CDK输出中找到)。
- 点击“Connect”,然后按照提示使用您的Google账户进行认证。
-
对于Claude Desktop: 如果您使用Claude Desktop,您需要编辑其配置文件 'claude_desktop_config.json'。在该文件中,找到或添加 'mcpServers' 部分,并配置一个名为 'google-contacts' 的服务器。其中,'url' 参数的值就是您部署后获得的MCP服务器URL。
{ "mcpServers": { "google-contacts": { "url": "https://your-api-id.execute-api.region.amazonaws.com/mcp" } } }- '"google-contacts"': 这是您为该服务器定义的名称,AI助手会用它来识别此MCP服务。
- '"url"': 这是MCP服务器的访问地址,AI助手将通过这个URL与服务器通信。请务必将示例中的 'https://your-api-id.execute-api.region.amazonaws.com/mcp' 替换为您实际部署的MCP服务器URL。
重启Claude Desktop后,首次使用该服务器时将提示进行Google认证。
基本使用方法
一旦MCP服务器与AI助手(如Claude)连接并认证成功,AI助手即可通过调用服务器提供的工具来访问和操作您的Google通讯录。例如,您可以直接向AI助手提问:
- “我的通讯录里有多少联系人?”(AI助手将可能调用 'list_contacts' 工具)
- “帮我查找名叫‘张三’的联系人信息。”(AI助手将可能调用 'search_contacts' 工具)
- “获取我老板的电话号码。”(AI助手将根据您的提问,智能地选择并执行 'search_contacts' 或 'get_contact' 工具来获取所需信息。) AI助手会根据您的指令,自动选择并执行相应的工具来获取信息,并通过AI为您呈现结果。
信息
分类
AI与计算