当前位置: 首页 > news >正文

AI——OpenCode + Python打造飞书表格MCP服务器

前言

本文将带你创建一个基于 Python 的 MCP 服务器,它封装了读取飞书表格的逻辑。

系统:Windows

环境准备:OpenCode、Python

网上都有安装教程,自己搜一下

一、前置准备

1. 飞书开放平台创建应用

  • 打开飞书开放平台 → 新建「企业内部应用」
  • 开通权限:sheets:readonly(电子表格只读权限)
  • 获取凭证:App IDApp Secret

2. 获取飞书文档信息

  • 表格文档ID:从 Excel 链接中获取
  • 工作表ID:sheet对应的 ID

例如下面链接中,9999999999999999999就是文档ID,66666就是sheetID

https://f9gdjfow59.feishu.cn/sheets/9999999999999999999?sheet=66666

3. 使用lark-cli读取文档信息

安装 CLI (如果尚未安装):

npm install -g @larksuite/cli

登录授权:
首次使用需要扫码登录,让 CLI 获取操作你飞书账号的权限。

lark-cli config init lark-cli auth login --recommend

读取文档:

lark-cli sheets +read --spreadsheet-token "文档ID" --sheet-id "文档中的sheetId“

如图:

二、初始化Python项目

新建文件夹mcp-feishu-server

# 安装uv python -m pip install uv -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn # 安装 mcp 库 pip install mcp -i https://pypi.tuna.tsinghua.edu.cn/simple # 初始化一个 Python 项目 uv init

三、编写MCP脚本

通过命令 where lark-cli 找到lark-cli.cmd绝对路径,替换下面的路径

import os import json import subprocess from mcp.server.fastmcp import FastMCP # 初始化 MCP 服务器 mcp = FastMCP("feishu-excel-mcp") # ========================================== # ⚙️ 配置区域 # ========================================== LARK_CLI_PATH = r"lark-cli.cmd绝对路径" @mcp.tool() def read_feishu_sheet(spreadsheet_id: str, sheet_id: str, output_path: str) -> str: """ 使用 lark-cli 读取飞书表格数据并保存为 JSON 文件。 Args: spreadsheet_id: 飞书电子表格的文档 ID。 sheet_id: 要读取的工作表 ID。 output_path: 输出文件的完整路径。 """ try: # 1. 检查输出目录是否存在,不存在则创建 output_dir = os.path.dirname(output_path) if output_dir and not os.path.exists(output_dir): os.makedirs(output_dir) print(f"已创建输出目录: {output_dir}") # 2. 构造命令 (使用列表模式避免转义问题) cmd = [ LARK_CLI_PATH, # 使用绝对路径 "sheets", "+read", "--spreadsheet-token", spreadsheet_id, "--sheet-id", sheet_id ] # 3. 执行命令 # 但通常 .cmd 文件可以直接执行。 result = subprocess.run( cmd, capture_output=True, text=True, encoding='utf-8', timeout=60 ) # 4. 处理结果 if result.returncode == 0: # 成功获取数据 raw_content = result.stdout.strip() # 尝试解析 JSON 以确保格式正确 (可选) try: json_data = json.loads(raw_content) formatted_json = json.dumps(json_data, indent=4, ensure_ascii=False) except json.JSONDecodeError: # 如果输出不是纯 JSON (比如包含日志),则直接保存原始输出 formatted_json = raw_content # 写入文件 with open(output_path, 'w', encoding='utf-8') as f: f.write(formatted_json) return f"✅ 数据读取成功并已保存至:\n{output_path}" else: # 命令执行失败 (例如权限不足、ID错误) error_msg = result.stderr if result.stderr else result.stdout return f"❌ lark-cli 执行失败 (代码: {result.returncode}):\n{error_msg}" except Exception as e: return f"❌ 系统执行出错: {str(e)}" if __name__ == "__main__": mcp.run()

四、配置 OpenCode

告诉 OpenCode 如何找到并启动你刚刚创建的 MCP 服务器,并且启动

1. 找到 OpenCode 配置文件

在 Windows 系统中,路径通常是 C:\Users\<你的用户名>\.config\opencode\opencode.json

2. 添加 MCP 服务器配置

使用文本编辑器打开 opencode.json 文件,并在其中添加一个 mcp 字段。配置 command 来使用 Python 运行你的 main.py 脚本

{ "$schema": "https://opencode.ai/config.json", "mcp": { "feishu-excel": { "type": "local", "command": [ "pythonw", "根路径\\mcp-feishu-server\\main.py" ], "cwd": "根路径\\mcp-feishu-server", "enabled": true } } }
http://www.jsqmd.com/news/777958/

相关文章:

  • 告别下载器!用两块HC-05蓝牙模块,给你的STM32F103C8T6远程‘换心’
  • 保姆级避坑指南:STM32H7的SD卡虚拟U盘项目,CubeIDE配置FATFS长文件名为何导致FreeRTOS崩溃?
  • Adobe Media Encoder 2026 最新版本保姆级安装教程(附安装包)
  • 2026年上海广告物料制作一站式服务商深度横评:源头大厂如何破局品质与交付困局 - 优质企业观察收录
  • 3步安装Calibre豆瓣插件:为中文电子书自动获取元数据的完整指南
  • 读《思考,快与慢》:在GEO热潮中保留判断力
  • 别光刷题了!用这5个华为云AI小项目,带你吃透HCCDA认证核心考点
  • 穿越回80年代:用TEC-2和AM2901芯片亲手搭建一个16位运算器是种什么体验?
  • ERP系统选型与实施的关键策略与实战经验
  • 代码随想录算法训练营 Day52 | 图论 part10
  • 通过Taotoken模型广场对比测试不同模型的代码生成效果
  • 目前靠谱的雷达液位计厂商哪家好 - 速递信息
  • 苹果就 iPhone AI 能力误导指控达成 2.5 亿美元和解,特定机型用户可获赔偿
  • DataX插件开发初体验:手把手教你为自定义数据源写一个Reader插件
  • 5步革命性解决方案:一键生成Beyond Compare专业版永久授权密钥的智能操作手册
  • 实测Taotoken在不同时段的API响应延迟与稳定性表现
  • 长期使用Taotoken聚合API在月度账单与用量上的可见性分析
  • 个人健康系统|健康管理|基于java+Android+微信小程序的个人健康系统设计与实现(源码+数据库+文档)
  • 知识付费小程序制作平台哪个好 - 码云数智
  • STM32中.s文件作用
  • 2026年高考备考经验:高三家庭需了解的高宏教育核心信息
  • Anthropic开发者大会放大招:Claude升级、算力扩容,多方向布局剑指大模型竞争!
  • 终极泰坦之旅装备管理指南:5个技巧彻底告别背包烦恼
  • W5500状态机详解:从SOCK_CLOSED到SOCK_ESTABLISHED,你的网络连接卡在哪一步?
  • 如何做好营销策划?营销策划的步骤是什么?
  • 告别搜狗百度!用Rime小狼毫打造你的专属Windows输入法(2024最新编译安装避坑指南)
  • 树莓派电力监控系统:IPEM PiHat硬件与软件全解析
  • 手机市场:超薄机型遇冷,大屏大电池实用机受青睐,历史轮回背后有何玄机?
  • Agent监控与日志:生产环境的可观测性
  • 3分钟搞定Windows 11任务栏拖放功能缺失问题:终极修复指南