matiasnjacob

GitHub MCP Server

Community matiasnjacob
Updated

GitHub MCP Server

Local OpenCode MCP server for safe GitHub developer workflows: pull main, create a feature branch, push it, and open a ready-for-review pull request.

Environment

Set these variables in your shell. Do not commit real secrets.

export GH_TOKEN="your_github_token_here"
export GITHUB_MCP_ALLOWED_ROOTS="/Users/matiasbinagora/Projects"
export GITHUB_MCP_DEFAULT_BASE_BRANCH="main"
export GITHUB_MCP_DEFAULT_REMOTE="origin"
export GITHUB_MCP_REQUIRE_CLEAN_WORKTREE="true"

GH_TOKEN is recommended. If it is not set, the server can still work when gh is already authenticated locally.

Build

npm install
npm run build

Smoke Test

This creates a temporary local bare repo, pulls main, creates a test branch, commits a file, pushes the branch, and verifies the remote branch exists.

npm run smoke

GitHub Integration Test

This creates a real branch and ready-for-review PR in the configured test repo.

export GITHUB_MCP_SMOKE_REPO_PATH="/Users/matiasbinagora/Projects/binagora"
npm run smoke:github

OpenCode Config

Add this to the global OpenCode config at ~/.config/opencode/opencode.json.

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "github": {
      "type": "local",
      "command": ["node", "/Users/matiasbinagora/Projects/github-mcp/dist/index.js"],
      "enabled": true,
      "environment": {
        "GH_TOKEN": "{env:GH_TOKEN}",
        "GITHUB_MCP_ALLOWED_ROOTS": "/Users/matiasbinagora/Projects",
        "GITHUB_MCP_DEFAULT_BASE_BRANCH": "main",
        "GITHUB_MCP_DEFAULT_REMOTE": "origin",
        "GITHUB_MCP_REQUIRE_CLEAN_WORKTREE": "true"
      }
    }
  }
}

If OpenCode is launched before your shell exports GH_TOKEN, use this command instead so the MCP server sources ~/.zshrc before starting:

"command": [
  "zsh",
  "-lc",
  "source \"$HOME/.zshrc\" >/dev/null 2>&1; exec node \"/Users/matiasbinagora/Projects/github-mcp/dist/index.js\""
]

Tools

  • github_repo_status
  • github_pull_main
  • github_create_feature_branch
  • github_push_feature_branch
  • github_create_pull_request
  • github_prepare_feature_workflow

Safety Notes

  • Repositories must be inside GITHUB_MCP_ALLOWED_ROOTS.
  • No generic shell execution tool is exposed.
  • Direct pushes to main or master are refused.
  • Force pushes and branch deletion are not implemented.
  • A clean worktree is required before pulling, branch creation, and PR creation by default.
  • Branch names are validated with git check-ref-format --branch.

MCP Server · Populars

MCP Server · New

    mcparmory

    MCP Armory Registry

    Production-ready MCP servers for 70+ APIs — GitHub, Google, Notion, Jira & more. Generated from OpenAPI specs, tested against live APIs. Works with Claude Desktop, Cursor, Codex & Claude Code.

    Community mcparmory
    666ghj

    mirofish

    A Simple and Universal Swarm Intelligence Engine, Predicting Anything. 简洁通用的群体智能引擎,预测万物

    Community 666ghj
    luminarylane

    🎨 Fal.ai MCP Server

    MCP server for Fal.ai - Generate images, videos, music and audio with Claude

    Community luminarylane
    childrentime

    reactuse

    115+ production-ready React Hooks for sensors, UI, state & browser APIs. Tree-shakable, SSR-safe, TypeScript-first. Used by Shopee, PDD & Ctrip. Inspired by VueUse.

    Community childrentime
    agenticmail

    🎀 AgenticMail

    Email & SMS infrastructure for AI agents — send and receive real email and text messages programmatically

    Community agenticmail