Skip to main content
Glama
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