项目简介
Lark Feishu MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,专注于为大型语言模型(LLM)提供与飞书(Lark)集成的能力。通过该服务器,LLM 可以安全、可扩展地访问和操作飞书的多维表格(Bitable)和即时通讯(Chat)功能,从而扩展 LLM 的应用场景,例如数据分析、工作流自动化、信息通知等。
主要功能点
- 多维表格(Bitable)数据访问:
- 获取多维表格的记录列表
- 批量创建多维表格记录
- 获取多维表格字段信息
- 即时通讯(Chat):
- 获取群聊列表
- 发送文本消息到群聊
- 发送 Markdown 消息到群聊
安装步骤
-
克隆仓库到本地:
git clone https://github.com/hanxuanliang/larkrs-mcp-server.git cd larkrs-mcp-server -
编译项目: 确保已安装 Rust 编译环境 (Cargo)。在项目根目录下执行编译命令:
cargo build编译成功后,可执行文件位于 'target/debug/larkrs-mcp-server' (或 'target/release/larkrs-mcp-server' 如果使用 'cargo build --release')。
服务器配置
MCP 客户端需要配置以下信息以启动并连接 Lark Feishu MCP Server。以下是 'config.json' 示例,请注意根据实际编译路径修改 'command' 字段。
{ "serverName": "lark-mcp-server", "command": "/path/to/your/project/larkrs-mcp-server/target/debug/larkrs-mcp-server", "args": [], "transport": "stdio", "ability": { "resources": [], "tools": [ { "name": "table_records_list", "description": "从飞书多维表格中获取记录列表", "input": { "type": "object", "properties": { "app_token": { "type": "string", "description": "飞书多维表格应用的 app_token" }, "table_id": { "type": "string", "description": "多维表格的 table_id" } }, "required": ["app_token", "table_id"] }, "output": { "type": "object", "description": "包含记录列表的 JSON 响应" } }, { "name": "create_table_records_json", "description": "在飞书多维表格中批量创建记录(JSON格式)", "input": { "type": "object", "properties": { "app_token": { "type": "string", "description": "飞书多维表格应用的 app_token" }, "table_id": { "type": "string", "description": "多维表格的 table_id" }, "records_json": { "type": "string", "description": "包含要创建记录的 JSON 字符串数组" } }, "required": ["app_token", "table_id", "records_json"] }, "output": { "type": "object", "description": "包含批量创建操作结果的 JSON 响应" } }, { "name": "table_fields_info", "description": "从飞书多维表格获取简化字段信息", "input": { "type": "object", "properties": { "app_token": { "type": "string", "description": "飞书多维表格应用的 app_token" }, "table_id": { "type": "string", "description": "多维表格的 table_id" } }, "required": ["app_token", "table_id"] }, "output": { "type": "array", "items": { "type": "object", "description": "字段信息数组,包含字段名、描述、是否为主键、UI类型和写入类型" } } }, { "name": "chat_group_list", "description": "获取飞书群聊列表", "input": { "type": "object", "properties": {} }, "output": { "type": "array", "items": { "type": "object", "description": "群聊信息数组,包含 chat_id 和 name" } } }, { "name": "send_text_message", "description": "发送文本消息到飞书群聊", "input": { "type": "object", "properties": { "chat_id": { "type": "string", "description": "群聊的 chat_id" }, "text": { "type": "string", "description": "消息文本内容" } }, "required": ["chat_id", "text"] }, "output": { "type": "object", "description": "包含 message_id 的 JSON 响应" } }, { "name": "send_markdown_message", "description": "发送 Markdown 消息到飞书群聊", "input": { "type": "object", "properties": { "chat_id": { "type": "string", "description": "群聊的 chat_id" }, "title": { "type": "string", "description": "Markdown 消息标题" }, "content": { "type": "string", "description": "Markdown 格式的消息内容" } }, "required": ["chat_id", "title", "content"] }, "output": { "type": "object", "description": "包含 message_id 的 JSON 响应" } } ], "prompts": [] } }
环境变量配置
Lark Feishu MCP Server 依赖以下环境变量进行飞书 API 的身份验证,请参考 '.env.example' 文件创建 '.env' 文件,并填写你的飞书应用凭证:
FEISHU_APP_ID=<你的飞书 App ID> FEISHU_APP_SECRET=<你的飞书 App Secret> # 可选,用于测试发送消息功能,需要替换为实际的群聊 chat_id # CHAT_ID=<你的飞书群聊 Chat ID>
重要:
- '<你的飞书 App ID>' 和 '<你的飞书 App Secret>': 需要替换为你创建的飞书应用的 App ID 和 App Secret。你需要先在飞书开放平台创建一个应用,并获取相应的凭证。
- '/path/to/your/project/larkrs-mcp-server/target/debug/larkrs-mcp-server': 请务必替换为 'larkrs-mcp-server' 可执行文件的实际路径。编译后,可执行文件通常位于 'target/debug' 或 'target/release' 目录下,具体取决于编译模式。
基本使用方法
-
启动 MCP 服务器: MCP 客户端会根据 'config.json' 中的配置启动 'larkrs-mcp-server'。
-
客户端调用工具: 在 MCP 客户端中,你可以通过 JSON-RPC 协议调用 'config.json' 中 'ability.tools' 数组里定义的工具。例如,要获取多维表格记录列表,可以调用 'table_records_list' 工具,并传入 'app_token' 和 'table_id' 作为参数。服务器会处理请求,调用飞书 API 获取数据,并将结果以 JSON-RPC 响应返回给客户端。
例如,客户端可以发送如下 JSON-RPC 请求调用 'table_records_list' 工具:
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "tool_name": "table_records_list", "arguments": { "app_token": "your_app_token", "table_id": "your_table_id" } }, "id": 1 }服务器会返回包含记录列表的 JSON-RPC 响应。其他工具的调用方式类似,只需根据工具的 'input' 定义提供相应的参数。
信息
分类
生产力应用