Skip to main content
Glama
mmruesch12
by mmruesch12

Server Quality Checklist

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

  • Disambiguation5/5

    Every tool has a clearly distinct purpose targeting specific resources and actions in Azure DevOps. For example, create_pull_request vs. create_pull_request_comment vs. get_pull_request_diff are all related to pull requests but handle different operations, with no overlapping functionality that would cause confusion.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with snake_case throughout, such as create_pull_request, list_projects, and get_work_item. The naming is predictable and readable, with no deviations in style or convention.

    Tool Count5/5

    With 12 tools, this server is well-scoped for Azure DevOps operations, covering core areas like projects, pull requests, work items, and wiki pages. Each tool earns its place without feeling excessive or insufficient for the domain.

    Completeness4/5

    The tool set provides strong coverage for key workflows in Azure DevOps, including CRUD operations for pull requests, work items, and wiki pages, plus project listing and details. Minor gaps exist, such as missing update or delete operations for pull requests and work items, but agents can likely work around these with available tools.

  • Average 2.9/5 across 12 of 12 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Create a new pull request' implies a write operation, but it doesn't cover permissions needed, whether it's idempotent, error handling, or what happens on success (e.g., PR creation confirmation). This is a significant gap 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/5

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

    The description is a single, efficient sentence with zero waste—'Create a new pull request' is front-loaded and appropriately sized for its purpose, earning full marks for conciseness and structure.

    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?

    Given the complexity of creating a pull request (a mutation with 5 parameters), no annotations, and no output schema, the description is incomplete. It lacks details on behavioral aspects, return values, or error cases, making it inadequate for guiding an agent effectively in this context.

    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%, with all parameters documented in the schema (e.g., 'title', 'description', 'sourceBranch', 'targetBranch', 'reviewers'). The description adds no additional meaning beyond the schema, such as format examples or constraints, so it meets the baseline for high schema coverage without compensation.

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

    Purpose3/5

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

    The description 'Create a new pull request' clearly states the action (create) and resource (pull request), which is better than a tautology. However, it doesn't differentiate from sibling tools like 'create_pull_request_comment' or 'create_work_item' beyond the resource name, making it somewhat vague about its specific domain within the system.

    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 doesn't mention prerequisites (e.g., existing branches), exclusions, or comparisons to siblings like 'create_pull_request_comment' for adding comments or 'get_pull_request' for retrieval, 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?

    No annotations are provided, so the description carries full burden. It states the tool edits a wiki page, implying mutation, but doesn't disclose behavioral traits such as required permissions, concurrency handling (hinted by 'etag' parameter), rate limits, or what happens on failure. This leaves significant gaps for safe agent invocation.

    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, efficient sentence with zero waste. It's front-loaded and appropriately sized for its purpose, though it could benefit from additional context. Every word earns its place without 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?

    Given the complexity (mutation tool with 5 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral aspects like error handling, return values, and operational constraints. While the schema covers parameters, the overall context for safe and effective use is insufficient.

    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%, so the schema fully documents all 5 parameters. The description adds no meaning beyond the schema—it doesn't explain parameter interactions (e.g., how 'etag' prevents conflicts) or provide usage examples. Baseline is 3 since the schema handles parameter documentation adequately.

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

    Purpose3/5

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

    The description 'Edit an existing wiki page' clearly states the action (edit) and resource (wiki page), but it's vague about scope and doesn't differentiate from sibling tools like 'create_wiki_page' or other editing tools. It lacks specificity about what aspects are edited (e.g., content only vs. metadata).

    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 this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing page), exclusions (e.g., not for creating new pages), or comparisons to siblings like 'create_wiki_page'. The description implies usage but offers no explicit 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?

    No annotations are provided, so the description carries full burden. It only states the action without disclosing behavioral traits such as pagination, rate limits, authentication needs, or output format. For a list operation with no annotations, this is inadequate.

    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, efficient sentence with no wasted words. It is appropriately sized and front-loaded, 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/5

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

    Given the tool's complexity (list operation with filtering), lack of annotations, and no output schema, the description is incomplete. It fails to explain return values, error handling, or other contextual details needed for effective use.

    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%, with one parameter ('status') fully documented in the schema. The description adds no additional meaning about parameters beyond what the schema provides, so it meets the baseline of 3 without compensating or detracting.

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

    Purpose3/5

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

    The description 'List pull requests in a repository' states the verb ('List') and resource ('pull requests'), providing a basic purpose. However, it lacks specificity about scope (e.g., all PRs vs. filtered) and does not distinguish it from sibling tools like 'get_pull_request' (which likely fetches a single PR). This makes it vague but not tautological.

    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 offers no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'get_pull_request' for single PRs or 'list_projects' for broader context, nor does it specify prerequisites (e.g., repository access). This leaves usage unclear.

    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 ('Add a comment') but doesn't cover critical traits: whether this requires specific permissions, if it's idempotent, what happens on errors, or the expected response format. For a mutation tool with zero annotation coverage, this is a significant gap 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.

    Conciseness5/5

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

    The description is a single, efficient sentence that gets straight to the point with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place, achieving ideal conciseness for such a straightforward tool.

    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?

    Given the tool's complexity (a mutation with 6 parameters, no annotations, and no output schema), the description is incomplete. It doesn't address behavioral aspects like side effects, error handling, or return values, which are crucial for an agent to use it correctly. The high schema coverage helps, but the description fails to compensate for the lack of annotations and output schema.

    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 description adds no parameter-specific information beyond what's already in the input schema, which has 100% coverage. It doesn't explain how parameters interact (e.g., that 'filePath' and 'lineNumber' are for inline comments, or that 'threadId' is for replies). Since the schema does the heavy lifting, the baseline score of 3 is appropriate, but the description misses opportunities to clarify semantics.

    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 comment') and target resource ('to a pull request'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools that might also involve pull request comments, such as 'edit_pull_request_comment' or 'delete_pull_request_comment', which aren't listed but could exist in other contexts.

    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 doesn't mention prerequisites (e.g., needing an existing pull request), exclusions (e.g., not for general discussions), or how it relates to sibling tools like 'create_pull_request' or 'get_pull_request'. This leaves 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 provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states this is a creation operation, implying it's a write/mutation tool, but doesn't cover critical aspects like required permissions, whether it overwrites existing pages, error conditions, or what happens on success. For a mutation tool with zero annotation coverage, this is a significant gap 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.

    Conciseness5/5

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

    The description is extremely concise with just four words ('Create a new wiki page'), making it front-loaded and efficient. Every word contributes directly to the core purpose without any wasted text, meeting the ideal standard for brevity in tool descriptions.

    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?

    Given the complexity of a creation tool with 4 required parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, error handling, dependencies on other tools (like needing an existing project/wiki), or how it interacts with sibling tools. This leaves significant gaps for an AI agent to understand the full context of use.

    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 has 100% description coverage, with clear parameter descriptions (e.g., 'Content of the wiki page', 'Path of the wiki page'). The description adds no additional parameter semantics beyond what the schema already provides. According to the rules, when schema_description_coverage is high (>80%), the baseline score is 3 even with no param info in the description, which applies here.

    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 'Create a new wiki page' clearly states the verb ('Create') and resource ('wiki page'), making the purpose immediately understandable. However, it doesn't differentiate from the sibling tool 'edit_wiki_page' beyond the basic action, missing an opportunity to clarify the distinction between creation and editing operations.

    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. There's no mention of prerequisites (e.g., needing an existing project/wiki), when not to use it (e.g., for updating existing pages), or explicit alternatives like 'edit_wiki_page' for modifications. This leaves the agent without contextual usage instructions.

    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 full burden for behavioral disclosure. 'Create a new work item' implies a write/mutation operation, but it doesn't disclose any behavioral traits like required permissions, whether creation is idempotent, what happens on failure, or what the response contains. For a mutation tool with zero annotation coverage, this is a significant gap.

    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 at just 4 words, front-loading the core purpose without any wasted text. Every word earns its place: 'Create' (action), 'a new' (state), 'work item' (resource). There's no redundancy or unnecessary elaboration.

    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?

    Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects (permissions, side effects), response format, or error handling. The schema handles parameters well, but for a creation operation, more context about what happens after invocation is needed for the agent to use it effectively.

    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%, so the schema fully documents all 5 parameters. The description adds no parameter information beyond what's in the schema—it doesn't explain relationships between parameters, provide examples, or clarify semantics. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't add value but doesn't need to compensate.

    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 ('create') and resource ('work item'), making the purpose immediately understandable. It distinguishes from sibling tools like 'get_work_item' or 'list_work_items' by specifying creation rather than retrieval. However, it doesn't specify what kind of work item system this is (Azure DevOps is only implied by the schema), so it's not fully specific.

    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 doesn't mention prerequisites (e.g., needing an existing project), when not to use it, or how it differs from similar creation tools like 'create_pull_request' or 'create_wiki_page'. The agent must 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 provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves details but doesn't describe the return format (e.g., JSON structure), error handling (e.g., if project not found), authentication requirements, or rate limits. This leaves significant gaps for an agent to understand how to interact with it 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/5

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

    The description is a single, direct sentence that efficiently conveys the core purpose without unnecessary words. It is front-loaded with the key action and resource, making it easy to parse. There is no wasted verbiage 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?

    Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns structured data. It doesn't explain what 'details' include (e.g., project metadata, settings), how results are formatted, or potential side effects. For a read operation with two parameters, more context is needed to ensure reliable agent use.

    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 has 100% description coverage, documenting both parameters ('id' and 'name') with their types and purposes. The description adds no additional parameter information beyond what the schema provides, such as usage examples or constraints (e.g., only one parameter needed). 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.

    Purpose4/5

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

    The description clearly states the action ('Get details') and resource ('specific Azure DevOps project'), making the purpose immediately understandable. It distinguishes from siblings like 'list_projects' by focusing on a single project rather than listing multiple. However, it doesn't specify what details are included, which prevents 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/5

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

    No explicit guidance is provided on when to use this tool versus alternatives. While it implies usage for retrieving details of a known project, it doesn't mention prerequisites (e.g., needing project ID or name), compare it to 'list_projects' for discovery, or specify when not to use it (e.g., for bulk operations).

    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 gets a diff but does not explain what the diff includes (e.g., patch format, line changes), whether it requires authentication, rate limits, or error handling. This is a significant gap for a tool with no 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/5

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

    The description is a single, efficient sentence with zero waste. It is front-loaded and directly states the tool's purpose without unnecessary elaboration, making it highly concise and well-structured.

    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?

    Given the complexity of a diff tool with no annotations and no output schema, the description is incomplete. It lacks details on the diff format, error cases, or behavioral traits, which are crucial for an agent to use the tool effectively. The schema covers parameters well, but overall context is insufficient.

    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 has 100% description coverage, clearly documenting all three parameters (pullRequestId, filePath, iterationId) with their types and optionality. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

    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 ('Get') and resource ('diff for a pull request'), making the purpose understandable. However, it does not distinguish this tool from potential siblings like 'get_pull_request' (which might return metadata rather than diff content), leaving room for ambiguity in 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 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. With siblings like 'get_pull_request' (likely for metadata) and 'list_pull_requests' (for listing), there is no indication of context, prerequisites, or exclusions, leaving usage unclear.

    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 full burden. It states this is a read operation ('Get details'), implying it's likely non-destructive, but doesn't disclose authentication needs, rate limits, error conditions, or return format. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

    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, efficient sentence with zero wasted words. It's appropriately sized and front-loaded with the core purpose, 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/5

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

    Given no annotations, no output schema, and a read operation tool, the description is incomplete. It doesn't explain what details are returned, error handling, or contextual usage, leaving the agent with insufficient information for reliable invocation.

    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%, with both parameters ('id' and 'project') documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for high schema coverage.

    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 verb ('Get') and resource ('details of a specific work item'), making the purpose understandable. However, it doesn't differentiate this tool from similar siblings like 'get_work_item' vs 'list_work_items' or 'get_project', missing explicit sibling distinction.

    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 doesn't mention prerequisites, when-not scenarios, or compare to siblings like 'list_work_items' for multiple items or 'get_project' for project-level details.

    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') but doesn't describe whether this is a read-only operation, if it requires authentication, what the return format looks like (e.g., pagination, fields included), or any rate limits. This is a significant gap for a tool with multiple parameters and no output schema.

    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, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it appropriately sized for its purpose without unnecessary elaboration.

    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?

    Given the complexity (4 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain behavioral aspects like safety, return values, or usage context. While the schema covers parameters well, the lack of annotations and output schema means the description should provide more context to be fully helpful.

    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%, so the schema already documents all parameters (assignedTo, project, states, types) with descriptions. The description adds no additional meaning beyond implying filtering capabilities, which is already covered in the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

    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 verb ('List') and resource ('work items in a project'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_work_item' (which retrieves a single item) or 'list_projects' (which lists projects instead of work items), missing explicit sibling distinction.

    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 doesn't mention sibling tools like 'get_work_item' for single items or 'list_projects' for projects, nor does it specify prerequisites or context for filtering work items, leaving usage unclear.

    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 it 'gets details' but doesn't specify what details are returned, whether it's read-only, requires authentication, or has rate limits. This is a significant gap for a 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/5

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

    The description is a single, efficient sentence with no wasted words. It's appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.

    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?

    Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. However, it lacks details on return values and behavioral traits, which are important for a tool with no annotations or output schema to guide the agent.

    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 schema description coverage is 100%, with the parameter 'pullRequestId' fully documented in the schema. The description doesn't add any meaning beyond the schema, such as format examples or constraints, so it 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.

    Purpose4/5

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

    The description clearly states the verb ('Get details') and resource ('a specific pull request'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_pull_request_diff' or 'list_pull_requests', which limits its specificity.

    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 doesn't mention siblings like 'list_pull_requests' for listing multiple PRs or 'get_pull_request_diff' for diff details, leaving the agent to infer usage 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 provided, the description carries full burden for behavioral disclosure. It states it's a list operation but doesn't describe return format, pagination, sorting, filtering, or access control details. 'Accessible projects' hints at permissions but lacks specifics. For a list tool with zero annotation coverage, 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.

    Conciseness5/5

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

    Single sentence, front-loaded with core action, zero waste. Every word earns its place: 'List' (action), 'all accessible projects' (scope/resource), 'Azure DevOps organization' (context). Efficient and structured.

    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?

    Given zero parameters, no output schema, and no annotations, the description is minimally adequate but lacks details on return format, pagination, or error handling. For a list operation in a complex DevOps context, more completeness would help agents use it effectively.

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

    Parameters4/5

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

    The tool has 0 parameters with 100% schema description coverage (empty schema). The description doesn't need to compensate for missing param info, and it correctly implies no inputs are required. Baseline is 4 for zero-parameter tools when description aligns.

    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 verb ('List') and resource ('all accessible projects'), specifying the scope ('in the Azure DevOps organization'). It distinguishes from siblings like 'get_project' (singular) and 'list_pull_requests' (different resource). However, it doesn't explicitly differentiate from other list tools like 'list_work_items' beyond resource name.

    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 context ('accessible projects') but doesn't provide explicit guidance on when to use this vs. alternatives like 'get_project' for single project details or other list tools. No exclusions or prerequisites are mentioned, leaving usage decisions to inference.

    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

azdo-mcp MCP server

Copy to your README.md:

Score Badge

azdo-mcp 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/mmruesch12/azdo-mcp'

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