Skip to main content
Glama
olwalgeorge2

Chiro ERP - Issue Pipeline Orchestrator

by olwalgeorge2

Chiro ERP - Issue Pipeline Orchestrator

MCP Server for automated issue-to-PR pipeline with role-based AI agents.

Overview

This MCP server automates the software development workflow by processing GitHub issues through a multi-stage pipeline with specialized AI agents:

  • Analyst Agent: Analyzes requirements and creates user stories

  • Architect Agent: Designs technical solutions following DDD/CQRS patterns

  • Developer Agent: Implements features in C#

  • Tester Agent: Creates comprehensive tests

  • Reviewer Agent: Reviews code for quality and compliance

Related MCP server: GitPilot MCP

Features

  • ๐Ÿค– Automated issue-to-PR workflow

  • ๐ŸŽฏ Role-based AI agents with domain expertise

  • ๐Ÿ—๏ธ Architecture-aware (follows your ADRs and patterns)

  • ๐Ÿ”’ HIPAA compliance checks

  • ๐Ÿงช Automatic test generation

  • ๐Ÿ‘€ Code review automation

  • ๐ŸŽ›๏ธ Human approval gates for complex changes

  • ๐Ÿ“Š Complexity analysis

  • ๐Ÿ”„ Retry and approval mechanisms

Setup

1. Install Dependencies

cd mcp-servers/issue-pipeline-orchestrator
npm install

2. Configure Environment

Copy .env.example to .env and fill in your credentials:

cp .env.example .env

Required environment variables:

  • GITHUB_TOKEN: GitHub Personal Access Token with repo access

  • GITHUB_OWNER: Your GitHub username or organization

  • GITHUB_REPO: Repository name

  • OPENAI_API_KEY: OpenAI API key

3. Build

npm run build

4. Configure MCP in VS Code

Add to your VS Code settings (.vscode/settings.json):

{
  "mcpServers": {
    "chiro-erp-pipeline": {
      "command": "node",
      "args": [
        "c:/Users/PC/coding/mvp/mcp-servers/issue-pipeline-orchestrator/dist/index.js"
      ],
      "env": {
        "GITHUB_TOKEN": "your_token",
        "GITHUB_OWNER": "your_username",
        "GITHUB_REPO": "mvp",
        "OPENAI_API_KEY": "your_key"
      }
    }
  }
}

Usage

Process an Issue Automatically

// In GitHub Copilot Chat
@workspace /tools process_issue --issueNumber 42

Check Pipeline Status

@workspace /tools get_pipeline_status --issueNumber 42

Analyze Issue Complexity

@workspace /tools analyze_issue_complexity --issueNumber 42

Approve a Stage

@workspace /tools approve_pipeline_stage --issueNumber 42 --stage "architecture" --approved true

Retry a Failed Stage

@workspace /tools retry_pipeline_stage --issueNumber 42 --stage "implementation"

GitHub Actions Integration

Create .github/workflows/auto-pipeline.yml:

name: Automated Issue Pipeline

on:
  issues:
    types: [labeled]

