图纸搜索MCP
使任何谷歌表格都可以从Slack或任何MCP客户端查询。连接电子表格,选择您的LLM,自定义机器人的角色,并让您的团队询问有关数据的问题。
工作模式有两种:
- Slack机器人 --你的团队可以在频道中DM或@reference的人工智能助手。适用于任何LLM(OpenAI、Anthropic、谷歌等)
- MCP服务器 --用于任何MCP兼容客户端(Claude Code、Cursor等)查询、搜索和过滤电子表格数据的工具
先决条件
这两种模式都需要一个谷歌服务帐户来读取电子表格。
1.创建Google服务帐户
- 首选 谷歌云控制台
- 选择您的项目(或创建一个)
- 启用 谷歌网页API (API和服务>库)
- 首选 IAM和管理>服务帐户
- 点击 创建服务帐户 --随便命名(例如“sheets mcp”)
- 跳过可选的权限/访问步骤
- 单击新服务帐户> 钥匙 选项卡> 添加密钥>创建新密钥>JSON
- 将下载的文件另存为
service-account.json在这个项目根
2.与服务帐户共享该表
复制服务帐户电子邮件(看起来像 sheets-mcp@your-project.iam.gserviceaccount.com)并与它共享您的谷歌表格(查看器访问权限就足够了)。
3.安装依赖项
uv sync______________________________________________________________________
选项A:Slack机器人
配置环境
cp .env.example .env填写:
SHEETS_SPREADSHEET_URL--您的Google表格的完整URLSLACK_BOT_TOKEN--bot令牌(xoxb-...)SLACK_APP_TOKEN--Socket模式的应用级令牌(xapp-...)- LLM提供商的API密钥(例如。
ANTHROPIC_API_KEY,OPENAI_API_KEY)
选择一个模型
机器人使用 轻量级语言模型 因此,它适用于任何LLM。设置 MODEL env 是:
MODEL=anthropic/claude-haiku-4-5-20251001 # default
MODEL=openai/gpt-4o
MODEL=gemini/gemini-2.0-flash自定义角色
编辑 FRAMING.md 描述你的数据,定义术语,并制定行为准则。机器人将此作为其系统提示。对于云部署,请设置 BOT_FRAMING 取而代之的是env-var。
跑
uv run python -m sheets_search_mcp.bot机器人程序在DM(通过Slack的助理API)和渠道(通过@recomments)中工作。它支持带有上下文和后续问题按钮的线程对话。
部署以渲染
A. render.yaml 蓝图和 Dockerfile 包括在内。在Render仪表板中设置环境变量--使用 GOOGLE_SERVICE_ACCOUNT_JSON (原始JSON字符串)而不是密钥文件。
______________________________________________________________________
选项B:MCP服务器
配置环境
设置 SHEETS_SPREADSHEET_URL env var指向您的Google表格,或将其添加到 .env 文件。
与Claude Code一起使用
这 .mcp.json 已配置。在此项目目录中重新启动Claude Code,工具将可用。
与其他MCP客户端一起使用
将MCP客户端指向服务器:
uv run python -m sheets_search_mcp.server可用工具
- get_sheet_schema --查看列和示例数据
- 查询表 --结构化筛选器(列匹配、金额范围、日期范围、排序)
- 搜索_表格 --跨所有列的自由文本搜索
- 刷新数据 --如果工作表已更新,则重新获取数据
______________________________________________________________________
配置
看 .env.example 对于所有可用选项,包括模型选择、框架路径和服务帐户配置。
安全注意事项
- 模式包括示例数据。 每个选项卡的前3行作为系统提示的一部分发送给LLM,以便它理解您的数据结构。确保这些行不包含敏感信息。
- 帧内容被发送到LLM。 一切都在
FRAMING.md或BOT_FRAMING包含在每个请求中。不要把秘密或机密信息放在里面。 - 电子表格URL未验证。 仅在中使用受信任的Google表格URL
SHEETS_SPREADSHEET_URL.
