github-ops-mcp
Allows searching GitHub repositories, retrieving repository metadata and statistics, cloning repos into a sandboxed workspace, and performing read-only git operations such as listing branches, commits, diffs, issues, and pull requests.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@github-ops-mcpWhat are the open PRs on facebook/react?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
github-ops-mcp
A small MCP server that lets an LLM (Claude Desktop, Claude Code, or any MCP client) search GitHub, clone repos into a sandboxed workspace, and run common read-only git / gh operations. Personal project — see plan.md for the design.
1. Prerequisites
Make sure these are installed and working before you continue:
git --version # any recent git
gh --version # GitHub CLI — https://cli.github.com/
python3 --version # Python 3.11 or newerLog in to GitHub once (opens a browser):
gh auth loginVerify:
gh auth statusRelated MCP server: mcp-github
2. Install
git clone <this-repo> github_operation_mcp
cd github_operation_mcp
# Create a virtualenv (any Python 3.11+ works; example uses 3.14)
python3 -m venv .venv
source .venv/bin/activate
# Install the package + its one dependency (mcp SDK, pinned to v1.x)
pip install --upgrade pip
pip install -e .3. Run the server
Option A — stdio (for Claude Desktop / Claude Code)
python -m github_ops_mcp.server --stdioYou normally don't run this by hand — Claude Desktop launches it for you via the config in step 4.
Option B — HTTP / SSE (for remote clients / demos)
python -m github_ops_mcp.server --http --host 0.0.0.0 --port 8000The MCP endpoint is then at http://<host>:8000/mcp.
4. Wire it into Claude Desktop
Edit (or create) the config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add this entry (replace the two paths with your absolute paths):
{
"mcpServers": {
"github-ops": {
"command": "/Users/YOU/Documents/github_operation_mcp/.venv/bin/python",
"args": ["-m", "github_ops_mcp.server", "--stdio"],
"env": {
"WORKSPACE_ROOT": "/Users/YOU/Documents/github_operation_mcp/test_repos"
}
}
}
}Then fully quit Claude Desktop (Cmd+Q, not just close the window) and reopen it. You should see 25 tools appear under the github-ops server.
WORKSPACE_ROOT— optional. Everyclone_repocall lands under this directory as<owner>__<repo>/. If you omit it, the server defaults to aworkspace/folder next to the package.
5. Wire it into Claude Code
Either add the same block to a .mcp.json at the project root, or run:
claude mcp add github-ops \
/Users/YOU/Documents/github_operation_mcp/.venv/bin/python \
-- -m github_ops_mcp.server --stdio6. Try it
In Claude Desktop:
"Search for repositories about MCP servers" →
search_repos"Give me a full summary of
modelcontextprotocol/python-sdk" →generate_repo_summary"Clone
octocat/Hello-World" →clone_repo"What branches does it have?" →
list_branches"Show me the last 5 commits" →
list_commits"Any open PRs on
facebook/react?" →list_pull_requests
Tools (25)
Discovery —
search_repos,get_repo_info,summarize_readmeRepo stats —
get_repo_stats,get_contributors,get_language_breakdown,get_topics,get_license,get_releasesStretch stats —
get_default_branch_protection,get_commit_activity,get_network_infoComposite —
generate_repo_summarySetup —
clone_repo,pull_latestBranches —
list_branches,checkout_branch,list_commits,get_file_historyComparison —
get_status,get_diff,compare_branchesIssues & PRs —
list_open_issues,list_pull_requests,get_pr_diff
Every tool returns { ok: bool, data: ..., error: ... }.
Safety
All clones live under
WORKSPACE_ROOT(./workspace/by default). Path traversal (../) is blocked.gitandghsubcommands are whitelisted. Destructive commands (push,reset --hard,rebase,clean,branch -D,gh repo delete/edit, …) raisePermissionError.gh apicalls are restricted torepos/...endpoints.User inputs are passed as argv items, never shell-interpolated (
shell=False).Auth is not handled by this server — it relies on your existing
gh auth loginsession and git credentials.
Troubleshooting
Claude Desktop log shows
Read-only file system: '/workspace'— you're on an older build; pull latest, the default workspace now anchors to the package directory instead of the CWD.Every tool call errors with
unexpected keyword argument 'args'— you're on an older build;functools.wrapsis now used so FastMCP sees the real parameter names. Pull latest.gh: To get started with GitHub CLI, please run: gh auth login— rungh auth loginfrom a terminal, then restart Claude Desktop.Server doesn't appear in Claude Desktop — check the log at
~/Library/Logs/Claude/mcp-server-github-ops.log. Common issues: wrong Python path in the config, virtualenv not activated when you ranpip install -e ..
Layout
github_operation_mcp/
├── pyproject.toml
├── README.md
├── plan.md
├── test_repos/ # cloned repos land here (gitignored)
└── src/github_ops_mcp/
├── server.py # FastMCP app + --stdio/--http entrypoint
├── config.py # WORKSPACE_ROOT, timeouts
├── validators.py # owner_repo + branch name checks
├── sandbox.py # path resolution + traversal guard
├── git_wrapper.py # git subprocess wrapper (whitelist)
├── gh_wrapper.py # gh subprocess wrapper (whitelist)
└── tools/
├── discovery.py
├── setup.py
├── branches.py
├── comparison.py
├── issues_prs.py
├── repo_stats.py
├── repo_stats_ext.py
└── repo_summary.pyMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBqualityDmaintenanceAn MCP server that allows Claude and other MCP-compatible LLMs to interact with the GitHub API, supporting features like creating issues, getting repository information, listing issues, and searching repositories.4
- AlicenseNot gradedqualityDmaintenanceRead-only GitHub MCP server that lets assistants search and read repositories, issues, pull requests, commits, and file contents, scoped to the user's personal access token.MIT
- AlicenseBqualityAmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.12MIT
- AlicenseBqualityDmaintenanceMCP (Model Context Protocol) server for GitHub API integration. This server provides comprehensive tools for interacting with GitHub repositories, issues, pull requests, branches, and code search through a unified interface.1514MIT
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
A MCP server built for developers enabling Git based project management with project and personal…
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NityaShukla25/github-ops-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server