gitstandup
by muba00
README.md
# GitStandup MCP Server
> Generate daily standup notes from your git commits using AI
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that automatically collects your git commits from multiple repositories and helps AI assistants generate natural, comprehensive standup summaries.
## โจ Features
- ๐ฆ **Multi-repo support** - Track commits across all your projects
- ๐ค **User-specific** - Only shows your commits (filtered by git user.email)
- โฐ **Time-based** - Configurable lookback period (default: last 24 hours)
- ๐ฏ **Smart diff analysis** - Includes code changes with intelligent truncation
- ๐พ **Persistent config** - Remembers your repos in `~/.gitstandup/config.json`
- ๐งน **Clean output** - Skips generated files (lock files, minified code)
## ๐ Quick Start
### Installation
```bash
# Using npx (no installation needed)
npx -y gitstandup-mcp
# Or install globally
npm install -g gitstandup-mcp
```
### Setup with Claude Desktop
Add to your Claude Desktop config at `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"gitstandup": {
"command": "npx",
"args": ["-y", "gitstandup-mcp"]
}
}
}
```
### Setup with VS Code (GitHub Copilot)
Add to your VS Code MCP settings:
```json
{
"gitstandup": {
"type": "stdio",
"command": "npx",
"args": ["-y", "gitstandup-mcp"]
}
}
```
## ๐ Usage
Once configured, you can use natural language with your AI assistant:
```
"Generate my standup notes"
"What did I work on yesterday?"
"Show my commits from the last 2 days"
```
### First Time Setup
1. **Add your repositories:**
```
"Add /path/to/my/project to GitStandup"
```
2. **Generate standup notes:**
```
"Generate my standup notes"
```
3. **The AI will create a summary like:**
> Yesterday I:
>
> - Implemented OAuth authentication flow in the api-server
> - Fixed critical bug in payment processing
> - Added integration tests for user registration
## ๐ ๏ธ Available Tools
The server exposes four MCP tools that AI assistants can use:
### `generate_standup`
Generate standup notes from configured repositories.
**Parameters:**
- `hours` (optional): Number of hours to look back (default: 24)
- `repos` (optional): Array of specific repo paths to use
**Example:**
```typescript
{
"hours": 48, // Last 2 days
"repos": ["/path/to/repo1", "/path/to/repo2"] // Optional
}
```
### `add_repos`
Add repository paths to the configuration.
**Parameters:**
- `paths`: Array of absolute paths to git repositories
**Example:**
```typescript
{
"paths": ["/Users/you/projects/my-app", "/Users/you/projects/api"]
}
```
### `list_repos`
List currently configured repositories.
**Returns:** Array of configured repository paths
### `remove_repos`
Remove repository paths from the configuration.
**Parameters:**
- `paths`: Array of repository paths to remove
## ๐ง Development
```bash
# Clone the repository
git clone https://github.com/muba00/gitstandup.git
cd gitstandup
# Install dependencies
npm install
# Build
npm run build
# Test locally
node build/index.js
```
### Project Structure
```
gitstandup/
โโโ src/
โ โโโ index.ts # MCP server setup and tool definitions
โ โโโ git.ts # Git operations and commit collection
โ โโโ config.ts # Configuration management
โโโ build/ # Compiled JavaScript (generated)
โโโ package.json
```
## ๐ Configuration
Repository paths are stored in `~/.gitstandup/config.json`:
```json
{
"repos": ["/Users/you/projects/project1", "/Users/you/projects/project2"]
}
```
You can edit this file manually or use the `add_repos` and `remove_repos` tools.
## ๐ฆ Publishing to MCP Registry
This server is discoverable via the [GitHub MCP Registry](https://github.com/mcp) and [OSS MCP Community Registry](https://github.com/modelcontextprotocol/registry).
### For Maintainers
To publish a new version:
1. **Update version in both files:**
```bash
# Update version in package.json and server.json
npm version patch # or minor/major
```
2. **Build and publish to npm:**
```bash
npm run build
npm publish
```
3. **Install mcp-publisher (first time only):**
```bash
brew install mcp-publisher
# OR
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher && sudo mv mcp-publisher /usr/local/bin/
```
4. **Authenticate (first time only):**
```bash
mcp-publisher login github
```
5. **Update server.json version to match package.json and publish:**
```bash
mcp-publisher publish
```
The server will automatically appear in both the GitHub MCP Registry and the community registry, making it discoverable in VS Code, Claude Desktop, and other MCP-compatible clients.
## ๐ค Contributing
Contributions are welcome! Feel free to:
- ๐ Report bugs
- ๐ก Suggest new features
- ๐ง Submit pull requests
See [CONTRIBUTING.md](.github/CONTRIBUTING.md) for details.
## ๐ License
MIT License - see [LICENSE](LICENSE) for details
## ๐ Acknowledgments
Built with:
- [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk)
- [simple-git](https://github.com/steveukx/git-js)
- [Zod](https://github.com/colinhacks/zod)
---
**Note:** This tool only reads git commit history and does not modify your repositories.
TDQS
A4/5.0
Scored across 4 tools
Disambiguation5/5
Each tool targets a clear, distinct operation: adding, listing, generating from, and removing configured repositories. There is no overlap or ambiguity between them.
Naming Consistency5/5
All tool names follow the consistent verb_noun pattern in snake_case: add_repos, list_repos, generate_standup, remove_repos. This is perfectly predictable.
Tool Count5/5
With only 4 tools, the set is tightly scoped to its purpose of managing repository configuration and generating standup notes. Each tool earns its place with no redundancy.
Completeness5/5
The tool surface covers the full lifecycle of configuration: add, list, remove, and the core generation action. No obvious missing operations for the stated purpose.
Maintenance
ActivityInactive
ResponsivenessNo issues