Skip to main content
Glama
duytnb79
by duytnb79

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools target distinct resources (sections, comments, projects) or distinct actions (list vs. get vs. create vs. update vs. search). The main potential confusion is between list_tasks and search_tasks, but their descriptions clarify the scope (project-scoped vs. workspace-wide search).

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case: list_sections, add_comment, list_tasks, get_task, create_task, update_task, search_tasks. The sole exception is 'add_comment' rather than 'create_comment', but it still adheres to the same grammatical style.

    Tool Count5/5

    Eight tools is well-scoped for an Asana integration, covering the essential operations on tasks, projects, sections, and comments without redundancy. This is within the typical 3-15 range and each tool earns its place.

    Completeness4/5

    The tool surface covers the core task lifecycle (create, get, update, list, search) plus project listing, section listing, and comment creation. Missing operations like task deletion or project creation are notable gaps, but agents can work around them for most workflows.

  • Average 3.3/5 across 8 of 8 tools scored. Lowest: 2.4/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.json to 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?

    With no annotations, the description carries the full burden of behavioral disclosure. It only states 'This operation writes to Asana,' which is useful but minimal. It does not disclose whether updates are partial or full-replacement, permission requirements, side effects on related data, or what the return value contains. For a mutation tool with complex fields, this is insufficient.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise (two sentences) and front-loaded with the essential action. Every word earns its place, and there is no redundancy or filler. It is appropriately brief for a tool whose details are largely in the schema, though it could be expanded slightly without losing conciseness.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness1/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (14 parameters, nested objects, no output schema, no annotations), the description is grossly inadequate. It does not explain return values, side effects, partial update behavior, or any prerequisites. This is a complex mutation tool that needs substantially more context for an agent to use it safely and correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is only 29%, and the description does nothing to compensate. It simply says 'Update fields' without explaining any of the 14 parameters, their meaning, or how they interact. The description adds no value beyond the schema's sparse field descriptions, leaving most parameters opaque.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Update fields on an Asana task') and identifies the resource (Asana task), and adds the important context that it writes to Asana, distinguishing it from read-only tools like get_task or list_tasks. It could be more specific about updating existing tasks versus creating, but the core purpose is unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does 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 like create_task, get_task, or search_tasks. It does not mention prerequisites, typical use cases, or exclusions, leaving the agent to infer usage from the tool 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, the description must disclose behavioral traits. It only notes 'This operation writes to Asana,' which is already implied by 'Create,' and omits details about permissions, rate limits, or response behavior. Significant gaps remain.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is very brief and front-loaded with the core purpose. However, the second sentence 'This operation writes to Asana' is redundant and does not add value, slightly reducing conciseness.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness1/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's 18 parameters, nested objects, no annotations, and no output schema, this description is severely under-specified. It fails to mention required parameters, return structure, or behavioral nuances, making it inadequate for reliable tool invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is only 39%, leaving many parameters like tags, liked, followers, and custom_fields undocumented. The tool description adds no parameter explanations, failing to compensate for the low coverage and leaving the agent without sufficient guidance.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with 'Create an Asana task,' which clearly specifies the verb and resource. This distinguishes it from siblings like list_tasks, update_task, and get_task. The purpose is unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does 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 such as update_task or search_tasks. It does not mention prerequisites or typical use cases, leaving the agent without context for tool selection.

    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?

    The description discloses that the operation writes to Asana, which is useful for a mutation tool, but with no annotations, it fails to elaborate on permissions, whether comments are appended, or if the operation is reversible. This is a significant transparency gap for a write operation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is two short sentences with no filler. Every word contributes to the core meaning, making it highly efficient and appropriately front-loaded.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple, but the description does not mention return values or how opt_fields affects the response. With no output schema and no annotations, the agent may be left uncertain about the outcome format. However, the core purpose is sufficiently covered for an add operation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides full documentation for all three parameters (100% coverage), so the description adds minimal value. The mention of 'plain-text' is redundant with the schema's own description of the 'text' parameter, keeping this at the baseline.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Add a plain-text comment') and target ('Asana task'), using a specific verb and resource. It distinguishes from siblings like create_task and update_task, though it doesn't explicitly name alternatives, so it falls short of a 5.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does 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 does not mention scenarios, exclusions, or when a different tool (e.g., update_task) might be more appropriate, leaving the agent without decision-making context.

    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, the description carries the full burden of behavioral disclosure. It only restates the purpose and fails to mention that this is a read-only operation, what fields are returned, how opt_fields affects the response, or any edge cases/errors. This leaves significant behavioral uncertainty.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence with no filler, front-loading the core purpose. It is appropriately sized for the simple operation it describes, earning maximum conciseness.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple (2 params, no output schema, no annotations), and the description is minimally adequate. However, it does not explain what 'details' include or whether the response is a full task object. Since no output schema exists, the description should compensate by describing the return shape, which it does not.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema already provides descriptions for both parameters (gid and opt_fields) with 100% coverage. The description adds no additional parameter semantics, so the baseline of 3 is appropriate; the schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb 'Get' with a clear resource ('details for one Asana task'), distinguishing it from siblings like list_tasks (multiple tasks) and update_task (modification). It is unambiguous and directly states the tool's function.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is provided on when to use get_task versus alternatives like list_tasks or search_tasks. The description merely implies 'one task' but does not state prerequisites, exclusions, or scenarios where this tool is preferred.

    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?

    Annotations are absent, so the description carries the full burden. It only mentions 'project priority order' as a behavioral detail. It does not disclose whether completed tasks are included by default, how pagination behaves (beyond schema parameter descriptions), what fields are returned, or any permissions/context. This is a significant gap for a listing operation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence that directly states the purpose and a key behavioral nuance. Every word adds value, with no fluff or redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with 5 parameters, no annotations, and no output schema, the description is under-specifying. It doesn't explain what the response contains, whether completed tasks are returned by default, or how to use completed_since for filtering. The agent would have to rely heavily on the schema and make assumptions about the default behavior.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema provides descriptive text for all 5 parameters (limit, offset, opt_fields, project_gid, completed_since), covering 100% of the parameter semantics. The description adds no extra parameter-level meaning, so the baseline 3 applies.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'List tasks in an Asana project in project priority order' clearly specifies the action, resource, project scope, and an ordering detail. It distinguishes itself from sibling tools like list_sections and search_tasks by focusing specifically on project-based task listing.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The context of when to use the tool is implied by the description (when you need tasks from a specific project), but there is no explicit guidance on when not to use it or which alternatives (e.g., search_tasks, get_task) to choose instead. No exclusions or alternative tool references are provided.

    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, the description carries the full burden. It does disclose a meaningful behavioral nuance—eventual consistency and indexing delay—which is useful. However, it omits other relevant behaviors such as pagination, rate limits, or whether empty text returns all tasks, so transparency is only partially addressed.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise: two sentences with no redundant wording. The main purpose is front-loaded, and the behavioral caveat follows naturally. Every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a search tool with 10 parameters and no output schema, the description is incomplete. It does not mention return values, default behavior, or how results are ordered/paginated. The eventual consistency note is helpful but does not compensate for the lack of operational detail.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 70%, below the high threshold, so the description should compensate for undocumented parameters. It does not add any parameter-level detail. However, most parameters have schema descriptions, so the description's lack of param info is not critical; it neither helps nor harms, leading to a baseline score.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states a specific action ('Search tasks') with a resource and scope ('in an Asana workspace'). This distinguishes it from sibling tools like list_tasks, which imply listing rather than querying, and get_task, which targets a single task.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is given on when to use search_tasks versus alternatives like list_tasks. The description implies its purpose but does not mention alternatives or exclusions, leaving the agent guessing about the appropriate context.

    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?

    No annotations are provided, so the description carries the burden. It discloses a read-only nature (via 'list') and offset pagination, but does not mention default archived behavior, response format, or rate limits, leaving some ambiguity.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    A single, concise sentence that front-loads the verb and resource, with no wasteful words. It is perfectly scoped for the tool's simplicity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The schema fully documents parameters, and the description is adequate for a straightforward list operation. However, without an output schema, it would benefit from mentioning default return fields or pagination behavior.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100% for all five parameters. The description adds no extra parameter meaning beyond restating workspace and offset pagination, which are already documented in the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    Description states the exact verb (List), resource (Asana projects), scope (in a workspace), and method (offset pagination). It clearly distinguishes from siblings like list_tasks and list_sections.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for listing projects in a workspace but provides no explicit alternatives, exclusions, or when-not-to-use guidance. The context is clear but minimal.

    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, the description carries the burden. It discloses offset pagination behavior, which is a key trait, but does not elaborate on return format or other operational details. This is acceptable for a simple list operation but not rich.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence that conveys the core purpose and a key behavioral detail. No fluff or redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple list operation, the description and schema together are fairly complete. It lacks output format details, but given the simplicity and full schema coverage, it is adequate.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% and each parameter has a clear description. The description's mention of offset pagination adds slight context, but the schema already documents the parameters well, so the added value is limited.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool lists sections in an Asana project, using a specific verb and resource. It distinguishes from sibling tools like list_tasks and list_projects by focusing on sections.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context: use to list sections within a project. It does not explicitly name alternatives or exclusions, but the context is unambiguous given the sibling tools.

    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

asana-mcp-server MCP server

Copy to your README.md:

Score Badge

asana-mcp-server MCP server

Copy to your README.md:

Latest Blog Posts

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/duytnb79/asana-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server