github-mcp-server
Provides tools to list repositories, view file trees, read files, search code, list issues, get commits, and retrieve repository statistics via the GitHub API.
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-mcp-serverShow me my recent repositories"
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-mcp-server
A minimal MCP server for GitHub in ~140 lines of Python. Browse repos, read code, search, and get insights — all through natural language via Claude, Cursor, or any MCP client.
Tools
Tool | Description |
| List repositories with language, stars, and last update |
| View the file tree of any repo |
| Read any file's content |
| Search code across your repos |
| Get open/closed issues |
| Recent commit history |
| Languages breakdown, stars, forks, dates |
Related MCP server: GitHub MCP Server
Quick Start
# Clone
git clone https://github.com/ArnabbLank/github-mcp-server.git
cd github-mcp-server
# Install
pip install -e .
# Configure
cp .env.example .env
# Edit .env with your GitHub token (Settings → Developer settings → Personal access tokens)
# Run
mcp dev server.pyConnect to Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"github": {
"command": "python",
"args": ["/path/to/github-mcp-server/server.py"],
"env": {
"GITHUB_TOKEN": "ghp_your_token",
"GITHUB_OWNER": "your_username"
}
}
}
}Restart Claude Desktop. You can now ask things like:
"Show me my recent repos"
"Read the README from my EnvCraft project"
"Search for uses of FastAPI across my repos"
"What issues are open on github-mcp-server?"
How It Works
This server implements the Model Context Protocol using fastmcp. Each tool is a Python function decorated with @mcp.tool() — the MCP client (Claude, Cursor) discovers them automatically and calls them when relevant.
┌─────────────┐ MCP (stdio/SSE) ┌──────────────┐ HTTPS ┌────────┐
│ Claude/Cursor│ ◄──────────────────────────► │ server.py │ ◄──────────────► │ GitHub │
│ (MCP Client)│ │ (MCP Server) │ │ API │
└─────────────┘ └──────────────┘ └────────┘Add Your Own Tool
@mcp.tool()
async def my_tool(repo: str, owner: str = "") -> str:
"""Description shown to the LLM."""
owner = owner or OWNER
data = await _get(f"/repos/{owner}/{repo}/whatever")
return format_data(data)That's it. The LLM sees the function name, docstring, and parameter types — no extra config needed.
Token Permissions
The GitHub token needs these scopes:
repo— for private repo access (optional, skip for public-only)read:user— for listing repos
Generate one at: https://github.com/settings/tokens
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/ArnabbLank/github-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server