ZenTao MCP Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation3/5
The tools have clear distinctions in most cases, but there is some overlap between getMyBug, getMyBugs, and getNextBug, which all retrieve bugs assigned to the user with slight variations in scope (single vs. list vs. next). Additionally, call is a generic tool that could potentially duplicate functionality of specific tools like getBugDetail or markBugResolved, creating ambiguity in tool selection for agents.
Naming Consistency2/5Naming conventions are inconsistent: tools use a mix of camelCase (getBugDetail, getMyBug) and snake_case (get_token, markBugResolved), with no clear pattern. Verb usage varies, such as 'get' for retrieval and 'mark' for updates, but the inconsistency in casing and structure reduces predictability and readability.
Tool Count5/5With 10 tools, the count is well-scoped for a ZenTao bug tracking and project management server. It covers core operations like bug retrieval, resolution, project listing, and token management, providing a balanced set without being overwhelming or too sparse for the domain.
Completeness4/5The tool set covers essential workflows for bug management (e.g., get, list, resolve) and project/product access, with minor gaps such as missing tools for creating bugs or updating bug details beyond resolution. However, the generic call tool can potentially fill these gaps, making the surface reasonably complete for typical agent tasks.
Average 3.3/5 across 10 of 10 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- No commit activity data available
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
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 carries the full burden of behavioral disclosure. It mentions extracting image URLs, which adds some context beyond a simple read operation, but fails to describe critical traits like whether it's read-only, requires authentication, handles errors, or returns structured data. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, consisting of a single sentence that efficiently conveys the core functionality and an additional feature. Every word earns its place, with no redundant information, making it easy to parse quickly.
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 lack of annotations and output schema, the description is incomplete for a tool that performs data retrieval and processing. It doesn't explain what 'bug detail' includes, how image extraction works, or the format of the response. For a tool with no structured output documentation, more context is needed to understand its full behavior and results.
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?
The input schema has 100% description coverage, with 'bugId' clearly documented as a required number. The description adds no additional parameter details beyond implying the ID is used to fetch bug details. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't enhance parameter understanding but doesn't detract either.
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: 'Get bug detail by ID' specifies the verb (get) and resource (bug detail), and 'extracts image URLs from steps HTML into stepsImages' adds a specific processing feature. However, it doesn't explicitly differentiate from sibling tools like 'getMyBug' or 'getNextBug', which likely also retrieve bug details, preventing a perfect score.
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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid bug ID, or compare it to siblings like 'getMyBug' (which might filter by user) or 'getBugStats' (which might provide aggregated data). Without such context, users must infer usage from the name 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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('List projects') but lacks details on permissions, rate limits, pagination, or output format. This is inadequate for a tool that likely involves data retrieval and filtering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It directly communicates the tool's function and scope, making it easy to parse quickly.
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 no annotations and no output schema, the description is incomplete. It covers the basic purpose but lacks crucial behavioral context (e.g., how results are returned, error handling) and doesn't compensate for the absence of structured metadata, making it insufficient for reliable tool 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 description coverage is 100%, so the schema already documents both parameters ('keyword' for filtering by name and 'limit' for max items). The description adds no additional parameter semantics beyond what the schema provides, meeting the baseline for high schema coverage.
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 verb ('List') and resource ('projects'), specifying they are 'related to the current account' with role-based context (PM/PO/QD/RD/assigned/team). This provides a specific scope, though it doesn't explicitly distinguish from sibling tools like 'searchProducts', which might overlap in functionality.
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 explicit guidance on when to use this tool versus alternatives is provided. The description implies usage for listing account-related projects but doesn't mention when to choose this over sibling tools like 'searchProducts' or 'getMyBugs', leaving the agent without clear differentiation.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Mark a bug as resolved') but doesn't clarify permissions needed, whether the change is reversible, error handling, or side effects. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, front-loading the core action. It's appropriately sized for the tool's complexity and doesn't include unnecessary information.
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?
For a mutation tool with no annotations, no output schema, and incomplete behavioral context, the description is insufficient. It lacks details on permissions, reversibility, response format, or error cases, making it inadequate for safe and effective use.
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 already documents both parameters ('bugId' and 'comment'). The description implies the tool applies to a bug but doesn't add syntax, format, or contextual details beyond what the schema provides, meeting the baseline for high coverage.
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 action ('Mark a bug as resolved') and specifies the resolution type ('resolution=fixed'), which distinguishes it from other resolution states. However, it doesn't explicitly differentiate from potential sibling tools like 'call' or other bug-related operations beyond the provided list.
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?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or exclusions. It lacks context about whether it should be used after investigation, testing, or in specific workflows, leaving usage ambiguous.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns 'a short list of products,' but lacks details on permissions, rate limits, error handling, or what 'short' means (e.g., pagination, default behavior). This is a significant gap for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: two clauses that directly state the action and outcome with zero wasted words. Every sentence earns its place by covering core functionality efficiently.
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 the tool's low complexity (2 parameters, no output schema, no annotations), the description is minimally complete but lacks depth. It covers the basic purpose and return type but misses behavioral context needed for effective use, such as result format or limitations.
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 already documents both parameters ('keyword' and 'limit') adequately. The description adds no additional meaning beyond implying keyword matching, aligning with the baseline for high schema coverage.
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: 'Search products by keyword; returns a short list of products.' It specifies the verb ('Search'), resource ('products'), and scope ('by keyword'), but does not differentiate from siblings (none are product-related).
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?
The description provides no guidance on when to use this tool versus alternatives. It mentions no prerequisites, exclusions, or comparisons to sibling tools (which are unrelated to products), leaving usage context implied at best.
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 are provided, so the description carries the full burden of behavioral disclosure. It mentions that it returns 'full bug detail,' which adds some context about the output. However, it doesn't describe key behaviors such as what 'active' means (e.g., status definitions), how 'first' is determined (e.g., by creation date, priority), authentication requirements, error handling, or rate limits. For a read operation with no annotation coverage, this leaves significant gaps in transparency.
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 concise and front-loaded, consisting of a single sentence that states the core purpose and output. It avoids unnecessary words and gets straight to the point. However, it could be slightly more structured by separating usage notes or behavioral details, but as is, it's efficient with minimal waste.
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 the tool's moderate complexity (4 parameters, no output schema, no annotations), the description is partially complete. It covers the basic purpose and output but lacks details on behavioral traits, parameter interactions, and comparison to siblings. Without annotations or output schema, more context on how the tool behaves and what it returns would improve completeness, making it adequate but with clear gaps.
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 already documents all 4 parameters thoroughly. The description adds minimal value beyond the schema: it mentions 'productName' as required and implies filtering by 'active' status, but doesn't explain parameter interactions (e.g., how 'status' and 'allStatuses' relate) or provide additional semantics. With high schema coverage, the baseline is 3, and the description doesn't significantly enhance understanding.
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: 'Get the first active bug assigned to me in a product (by productName). Returns full bug detail.' It specifies the verb ('Get'), resource ('bug'), and scope ('assigned to me', 'first active', 'in a product'). However, it doesn't explicitly differentiate from siblings like 'getMyBugs' (plural) or 'getBugDetail', which might retrieve multiple bugs or any bug respectively, leaving some ambiguity.
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: it's for retrieving a single active bug assigned to the user in a specific product. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'getMyBugs' (for multiple bugs) or 'getBugDetail' (for a specific bug by ID), nor does it mention prerequisites or exclusions. The usage is clear but lacks comparative direction.
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 are provided, so the description carries the full burden. It mentions default behavior ('Defaults to active bugs only'), which adds some context, but fails to disclose critical behavioral traits such as whether this is a read-only operation, if it requires authentication, any rate limits, pagination details, or what the output format looks like. This leaves significant gaps for an AI agent to understand how to handle the tool effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence that front-loads the core purpose and includes a key behavioral note. Every word earns its place, making it efficient and easy to parse without any wasted text.
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 tool has 5 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral aspects like authentication needs, error handling, or return values, which are crucial for an AI agent to use the tool correctly in a real-world context. The high parameter count and absence of structured support make this description insufficient.
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 input schema already documents all parameters thoroughly. The description adds minimal value by implying filtering on 'active bugs' (related to 'status' and 'allStatuses'), but doesn't provide additional semantics beyond what's in the schema, such as explaining interactions between parameters or usage examples.
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 verb ('List') and resource ('bugs assigned to me under a product'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'getBugDetail' or 'searchProducts', which would require mentioning unique aspects like personal assignment filtering.
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 by specifying 'assigned to me' and 'Defaults to active bugs only', which suggests context for when to use it (e.g., for personal bug tracking). However, it doesn't provide explicit guidance on when to choose this tool over alternatives like 'getBugStats' or 'searchProducts', nor does it mention any exclusions or prerequisites.
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 are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns counts (total and active), which is useful, but lacks details on permissions (e.g., if it requires authentication), rate limits, error handling, or response format. For a tool with no annotations, this is a significant gap, earning a 2 as it provides basic output info but misses critical behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads key information ('Get counts of bugs assigned to me under a product') and adds necessary detail ('total and active'). There is no wasted text, making it appropriately sized and well-structured for quick understanding, earning a 5 for conciseness.
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 the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and output types (counts), but lacks details on return values, error cases, or integration with siblings. Without annotations or output schema, more context on behavior would improve completeness, resulting in a 3 for being functional but incomplete.
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%, with clear documentation for both parameters (productId as required number, activeOnly as optional boolean with default). The description adds marginal value by implying the product context and active/total counts, but doesn't explain parameter interactions or semantics beyond what the schema provides. Baseline is 3 when schema does the heavy lifting.
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 with a specific verb ('Get counts') and resource ('bugs assigned to me under a product'), including scope details ('total and active'). It distinguishes from siblings like getBugDetail (detailed info) or getMyBugs (list bugs), but doesn't explicitly name alternatives. This earns a 4 for clear purpose without explicit sibling differentiation.
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 by specifying 'bugs assigned to me under a product,' suggesting it's for personal bug statistics in a product context. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like getMyBugs (which might list bugs rather than count them) or markBugResolved (for updates). No exclusions or prerequisites are mentioned, resulting in a 3 for implied usage.
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 are provided, so the description carries the full burden. It mentions 'next active bug' and 'first match', which hints at ordering and filtering behavior, but does not disclose critical details like how 'next' is determined (e.g., by priority, creation date), whether it's read-only or has side effects, or what happens if no bugs match. This leaves significant gaps for a tool with mutation potential (e.g., marking bugs as viewed).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get the next active bug assigned to me under a product') and adds clarifying detail ('first match') without any wasted words. Every part 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 no annotations and no output schema, the description is incomplete for a tool that likely returns bug data. It does not explain what 'next' means operationally, what data is returned, or error handling (e.g., if no bugs exist). For a tool with potential behavioral complexity, this leaves the agent under-informed.
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 fully documents the three parameters (productId, keyword, status). The description adds no additional parameter semantics beyond implying that productId is used for 'under a product' and status might default to 'active'. This meets the baseline for high schema coverage.
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 specific action ('Get'), resource ('next active bug'), and scope ('assigned to me under a product (first match)'). It distinguishes from siblings like getBugDetail (detailed view), getMyBug (specific bug), and getMyBugs (multiple bugs) by emphasizing the 'next' and 'first match' aspects.
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 ('assigned to me', 'under a product') but does not explicitly state when to use this tool versus alternatives like getMyBugs (for multiple bugs) or searchProducts (for product discovery). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context: automatic Token header injection, path format flexibility (leading slash or relative), and token refresh capability via the forceTokenRefresh parameter. However, it lacks details on error handling, rate limits, authentication requirements beyond token injection, or response formats, leaving gaps for a general-purpose API tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, consisting of two sentences that efficiently convey the tool's core functionality and key features (API calling, token injection, path flexibility). Every sentence earns its place with no wasted words, making it easy to understand quickly.
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 the tool's complexity as a general-purpose API caller with 5 parameters, no annotations, and no output schema, the description is incomplete. It covers basic purpose and some behavioral traits but lacks details on error handling, response structure, or advanced usage scenarios. While concise, it does not fully compensate for the missing structured data, leaving room for improvement.
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 already documents all parameters thoroughly. The description adds minimal value beyond the schema by implying path format flexibility and token refresh behavior, but it does not explain parameter interactions or provide additional semantic context. This meets the baseline for high schema coverage.
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's purpose: 'Call any ZenTao RESTful API endpoint (api.php/v1).' It specifies the verb ('Call'), resource ('ZenTao RESTful API endpoint'), and scope ('any'), distinguishing it from sibling tools that perform specific operations like getBugDetail or markBugResolved. The mention of automatic Token header injection adds specificity.
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?
The description provides clear context for usage by indicating it's for ZenTao RESTful API endpoints and handles token injection automatically. However, it does not explicitly state when to use this tool versus the more specific sibling tools (e.g., getBugDetail for bug details), nor does it mention exclusions or prerequisites. The guidance is implied but not comprehensive.
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 provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it performs a POST request (implying a write operation), requires specific environment variables for authentication, and caches tokens in-memory. It also hints at the 'forceRefresh' parameter's purpose. However, it lacks details on error handling, rate limits, or token expiration, which could be important for an authentication tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and highly concise, consisting of a single sentence that efficiently conveys the action, method, authentication, and caching. Every word earns its place, with no redundant information, making it easy to parse quickly.
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 the tool's complexity (authentication with caching) and no annotations or output schema, the description is somewhat complete but has gaps. It covers the main action, authentication method, and caching, but lacks details on response format, error cases, or how the token is used by sibling tools. For a tool that likely provides critical auth tokens, more context on integration would be beneficial.
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 input schema has 100% description coverage, with the 'forceRefresh' parameter documented as 'Ignore cached token'. The description adds value by mentioning caching ('Caches in-memory'), which contextualizes the parameter's purpose. Since there is only one parameter and schema coverage is high, the description compensates well, but it could explicitly link 'forceRefresh' to the caching behavior for clarity.
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 specific action ('Fetch a token') and the resource ('via POST /tokens'), distinguishing it from sibling tools like 'getBugDetail' or 'searchProducts' that handle different resources. It specifies the authentication method ('using env ZENTAO_ACCOUNT/PASSWORD') and caching behavior, making the purpose explicit and distinct.
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 by mentioning authentication via environment variables and caching, suggesting this tool is for obtaining tokens needed for other operations. However, it does not explicitly state when to use it versus alternatives (e.g., whether other tools require tokens) or provide exclusions, leaving some guidance gaps.
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/Valiant-Cat/zentao-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server