Woodpecker MCP Server
About
A server for managing Woodpecker CI/CD pipelines, built with the MCP framework.
Details
- Author
- aman-11
- Categories
- Developer Tools, Infrastructure, Automation
Jump to
Option 1: Install from npm (Recommended)
# Install globally npm install -g woodpecker-ci-mcp # Or install locally in your project npm install woodpecker-ci-mcp
# Clone and install git clone <repository-url> cd mcp-pipeline-server pnpm install # Build pnpm run build # Start pnpm start
{ "mcpServers": { "woodpecker-ci": { "command": "npx", "args": ["woodpecker-ci-mcp"], "env": { "WOODPECKER_SERVER": "https://woodpecker.your-domain.com", "WOODPECKER_TOKEN": "your_token" } } } }
{ "mcpServers": { "woodpecker-ci": { "command": "woodpecker-ci-mcp", "env": { "WOODPECKER_SERVER": "https://woodpecker.your-domain.com", "WOODPECKER_TOKEN": "your_token" } } } }
{ "mcpServers": { "woodpecker-ci": { "command": "node", "args": ["path/to/mcp-pipeline-server/dist/index.js"], "env": { "WOODPECKER_SERVER": "https://woodpecker.your-domain.com", "WOODPECKER_TOKEN": "your_token" } } } }
- Final Attempt Focus: Only analyzes the last retry of failed steps
- Pattern Recognition: Identifies recurring failure patterns
- Context-Aware: Understands git workflow and PR context
- Automatic Repository Resolution: No need to lookup repo IDs manually
- Branch-Aware: Finds appropriate pipelines for current branch/PR
- Real-time Status: Handles running pipelines gracefully
- File-Specific Suggestions: Pinpoints exact files and line numbers
- Interactive Fixes: Prompts before applying any changes
- Structured Output: Both human and machine-readable formats
- Smart Caching: Optimized cache strategy for different data types
- Lazy Loading: Services instantiated only when needed
- Resource Management: Proper cleanup on shutdown
- Service not found errors: Ensure ServiceManager is initialized before tool usage
- Pipeline not found: Verify repository name spelling and PR number
- Token issues: Check WOODPECKER_TOKEN has sufficient permissions
The server provides detailed logging for service registration and pipeline resolution:
π§ Service registered: WoodpeckerForgesService Auto-registered services: WoodpeckerForgesService
- Follow the NestJS-style dependency injection patterns
- Use@Injectable()for services that will be injected
- Implement proper caching for external API calls
- Add comprehensive error handling
- Update this README for new tools/features
See individual tool files for detailed parameter schemas:
- src/tools/WoodpeckerCiPipelineReportGeneratorTool.ts
- src/tools/GitBasedPipelineAnalyzerTool.ts
- src/prompts/CiPipelinePrompt.ts
- src/prompts/GitBasedCiAnalysisPrompt.ts
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Access and interact with Harness platform data, including pipelines, repositories, logs, and artifact registries.
An SSE-based MCP server that allows LLM-powered applications to interact with OCI registries. It provides tools for retrieving information about container images, listing tags, and more.
The Octopus MCP Server provides your AI assistant with powerful tools that allow it to inspect, query, and diagnose problems within your Octopus instance, transforming it into your ultimate DevOps wingmate.
The Railway MCP Server enables natural language interaction with your Railway projects and infrastructure. Ask your IDE or AI assistant to create projects, deploy templates, manage environments, pull variables, redeploy services, and more.
The Shipyard CLI provides an MCP server for agents to manage Shipyard environments directly: by pulling logs, comparing branches, running tests, and stopping/starting environments..
MCP server for managing Unleash feature flags and automate best practices.
Interact with your MLOps and LLMOps pipelines through your ZenML MCP server
Control Apache Airflow via its API using JWT authentication.
A Model Context Protocol (MCP) server for automated CI/CD pipeline failure analysis, specifically designed for Woodpecker CI integration with IDE support.
The MCP Pipeline Server provides intelligent CI pipeline failure analysis with two flexible approaches:
- Direct Pipeline Analysis: Analyze specific pipelines using repository ID and pipeline number
- Git-Context Analysis: Automatically resolve and analyze pipelines using repository name, PR number, or branch information from your IDE
1. WoodpeckerCiPipelineReportGeneratorTool
Purpose: Direct pipeline analysis with specific identifiersInput:
- repoId: Woodpecker CI repository ID (e.g., "1")
- pipelineNumber: Specific pipeline number (e.g., "100577")
# Example URLs to extract info from: # https://woodpecker.orgName.dev/repos/1/pipeline/100577 # repoId = "1", pipelineNumber = "100577"
Purpose: Intelligent pipeline analysis using git context from IDEInput:
- repoName: Repository name (e.g., "my-project")
- pullRequestNumber: PR number (e.g., "123")
- branchName: Git branch name (optional)
- Auto-resolves repository ID from name
- Finds latest pipeline for the specified PR
- Handles running pipelines gracefully
- Integrates with IDE git context
Purpose: Traditional pipeline analysis with specific repo/pipeline numbersBest for: Direct analysis when you have Woodpecker CI URLs
Purpose: IDE-integrated analysis using git contextBest for: Analyzing PR failures directly from your development environment
flowchart TD A[User Request] --> B{Input Type?} B -->|RepoID + Pipeline| C[WoodpeckerCiPipelineReportGeneratorTool] B -->|Repo Name + PR| D[GitBasedPipelineAnalyzerTool] D --> E[Resolve Repository ID] E --> F[Find Latest Pipeline] F --> C C --> G[Fetch Pipeline Details] G --> H[Get Failed Step Logs] H --> I[Analyze Final Attempts Only] I --> J[Generate Structured Report] J --> K[Markdown + JSON Output] K --> L[File-by-File Fix Suggestions]
The server uses a NestJS-style dependency injection pattern:
// Services are auto-registered with @Injectable() @Injectable() class WoodpeckerForgesService { // Service implementation } // Tools inject services via constructor export class GitBasedPipelineAnalyzerTool extends MCPTool<Input> { constructor( private woodpeckerForges: WoodpeckerForgesService = inject('WoodpeckerForgesService') ) { super(); } }
- Repository Resolution: 24-hour cache for repo name β repo ID mappings
- Pipeline Analysis: 2-hour cache for complete pipeline analysis results
- No Pipeline Resolution Cache: Always fetches latest pipeline to avoid stale data
- Startup: ServiceManager initializes and discovers @Injectable services
- Runtime: Lazy service instantiation on first use
- Shutdown: Proper cache cleanup and resource disposal
# Analyze current PR failures "Analyze PR failures for #123" # Analyze by repository name "Check CI issues for my-project repository" # Analyze specific branch "Analyze failures on feature/new-ui branch" # Context-aware analysis "Review CI problems" # Uses current git context
# Using specific Woodpecker CI identifiers woodpecker-ci-pipeline-report-generator --repoId="1" --pipelineNumber="100577"
## CI Failure Analysis β pipeline #100577 | repo: my-project | PR #123 | # | Scenario | Scenario File | Code File | Failure Type | Brief Cause | Proposed Fix | |---|----------|---------------|-----------|--------------|-------------|--------------| | 1 | Login Flow | features/login.feature:23 | src/auth.js:45 | assertion | Element not found | Update selector | ### Details #### Login Flow Test Failure log Key failure indicators...
Scenario file: features/login.feature:23Root cause: Updated UI element selector not matchingFix suggestions: Update element selector in auth.js
### Machine-Readable JSON `json { "pipeline": "100577", "repoId": "1", "context": { "repoName": "my-project", "prNumber": "123" }, "analysedAt": "2024-08-11T10:30:00Z", "failures": [ { "scenario": "Login Flow", "scenarioFile": "features/login.feature:23", "failureType": "assertion", "rootIndicators": ["Element not found", "Timeout"], "proposedFix": "Update element selector", "relatedFiles": ["src/auth.js:45"] } ] }
- Node.js 18+
- pnpm or npm
- Access to Woodpecker CI instance
WOODPECKER_SERVER=https://woodpecker.your-domain.com WOODPECKER_TOKEN=your_woodpecker_token
Option 1: Install from npm (Recommended)
# Install globally npm install -g woodpecker-ci-mcp # Or install locally in your project npm install woodpecker-ci-mcp
# Clone and install git clone <repository-url> cd mcp-pipeline-server pnpm install # Build pnpm run build # Start pnpm start
{ "mcpServers": { "woodpecker-ci": { "command": "npx", "args": ["woodpecker-ci-mcp"], "env": { "WOODPECKER_SERVER": "https://woodpecker.your-domain.com", "WOODPECKER_TOKEN": "your_token" } } } }
{ "mcpServers": { "woodpecker-ci": { "command": "woodpecker-ci-mcp", "env": { "WOODPECKER_SERVER": "https://woodpecker.your-domain.com", "WOODPECKER_TOKEN": "your_token" } } } }
{ "mcpServers": { "woodpecker-ci": { "command": "node", "args": ["path/to/mcp-pipeline-server/dist/index.js"], "env": { "WOODPECKER_SERVER": "https://woodpecker.your-domain.com", "WOODPECKER_TOKEN": "your_token" } } } }
- Final Attempt Focus: Only analyzes the last retry of failed steps
- Pattern Recognition: Identifies recurring failure patterns
- Context-Aware: Understands git workflow and PR context
- Automatic Repository Resolution: No need to lookup repo IDs manually
- Branch-Aware: Finds appropriate pipelines for current branch/PR
- Real-time Status: Handles running pipelines gracefully
- File-Specific Suggestions: Pinpoints exact files and line numbers
- Interactive Fixes: Prompts before applying any changes
- Structured Output: Both human and machine-readable formats
- Smart Caching: Optimized cache strategy for different data types
- Lazy Loading: Services instantiated only when needed
- Resource Management: Proper cleanup on shutdown
- Service not found errors: Ensure ServiceManager is initialized before tool usage
- Pipeline not found: Verify repository name spelling and PR number
- Token issues: Check WOODPECKER_TOKEN has sufficient permissions
The server provides detailed logging for service registration and pipeline resolution:
π§ Service registered: WoodpeckerForgesService Auto-registered services: WoodpeckerForgesService``
- Follow the NestJS-style dependency injection patterns
- Use
@Injectable()for services that will be injected
- Implement proper caching for external API calls
- Add comprehensive error handling
- Update this README for new tools/features
See individual tool files for detailed parameter schemas:
-
src/tools/WoodpeckerCiPipelineReportGeneratorTool.ts
- src/tools/GitBasedPipelineAnalyzerTool.ts
- src/prompts/CiPipelinePrompt.ts
- src/prompts/GitBasedCiAnalysisPrompt.ts`
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Access and interact with Harness platform data, including pipelines, repositories, logs, and artifact registries.
An SSE-based MCP server that allows LLM-powered applications to interact with OCI registries. It provides tools for retrieving information about container images, listing tags, and more.
The Octopus MCP Server provides your AI assistant with powerful tools that allow it to inspect, query, and diagnose problems within your Octopus instance, transforming it into your ultimate DevOps wingmate.
The Railway MCP Server enables natural language interaction with your Railway projects and infrastructure. Ask your IDE or AI assistant to create projects, deploy templates, manage environments, pull variables, redeploy services, and more.
The Shipyard CLI provides an MCP server for agents to manage Shipyard environments directly: by pulling logs, comparing branches, running tests, and stopping/starting environments..
MCP server for managing Unleash feature flags and automate best practices.
Interact with your MLOps and LLMOps pipelines through your ZenML MCP server
Control Apache Airflow via its API using JWT authentication.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


