loading…
Search for a command to run...
loading…
Generates daily GitHub work summaries by analyzing commits across all repositories a user owns or contributes to. It provides tools to fetch today's commit acti
Generates daily GitHub work summaries by analyzing commits across all repositories a user owns or contributes to. It provides tools to fetch today's commit activity and deduplicate repository-specific updates for easy reporting.
An MCP server that generates a daily GitHub work summary by analysing commits across all repositories the authenticated user owns or contributes to.
Designed for use with Claude Code, Qwen Code, and the MCP Inspector.
get_daily_summary, list_repositories, get_repo_commits_todayrepo scopegit clone <repo-url>
cd github-summary-mcp
uv sync
export GITHUB_TOKEN=ghp_your_token_here
uv run server.py
Edit server.py and change the mcp.run() call:
mcp.run(transport="http", host="127.0.0.1", port=8000)
Then run:
uv run server.py
npx @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector uv run server.py
Add the server to your Claude Code MCP configuration (~/.claude/claude_desktop_config.json or .mcp.json in your project):
{
"mcpServers": {
"github-summary": {
"command": "uv",
"args": ["run", "/absolute/path/to/github-summary-mcp/server.py"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}
Add to your Qwen Code MCP settings:
{
"mcpServers": {
"github-summary": {
"command": "uv",
"args": ["run", "/absolute/path/to/github-summary-mcp/server.py"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}
get_daily_summaryGenerate a complete daily work summary across all repositories.
No parameters required.
Returns:
{
"summary": "> Evorgs\n\n* Simplified layout structure in VendorMainLayout\n* Enhanced DashboardPage with better spacing\n\n> BMS\n\n* Work in payment feature\n* Add auto redirection to PayFast checkout page"
}
list_repositoriesList all repositories accessible to the authenticated user.
No parameters required.
Returns:
{
"repositories": [
{
"full_name": "octocat/Hello-World",
"name": "Hello-World",
"owner": "octocat",
"private": false,
"default_branch": "main"
}
]
}
get_repo_commits_todayGet today's commits for a specific repository.
Parameters:
| Name | Type | Description |
|---|---|---|
repo_name |
string | Short name (Hello-World) or full owner/repo string |
Returns:
{
"repo": "octocat/Hello-World",
"commits": [
{
"sha": "abc123ef",
"message": "Fix login redirect bug",
"files": ["auth/login.py", "tests/test_auth.py"],
"insertions": 12,
"deletions": 3,
"committed_at": "2024-01-15T09:30:00+00:00"
}
],
"summary": "> Hello-World\n\n* Fix login redirect bug"
}
github-summary-mcp/
│
├─ pyproject.toml # uv/hatch project config
├─ README.md
│
├─ server.py # FastMCP server + tool definitions
├─ github_client.py # GitHub REST API client (httpx)
├─ summarizer.py # Commit grouping & formatting
├─ utils.py # Date helpers, normalizers
│
└─ services/
└─ commit_service.py # Orchestration: fetches commits across all repos
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN |
Yes | GitHub Personal Access Token with repo scope |
The codebase is structured for easy extension:
summarizer.py logic with an Anthropic/OpenAI callpost_standup MCP tool in server.pysince parameter to CommitService.get_today_commits_all_reposCommitRecord.files field already carries filenames; fetch full diffs from GET /repos/{owner}/{repo}/commits/{sha}MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"github-summary-mcp": {
"command": "npx",
"args": []
}
}
}PRs, issues, code search, CI status
Database, auth and storage
Reference / test server with prompts, resources, and tools.
Secure file operations with configurable access controls.