Google Drive文件上传服务

一个基于Model Context Protocol的服务器,用于将Microsoft Word文件上传到Google Drive,便于文件管理和共享。

  • by bantunes82
  • Java
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 bantunes82/mcp-google-drive-server

使用说明

MCP谷歌云端硬盘服务器

该项目是与Google Drive集成的模型上下文协议(MCP)的服务器, 您可以使用它将Microsoft Word文件上传到Google云端硬盘,从而便于文件管理和共享。 使用模型上下文协议客户端连接到此服务器,例如在Claude Desktop中。

组件

工具

  • upload_microsoft_world_文件:
    • 将Microsoft Word格式的文件内容上载到指定文件夹中的Google Drive。
    • 输入参数:
      • folderName:上传文件的文件夹名称。如果为空,则文件将上传到根目录。(可选)
      • fileName:要上传的文件的名称。
      • fileContent:要上传的文件的内容。
    • 退货:
      • url:以谷歌文档视图格式上传的文件的URL。

你能做什么

设置后,您可以向Claude Desktop询问以下问题:

  • “圣保罗的10个著名旅游景点是什么,请将结果保存在我的谷歌驱动器中”

入门指南

先决条件

  • 克劳德桌面版 (点击此处下载)
  • MCP检查员 (从这里快速开始)
  • Java 24+ (点击此处下载)
  • 梅文 (包括通过 ./mvnw)
  • 生成API凭据
    1. 创建新的Google Cloud项目
    2. 启用Google Drive API
    3. 启用云资源管理器API
    4. 在Cloud Shell内部为本地开发环境设置ADC
      • 在Google Cloud控制台中打开Cloud Shell。
      • 运行以下命令: gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/drive
      • 这将打开一个浏览器窗口,以验证您的Google帐户并授予必要的权限。
      • 成功验证后,凭据将存储在您的Cloud Shell环境中,允许应用程序访问Google Cloud资源。
      • 查找创建的凭据文件,它应该类似于: Credentials saved to file: [/tmp/tmp.6Rvsdsdfesx/application_default_credentials.json]
      • 将凭据文件的内容复制到名为的新文件中 application_default_credentials.json 在本地计算机的主目录中。(例如。 ~/application_default_credentials.json)

🎯 选择您的设置方法

|方法|构建应用程序的要求|构建时间|运行应用程序的需要|启动时间|最适合| |-------------------------------------------------|------------|---------------------------------------|---------------------------------------|--------------|-------------| | 📦 原生二进制 |Maven和Java 24+| 5分钟|无!| 0.48秒| 大多数用户 | | ☕ Java构建 |Maven和Java 24+| 10秒| Java 24+|4.6秒|开发人员|

构建应用程序

克隆存储库:

git clone <this-repo>
cd mcp-google-drive-server

📦 原生二进制(无Java)

对于希望从源代码构建的开发人员

为STDIO模式构建本机映像:

./mvnw clean package -Pnative,mcp-stdio

或

构建SSE模式的本机映像:

./mvnw clean package -Pnative

☕ Java构建(传统)

对于希望从源代码构建的开发人员

构建jar文件:

./mvnw clean package

运行应用程序

使用Claude Desktop进行测试(使用 工作室 模式):

claude_desktop_config.json文件通常位于以下主目录中:~/.config/claude

此文件必须配置以下内容才能启用MCP Google Drive服务器。

📦 在Native Binary(非Java)中配置和运行应用程序

{
  "mcpServers": {
    "mcp-google-drive-server": {
      "command": "/FULL/PATH/TO/target/mcp-google-drive-server",
      "args": [],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/FULL/PATH/TO/application_default_credentials.json"
      }
    }
  }
}

⚠️ 使用生成的本机二进制文件和application_default_credentials文件的完整路径。

或

☕ 在Java Build中配置和运行应用程序(传统)

{
  "mcpServers": {
    "mcp-google-drive-server": {
      "command": "/FULL/PATH/TO/java/24/bin/java",
      "args": [
        "-jar",
        "-Dspring.ai.mcp.server.stdio=true",
        "/FULL/PATH/TO/target/mcp-google-drive-server-0.0.1-SNAPSHOT.jar"
      ],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/FULL/PATH/TO/application_default_credentials.json"
      }
    }
  }
}

