list_sheets
Retrieve the names of all sheets in a Feishu spreadsheet using the spreadsheet token.
Instructions
获取飞书电子表格的Sheet列表
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| spreadsheet_token | Yes | 电子表格Token(从URL中获取) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/feishu_mcp_server/server.py:172-185 (handler)The MCP tool handler for 'list_sheets'. It is registered via @mcp.tool() decorator, takes a spreadsheet_token parameter, checks if sheet feature is enabled, delegates to client.list_sheets(), and returns JSON result.
@mcp.tool() def list_sheets(spreadsheet_token: str) -> str: """获取飞书电子表格的Sheet列表 Args: spreadsheet_token: 电子表格Token(从URL中获取) """ if not config.enable_sheet: return json.dumps({"error": "电子表格功能未启用"}, ensure_ascii=False) try: result = client.list_sheets(spreadsheet_token) return json.dumps(result, ensure_ascii=False, indent=2, default=str) except Exception as e: return json.dumps({"error": str(e)}, ensure_ascii=False) - The FeishuClient method that makes the actual HTTP API call to the Feishu/Lark API (GET /sheets/v3/spreadsheets/{token}/sheets/query) to retrieve the list of sheets in a spreadsheet.
def list_sheets(self, spreadsheet_token: str) -> dict[str, Any]: """获取电子表格的Sheet列表""" return self._request( "GET", f"/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/query" ) - src/feishu_mcp_server/server.py:172-173 (registration)The @mcp.tool() decorator on line 172 registers 'list_sheets' as an MCP tool. The function name becomes the tool name.
@mcp.tool() def list_sheets(spreadsheet_token: str) -> str: - The config feature flag 'enable_sheet' (line 18) controls whether the list_sheets tool is allowed to function. If False, the handler returns an error.
# 功能开关 enable_doc: bool = Field(default=True, description="启用文档读取") enable_message: bool = Field(default=True, description="启用消息发送") enable_calendar: bool = Field(default=True, description="启用日历查询") enable_sheet: bool = Field(default=True, description="启用电子表格") - tests/test_server.py:66-75 (registration)Test that confirms 'list_sheets' is registered as a tool in the MCP server's tool manager.
def test_server_has_tools(self): tool_names = list(self.server.mcp._tool_manager._tools.keys()) expected = [ "get_doc_content", "get_doc_meta", "search_docs", "list_chat_messages", "send_message", "list_calendars", "list_calendar_events", "list_sheets", "get_sheet_values", ] for t in expected: assert t in tool_names, f"缺少工具: {t}"