Model Context Protocol (MCP) server for testing GitHub Actions workflows locally using nektos/act.
This MCP provides AI assistants (like Claude) with direct access to test GitHub Actions workflows locally, eliminating trial-and-error development cycles when working with CI/CD pipelines.
- 🔍 List Workflows: Discover all available GitHub Actions workflows in any repository
-
▶️ Run Workflows: Execute workflows locally with act - ✅ Validate Syntax: Check workflow files for errors before committing
- 🎭 Custom Events: Test workflows with custom event data to simulate different scenarios
- 🐛 Debug Support: Detailed logging and error reporting
-
📊 Dependency Monitoring: Track
act
compatibility and detect breaking changes - 🔐 Supply Chain Security: Published with npm provenance attestations for verifiable builds
- Docker Desktop (running)
- nektos/act installed (Installation Guide)
- Node.js 20+
# macOS
brew install act
# Linux (with curl)
curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
# Windows (with chocolatey)
choco install act-cli
# Or download from releases
# https://github.com/nektos/act/releases
npm install -g act-testing-mcp
This package is published with npm provenance for enhanced supply-chain security. You can verify the package's attestations:
npm audit signatures
Or clone and run locally:
git clone https://github.com/GarthDB/act-testing-mcp.git
cd act-testing-mcp
npm install
Add to your MCP configuration (e.g., .cursor/mcp.json
for Cursor IDE):
{
"mcpServers": {
"act-testing": {
"command": "npx",
"args": ["act-testing-mcp"]
}
}
}
{
"mcpServers": {
"act-testing": {
"command": "act-testing-mcp"
}
}
}
{
"mcpServers": {
"act-testing": {
"command": "npx",
"args": ["act-testing-mcp"],
"env": {
"PROJECT_ROOT": "/path/to/your/project"
}
}
}
}
{
"mcpServers": {
"act-testing": {
"command": "node",
"args": ["./path/to/act-testing-mcp/index.js"],
"env": {
"PROJECT_ROOT": "/path/to/your/project",
"ACT_BINARY": "act"
}
}
}
}
Note: Using
npx
(Option 1) is recommended as it avoids PATH issues and ensures you always use the latest version. The MCP server automatically detects the current working directory, soPROJECT_ROOT
is only needed if you want to override the default behavior. This approach mirrors other MCP servers like Browser MCP and resolves common NPX availability problems as mentioned in continuedev/continue#4791.
Create an .actrc
file in your project root (copy from the example):
# Copy example configuration and customize paths
cp mcp-config.example.json .cursor/mcp.json
# Edit .cursor/mcp.json to set your PROJECT_ROOT path
# Copy act configuration (optional)
cp .actrc /path/to/your/project/.actrc
Lists all available GitHub Actions workflows in the repository.
Parameters: None
Example:
📋 **CI** (ci.yml)
Job: test (test)
Events: push, pull_request
📋 **Release** (release.yml)
Job: release (release)
Events: workflow_dispatch
Runs a workflow locally using act.
Parameters:
-
workflow
(required): Workflow file name or job ID -
event
(optional): Event type (push, pull_request, etc.) -
dryRun
(optional): Show execution plan without running -
verbose
(optional): Enable detailed output -
env
(optional): Environment variables -
secrets
(optional): Secrets to provide -
eventData
(optional): Custom event data for testing
Examples:
# Run CI workflow
run_workflow workflow="ci.yml" event="push"
# Dry run with custom event data
run_workflow workflow="ci.yml" event="pull_request" dryRun=true eventData='{"number": 123}'
# Run with environment variables
run_workflow workflow="release.yml" env='{"NODE_ENV": "production"}'
Validates workflow syntax and structure.
Parameters:
-
workflow
(required): Workflow file name to validate
Checks act configuration and Docker setup.
Parameters: None
Once configured, you can ask your AI assistant to test workflows directly:
- "Test my CI workflow"
- "Run the release workflow in dry-run mode"
- "Check if my new workflow file is valid"
- "Test the pull request workflow with custom PR data"
# Start the MCP server
npm start
# Run tests
npm test
# Run with coverage
npm run test:coverage
# Debug mode
npm run dev
# Install dependencies
npm install
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run in watch mode
npm run test:watch
The tool includes comprehensive testing:
- Unit tests with AVA framework
- Integration testing with real act and Docker
- Code coverage with c8 (targeting 70%+ for core logic)
- ES modules with native Node.js support
Track act compatibility over time:
# Create baseline
npm run compatibility:baseline
# Check for changes
npm run compatibility:check
# Generate detailed report
npm run compatibility:report
act-testing-mcp/
├── index.js # Main MCP server
├── package.json # Dependencies and scripts
├── README.md # This file
├── LICENSE # Apache 2.0 license
├── .actrc # Act configuration example
├── ava.config.js # Test configuration
├── mcp-config.example.json # MCP configuration example
├── utils/ # Utility modules
│ ├── act-helpers.js # Core act integration
│ └── act-monitor.js # Compatibility monitoring
├── scripts/ # Utility scripts
│ └── check-act-compatibility.js
├── test/ # Test suites
│ ├── index.test.js
│ ├── act-compatibility.test.js
│ ├── act-monitor.test.js
│ └── utils.test.js
└── docs/ # Additional documentation
├── SETUP.md
├── GUIDE.md
├── TESTING.md
└── DEPENDENCY_MONITORING.md
# Check Docker is running
docker ps
# Pull required images
docker pull catthehacker/ubuntu:act-latest
# Check act installation
act --version
# Test act with simple workflow
act --list
- Verify the MCP configuration file path
- Check that Node.js path is correct
- Ensure PROJECT_ROOT environment variable is set
- Check that the project has a
.github/workflows/
directory
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- nektos/act - Run your GitHub Actions locally
- Model Context Protocol - Protocol for AI assistant tool integration
- Create an issue for bug reports or feature requests
- Check the documentation for detailed guides
- Review existing issues for solutions
Note: This tool was originally developed for the Adobe Spectrum Tokens project and has been extracted as a standalone, reusable MCP server.