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
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