Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a distinct purpose: listing failed jobs, fetching log tails, listing all checks, searching logs, and summarizing failures. No overlap or ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_failed_jobs, grep_job_logs), making it predictable.

    Tool Count5/5

    Five tools is appropriate for CI triage—covers listing, log access, searching, and summarization without being excessive or insufficient.

    Completeness5/5

    The tool set covers the full triage workflow: identify failures, retrieve logs, search logs, and generate summaries. No obvious gaps for the stated purpose.

  • Average 4/5 across 5 of 5 tools scored.

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

    • No community issues in the last 6 months
    • 3 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full burden. It states it returns an aggregated check rollup, but lacks details on side effects, permissions, or pagination. Adequate 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.

    Conciseness4/5

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

    Two sentences efficiently state purpose and input format. Could be slightly more concise by omitting the second sentence since schema is clear, but still effective.

    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?

    No output schema, so description should explain return structure. 'Returns aggregated check rollup' is vague; does not specify fields or format. Context with siblings is missing. Adequate but incomplete.

    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 already has full descriptions for both parameters. Description repeats the input format without adding new meaning. Baseline 3 for 100% coverage.

    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 it lists CI checks for a GitHub PR with conclusion and URL, using specific verb and resource. It distinguishes from siblings like get_failed_jobs and get_job_logs_tail which are more specific.

    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 does not provide explicit guidance on when to use this tool vs alternatives. Sibling tool names are given but no context for choosing this over get_failed_jobs or summarize_pr_failure.

    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 must disclose behavior. It states that the tool returns jobs with 'conclusion=failure' and lists the fields returned (name, databaseId, url). However, it does not mention whether it's read-only, auth requirements, rate limits, or behavior when no failed jobs exist. Adequate but not comprehensive.

    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 sentences with no filler. The purpose is stated first, followed by input format and output summary. Every sentence serves a purpose.

    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?

    Given the tool's simplicity (2 parameters, no output schema), the description adequately covers what the tool does, inputs, and outputs. It lacks error handling or pagination details, but for a list-failed-jobs tool, this is largely sufficient.

    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 description adds value beyond the input schema by showing the expected format for 'repo' ('owner/repo') and clarifying 'runId' as a number from the check URL. Schema coverage is only 50% (runId has a description, repo does not), so the description compensates partially.

    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 states the specific action: 'List only failed jobs for a workflow run.' It clearly identifies the resource (failed jobs) and distinguishes it from sibling tools like 'get_job_logs_tail' or 'summarize_pr_failure' that have different purposes.

    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 the expected input format but does not explicitly guide the agent on when to use this tool versus alternatives. No mention of prerequisites, when-not-to-use, or comparisons with sibling tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full burden. It discloses the key behavioral trait: 'cleaned of ANSI + timestamp prefixes', which adds value beyond the schema. It does not mention side effects (none expected) or auth, but the cleaning detail is helpful.

    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 sentence plus inline input format example. It is front-loaded with the purpose, then provides input format concisely. No unnecessary words.

    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 3-parameter read tool with no output schema, the description covers purpose, input format, and return value behavior (last N lines cleaned). It could mention error cases or that it only works for failed jobs (already implied), but overall it is sufficiently complete.

    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 67% (2 of 3 params have descriptions). The description repeats the schema structure without adding new constraints or examples. The default for lines is already in the schema. No extra semantic value beyond 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?

    The description 'Fetch tail of a failed job log' uses a specific verb and resource, clearly distinguishing it from siblings like get_failed_jobs (list jobs) or grep_job_logs (search logs). The input format and cleaned output are also stated, leaving no 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/5

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

    The description implies usage after get_failed_jobs by specifying 'failed job log' and referencing jobId from get_failed_jobs, but does not explicitly compare with siblings or provide when-not guidance. Usage context is implied but not fully explicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, but description discloses the tool's actions (read-only operations on PR checks and logs) and its output (summary with root cause). Could mention permissions or rate limits.

    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, clear sentence with no unnecessary words. Front-loaded with 'End-to-end triage'.

    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?

    Adequately describes return value as summary with root cause, but lacks details on output structure. Given only 2 simple params, completeness is sufficient.

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

    Parameters2/5

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

    Schema coverage is 0% and description only mentions parameter names (repo, prNumber) without explaining their format or constraints (e.g., repo name format). Adds minimal value beyond 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 clearly states it performs end-to-end triage by findining failed checks, tailing logs, extracting errors, and returning a summary with root cause. It distinguishes from sibling tools that perform individual steps.

    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?

    Description implies use case for complete triage vs individual sibling tools, but does not explicitly state when to use alternatives or when not to use.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries full burden. It discloses key behaviors: regex matching (case-insensitive), returns matching lines with 2 lines of context before/after, and default maxMatches of 50. However, it does not mention error handling, permissions, or whether the operation is read-only, but the core behavior is well-covered.

    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 three sentences front-loading the main action, then output format, usage guidance, and input format. Every sentence is necessary and there is no fluff.

    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?

    Given the tool's complexity (regex search with context) and lack of output schema, the description is largely complete. It covers purpose, usage, input, and output format. It could add error handling or performance notes, but for the intended use case it suffices.

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

    Parameters5/5

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

    Schema description coverage is only 50% (pattern and maxMatches have descriptions, repo and jobId do not). The description compensates by listing all parameters in a compact format: 'Input: {repo, jobId, pattern: string, maxMatches?: number=50}', clarifying types and providing default value for maxMatches.

    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 'Grep a job log for lines matching a regex (case-insensitive)'. It specifies a specific verb (grep) and resource (job log), and distinguishes itself from sibling tools like get_job_logs_tail by focusing on pattern matching with context lines.

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

    Usage Guidelines5/5

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

    The description explicitly provides when to use: 'Use when failure is mid-log (E2E tests, build errors) rather than at the tail.' This implies when not to use (for tail failures) and gives context signals, differentiating from the sibling tool get_job_logs_tail.

    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

ci-triage-mcp MCP server

Copy to your README.md:

Score Badge

ci-triage-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/aamar-shahzad/ci-triage-mcp'

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