MCP服务器与谷歌表格-铁路
📋 描述
这是一个MCP(Model Context Protocol)服务器,允许ChatGPT读取和写入Google Sheets表。非常适合ChatGPT保存研究,查询现有数据并保持持久的信息记录。
🚀 特点
- 🔍 搜索:在谷歌表格中搜索研究
- 📖 阅读:按ID检索完整文档
- ✍️ 写入:保存新的研究(在ChatGPT中确认)
- 🔧 自动配置:自动创建所需的列
- 🌐 远程:Deslegable en Replit、Railway、Docker等。
📊 数据结构
服务器处理具有以下列的表:
| 字段 | 描述 |
|---|---|
id | 自动生成的唯一UUID |
timestamp | 创建日期和时间(ISO格式) |
titulo | 研究标题 |
resumen | 内容摘要 |
url | 相关链接 |
notas | 附加说明 |
tags | 逗号分隔的标签 |
confianza | 信心水平(高/中/低) |
solicitado_por | 谁要求调查 |
fuente | 信息来源 |
🛠️ 安装和配置
1. 设置 Google Cloud
- Ve a 谷歌云控制台
- 创建新项目或选择现有项目
- 可用API:
- 谷歌网页API - Google Drive API
- Crea una服务帐户:
- Ve a“IAM&Admin”>“服务帐户” - 创建新的服务帐户 - 下载凭据JSON
2.配置器谷歌表
- 创建新的谷歌工作表或使用现有的工作表
- 与服务帐户电子邮件共享工作表(编辑权限)
- 从URL复制工作表ID:
https://docs.google.com/spreadsheets/d/{SHEET_ID}/edit
3.配置环境变量
复制 .env.example 一 .env 完整:
# ID del Google Sheet
SHEET_ID=1AbCdEfGhIjKlMnOpQrStUvWxYz123456789
# Nombre de la pestaña (opcional, por defecto "data")
SHEET_NAME=data
# JSON de la Service Account (en una sola línea)
GOOGLE_SERVICE_ACCOUNT_JSON={"type":"service_account","project_id":"..."}
# Máximo resultados en búsquedas (opcional)
MAX_RESULTS=204.安装依赖项
pip install -r requirements.txt5.运行服务器
python server.py服务器将位于: http://localhost:8000 终点MCP(SSE)将位于: http://localhost:8000/sse/
🌐 绝望
选项1:答复
- 创建Python Repl
- 上传文件
server.pyyrequirements.txt - 秘密(o
.env),添加环境变量 - 执行项目
- MCP的URL:
https://.replit.dev/sse/
方案2:铁路
- 将您的存储库连接到Railway
- 在仪表板上配置环境变量
- 铁路将自动检测
requirements.txt - MCP的URL:
https://.railway.app/sse/
选项3:码头工人
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY server.py .
COPY .env .
EXPOSE 8000
CMD ["python", "server.py"]🤖 与ChatGPT的连接
1.开发者模式
- Ve a ChatGPT设置→ 连接器→ 高级
- Activa“开发者模式(测试版)”
2.进口MCP服务器
- 点击“导入MCP服务器”
- 配置:
- 标签: sheets - 统一资源定位符: https://tu-servidor.com/sse/ - 允许使用的工具: search, fetch, save_investigation - 需要批准: never (如你所愿)
3.从ChatGPT使用
- 深入研究:创建调查时激活“使用连接器”
- 聊天正常:提到您想使用Sheets连接器
🔧 MCP工具
search
在表格中搜索查询。
参数:
query(字符串):要搜索的文本
回答:
{
"results": [
{"id": "uuid-123", "title": "Título", "url": "https://..."}
]
}fetch
按ID检索完整的查询。
参数:
id(字符串):行的唯一ID
回答:
{
"id": "uuid-123",
"title": "Título",
"text": "Resumen: ... \n\nNotas: ...",
"url": "https://...",
"metadata": {"timestamp": "...", "tags": "...", ...}
}save_investigation
保存新的研究(需要在ChatGPT中确认)。
参数:
titulo(字符串):标题resumen(字符串):摘要url(字符串):相关URLnotas(字符串):附加注释tags(数组):标签列表confianza(字符串):信任级别solicitado_por(字符串):申请人fuente(字符串):字体
回答:
{
"ok": true,
"inserted": {"id": "uuid-123", "timestamp": "...", ...}
}🔒 安全
- 最低特权原则:服务帐户只访问特定的工作表
- 编写操作:ChatGPT在键入之前要求手动确认
- 审计:所有写入都用时间戳和用户注册
- 验证:保存前验证字段
🚨 解决问题
错误:“SHEET_ID未配置”
- 验证变量
SHEET_ID配置正确
错误:“权限被拒绝”
- 确保您已与服务帐户的电子邮件共享该表
- 验证权限是否来自“发布者”
错误:“未启用API”
- 在Google云控制台上启用Google Sheets API和Google Drive API
ChatGPT找不到服务器
- 验证URL是否以
/sse/ - 确保服务器正在运行并可公开访问
📝 使用示例
搜索人工智能研究
ChatGPT usará: search("inteligencia artificial 2025")保存新的研究
ChatGPT usará: save_investigation(
titulo="Estado del mercado de IA 2025",
resumen="Tendencias: agentes, RAG híbrido, edge.",
url="https://ejemplo.com/informe",
tags=["IA", "mercado", "tendencias"],
confianza="alta",
solicitado_por="Daniel",
fuente="web research"
)🔄 未来更新
- \[\]带有嵌入的语义搜索
- \[\]按日期、标签、信任排序的高级过滤器
- \[\]支持多张纸
- \[ \] 网页显示仪表板
- \[\]以不同格式导出
📄 许可证
麻省理工学院许可证-免费用于您的项目。
______________________________________________________________________
