
GitHub Actions MCP Server
GitHub Actions Model Context Protocol Server that allows you to create, manage, monitor, and interact with workflows.
Tools
create_workflow
Create a new GitHub Actions workflow file
list_workflows
List workflows in a GitHub repository
get_workflow
Get details of a specific workflow
get_workflow_usage
Get usage statistics of a workflow
list_workflow_runs
List all workflow runs for a repository or specific workflow
get_workflow_run
Get details of a specific workflow run
get_workflow_run_jobs
Get jobs for a specific workflow run
trigger_workflow
Trigger a workflow run
cancel_workflow_run
Cancel a workflow run
rerun_workflow
Re-run a workflow run
README
<p align="center"> <img src="assets/gh-mcp-server-banner.png" alt="GitHub Actions MCP Server Banner" /> </p>
<p align="center"> <a href="https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2Fonemarc%2Fgithub-actions-mcp-server"> <img src="https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Fonemarc%2Fgithub-actions-mcp-server&label=VISITORS&labelColor=%23333337&countColor=%23dedede" /> </a> </p>
GitHub Actions MCP Server
A Model Context Protocol (MCP) server that provides comprehensive GitHub Actions management capabilities. This server allows you to create, manage, monitor, and interact with GitHub Actions workflows through a standardized interface.
Content
- Features
- Installation
- Setup
- Usage
- Tools
- Configuration File Integration
- Error Handling
- Troubleshooting
- Common Use Cases
- Contributing
- License
Features
Workflow Management
- Create Workflow: Create new GitHub Actions workflow files
- List Workflows: Get all workflows in a repository
- Get Workflow: Retrieve detailed information about a specific workflow
- Get Workflow Usage: View usage statistics and billing information
Workflow Runs
- List Workflow Runs: List all workflow runs with filtering options
- Get Workflow Run: Get detailed information about a specific run
- Get Workflow Run Jobs: View jobs and steps for a workflow run
- Trigger Workflow: Manually trigger a workflow dispatch event
- Cancel Workflow Run: Cancel a running workflow
- Rerun Workflow: Re-execute a failed or completed workflow
Installation
-
Clone or download the server files
-
Install dependencies:
npm install
-
Build the TypeScript code:
npm run build
Setup
Prerequisites
- Node.js 18+
- GitHub Personal Access Token with appropriate permissions
GitHub Token Setup
-
Generate a GitHub Personal Access Token:
- Go to GitHub Settings → Developer settings → Personal access tokens → Fine-grained tokens
https://github.com/settings/personal-access-tokens
- Create a token with these scopes:
repo
(full repository access)workflow
(update GitHub Action workflows)contents:read
(read access to see GitHub Action workflows)contents:write
(write access GitHub Action workflows)actions:read
(read access to GitHub Actions)actions:write
(write access to GitHub Actions)
-
Set the environment variable:
export GITHUB_TOKEN=your_token_here
OR
-
Navigate to your project directory and run the setup script:
cd github-actions-mcp chmod +x setup.sh ./setup.sh
Required Permissions
Your GitHub token needs the following permissions for the target repositories:
- Read: List workflows, get workflow details, view runs and jobs
- Write: Create/update workflow files, trigger workflows
- Actions: Cancel and rerun workflows
Usage
Running the Server
npm start
or for development
npm run dev
Tools
create_workflow
Create a new GitHub Actions workflow file in a repository.
Required inputs:
owner
: Repository owner (username/organization)repo
: Repository namepath
: Workflow file path (e.g., '.github/workflows/ci.yml')name
: Workflow name - should be descriptive and related to the workflow's purposeon
: Trigger events configurationjobs
: Jobs configuration
Optional inputs:
branch
: Target branch (default: 'main')commitMessage
: Commit message (default: 'Add GitHub Actions workflow')
Example:
{
"owner": "myorg",
"repo": "myrepo",
"path": ".github/workflows/ci.yml",
"name": "CI Pipeline",
"on": {
"push": {
"branches": ["main"]
},
"pull_request": {}
},
"jobs": {
"test": {
"runs-on": "ubuntu-latest",
"steps": [
{
"name": "Checkout code",
"uses": "actions/checkout@v4"
},
{
"name": "Setup Node.js",
"uses": "actions/setup-node@v4",
"with": {
"node-version": "18"
}
},
{
"name": "Install dependencies",
"run": "npm install"
},
{
"name": "Run tests",
"run": "npm test"
}
]
}
}
}
list_workflows
List all workflows in a repository.
Required inputs:
owner
: Repository ownerrepo
: Repository name
Optional inputs:
page
: Page number for paginationperPage
: Results per page (max 100)
get_workflow
Get detailed information about a specific workflow.
Required inputs:
owner
: Repository ownerrepo
: Repository nameworkflowId
: Workflow ID or filename
get_workflow_usage
Get usage statistics for a workflow (billing information).
Required inputs:
owner
: Repository ownerrepo
: Repository nameworkflowId
: Workflow ID or filename
list_workflow_runs
List workflow runs with extensive filtering options.
Required inputs:
owner
: Repository ownerrepo
: Repository name
Optional inputs:
workflowId
: Filter by specific workflowactor
: Filter by user who triggered the runbranch
: Filter by branchevent
: Filter by trigger eventstatus
: Filter by run statuscreated
: Filter by creation date (YYYY-MM-DD)excludePullRequests
: Exclude PR-triggered runscheckSuiteId
: Filter by check suite IDpage
: Page numberperPage
: Results per page
get_workflow_run
Get detailed information about a specific workflow run.
Required inputs:
owner
: Repository ownerrepo
: Repository namerunId
: Workflow run ID
get_workflow_run_jobs
Get jobs and steps for a specific workflow run.
Required inputs:
owner
: Repository ownerrepo
: Repository namerunId
: Workflow run ID
Optional inputs:
filter
: Filter jobs ('latest' or 'all')page
: Page numberperPage
: Results per page
trigger_workflow
Manually trigger a workflow using workflow_dispatch.
Required inputs:
owner
: Repository ownerrepo
: Repository nameworkflowId
: Workflow ID or filenameref
: Branch, tag, or commit SHA to run on
Optional inputs:
inputs
: Input parameters for the workflow
cancel_workflow_run
Cancel a running workflow.
Required inputs:
owner
: Repository ownerrepo
: Repository namerunId
: Workflow run ID
rerun_workflow
Re-run a completed workflow.
Required inputs:
owner
: Repository ownerrepo
: Repository namerunId
: Workflow run ID
Configuration File Integration
You can also use this server with MCP configuration files. Add to your MCP settings:
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "github-token",
"description": "GitHub personal access token",
"password": true
}
],
"servers": {
"GitHub Actions": {
"command": "node",
"args": ["/path/to/github-actions-mcp-server/dist/index.js"],
"env": {
"GITHUB_TOKEN": "${input:github-token}"
}
}
}
}
}
Error Handling
The server provides comprehensive error handling:
- Authentication errors: Invalid or expired GitHub tokens
- Permission errors: Insufficient repository access
- Rate limiting: GitHub API rate limit exceeded
- Validation errors: Invalid input parameters
- Network errors: Connection issues with GitHub API
Troubleshooting
Common Issues
Token Authentication Fails
- Verify your GitHub token is valid and not expired
- Check that the token has the required scopes
- Ensure the
GITHUB_TOKEN
environment variable is set
Permission Denied
- Verify your token has access to the target repository
- For organization repositories, check if additional permissions are needed
- Ensure your token has the
workflow
scope for creating/modifying workflows
Rate Limiting
- GitHub API has rate limits (5000 requests/hour for authenticated requests)
- Implement retry logic with exponential backoff if needed
- Consider using multiple tokens for high-volume operations
Workflow Creation Fails
- Check that the workflow path starts with
.github/workflows/
- Ensure the YAML syntax is valid
- Verify the target branch exists
Debug Mode
For debugging, you can run the server with additional logging:
DEBUG=* npm start
Common Use Cases
1. Monitoring Workflow Health
# List recent workflow runs to check status
list_workflow_runs --owner myorg --repo myapp --status completed --per_page 10
# Get details of a failed run
get_workflow_run --owner myorg --repo myapp --run_id 12345
# View job details to identify failure points
get_workflow_run_jobs --owner myorg --repo myapp --run_id 12345
2. Managing Deployments
# Trigger a deployment workflow
trigger_workflow --owner myorg --repo myapp --workflow_id deploy.yml --ref main --inputs '{"environment": "production"}'
# Monitor the deployment
list_workflow_runs --owner myorg --repo myapp --workflow_id deploy.yml --status in_progress
# Cancel if needed
cancel_workflow_run --owner myorg --repo myapp --run_id 67890
3. Workflow Maintenance
# List all workflows to review
list_workflows --owner myorg --repo myapp
# Check workflow usage for billing
get_workflow_usage --owner myorg --repo myapp --workflow_id ci.yml
# Get workflow details for optimization
get_workflow --owner myorg --repo myapp --workflow_id ci.yml
Contributing
We welcome contributions to the GitHub Actions MCP Server! Whether you're fixing bugs, improving documentation, adding new features, or providing feedback, your help is appreciated.
License
MIT License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.