Skip to content

HautlyS/Github-Watcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Actions MCP Server

Custom MCP server that triggers GitHub Actions workflows and waits for completion with progress notifications to prevent LLM timeout.

Features

  • run_workflow_and_wait: Triggers workflow, polls until done, returns result with failed job logs
  • get_workflow_status: Get current status of any workflow run
  • Progress notifications every 15s keep the LLM connection alive during long-running workflows

Build

cargo build --release

Usage

Set your GitHub token:

export GITHUB_TOKEN=ghp_xxx
# or
export GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxx

Add to MCP config

{
  "mcpServers": {
    "github-actions": {
      "command": "/path/to/github-actions-mcp",
      "env": {
        "GITHUB_TOKEN": "ghp_xxx"
      }
    }
  }
}

Tools

run_workflow_and_wait

Triggers a workflow and waits for completion (up to 30 min by default).

{
  "owner": "myorg",
  "repo": "myrepo",
  "workflow": "ci.yml",
  "git_ref": "main",
  "inputs": {"deploy": "true"},
  "timeout_minutes": 60
}

Returns:

{
  "status": "completed",
  "conclusion": "success",
  "run_id": 12345,
  "url": "https://github.com/...",
  "failed_logs": null
}

On failure, failed_logs contains the last 100 lines from each failed job.

get_workflow_status

Get status of an existing run:

{
  "owner": "myorg",
  "repo": "myrepo", 
  "run_id": 12345
}

How it prevents timeout

The server sends MCP progress notifications every 15 seconds while polling:

{
  "method": "notifications/progress",
  "params": {
    "progressToken": 12345,
    "progress": 4,
    "message": "Status: in_progress (60s)"
  }
}

This keeps the LLM client connection alive during long-running workflows.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages