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
- Alicense-qualityDmaintenanceRead-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
- AlicenseDqualityDmaintenanceA lightweight MCP server for bringing GitHub repositories into context for large language models, enabling repository analysis, file access, and search without local cloning.496Apache 2.0
- AlicenseBqualityAmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.12MIT
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