lark-chat-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation3/5
Tools have distinct names but functional overlap: lark_chat_progress and lark_chat_stream both involve streaming card updates, and lark_chat_watch also opens a streaming card on receiving messages. This could cause confusion for an agent selecting a tool for card operations.
Naming Consistency5/5All tools follow a consistent 'lark_chat_<noun>' pattern in snake_case, making them predictable and easy to distinguish by name alone.
Tool Count4/5With 4 tools, the set is slightly small but covers the essential functions of session management, progress updates, streaming cards, and message watching, which is reasonable for a focused chat integration.
Completeness3/5The tool surface lacks basic messaging operations like sending plain text or media, and there is no explicit delete or edit. While progress and stream cover some updates, there are notable gaps for a general chat server.
Average 3.5/5 across 4 of 4 tools scored. Lowest: 2.9/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 4 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions 'create group and bind' but does not explain what 'bind' entails, nor does it address permissions, side effects, or return behavior. For a tool with create and list actions, more detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise line that efficiently lists all actions. It is front-loaded with the tool purpose. Some may prefer more structure, but it is not verbose and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (three actions, no output schema, no annotations), the description is too brief. It lacks return value information, error handling hints, and differentiation from sibling tools. The 'bind' concept is left undefined. More context is needed for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema sufficiently documents parameters. The tool description adds the context that 'name' is required for create and 'query' for find, but this is already implied by the schema descriptions. No additional semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for Feishu single chat sessions and lists three distinct actions (list, find, create) with brief explanations. Specific verbs ('list', 'search', 'create') and resources ('groups') are provided, giving a clear purpose. It is not a tautology and distinguishes from named sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus sibling tools (lark_chat_progress, etc.) or when to choose among the three actions. The description simply lists the actions without contextual cues, leaving the agent to infer usage from the action names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only discloses the basic lifecycle (open, append, close) but lacks details on side effects, destructive actions, auth requirements, or rate limits. Minimal behavioral insight beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (two sentences) with no wasted words. It front-loads the main idea. However, the phrasing is somewhat cryptic and in Chinese, which slightly reduces clarity for English agents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on the relationship with sibling tools (except watch), failure modes, and the overall workflow. Leaves many questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the base score is 3. The description does not add significant new meaning beyond the schema; it only implicitly references action and stream_id. No improvement beyond baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is for streaming cards (CardKit) with actions append and close, and mentions watch for stream_id. It distinguishes from watch but not from other siblings like progress or session. The purpose is clear but not fully explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: 'watch 已开卡时用返回的 stream_id' indicates it's for after watch opens a card. However, it does not explicitly state when to use this tool versus alternatives, nor provides when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It effectively discloses the lifecycle: first step opens, subsequent appends, done closes. It also mentions stream_id to avoid duplicate cards and reset behavior. However, it does not cover prerequisites or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that delivers key points upfront. It is efficient with no wasted words, though slightly informal. It earns a high score for being concise yet informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters and no output schema or annotations, the description covers the main use case and lifecycle. However, it lacks details on error handling, rate limits, or expected input formats. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with descriptions for all 6 parameters. The description adds value by explaining how parameters interact in the flow (e.g., stream_id prevents duplicate cards, reset closes old progress). This goes beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to report progress step by step when modifying code. It explains the behavior: first step opens a streaming card, subsequent steps append, and done=true closes. While it doesn't explicitly differentiate from sibling tools, the context implies it is for progress updates in a chat environment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a context ('when changing code') for usage but lacks explicit guidance on when not to use or alternatives. Sibling tools are not compared, so an agent might not know when to choose this over others like lark_chat_session.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses blocking, 30s max poll, auto re-watch, probe mechanism with clear and timeout_ms, and guide in response. Minor omission of error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences covering key points without redundancy. Could be more structured but retains essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and complex behavior, description covers core flow: setup, blocking wait, timeout handling, probe usage. Lacks error scenarios but sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description adds modest context (e.g., timeout_ms as expected total wait, clear as clear pending queue). But mostly restates schema with slight elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool blocks waiting for new messages in a single group chat, mentions prerequisites (session/find, watch binding), and distinguishes from siblings by specifying '单群' (single group) and blocking behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes when to use (after session/find, or with chat_id), timeout behavior (auto re-watch), and probe usage. Lacks explicit when-not-to-use versus sibling tools like lark_chat_stream.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gitByEOS/lark-chat-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server