| .github/workflows | ||
| deploy | ||
| src | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| smithery.yaml | ||
| tsconfig.json | ||
GitHub MCP Server
MCP (Model Context Protocol) server for interacting with GitHub.
Note: This is a fork of smithery-ai/mcp-servers/github.
What's Changed in This Fork
- Self-hosted VPS deployment - Added Streamable HTTP transport for hosting on your own server
- Docker support - Dockerfile and docker-compose.yml for containerized deployment
- Nginx reverse proxy config - Ready-to-use nginx location block
- GitHub Actions auto-deploy - Automatic deployment on push to main
- Analytics dashboard - Built-in usage tracking and visual dashboard
- Flexible authentication - Support for token via query param, header, or environment variable
MCP Endpoint: https://mcp.techmavie.digital/github/mcp
Analytics Dashboard: https://mcp.techmavie.digital/github/analytics/dashboard
Quick Start (Hosted Server)
The easiest way to use this MCP server is via the hosted endpoint. No installation required!
Client Configuration
For Claude Desktop / Cursor / Windsurf, add to your MCP configuration:
{
"mcpServers": {
"github": {
"transport": "streamable-http",
"url": "https://mcp.techmavie.digital/github/mcp?token=YOUR_GITHUB_TOKEN"
}
}
}
Note: Replace
YOUR_GITHUB_TOKENwith your GitHub Personal Access Token.
Test with MCP Inspector
npx @modelcontextprotocol/inspector
# Select "Streamable HTTP"
# Enter URL: https://mcp.techmavie.digital/github/mcp?token=YOUR_GITHUB_TOKEN
Test with curl
# List all available tools
curl -X POST "https://mcp.techmavie.digital/github/mcp?token=YOUR_GITHUB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# Call the hello tool
curl -X POST "https://mcp.techmavie.digital/github/mcp?token=YOUR_GITHUB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"hello","arguments":{}}}'
Authentication
The server supports three ways to provide a GitHub token:
- Query Parameter (recommended):
?token=YOUR_TOKEN - Header:
X-GitHub-Token: YOUR_TOKEN - Environment Variable:
GITHUB_PERSONAL_ACCESS_TOKEN(server default)
Available Tools
Repository Tools
Tools for managing GitHub repositories:
get_commit: Get details for a specific commitlist_commits: Get list of commits in a branchlist_branches: List branches in a repositorycreate_or_update_file: Create or update a file in a repositorycreate_repository: Create a new GitHub repositoryget_file_contents: Get contents of a file or directoryfork_repository: Fork a repository to your account or organization
Search Tools
Tools for searching GitHub:
search_repositories: Search for GitHub repositoriessearch_code: Search for code across GitHub repositoriessearch_users: Search for GitHub users
Issue Tools
Tools for managing GitHub issues:
get_issue: Get details of a specific issueadd_issue_comment: Add a comment to an issuesearch_issues: Search for issues across repositoriescreate_issue: Create a new issuelist_issues: List issues in a repositoryupdate_issue: Update an existing issue
Pull Request Tools
Tools for managing pull requests:
get_pull_request: Get details of a specific pull requestupdate_pull_request: Update an existing pull requestlist_pull_requests: List pull requests in a repositorymerge_pull_request: Merge a pull requestget_pull_request_files: Get files changed in a pull requestget_pull_request_status: Get the status of a pull requestget_pull_request_review_comments: Get review comments (line-by-line code comments) for a pull requestcreate_pull_request_review_comment: Create a review comment on a pull request
Self-Hosting (VPS)
If you prefer to run your own instance, see deploy/DEPLOYMENT.md for detailed VPS deployment instructions with Docker and Nginx.
# Using Docker
docker compose up -d --build
# Or run directly
npm run build:tsc
npm run start:http
Local Development
# Install dependencies
npm install
# Run HTTP server in development mode
npm run dev:http
# Or build and run production version
npm run build:tsc
npm run start:http
# Test health endpoint
curl http://localhost:8080/health
Project Structure
├── src/
│ ├── index.ts # Main MCP server entry point (Smithery)
│ ├── http-server.ts # Streamable HTTP server for VPS
│ └── tools/
│ ├── issues.ts # Issue management tools
│ ├── pullrequests.ts # Pull request tools
│ ├── repositories.ts # Repository tools
│ └── search.ts # Search tools
├── deploy/
│ ├── DEPLOYMENT.md # VPS deployment guide
│ └── nginx-mcp.conf # Nginx reverse proxy config
├── .github/
│ └── workflows/
│ └── deploy-vps.yml # GitHub Actions auto-deploy
├── docker-compose.yml # Docker deployment config
├── Dockerfile # Container build config
├── package.json # Project dependencies
├── tsconfig.json # TypeScript configuration
└── README.md # This file