G
Github Actions
community
devtools
A Model Context Protocol (MCP) server for interacting with Github Actions.
GitHub Actions MCP Server
MCP Server for the GitHub Actions API, enabling AI assistants to manage and operate GitHub Actions workflows.
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
-
list_workflows
- List workflows in a GitHub repository
- Inputs:
(string): Repository owner (username or organization)owner
(string): Repository namerepo
(optional number): Page number for paginationpage
(optional number): Results per page (max 100)perPage
- Returns: List of workflows in the repository
-
get_workflow
- Get details of a specific workflow
- Inputs:
(string): Repository owner (username or organization)owner
(string): Repository namerepo
(string or number): The ID of the workflow or filenameworkflowId
- Returns: Detailed information about the workflow
-
get_workflow_usage
- Get usage statistics of a workflow
- Inputs:
(string): Repository owner (username or organization)owner
(string): Repository namerepo
(string or number): The ID of the workflow or filenameworkflowId
- Returns: Usage statistics including billable minutes
-
list_workflow_runs
- List all workflow runs for a repository or a specific workflow
- Inputs:
(string): Repository owner (username or organization)owner
(string): Repository namerepo
(optional string or number): The ID of the workflow or filenameworkflowId
(optional string): Filter by user who triggered the workflowactor
(optional string): Filter by branchbranch
(optional string): Filter by event typeevent
(optional string): Filter by statusstatus
(optional string): Filter by creation date (YYYY-MM-DD)created
(optional boolean): Exclude PR-triggered runsexcludePullRequests
(optional number): Filter by check suite IDcheckSuiteId
(optional number): Page number for paginationpage
(optional number): Results per page (max 100)perPage
- Returns: List of workflow runs matching the criteria
-
get_workflow_run
- Get details of a specific workflow run
- Inputs:
(string): Repository owner (username or organization)owner
(string): Repository namerepo
(number): The ID of the workflow runrunId
- Returns: Detailed information about the specific workflow run
-
get_workflow_run_jobs
- Get jobs for a specific workflow run
- Inputs:
(string): Repository owner (username or organization)owner
(string): Repository namerepo
(number): The ID of the workflow runrunId
(optional string): Filter jobs by completion status ('latest', 'all')filter
(optional number): Page number for paginationpage
(optional number): Results per page (max 100)perPage
- Returns: List of jobs in the workflow run
-
trigger_workflow
- Trigger a workflow run
- Inputs:
(string): Repository owner (username or organization)owner
(string): Repository namerepo
(string or number): The ID of the workflow or filenameworkflowId
(string): The reference to run the workflow on (branch, tag, or SHA)ref
(optional object): Input parameters for the workflowinputs
- Returns: Information about the triggered workflow run
-
cancel_workflow_run
- Cancel a workflow run
- Inputs:
(string): Repository owner (username or organization)owner
(string): Repository namerepo
(number): The ID of the workflow runrunId
- Returns: Status of the cancellation operation
-
rerun_workflow
- Re-run a workflow run
- Inputs:
(string): Repository owner (username or organization)owner
(string): Repository namerepo
(number): The ID of the workflow runrunId
- Returns: Status of the re-run operation
Usage with 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>" } } } }
Build
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
This will create the necessary files in the
dist
directory that you'll need to run the MCP server.Usage Examples
List workflows in a repository:
const result = await listWorkflows({ owner: "your-username", repo: "your-repository" });
Trigger a workflow:
const result = await triggerWorkflow({ owner: "your-username", repo: "your-repository", workflowId: "ci.yml", ref: "main", inputs: { environment: "production" } });
Troubleshooting
Common Issues
-
Authentication Errors:
- Ensure your GitHub token has the correct permissions
- Check that the token is correctly set as an environment variable
-
Rate Limiting:
- The server implements rate limiting to avoid hitting GitHub API limits
- If you encounter rate limit errors, reduce the frequency of requests
-
Type Validation Errors:
- GitHub API responses might sometimes differ from expected schemas
- The server implements flexible validation to handle most variations
- If you encounter persistent errors, please open an issue
License
This MCP server is licensed under the MIT License.
Related Servers
Adfin
official
The only platform you need to get paid - all payments in one place, invoicing and accounting reconciliations with [Adfin](https://www.adfin.com/).
View Details
APIMatic MCP
official
APIMatic MCP Server is used to validate OpenAPI specifications using [APIMatic](https://www.apimatic.io/). The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.
View Details