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
actcompatibility 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/releasesnpm install -g act-testing-mcpThis package is published with npm provenance for enhanced supply-chain security. You can verify the package's attestations:
npm audit signaturesOr clone and run locally:
git clone https://github.com/GarthDB/act-testing-mcp.git
cd act-testing-mcp
npm installAdd 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_ROOTis 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/.actrcLists 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 IDevent(optional): Event type (push, pull_request, etc.)dryRun(optional): Show execution plan without runningverbose(optional): Enable detailed outputenv(optional): Environment variablessecrets(optional): Secrets to provideeventData(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:watchThe 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:reportact-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.