jobs:
  auto-implement:
    if: contains(github.event.issue.labels.*.name, 'auto-implement')
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v3
      
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '20'
      
      - name: Install MCP Server
        run: |
          cd mcp-servers/issue-pipeline-orchestrator
          npm install
          npm run build
      
      - name: Process Issue
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          GITHUB_OWNER: ${{ github.repository_owner }}
          GITHUB_REPO: ${{ github.event.repository.name }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        run: |
          node mcp-servers/issue-pipeline-orchestrator/dist/index.js << EOF
          {
            "method": "tools/call",
            "params": {
              "name": "process_issue",
              "arguments": {
                "issueNumber": ${{ github.event.issue.number }}
              }
            }
          }
          EOF

Pipeline Stages

1. Analysis (Analyst Agent)

  • Extracts requirements from issue

  • Creates user stories

  • Defines acceptance criteria

  • Identifies dependencies

2. Architecture (Architect Agent)

  • Designs technical solution

  • Follows DDD/CQRS patterns

  • Updates ADRs if needed

  • Defines integration points

3. Implementation (Developer Agent)

  • Generates C# code

  • Follows project structure

  • Implements CQRS handlers

  • Creates domain events

4. Testing (Tester Agent)

  • Generates unit tests

  • Creates integration tests

  • Ensures test coverage

  • Tests edge cases

5. Code Review (Reviewer Agent)

  • Reviews code quality

  • Checks security issues

  • Validates HIPAA compliance

  • Provides feedback

Complexity Scoring

The system automatically analyzes issues and assigns complexity scores:

  • Low (0-4): Simple bugs, minor enhancements - auto-implement

  • Medium (5-9): Standard features - auto-implement with review

  • High (10+): Complex changes - requires human oversight

Human Approval Gates

Approval is automatically required for:

  • Breaking changes

  • Architectural decisions

  • Security-sensitive code

  • HIPAA compliance implications

  • High complexity scores

Customization

Adding New Agent Roles

Edit src/agents/roles.ts:

export const AGENT_ROLES: Record<string, AgentRole> = {
  // ... existing roles
  
  myCustomAgent: {
    name: "My Custom Agent",
    description: "Does something specific",
    systemPrompt: "You are...",
    tools: ["tool1", "tool2"],
    maxTokens: 2000,
    temperature: 0.3
  }
};

Modifying Pipeline Stages

Edit src/orchestrator.ts in the initializePipeline method.

Troubleshooting

Pipeline Stuck

Check the pipeline status and use retry:

@workspace /tools retry_pipeline_stage --issueNumber 42 --stage "implementation"

Rate Limits

The system respects GitHub and OpenAI rate limits. If you hit limits:

  • Reduce parallel processing

  • Add delays between stages

  • Use a higher-tier OpenAI plan

Agent Errors

Check agent outputs in GitHub issue comments. Common issues:

  • Insufficient context

  • Ambiguous requirements

  • Missing dependencies

Best Practices

  1. Label Issues Appropriately: Use labels like auto-implement, bug, enhancement to help complexity analysis

  2. Clear Issue Descriptions: Provide detailed requirements and acceptance criteria

  3. Review Generated PRs: Even with automation, human review is valuable

  4. Start Small: Begin with simple issues to calibrate the system

  5. Monitor Costs: Track OpenAI API usage as complex issues can use significant tokens

Security

  • Never commit .env file

  • Use GitHub Secrets for CI/CD

  • Rotate tokens regularly

  • Review security-sensitive changes manually

License

MIT

Available Tools

7 tools
analyze_issue_complexityC

Analyze an issue and determine its complexity score and recommended approach

ParametersJSON Schema
NameRequiredDescriptionDefault
issueNumberYesThe GitHub issue number to analyze

TDQS

C2.9/5.0
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 mentions the tool will 'determine' complexity and provide recommendations, but doesn't describe how this analysis works, what data sources it uses, whether it makes API calls, what permissions are required, or what the output format looks like. This leaves significant behavioral gaps for a tool that presumably performs analysis.

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 clearly states the tool's purpose. Every word earns its place with no redundancy or unnecessary elaboration. It's appropriately sized for a tool with one parameter and straightforward purpose.

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 an analysis tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the complexity score means (scale, factors considered), what format the recommended approach takes, or what happens during analysis. The agent would need to guess about the tool's behavior and output format.

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 the single parameter 'issueNumber' well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema, so it meets the baseline for high schema coverage without adding extra value.

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 tool's purpose with a specific verb ('analyze') and resource ('issue'), and indicates what it produces ('complexity score and recommended approach'). However, it doesn't differentiate from sibling tools like 'process_issue' or explain how this analysis differs from general issue processing.

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 sibling tools like 'process_issue' and 'list_github_mcp_tools' available, there's no indication of when complexity analysis is appropriate versus other issue-related operations.

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

approve_pipeline_stageC

Approve a pipeline stage that requires human review

ParametersJSON Schema
NameRequiredDescriptionDefault
issueNumberYesThe GitHub issue number
stageYesThe pipeline stage to approve
approvedYesWhether to approve or reject
commentsNoOptional feedback or instructions

TDQS

C2.9/5.0
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 implies a mutation action ('Approve') but doesn't mention permissions needed, side effects, rate limits, or what happens upon approval/rejection. This is inadequate for a tool that likely changes system state.

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 directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the core action.

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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'approve' entails operationally, potential impacts, or return values. Given the complexity of pipeline stage approval, more context is needed for safe and effective use.

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

Parameters3/5

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

The schema has 100% description coverage, so parameters are well-documented in the schema itself. The description adds no additional parameter context beyond implying approval/rejection via 'approved', which is already covered. Baseline 3 is appropriate when 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 action ('Approve') and resource ('pipeline stage that requires human review'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'retry_pipeline_stage' or 'process_issue', which could have overlapping 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 like 'retry_pipeline_stage' or 'process_issue'. It mentions 'requires human review' but doesn't specify prerequisites, conditions, or exclusions for usage.

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

get_cost_reportC

Get a detailed cost report of OpenAI API usage for the current month

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNoInclude detailed breakdown by agent

TDQS

C2.9/5.0
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 a 'detailed cost report' but doesn't mention if it requires authentication, has rate limits, returns structured data, or involves any side effects. This leaves significant gaps in understanding how the tool behaves beyond its basic function.

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 directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly, which is ideal for conciseness.

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 and no output schema, the description is incomplete for a tool that likely returns complex cost data. It doesn't explain what the report includes (e.g., metrics, timeframes, aggregation), how results are formatted, or any error conditions, leaving the agent under-informed about the tool's full context and output.

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 the 'detailed' parameter well-documented in the schema itself. The description doesn't add any meaning beyond the schema, such as explaining the format of the breakdown or when to toggle the parameter. Since schema coverage is high, 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 verb 'Get' and the resource 'detailed cost report of OpenAI API usage for the current month', making the purpose immediately understandable. However, it doesn't differentiate from sibling tools, which are unrelated to cost reporting (e.g., analyze_issue_complexity, get_pipeline_status), so it doesn't fully earn 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, prerequisites, or exclusions. It implies usage for current month cost reporting but doesn't specify if other tools handle historical data or different report types, leaving the agent with minimal context for decision-making.

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

get_pipeline_statusC

Get the current status of an issue in the pipeline

ParametersJSON Schema
NameRequiredDescriptionDefault
issueNumberYesThe GitHub issue number

TDQS

C2.9/5.0
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 status, implying a read operation, but doesn't cover aspects like whether it requires authentication, rate limits, error handling, or what the status output entails (e.g., format, possible values). This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

The description is a single, clear sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and efficiently communicates the core functionality, making it easy to parse and understand 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 lack of annotations and output schema, the description is incomplete for a tool that interacts with a pipeline. It doesn't explain what 'status' means, potential return values, or how it integrates with the pipeline system. For a tool with no structured behavioral data, more context is needed 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%, with the parameter 'issueNumber' fully documented in the schema as 'The GitHub issue number'. The description adds no additional meaning beyond this, such as clarifying the pipeline context or valid ranges. Since the schema does the heavy lifting, 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 the current status') and resource ('an issue in the pipeline'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'retry_pipeline_stage' or 'approve_pipeline_stage', which also relate to pipeline operations, so it doesn't achieve full 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. It doesn't mention prerequisites, context, or exclusions, and with siblings like 'process_issue' or 'analyze_issue_complexity', there's no indication of how this tool fits into the workflow or when it's preferred over others.

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

list_github_mcp_toolsB

List available tools from GitHub MCP server (if enabled)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
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 mentions the tool lists available tools but doesn't specify what 'available' means (e.g., all tools, only accessible ones), the format of the output, or any limitations like rate limits or authentication requirements. This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without any unnecessary words. It is front-loaded with the core action and includes only essential contextual information ('if enabled'), making it optimally 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 lack of annotations and output schema, the description is incomplete for a tool that likely returns a list of tools. It doesn't explain what the output contains (e.g., tool names, descriptions, capabilities) or any behavioral nuances, leaving the agent with insufficient context to use the tool effectively beyond its basic purpose.

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 input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of parameters. The description adds no parameter information, which is appropriate here, but it doesn't compensate for any gaps since there are none. A baseline of 4 is given for zero-parameter tools when the schema is complete.

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 tool's purpose with a specific verb ('List') and resource ('available tools from GitHub MCP server'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_pipeline_status' or 'analyze_issue_complexity', 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 Guidelines3/5

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

The description implies usage context with the parenthetical '(if enabled)', suggesting this tool should be used when the GitHub MCP server is available. However, it provides no explicit guidance on when to choose this tool over alternatives or any prerequisites beyond server availability, leaving usage somewhat ambiguous.

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

process_issueC

Automatically process a GitHub issue through the full development pipeline with role-based AI agents

ParametersJSON Schema
NameRequiredDescriptionDefault
issueNumberYesThe GitHub issue number to process
skipAnalystNoSkip the analyst agent (use for simple bugs with clear requirements)
skipArchitectNoSkip the architect agent (use for simple changes with no design impact)
dryRunNoRun the pipeline without creating a PR (for testing)

TDQS

C2.9/5.0
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 mentions 'full development pipeline with role-based AI agents' which hints at automation, but doesn't specify what the pipeline actually does (e.g., creates PRs, runs tests), what permissions are needed, whether it's destructive, or what happens on failure. The dryRun parameter description adds some behavioral context, but overall disclosure is incomplete for a complex automation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence that clearly states the tool's core purpose. It's appropriately sized and front-loaded with essential information, with no wasted words 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?

For a complex automation tool with 4 parameters and no annotations or output schema, the description is insufficient. It doesn't explain what 'processing' entails, what the pipeline stages are, what role-based agents do, what happens on success/failure, or what the tool returns. The parameter descriptions in the schema help, but the main description should provide more complete context for such a multi-step 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?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The main description doesn't add any parameter-specific information beyond what's in the schema. The baseline score of 3 is appropriate when the schema does the heavy lifting, though the description could have provided higher-level context about parameter interactions.

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 tool's purpose: 'Automatically process a GitHub issue through the full development pipeline with role-based AI agents.' It specifies the verb ('process'), resource ('GitHub issue'), and scope ('full development pipeline'), but doesn't explicitly differentiate from sibling tools like analyze_issue_complexity or retry_pipeline_stage.

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 to use it, or how it relates to sibling tools like analyze_issue_complexity or retry_pipeline_stage. The parameter descriptions offer some usage hints (e.g., 'use for simple bugs'), but the main description lacks explicit usage context.

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

retry_pipeline_stageC

Retry a failed pipeline stage with optional modifications

ParametersJSON Schema
NameRequiredDescriptionDefault
issueNumberYesThe GitHub issue number
stageYesThe pipeline stage to retry
instructionsNoAdditional instructions for the retry

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions 'optional modifications' but doesn't disclose critical traits like whether this is a destructive operation, permission requirements, rate limits, or what happens to the original pipeline stage. This is inadequate for a mutation tool.

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

Conciseness5/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 ('retry a failed pipeline stage') and adds a useful qualifier ('with optional modifications'), making it appropriately concise.

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 (implied by 'retry') with no annotations and no output schema, the description is incomplete. It lacks details on behavioral impact, error handling, or return values, which are crucial for safe and effective use. The 100% schema coverage helps but doesn't compensate for these gaps.

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. The description adds no additional meaning beyond implying 'optional modifications' might relate to the 'instructions' parameter, but it doesn't clarify syntax or examples. 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 tool's purpose with a specific verb ('retry') and resource ('a failed pipeline stage'), and mentions optional modifications. However, it doesn't differentiate from sibling tools like 'approve_pipeline_stage' or 'process_issue', which might handle similar pipeline 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. It doesn't mention prerequisites (e.g., only for failed stages), exclusions, or how it differs from sibling tools like 'approve_pipeline_stage' or 'process_issue', leaving usage context unclear.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • First observedanalyze_issue_complexity
    • First observedapprove_pipeline_stage
    • First observedget_cost_report
    • First observedget_pipeline_status
    • First observedlist_github_mcp_tools
    • First observedprocess_issue
    • First observedretry_pipeline_stage

TDQS

B3.3/5.0

Scored across 7 tools

Disambiguation4/5

Most tools have distinct purposes, but 'process_issue' and 'analyze_issue_complexity' could potentially overlap in scope since both involve analyzing issues. The other tools target specific pipeline operations, approvals, reporting, and external tool listing, making them clearly differentiated.

Naming Consistency3/5

The naming is mixed with some tools using verb_noun patterns like 'analyze_issue_complexity' and 'get_pipeline_status', while others like 'list_github_mcp_tools' and 'retry_pipeline_stage' follow similar conventions. However, 'process_issue' is a bit vague compared to the others, and there's no consistent prefix or style across all tools, leading to a moderate score.

Tool Count5/5

With 7 tools, this server is well-scoped for orchestrating an issue pipeline. The count is appropriate for handling pipeline stages, approvals, retries, status checks, complexity analysis, and reporting, without being overwhelming or too sparse for the domain.

Completeness4/5

The tool set covers core pipeline operations like processing, status checking, approvals, and retries, along with reporting and external tool integration. A minor gap might be the lack of tools for configuring or managing the pipeline itself, but the existing tools support the main workflows effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    B
    quality
    Not graded
    maintenance
    Enables AI-driven orchestration of GitHub development workflows including automated issue analysis, code generation, code review, and PR creation through multiple specialized agents. Integrates with GitHub Actions to automate the complete development process from issue to pull request.
    7
    -
  • F
    license
    B
    quality
    C
    maintenance
    Enables issue-to-code automation for GitHub and GitLab by connecting AI assistants (Claude Code, Gemini CLI, Codex) via MCP, with slash commands for issue analysis, planning, implementation, testing, documentation, and PR creation.
    33
    9
    -