使用说明
MCP 服务器 - Google Sheets 集成
这个项目通过暴露一个REST端点 FastAPI 这允许在电子表格中执行操作 Google 表格。
访问电子表格是通过一个 服务账户 使用 credentials.json 格式的凭据连接到 Google Cloud。
该服务还公开了一个/mcp.json的终端点,其中包含了终端点的合约(或接口定义)。
💡 什么是 credentials.json?
credentials.json是Google Cloud生成的文件,其中包含您的凭据 服务账户。
它允许服务器无需手动登录即可访问Google的API(Google Sheets和Google Drive),从而确保自动集成。
⚠ 重要提示: 这个文件是敏感的,而且 不应进行版本控制 没有 Git。请将您的名字添加到 .gitignore 中。
🛠 如何生成 credentials.json 文件
1.访问 Google Cloud Console
👉 https://console.cloud.google.com/ 的中文翻译可以是:“https://console.cloud.google.com/(谷歌云控制台)”。不过,通常网址本身不需要翻译,这里的翻译主要是为了说明网址所指向的服务或平台名称。在实际使用中,直接使用网址即可
2.创建或选择一个项目
3.启用所需的API
- 激活 谷歌表格API
- 激活 谷歌云端硬盘API
4.创建一个服务账户
- 前往 IAM 和 Admin > 服务帐号
- 点击 创建服务账户
- 定义一个名称(例如:mcp-bot)
- 完成创建
5.获取JSON密钥
- 在创建的服务账户中,转到选项卡 “Chaves”在中文中可以翻译为“钥匙”或者根据上下文可能指的是“钥匙孔”(但“chaves”直接翻译为“钥匙孔”并不常见,通常“钥匙孔”会用更具体的描述或术语来表达)。不过,最直接的翻译还是“钥匙”
- 点击“添加密钥”>“创建新密钥”> 类型 JSON(JavaScript对象表示法)
- 一个.json文件将会被下载——将其重命名为credentials.json,并放在项目根目录(或其他安全位置)
6.提供电子表格的访问权限
- 在Google Sheets中打开电子表格
- 与服务账户的电子邮件共享(在JSON中:“client_email”: “xxxx@project.iam.gserviceaccount.com”)
- 给予许可 编辑
⚙ `.env` 文件配置
在项目根目录下创建一个 .env 文件:
PLANILHA_NOME=NomeExatoDaSuaPlanilha
GOOGLE_CREDS_PATH=credentials.json
执行项目
uvicorn main:app --reload --port 5000
📡 终端点 /execute
该端点允许读取、添加、编辑或删除电子表格工作表中的数据。
POST /执行 请求体
{
"acao": "ler",
"aba": "Aba1",
"dados": null
}
字段:
操作 → “阅读”、“添加”、“编辑”或“删除” aba → 电子表格中的标签名称 数据 → 结构根据动作而变化: 译文:阅读:无 添加:{ "列1": "值1", "列2": "值2" } 编辑:{ "行": 2, "列": 3, "新值": "文本" } 移除:{ "行": 5 }
示例:
Ler(注:这是一个名字或特定术语,在中文中没有直接对应的翻译,所以保持原样)
curl -X POST http://localhost:5000/executar \
-H "Content-Type: application/json" \
-d '{"acao": "ler", "aba": "Aba1"}'
添加
curl -X POST http://localhost:5000/executar \
-H "Content-Type: application/json" \
-d '{
"acao": "adicionar",
"aba": "Aba1",
"dados": { "ticker": "PETR4", "quantidade": 100, "preco": 37.5 }
}'
编辑
curl -X POST http://localhost:5000/executar \
-H "Content-Type: application/json" \
-d '{
"acao": "editar",
"aba": "Aba1",
"dados": { "linha": 2, "coluna": 3, "novo_valor": "texto atual" }
}'
移除
curl -X POST http://localhost:5000/executar \
-H "Content-Type: application/json" \
-d '{
"acao": "remover",
"aba": "Aba1",
"dados": { "linha": 5 }
}'
📜 标准回复
{
"status": "ok",
"mensagem": "Linha adicionada com sucesso",
"dados": [ ... ] // Apenas na ação de leitura
}
⚠ 安全
永远不要公开credentials.json文件。 调整电子表格的权限设置,以避免未经授权的访问。
📄 MCP宣言
mcp.json 制表文件描述了服务器、其工具和模式。 使用示例:
curl http://localhost:8000/mcp.json