git-repo-brief
MCP server that provides structured briefs for public GitHub repositories, including metadata, key files, release notes, and activity snapshots.
README
git-repo-brief
An MCP (Model Context Protocol) server that generates structured briefs for public GitHub repositories. Get comprehensive repository information including overview, key files, release notes, and activity snapshots.
Features
- repo_overview: Get repository metadata (name, description, stars, forks, language, topics, license, timestamps)
- extract_key_files: Fetch contents of key files (README.md, LICENSE, package.json, pyproject.toml)
- release_notes: Get recent release notes with tag names, descriptions, and dates
- activity_snapshot: Get activity metrics (last commit, open issues/PRs, contributors count)
Installation
npm install
npm run build
Usage
As MCP Server (stdio mode)
# Run directly
npm start
# Or after building
node dist/cli.js
As HTTP Server
npm start -- --http
# or
HTTP_PORT=3001 node dist/cli.js --http
MCP Client Configuration
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"git-repo-brief": {
"command": "node",
"args": ["/path/to/git-repo-brief/dist/cli.js"]
}
}
}
Tools
repo_overview
Get a comprehensive overview of a GitHub repository.
Input:
{
"repo_url": "https://github.com/owner/repo"
}
Output:
{
"ok": true,
"data": {
"name": "repo",
"full_name": "owner/repo",
"description": "Repository description",
"stars": 1234,
"forks": 567,
"language": "TypeScript",
"topics": ["mcp", "github"],
"license": "MIT",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z",
"default_branch": "main",
"homepage": "https://example.com",
"owner": {
"login": "owner",
"avatar_url": "https://github.com/owner.png",
"type": "User"
}
},
"meta": {
"source": "https://api.github.com/repos/owner/repo",
"retrieved_at": "2024-01-15T10:00:00Z",
"pagination": { "next_cursor": null },
"warnings": []
}
}
extract_key_files
Fetch contents of key files from a repository.
Input:
{
"repo_url": "https://github.com/owner/repo",
"paths": ["README.md", "package.json"]
}
Output:
{
"ok": true,
"data": {
"files": [
{
"path": "README.md",
"content": "# Project\n\nDescription...",
"size": 1234,
"encoding": "utf-8"
},
{
"path": "package.json",
"content": "{\"name\": \"project\"}",
"size": 456,
"encoding": "utf-8"
}
],
"default_branch": "main"
},
"meta": {
"retrieved_at": "2024-01-15T10:00:00Z",
"warnings": []
}
}
release_notes
Get recent release notes from a repository.
Input:
{
"repo_url": "https://github.com/owner/repo",
"limit": 5
}
Output:
{
"ok": true,
"data": {
"releases": [
{
"tag_name": "v1.0.0",
"name": "Version 1.0.0",
"body": "## Changes\n- Feature A\n- Bug fix B",
"published_at": "2024-01-01T00:00:00Z",
"prerelease": false,
"draft": false,
"html_url": "https://github.com/owner/repo/releases/tag/v1.0.0"
}
],
"total_count": 1
},
"meta": {
"retrieved_at": "2024-01-15T10:00:00Z",
"pagination": { "next_cursor": null },
"warnings": []
}
}
activity_snapshot
Get a snapshot of recent repository activity.
Input:
{
"repo_url": "https://github.com/owner/repo"
}
Output:
{
"ok": true,
"data": {
"last_commit_date": "2024-01-14T15:30:00Z",
"last_commit_message": "fix: resolve parsing issue",
"open_issues_count": 25,
"open_prs_count": 8,
"contributors_count": 42,
"watchers_count": 100,
"has_wiki": true,
"has_discussions": true
},
"meta": {
"retrieved_at": "2024-01-15T10:00:00Z",
"warnings": []
}
}
HTTP API Endpoints
When running in HTTP mode:
GET /health- Health checkGET /tools- List available toolsPOST /tools/repo_overview- Get repository overviewPOST /tools/extract_key_files- Extract key filesPOST /tools/release_notes- Get release notesPOST /tools/activity_snapshot- Get activity snapshot
Example HTTP Request
curl -X POST http://localhost:3000/tools/repo_overview \
-H "Content-Type: application/json" \
-d '{"repo_url": "https://github.com/microsoft/vscode"}'
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
GITHUB_TOKEN |
- | GitHub personal access token (optional, increases rate limit from 60 to 5000 req/hour) |
REQUEST_DELAY_MS |
100 | Delay between requests for rate limiting |
REQUEST_TIMEOUT_MS |
30000 | Request timeout in milliseconds |
TRANSPORT_MODE |
stdio | Transport mode: stdio or http |
HTTP_PORT |
3000 | HTTP server port (when using HTTP transport) |
Rate Limiting
The server implements polite rate limiting:
- Default delay of 100ms between requests
- Handles GitHub API rate limit responses gracefully
- Optional GitHub token support for higher rate limits
Response Format
All responses follow the standard envelope format:
Success Response
{
"ok": true,
"data": { ... },
"meta": {
"source": "optional API URL",
"retrieved_at": "ISO-8601 timestamp",
"pagination": { "next_cursor": null },
"warnings": []
}
}
Error Response
{
"ok": false,
"error": {
"code": "INVALID_INPUT | UPSTREAM_ERROR | RATE_LIMITED | TIMEOUT | PARSE_ERROR | INTERNAL_ERROR",
"message": "Human readable message",
"details": { ... }
},
"meta": {
"retrieved_at": "ISO-8601 timestamp"
}
}
Development
# Install dependencies
npm install
# Run in development mode
npm run dev
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Type check
npm run typecheck
# Build
npm run build
Testing
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run with coverage
npm run test:coverage
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.