A Model Context Protocol server that bridges Claude Code with Feishu (飞书) messaging platform, enabling message exchange, access control, and permission management.
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. Tool names follow verb_noun convention (reply_to, reply_with_reaction, manage). Descriptions exist but are brief (50-80 chars, below the 194-char baseline). Input schemas present with type definitions, but parameter descriptions are minimal or missing context. No output schemas documented. No error recovery guidance. The manage_feishu_access tool conflates multiple responsibilities (list, pair, deny, allow, remove, policy, group_add, group_remove, set) into a single tool with an action enum, violates single-responsibility principle. Access control logic is server-side (good), but tool definitions lack security annotations and permission scope declarations.
Manage the Feishu access control list. Use this to approve pairings, add/remove users, or update policies.
Send a reply message to a Feishu chat. Use this to respond to messages received from Feishu users.
Add a reaction to a Feishu message. Use this to acknowledge receipt of a message.
manage_feishu_access conflates 8 distinct operations (list, pair, deny, allow, remove, policy, group_add, group_remove, set) into one tool with an action enum. This violates single-responsibility principle and forces the LLM to reason about which action to invoke. Should split into separate tools: list_feishu_access, pair_feishu_user, deny_feishu_pairing, allow_feishu_user, remove_feishu_user, set_feishu_policy, add_feishu_group, remove_feishu_group.
Parameter descriptions are minimal or missing context. 'code' is described as 'Pairing code (for pair/deny actions)' but does not explain format, length, or how to obtain it. 'policy' enum values lack explanation of when to use 'pairing' vs 'allowlist' vs 'disabled'. 'emoji_type' lists examples ('THUMBSUP', 'HEART', 'OK') in description instead of as enum constraint.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., does manage_feishu_access return a list of users, a confirmation, or nothing?). Tool descriptions do not state what is returned.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If reply_to_feishu fails (invalid chat_id, permission denied, rate limited), the tool returns nothing actionable. No guidance on retryability, user-fixable errors, or next steps.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). reply_to_feishu and reply_with_reaction_feishu are write operations but lack destructiveHint. manage_feishu_access modifies access control but lacks annotations to signal irreversibility.