MCP server for Lark/Feishu — calendar, tasks, messaging, docs
Server has 30 tools with consistent naming (verb_noun pattern: feishu_*_action) and descriptions present for all. However, critical gaps exist: input schemas are inferred from the provided metadata but NOT directly visible in source code examination. Parameter descriptions are present but often generic (e.g., 'Calendar ID', 'Task ID'). Output schemas are completely undocumented, no indication of what fields are returned or how to chain tools. Error handling is absent from visible code. Tool descriptions average ~60 chars, below the 194-char baseline for A+ tools. No evidence of pagination support despite tools like feishu_calendar_events and feishu_task_tasks that likely return lists. Security concern: feishu_token_proxy exposes access tokens, violating secret-injection pattern.
Complete OAuth device flow and save token
Start OAuth device flow for user authorization
Check OAuth token status and granted scopes
Get current authenticated user's open_id and name
Create a new calendar event
Delete a calendar event
Update an existing calendar event
List events in a calendar within a time range
Output schemas completely undocumented. No visible return type definitions for any tool. LLMs cannot infer what fields to expect or how to chain tools together.
feishu_token_proxy exposes access tokens as tool output, violating secret-injection pattern. Tokens in responses enter LLM context and risk logging/leakage.
No pagination support visible. Tools returning lists (feishu_calendar_events, feishu_task_tasks, feishu_im_list_chats) lack limit/offset/cursor parameters and total_count in responses.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
List all calendars accessible to the user
Create a comment on a document
List comments on a document
Create a new document
Delete a document
Get document content and metadata
List documents in a folder or space
Update document content
Get chat information by chat_id
List all chats the user is a member of
Send a message to a user or chat
Watch a chat for incoming messages (long-polling)
Create a Loop (collaborative document)
List all Loops accessible to the user
Get detailed user information by open_id
Search for users by name or email in the organization
Create a new task
Delete a task
List all task lists accessible to the user
List tasks in a task list
Update an existing task
Get current access token for direct API calls
Parameter descriptions are generic and lack format/constraint details. E.g., 'Calendar ID' does not explain format, length, or how to obtain one. No enum constraints for status/type fields.
No error handling guidance visible. Tools lack recovery hints (e.g., 'User not found. Try search_users() first'). No indication of retryable vs. fatal errors.