git-standup-mcp
# git-standup-mcp
MCP server that generates standup reports from your git history and posts them to Slack. Ask Claude what you did yesterday, or set up a cron job to post automatically every morning.
## Install
```bash
# Add to Claude Code
claude mcp add git-standup -- uv run --directory /path/to/git-standup-mcp git-standup-mcp
```
Or add to your MCP config manually:
```json
{
"mcpServers": {
"git-standup": {
"command": "uv",
"args": ["run", "--directory", "/path/to/git-standup-mcp", "git-standup-mcp"],
"env": {
"GIT_STANDUP_REPOS": "/path/to/repo1,/path/to/repo2",
"SLACK_STANDUP_WEBHOOK": "https://hooks.slack.com/services/..."
}
}
}
}
```
## Usage
Once connected, ask Claude:
- "What did I do yesterday?"
- "Give me a standup for the last 3 days"
- "Post my standup to Slack"
- "What repos do you have access to?"
## Slack Integration
Set up an [Incoming Webhook](https://api.slack.com/messaging/webhooks) for your standup channel, then set `SLACK_STANDUP_WEBHOOK`.
### Automatic daily posts (cron)
```bash
# Post yesterday's standup at 9am on weekdays
0 9 * * 1-5 cd /path/to/git-standup-mcp && \
GIT_STANDUP_REPOS="~/projects,~/work" \
SLACK_STANDUP_WEBHOOK="https://hooks.slack.com/..." \
uv run python -m git_standup_mcp.cron
```
```bash
# Dry run — see the report without posting
uv run python -m git_standup_mcp.cron --dry-run
# Monday morning — cover the weekend
uv run python -m git_standup_mcp.cron --days 3
# Filter by author
uv run python -m git_standup_mcp.cron --author "Anisha"
```
## Tools
### `git_standup`
Get a standup report of recent git activity across your repos.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `days` | int | 1 | Number of days to look back |
| `author` | string | null | Filter by author name (partial match) |
| `repos` | string | null | Comma-separated repo paths (overrides env) |
### `git_repos`
List all git repos the server can see.
### `post_to_slack`
Post a message to Slack via webhook.
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `message` | string | required | Message text (supports Slack markdown) |
| `channel_name` | string | null | Channel override (uses webhook default if not set) |
## Configuration
| Env var | Description |
|---------|-------------|
| `GIT_STANDUP_REPOS` | Comma-separated directories to scan for repos (default: ~/Documents) |
| `SLACK_STANDUP_WEBHOOK` | Slack Incoming Webhook URL for posting |
Repos are auto-discovered up to 2 levels deep.
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: git_repos lists available repositories, while git_standup generates activity reports. There is no overlap in functionality, making tool selection unambiguous for an agent.
Both tools follow a consistent snake_case naming pattern with the 'git_' prefix, maintaining perfect naming consistency throughout the set. This predictability aids agent understanding and usage.
With only two tools, the server feels under-scoped for its apparent domain of git activity reporting. While the tools cover core functionality, the lack of additional operations (e.g., configuration management, filtering options as separate tools) makes the surface thin and potentially limiting.
The server covers the basic workflow of listing repos and generating standup reports, but there are notable gaps. Missing operations include managing git-standup configurations, handling repo exclusions, or providing detailed commit analytics, which could hinder more complex agent tasks.