GithubStats_MCP
GitHub MCP
A TypeScript-based Model Context Protocol (MCP) server for inspecting public GitHub data through tools that can be consumed by MCP-compatible clients such as Cursor or Claude Desktop.
What this project does
The server currently exposes two tools:
hello: returns a friendly greeting and serves as a simple protocol sanity check.github_user_stats: fetches a GitHub username’s public profile metadata, repository activity totals, recent public events, and pull request insights in one response.
The implementation uses the GitHub REST API to gather public profile information and formats the output into human-readable summaries.
Features
Lightweight MCP server over stdio transport
Public GitHub profile and repository stats gathering
Pull request insights including:
total PR count
merged PR count
co-authored PR count
most targeted repository
Optional authentication via a GitHub token to reduce unauthenticated rate-limit issues
Test coverage for formatting and helper logic
Getting started
1. Install dependencies
git clone https://github.com/<your-username>/github_mcp.git
cd github_mcp
npm install2. Configure environment variables
Create a .env file in the project root if you want to use a GitHub token:
GITHUB_TOKEN=your_github_personal_access_tokenThis is optional, but recommended for smoother API usage.
3. Run the server
npm run devThe server runs over stdio, so stdout is reserved for MCP protocol traffic and logs are written to stderr.
Example tool calls
Hello
{
"name": "Mahesh"
}GitHub stats
{
"username": "Maheshkumarjena"
}Scripts
npm run devstarts the MCP server in development modenpm run buildcompiles the TypeScript projectnpm testruns the Vitest test suite
Project structure
src/index.tsbootstraps the MCP serversrc/tools.tsregisters the available MCP toolssrc/github.tswraps GitHub API requests and data aggregationsrc/schemas.tsdefines tool input validation with Zodsrc/types.tscontains shared TypeScript interfacessrc/utils.tsformats and transforms data for outputtests/contains unit tests for helper behavior
Development notes
The current implementation is intentionally small and focused on a solid foundation for GitHub data access. It is a good starting point for adding more GitHub endpoints and exposing additional MCP tools.
Contributing
Fork the repository
Create a feature branch
Extend the GitHub client in
src/github.tsor add new tools insrc/tools.tsRun
npm testandnpm run buildbefore opening a pull request