About Woodpecker
Woodpecker is an MCP server in the Science category: model Context Protocol (MCP) server for Woodpecker CI 3.13.0+ with comprehensive API tool support for pipeline management, secrets, registries, and more.
Install
claude mcp add woodpecker -- npx -y @devpuccino/mcp-woodpeckernpx -y @devpuccino/mcp-woodpeckerThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Woodpecker
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
MCP Woodpecker Server
A comprehensive Model Context Protocol (MCP) server for seamlessly integrating Woodpecker CI with AI-powered tools. This server provides 41+ tools to manage repositories, pipelines, secrets, registries, crons, and organization settings programmatically. Fully compatible with Woodpecker CI 3.13.0 API.
Perfect for automating CI/CD workflows, integrating with Claude AI, or building custom Woodpecker management tools.
🔄 Compatibility
| Component | Version | Notes |
|---|---|---|
| mcp-woodpecker | 1.1.2+ | MCP Server implementation |
| Woodpecker CI API | 3.13.0+ | Tested against Woodpecker CI v3.13.0 (January 2026) |
| Node.js | 18.0.0+ | Minimum required version |
| MCP SDK | ^1.27.1 | Model Context Protocol SDK |
This server is compatible with Woodpecker CI 3.13.0 and later. The implementation follows the official Woodpecker API specification with support for modern endpoints and features.
📝 Changelog
v1.1.2 (2026-03-21) - Bugfix Release
- Fixed:
get_server_infotool removed —/versionendpoint returns HTML on live deployments - Fixed:
get_pipeline_logsnow uses correct path/repos/{id}/logs/{number}/{stepID}(HTML was from old wrong path) - Fixed: All org secret tools (
list_org_secrets,get_org_secret, etc.) now use numericorgIdinstead of org name — resolves 400 Bad Request - Added:
lookup_organizationtool to resolve org name → numeric ID before secret operations - Tested: All 47 unit tests passing
v1.1.1 (2026-03-21) - Bugfix Release
- Fixed:
cancelPipelinenow callsPOST .../cancelinstead ofDELETE(which deletes the pipeline permanently) - Fixed:
getPipelineStatusnow maps toGET /repos/{id}/pipelines/{number}— no separate/statusendpoint exists in the API - Fixed:
getStepLogspath corrected to/repos/{id}/logs/{number}/{stepID}per API spec - Fixed:
deletePipelineLogspath corrected to/repos/{id}/logs/{number}per API spec - Fixed:
activateRepositorynow usesPOST /repos?forge_remote_id=...(query param, not path param) - Fixed: Cron create/update now sends
schedulefield instead ofexprto match API schema - Fixed:
list_org_secretsand all org secret tools now require numericorgId(not org name) — matchesGET /orgs/{org_id}/secretsAPI spec - Added:
lookup_organizationtool — resolves org name → numeric ID viaGET /orgs/lookup/{org_full_name} - Removed:
get_server_infotool —/versionendpoint returns HTML on this deployment (no reliable alternative) - Tested: All 47 unit tests updated and passing
v1.1.0 (2026-03-21)
- Added:
updateRegistry()method for updating registry credentials - Updated: Version documentation and compatibility matrix
- Tested: Comprehensive registry CRUD operations
✨ Features
- Repository Management - List, get, activate, update, and delete repositories
- Pipeline Management - Trigger, cancel, monitor pipelines with detailed logs and status
- Secrets Management - Create and manage repository and organization-level secrets securely
- Registry Configuration - Manage Docker registry credentials for authenticated builds
- Cron Jobs - Schedule and manage automated pipeline executions with flexible expressions
- User & Server Info - Get authenticated user details and server information
- Full Type Safety - Built with TypeScript for reliable development
🚀 Quick Start
Installation
npm install -g mcp-woodpecker
Or as a project dependency:
npm install mcp-woodpecker
Prerequisites
- Node.js 18.0.0 or higher
- Woodpecker CI instance running and accessible
- API Token from your Woodpecker instance (Personal Access Token)
Basic Setup
-
Get your Woodpecker API token:
- Navigate to your Woodpecker instance (e.g., https://woodpecker.example.com/)
- Go to Settings → Personal Access Tokens
- Create a new token with appropriate permissions
-
Set environment variables:
export WOODPECKER_URL=https://woodpecker.example.com/
export WOODPECKER_API_KEY=your_api_token_here
- Run the MCP server:
mcp-woodpecker
Or in development mode with hot reload:
npm install --save-dev mcp-woodpecker
npm run dev
Using with npx (No Installation)
Run the server directly without installing it globally:
export WOODPECKER_URL=https://woodpecker.example.com/
export WOODPECKER_API_KEY=your_api_token_here
npx mcp-woodpecker
This is useful for testing, CI/CD pipelines, or ephemeral environments.
Using with Claude AI
Add to your .claude/config.json:
{
"servers": {
"woodpecker": {
"command": "npx",
"args":["-y","@devpuccino/mcp-woodpecker"],
"env": {
"WOODPECKER_URL": "https://woodpecker.example.com/",
"WOODPECKER_API_KEY": "your_api_token"
}
}
}
}
Environment Variables
| Variable | Description | Example |
|---|---|---|
WOODPECKER_URL |
Base URL of your Woodpecker instance | https://woodpecker.example.com |
WOODPECKER_API_KEY |
Personal access token for API authentication | eyJ... |
Available Tools
Repository Tools
list_repositories- List all accessible repositoriesget_repository- Get details of a specific repositoryactivate_repository- Activate a repositoryupdate_repository- Update repository settings (trusted status, visibility, config path)delete_repository- Remove a repository from Woodpecker
Pipeline Tools
list_pipelines- List pipelines with optional filtering by branch or statusget_pipeline- Get detailed pipeline informationget_pipeline_status- Get pipeline status badge datatrigger_pipeline- Trigger a new pipeline executioncancel_pipeline- Cancel a running pipelineget_pipeline_logs- Retrieve logs from a specific stepdelete_pipeline_logs- Clear pipeline logs
Secret Management Tools
Repository Secrets:
list_secrets- List all secrets in a repositoryget_secret- Get a specific secretcreate_secret- Create a new secretupdate_secret- Update an existing secretdelete_secret- Remove a secret
Organization Secrets:
list_org_secrets- List organization-level secretsget_org_secret- Get a specific org secretcreate_org_secret- Create a new org secretupdate_org_secret- Update an org secretdelete_org_secret- Remove an org secret
Registry Tools
list_registries- List configured Docker registriesget_registry- Get registry configurationcreate_registry- Add a new registryupdate_registry- Update registry credentials (new in v1.0.0)delete_registry- Remove a registry
Cron Job Tools
list_crons- List scheduled cron jobsget_cron- Get cron job detailscreate_cron- Create a new scheduled jobupdate_cron- Update cron configurationdelete_cron- Remove a cron job
Server Tools
get_current_user- Get authenticated user informationget_server_info- Get Woodpecker server version and info
CI/CD Pipeline
This project includes a .woodpecker.yml configuration that provides:
Build & Test Stages
- Feature Builds: Manual trigger for testing features
- Development Builds: Automatic on push to
developbranch - Production Builds: Automatic on version tags (v*)
Docker Builds
- Multi-stage Docker builds with registry authentication
- Separate images for test, dev, and production environments
Deployment Stages
- Test Deployment: Manual deployment of test image
- Development Deployment: Automatic deployment on develop push
- Production Deployment: Automatic deployment on version tag + npm publish
npm Publishing
Production releases are automatically published to the npm registry on version tags.
Required Secrets
For CI/CD to work, configure these secrets in your Woodpecker instance:
| Secret | Description |
|---|---|
REGISTRY_USERNAME |
Docker registry username |
REGISTRY_PASSWORD |
Docker registry password/token |
NPM_TOKEN |
npm registry authentication token |
WOODPECKER_URL_TEST |
Test Woodpecker instance URL |
WOODPECKER_API_KEY_TEST |
Test instance API key |
WOODPECKER_URL_DEV |
Development Woodpecker instance URL |
WOODPECKER_API_KEY_DEV |
Development instance API key |
WOODPECKER_URL |
Production Woodpecker instance URL |
WOODPECKER_API_KEY |
Production instance API key |
Repository Structure
feature/* → develop (feature development)
develop → master (testing environment)
master → production (stable releases)
v* → npm + docker registry (tagged releases)
🐳 Docker Usage
Build Docker Image
docker build -t mcp-woodpecker:latest .
Run in Docker
docker run -d \
-e WOODPECKER_URL=https://woodpecker.example.com \
-e WOODPECKER_API_KEY=your_token \
--name mcp-woodpecker \
mcp-woodpecker:latest
Docker Compose
version: '3.8'
services:
mcp-woodpecker:
build: .
environment:
WOODPECKER_URL: https://woodpecker.example.com
WOODPECKER_API_KEY: ${WOODPECKER_API_KEY}
restart: unless-stopped
📝 Publishing to npm
This package is published to npm as @devpuccino/mcp-woodpecker.
Version Management
Versions follow Semantic Versioning:
- MAJOR: Breaking API changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes and patches
Release Process
- Update version in package.json:
npm version major|minor|patch
- Push changes:
git push origin master --tags
- Publish to npm:
npm publish
The Woodpecker CI pipeline automatically publishes to npm on version tags.
🤝 Contributing
Contributions are welcome! See CONTRIBUTE.md for detailed guidelines on:
- Setting up your development environment
- Adding new tools to the MCP server
- Code quality standards
- Pull request process
- Commit message conventions
For bug reports and feature requests, please open an issue.
🐛 Troubleshooting
Authentication Error
Error: Woodpecker API error: 401 Unauthorized
- Verify
WOODPECKER_API_KEYis correct - Check token hasn't expired
- Ensure user has API access permissions
Connection Refused
Error: connect ECONNREFUSED
- Verify
WOODPECKER_URLis accessible - Check network connectivity
- Ensure Woodpecker instance is running
Module Not Found
Error: Cannot find module '@modelcontextprotocol/sdk'
- Run
npm installto install dependencies - Clear npm cache:
npm cache clean --force - Delete node_modules and reinstall:
rm -rf node_modules && npm install
📄 License
MIT License © 2026 BerryJ
See LICENSE file for details.
🔗 Resources
- Woodpecker CI Documentation - Official Woodpecker documentation
- MCP Specification - Model Context Protocol details
- Woodpecker API Reference - REST API documentation
- npm Package - npm registry entry
- GitHub Repository - Source code
🙋 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- npm Profile: @devpuccino
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.