Back to .md Directory

GitHub Operations Skill

Replicates GitHub MCP Server functionality using gh CLI scripts for PRs, issues, search, and other operations.

May 2, 2026
0 downloads
2 views
ai mcp copilot workflow
View source

What this file does

Replicates GitHub MCP Server functionality using gh CLI scripts for PRs, issues, search, and other operations.

When to use it

  • You want to avoid token overhead of the official GitHub MCP Server
  • You need scriptable GitHub operations without a full MCP setup
  • You prefer CLI-based GitHub interactions over API calls
  • You want a local, offline-capable alternative to GitHub's MCP tools

Assumes this stack

gh CLIgitBash

name: github-ops description: GitHub operations via gh CLI for pull requests/PRs, GitHub code search, and drafting exact gh commands. Always use instead of WebFetch for github.com. level: 2 allowed-tools: Bash(gh:) Bash(git:) Bash(./scripts/*) Read Glob Grep Task context: fork compatibility: "OpenCode, Codex CLI, GitHub Copilot. Requires gh CLI and git."

GitHub Operations Skill

Full GitHub MCP Server parity using the gh CLI. This skill provides all the functionality of the official GitHub MCP Server without the token overhead.

Requirements: gh CLI installed and authenticated (gh auth login).

Quick Reference

DomainScriptKey Operations
Repositoriesrepos.shview, clone, fork, list, create, delete, contents
Issuesissues.shlist, view, create, close, reopen, comment, labels
Pull Requestsprs.shlist, view, create, merge, diff, checks, review
Actionsactions.shruns, jobs, logs, artifacts, workflows, rerun
Releasesreleases.shlist, view, create, delete, download assets
Code Securitycode-security.shcode scanning alerts, dependabot alerts
Discussionsdiscussions.shlist, view, comments, categories
Notificationsnotifications.shlist, mark read, subscription
Searchsearch.shrepos, code, issues, PRs, users, commits
Usersusers.shprofile, followers, following, emails
Organizationsorgs.shinfo, members, teams, repos
Gistsgists.shlist, view, create, edit, delete
Projectsprojects.shlist, view, items, fields (v2)

How to Use

Method 1: Direct Script Execution

Run scripts directly from the skill directory:

cd {base_directory}

# Repository operations
bash scripts/repos.sh view --owner facebook --repo react
bash scripts/repos.sh contents --owner vercel --repo next.js --path packages

# Issue operations  
bash scripts/issues.sh list --owner cli --repo cli --state open --limit 10
bash scripts/issues.sh view --owner cli --repo cli --number 123

# Pull request operations
bash scripts/prs.sh list --owner facebook --repo react --state open
bash scripts/prs.sh diff --owner cli --repo cli --number 456

# And so on for each domain...

Method 2: Router Script

Use the router for unified access:

cd {base_directory}
bash scripts/router.sh repos view --owner facebook --repo react
bash scripts/router.sh issues list --owner cli --repo cli --state open
bash scripts/router.sh search repos --query "language:go stars:>10000"

Command-first responses

When the user asks for commands or "exact gh commands", respond with the command(s) first (gh or scripts), then brief notes if needed. Avoid prose-only answers for command requests. If the user asks to list pull requests or to show the exact commands, always include a literal gh command line in the response. If owner/repo is missing, still provide the exact gh command with OWNER/REPO placeholders, then ask the user to confirm the repo.

Script Reference

Each script follows a consistent pattern:

bash scripts/<domain>.sh <action> [options]

Common Options

OptionDescriptionExample
--ownerRepository owner--owner facebook
--repoRepository name--repo react
--numberIssue/PR number--number 123
--limitMax results--limit 10
--stateFilter by state--state open
--jsonJSON output--json

Safety Rules

Destructive operations require confirmation:

  • Creating resources (issues, PRs, releases)
  • Modifying state (close, merge, delete)
  • Force operations

The scripts will prompt for confirmation before executing destructive actions.

Detailed script reference: For full parameters, options, and examples for all 13 domain scripts, read references/script-domains.md.

Error Handling

All scripts follow these error handling rules:

  1. Max 2 attempts per operation before failing
  2. Clear error messages with suggestions
  3. Exit codes: 0 = success, 1 = error, 2 = user cancelled

Authentication

# Check auth status
gh auth status

# Login
gh auth login

# Refresh with additional scopes
gh auth refresh -s repo -s workflow -s read:org

Configuration

Edit config/toolsets.json to enable/disable feature groups:

{
  "enabled": ["repos", "issues", "prs", "actions", "users"],
  "disabled": ["projects", "gists"]
}

MCP Parity: This skill provides equivalent functionality to all GitHub MCP Server toolsets.

What's inside

13 domain scripts, a router script, config file, reference doc, and usage examples with common options

Change this for your project

  • Replace {base_directory} with the actual path to your skill directory
  • Replace config/toolsets.json with your own enabled/disabled feature groups

Where it goes

Save as SKILL.md inside a skill folder. Loaded when the agent selects that skill.

Worth borrowing

  • Router script pattern for unified access to multiple domain scripts
  • Safety confirmation prompts before destructive operations
  • Consistent CLI argument pattern across all domain scripts

Related Documents