⚠️ 使用java 24安装、生成的jar和application_default_credentials文件的完整路径。

测试它是否有效

  1. 重新启动克劳德桌面
  2. 在新对话中查找搜索和工具图标,然后单击它
  3. 寻找 mcp-google-drive-server 在可用mcp服务器列表中
  4. 尝试: “圣保罗的10个著名旅游景点是什么,请将结果保存在我的谷歌驱动器中”

✅ 成功:你应该看到克劳德使用 upload_microsoft_world_file 工具!

故障排除

在Claude Desktop中“找不到工具”
  1. 检查JAR路径或本机二进制路径是否正确和绝对
  2. 验证是否设置了环境变量
  3. 完全重新启动克劳德桌面
  4. 检查Claude Desktop的日志/控制台是否有错误

使用MCP检查员进行测试(使用 上海证券交易所 模式)

要在SSE模式下测试服务器,您可以使用 MCP检查员 工具。

📦 在Native Binary(非Java)中运行应用程序

CLIENT_ID="clientid" CLIENT_SECRET="{noop}clientsecret" GOOGLE_APPLICATION_CREDENTIALS="/FULL/PATH/TO/application_default_credentials.json" /FULL/PATH/TO/target/mcp-google-drive-server

⚠️ 使用生成的Native Binary和application_default_credentials文件的完整路径。

☕ 在Java Build中运行应用程序(传统)

CLIENT_ID="clientid" CLIENT_SECRET="{noop}clientsecret" GOOGLE_APPLICATION_CREDENTIALS="/FULL/PATH/TO/application_default_credentials.json" /FULL/PATH/TO/java/24/bin/java -jar /FULL/PATH/TO/target/mcp-google-drive-server-0.0.1-SNAPSHOT.jar

⚠️ 使用java 24安装、生成的jar和application_default_credentials文件的完整路径。

获取访问令牌

服务器使用OAuth2进行安全保护。要连接到它,您需要一个访问令牌。您可以通过向令牌端点发送请求来获得一个:

curl -k -X POST -u clientid:clientsecret http://localhost:8080/oauth2/token -d 'grant_type=client_credentials'

这将返回一个包含访问令牌的JSON响应:

{
  "access_token": "...",
  "scope": "mcp.read mcp.write",
  "token_type": "Bearer",
  "expires_in": 299
}

并复制粘贴访问令牌或使用JQ:

curl -k -X POST -u clientid:clientsecret http://localhost:8080/oauth2/token -d 'grant_type=client_credentials' | jq -r ".access_token"

存储该令牌

启动MCP检查器

npx @modelcontextprotocol/inspector@0.6.0

在MCP检查器中,粘贴您的令牌。点击连接,瞧!

如果你点击“工具”选项卡,然后点击“列出工具”,你应该会看到 upload_microsoft_world_file 工具可用。 您可以通过单击工具并填写参数,然后单击“运行工具”来测试它。

请注意,令牌仅在5分钟内有效


日志记录

启用调试日志

设置环境变量: LOGGING_LEVEL_ROOT=DEBUG

检查日志

您可以在 /usr/lib/claude-desktop/target claude桌面的目录。日志文件名为 mcp-google-drive-server.log.


参考文件

如需进一步参考,请考虑以下部分:

在Spring中,MCP服务器的OAuth2支持意味着添加:

  1. Spring Security (安全基础设施)
  2. Spring授权服务器 (发行代币)
  3. Spring安全:OAuth2资源服务器 ( 使用令牌进行身份验证)

Maven父级覆盖

由于Maven的设计,元素从父POM继承到项目POM。 虽然大部分继承都很好,但它也继承了不需要的元素,如 <license> 和 <developers> 来自父母。 为了防止这种情况,项目POM包含这些元素的空覆盖。 如果您手动切换到其他父级并实际想要继承,则需要删除这些覆盖。