GitHub Actions
About
Enables management of GitHub Actions workflows with tools for listing, viewing, triggering, canceling, and rerunning workflows, along with detailed run and job information for CI/CD pipeline monitoring and troubleshooting.
Details
- Author
- ko1ynnky
- Repository
- ko1ynnky/github-actions-mcp-server
- GitHub stars
- 37
- Categories
- Developer Tools, Other, Infrastructure, Automation, Productivity, Design, AI
Jump to
- Complete Workflow Management: List, view, trigger, cancel, and rerun workflows
- Workflow Run Analysis: Get detailed information about workflow runs and their jobs
- Comprehensive Error Handling: Clear error messages with enhanced details
- Flexible Type Validation: Robust type checking with graceful handling of API variations
- Security-Focused Design: Timeout handling, rate limiting, and strict URL validation
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
GitHub ActionsCommand (node, npx, python, etc.)nodeArguments-
Argument 1
<path-to-mcp-server>/dist/index.js
Environment-
GITHUB_PERSONAL_ACCESS_TOKEN
<YOUR_TOKEN>
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
This MCP server is compatible with multiple AI coding assistants including Claude Desktop, Codeium, and Windsurf.
list_workflows
List workflows in a GitHub repository. Inputs: owner (string), repo (string), page (optional number), perPage (optional number). Returns: List of workflows in the repository.
get_workflow
Get details of a specific workflow. Inputs: owner (string), repo (string), workflowId (string or number). Returns: Detailed information about the workflow.
get_workflow_usage
Get usage statistics of a workflow. Inputs: owner (string), repo (string), workflowId (string or number). Returns: Usage statistics including billable minutes.
list_workflow_runs
List all workflow runs for a repository or a specific workflow. Inputs: owner (string), repo (string), workflowId (optional string or number), actor (optional string), branch (optional string), event (optional string), status (optional string), created (optional string), excludePullRequests (optional boolean), checkSuiteId (optional number), page (optional number), perPage (optional number). Returns: List of workflow runs matching the criteria.
get_workflow_run
Get details of a specific workflow run. Inputs: owner (string), repo (string), runId (number). Returns: Detailed information about the specific workflow run.
get_workflow_run_jobs
Get jobs for a specific workflow run. Inputs: owner (string), repo (string), runId (number), filter (optional string), page (optional number), perPage (optional number). Returns: List of jobs in the workflow run.
trigger_workflow
Trigger a workflow run. Inputs: owner (string), repo (string), workflowId (string or number), ref (string), inputs (optional object). Returns: Information about the triggered workflow run.
cancel_workflow_run
Cancel a workflow run. Inputs: owner (string), repo (string), runId (number). Returns: Status of the cancellation operation.
rerun_workflow
Re-run a workflow run. Inputs: owner (string), repo (string), runId (number). Returns: Status of the re-run operation.
1. list_workflows
- List workflows in a GitHub repository
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- page (optional number): Page number for pagination
- perPage (optional number): Results per page (max 100)
- Returns: List of workflows in the repository
2. get_workflow
- Get details of a specific workflow
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- workflowId (string or number): The ID of the workflow or filename
- Returns: Detailed information about the workflow
3. get_workflow_usage
- Get usage statistics of a workflow
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- workflowId (string or number): The ID of the workflow or filename
- Returns: Usage statistics including billable minutes
4. list_workflow_runs
- List all workflow runs for a repository or a specific workflow
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- workflowId (optional string or number): The ID of the workflow or filename
- actor (optional string): Filter by user who triggered the workflow
- branch (optional string): Filter by branch
- event (optional string): Filter by event type
- status (optional string): Filter by status
- created (optional string): Filter by creation date (YYYY-MM-DD)
- excludePullRequests (optional boolean): Exclude PR-triggered runs
- checkSuiteId (optional number): Filter by check suite ID
- page (optional number): Page number for pagination
- perPage (optional number): Results per page (max 100)
- Returns: List of workflow runs matching the criteria
5. get_workflow_run
- Get details of a specific workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- runId (number): The ID of the workflow run
- Returns: Detailed information about the specific workflow run
6. get_workflow_run_jobs
- Get jobs for a specific workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- runId (number): The ID of the workflow run
- filter (optional string): Filter jobs by completion status ('latest', 'all')
- page (optional number): Page number for pagination
- perPage (optional number): Results per page (max 100)
- Returns: List of jobs in the workflow run
7. trigger_workflow
- Trigger a workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- workflowId (string or number): The ID of the workflow or filename
- ref (string): The reference to run the workflow on (branch, tag, or SHA)
- inputs (optional object): Input parameters for the workflow
- Returns: Information about the triggered workflow run
8. cancel_workflow_run
- Cancel a workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- runId (number): The ID of the workflow run
- Returns: Status of the cancellation operation
9. rerun_workflow
- Re-run a workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- runId (number): The ID of the workflow run
- Returns: Status of the re-run operation
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"github actions": {
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
},
"args": [
"<path-to-mcp-server>/dist/index.js"
],
"command": "node"
}
}
}
Linux
{
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
},
"args": [
"<path-to-mcp-server>/dist/index.js"
],
"command": "node"
}
Macos
{
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
},
"args": [
"<path-to-mcp-server>/dist/index.js"
],
"command": "node"
}
Windows
{
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
},
"args": [
"/c",
"run-server.bat",
"[optional-github-token]"
],
"command": "cmd"
}
GitHub Actions MCP Server
> ⚠️ Archive Notice: This repository will be archived soon as the official GitHub MCP server is adding Actions support. See github/github-mcp-server#491 for details on the official implementation.
MCP Server for the GitHub Actions API, enabling AI assistants to manage and operate GitHub Actions workflows. Compatible with multiple AI coding assistants including Claude Desktop, Codeium, and Windsurf.
Features
- Complete Workflow Management: List, view, trigger, cancel, and rerun workflows
- Workflow Run Analysis: Get detailed information about workflow runs and their jobs
- Comprehensive Error Handling: Clear error messages with enhanced details
- Flexible Type Validation: Robust type checking with graceful handling of API variations
- Security-Focused Design: Timeout handling, rate limiting, and strict URL validation
Tools
1. list_workflows
- List workflows in a GitHub repository
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- page (optional number): Page number for pagination
- perPage (optional number): Results per page (max 100)
- Returns: List of workflows in the repository
2. get_workflow
- Get details of a specific workflow
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- workflowId (string or number): The ID of the workflow or filename
- Returns: Detailed information about the workflow
3. get_workflow_usage
- Get usage statistics of a workflow
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- workflowId (string or number): The ID of the workflow or filename
- Returns: Usage statistics including billable minutes
4. list_workflow_runs
- List all workflow runs for a repository or a specific workflow
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- workflowId (optional string or number): The ID of the workflow or filename
- actor (optional string): Filter by user who triggered the workflow
- branch (optional string): Filter by branch
- event (optional string): Filter by event type
- status (optional string): Filter by status
- created (optional string): Filter by creation date (YYYY-MM-DD)
- excludePullRequests (optional boolean): Exclude PR-triggered runs
- checkSuiteId (optional number): Filter by check suite ID
- page (optional number): Page number for pagination
- perPage (optional number): Results per page (max 100)
- Returns: List of workflow runs matching the criteria
5. get_workflow_run
- Get details of a specific workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- runId (number): The ID of the workflow run
- Returns: Detailed information about the specific workflow run
6. get_workflow_run_jobs
- Get jobs for a specific workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- runId (number): The ID of the workflow run
- filter (optional string): Filter jobs by completion status ('latest', 'all')
- page (optional number): Page number for pagination
- perPage (optional number): Results per page (max 100)
- Returns: List of jobs in the workflow run
7. trigger_workflow
- Trigger a workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- workflowId (string or number): The ID of the workflow or filename
- ref (string): The reference to run the workflow on (branch, tag, or SHA)
- inputs (optional object): Input parameters for the workflow
- Returns: Information about the triggered workflow run
8. cancel_workflow_run
- Cancel a workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- runId (number): The ID of the workflow run
- Returns: Status of the cancellation operation
9. rerun_workflow
- Re-run a workflow run
- Inputs:
- owner (string): Repository owner (username or organization)
- repo (string): Repository name
- runId (number): The ID of the workflow run
- Returns: Status of the re-run operation
Usage with AI Coding Assistants
This MCP server is compatible with multiple AI coding assistants including Claude Desktop, Codeium, and Windsurf.
Claude Desktop
First, make sure you have built the project (see Build section below). Then, add the following to your claude_desktop_config.json:
{
"mcpServers": {
"github-actions": {
"command": "node",
"args": [
"<path-to-mcp-server>/dist/index.js"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Codeium
Add the following configuration to your Codeium MCP config file (typically at ~/.codeium/windsurf/mcp_config.json on Unix-based systems or %USERPROFILE%\.codeium\windsurf\mcp_config.json on Windows):
{
"mcpServers": {
"github-actions": {
"command": "node",
"args": [
"<path-to-mcp-server>/dist/index.js"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Windsurf
Windsurf uses the same configuration format as Codeium. Add the server to your Windsurf MCP configuration as shown above for Codeium.
Build
Unix/Linux/macOS
Clone the repository and build:
git clone https://github.com/ko1ynnky/github-actions-mcp-server.git
cd github-actions-mcp-server
npm install
npm run build
Windows
For Windows systems, use the Windows-specific build command:
git clone https://github.com/ko1ynnky/github-actions-mcp-server.git
cd github-actions-mcp-server
npm install
npm run build:win
Alternatively, you can use the included batch file:
run-server.bat [optional-github-token]
This will create the necessary files in the dist directory that you'll need to run the MCP server.
Windows-Specific Instructions
Prerequisites
- Node.js (v14 or higher)
- npm (v6 or higher)
Running the Server on Windows
1. Using the batch file (simplest method):
run-server.bat [optional-github-token]
This will check if the build exists, build if needed, and start the server.
2. Using npm directly:
npm run start
Setting GitHub Personal Access Token on Windows
For full functionality and to avoid rate limiting, you need to set your GitHub Personal Access Token.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





