GitPulse - Comprehensive AI-powered GitHub repository monitoring through MCP. Track commits, PRs, issues, releases, workflows, and repository statistics via simple tool calls. Built with FastMCP for seamless AI assistant integration.
Fork the repo, then run:
git clone https://github.com/kyler505/gitpulse.git
cd gitpulse
conda create -n mcp-server python=3.13
conda activate mcp-server
pip install -r requirements.txtpython src/server.py
# then in another terminal run:
npx @modelcontextprotocol/inspectorOpen http://localhost:3000 and connect to http://localhost:8000/mcp using "Streamable HTTP" transport (NOTE THE /mcp!).
Click the "Deploy to Render" button above.
- Fork this repository
- Connect your GitHub account to Render
- Create a new Web Service on Render
- Connect your forked repository
- Render will automatically detect the
render.yamlconfiguration
Your server will be available at https://your-service-name.onrender.com/mcp (NOTE THE /mcp!)
# Get recent commits
fetchNewCommits("microsoft/vscode", per_page=10)
# Check open pull requests
fetchNewPRs("facebook/react", state="open", per_page=5)
# Find critical issues
fetchNewIssues("nodejs/node", state="open", labels="critical,bug")
# Get repository health overview
getRepoStats("torvalds/linux")# Monitor latest releases
fetchReleases("python/cpython", per_page=5)
# Check GitHub Actions status
fetchWorkflowRuns("vercel/next.js", status="completed", per_page=10)Set your GitHub token as an environment variable for authenticated access and higher rate limits:
export GITHUB_TOKEN=your_github_personal_access_tokenWithout a token, the server uses GitHub's public API with lower rate limits.
Add more tools by decorating functions with @mcp.tool:
@mcp.tool
def fetchNewCommits(repository: str, per_page: int = 30) -> list:
"""Fetch recent commits from a GitHub repository."""
# Implementation here
passgreet: Welcome message from GitPulseget_server_info: Server information and configuration status
fetchNewCommits: Fetch recent commits with filtering by date and paginationfetchNewPRs: Fetch pull requests with state filtering (open/closed/all)fetchNewIssues: Fetch issues with state and label filtering, excluding PRsfetchReleases: Fetch repository releases with download counts and asset infogetRepoStats: Get comprehensive repository statistics and health metricsfetchWorkflowRuns: Monitor GitHub Actions workflow runs with status filtering
- 🔐 Authentication: Supports both GitHub token authentication and public API access
- 📊 Rich Data: Returns comprehensive information including stats, labels, assignees, and metadata
- 🔍 Advanced Filtering: Filter by state, labels, branches, status, and date ranges
- 📈 Health Metrics: Repository health scoring based on best practices
- ⚡ Rate Limit Aware: Respects GitHub API limits with intelligent pagination
- 🛡️ Error Handling: Robust error handling for all GitHub API interactions