Skip to main content
ClaudeWave
MCP ServersOfficial Registry0 stars0 forksTypeScriptMITUpdated today
Install in Claude Code / Claude Desktop
Method: NPX · standup-mcp
Claude Code CLI
claude mcp add standup-mcp -- npx -y standup-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "standup-mcp": {
      "command": "npx",
      "args": ["-y", "standup-mcp"],
      "env": {
        "GITHUB_TOKEN": "<github_token>",
        "LINEAR_API_KEY": "<linear_api_key>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Detected environment variables
GITHUB_TOKENLINEAR_API_KEY
Use cases

MCP Servers overview

# standup-mcp

**Generate your daily standup from what you actually did, across GitHub, Jira, Linear, and Slack.**

[![npm version](https://img.shields.io/npm/v/standup-mcp.svg)](https://www.npmjs.com/package/standup-mcp)
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![node](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org)
[![MCP](https://img.shields.io/badge/Model%20Context%20Protocol-server-7b5cff.svg)](https://modelcontextprotocol.io)

Every standup, you stop and reconstruct yesterday from memory: which commits, which PR, which ticket you moved, that Slack thread where you said you were stuck. The work is already recorded across your tools. Re-typing it is the chore everyone hates, so updates come out vague ("worked on the thing") and real blockers go unsaid.

`standup-mcp` reads that activity back and writes the draft for you. You ask your AI assistant "what should I say at standup today?" and it answers from your real GitHub, Jira, Linear, and Slack activity: grouped by work item, in concrete deltas, with blockers it noticed on its own.

It is a standard [Model Context Protocol](https://modelcontextprotocol.io) server, so it works in any MCP client (Claude, Cursor, Cline, and more) on any model. It is **local and read-only**: nothing about your activity leaves your machine except the calls to those tools' own APIs, and it needs **no AI API key of its own**. The host client supplies the model.

## See it in 30 seconds (no accounts needed)

The server ships with a realistic demo dataset and runs against it automatically when no credentials are set, so you see the output before connecting anything:

```bash
npx -y standup-mcp --demo
```

That prints a full standup from a synthetic day across all four tools. Here is the headline tool:

```
# Standup: Jordan Lee
_since Tue Jun 16. Demo data, no credentials configured._

## Yesterday
- **PROJ-412 Biometric re-auth** · opened PR #128, 3 commits, latest "handle expired challenge edge case", moved to In Progress, posted an update
- **ENG-88 Rate-limit the export endpoint** · 2 commits, latest "tests for limiter window", moved to In Progress, posted an update
- **PROJ-407 Card dispute webhook** · merged PR #125, moved to In Review
- Reviewed PR #129: Tidy currency formatting helpers

## Today
- Continue **PROJ-412 Biometric re-auth**
- Continue **ENG-88 Rate-limit the export endpoint**
- Land PR #128: Add biometric re-auth (review pending)
- Review PR #130: Refactor request logging

## Blockers
- 🔴 **PROJ-412 Biometric re-auth** · flagged blocked: "Blocked on the vendor sandbox creds for PROJ-412. Waiting on infra to provision them before I can test the re-auth flow…"; awaiting review
```

Notice the GitHub commits, the GitHub PR, and the Jira move all collapsed under **PROJ-412**, and the blocker was lifted from a Slack message on its own. Nobody typed any of that.

(Running `npx -y standup-mcp` with no flag starts the MCP server on stdio, which is what an MCP client launches. Use `--demo` to see output in a plain terminal.)

## What it does

Five tools. Every one defaults to the last working day, and Monday automatically reaches back across the weekend, so you rarely pass arguments.

| Tool | What you get |
| --- | --- |
| `standup_draft` | Your standup: Yesterday / Today / Blockers, grouped by work item, in concrete deltas. The answer to "what should I say at standup?" |
| `blocker_scan` | Everything blocking you, ranked by severity, fused from explicit "blocked / waiting on" language, PRs awaiting review, stalled in-progress tickets, and help requests. |
| `weekly_summary` | A week of activity rolled into Shipped vs In progress, with reviews and totals. For 1:1s, weekly status, and self-reviews. |
| `activity_digest` | A chronological "what actually happened" across all tools, newest first, grouped by day. |
| `list_sources` | Which sources are wired, or that you are on demo data. |

### What you can ask

You talk to it in plain language through your AI client:

- "What should I say at standup today?"
- "Give me Monday's standup covering the weekend."
- "What is blocking me right now?"
- "Summarize what I shipped this week for my 1:1."
- "What did I actually do yesterday?"

### Principles it follows

- **Only observed activity.** It reports commits, PRs, ticket moves, and messages that exist. It never invents progress to fill a quiet day; a quiet day is reported as one.
- **Grouped by work item, not by tool.** Reviewers think in tickets, so the commit, the PR, the Jira move, and the Slack thread for PROJ-412 become one line, not four.
- **Blockers from signals, not self-report.** People forget to say they are stuck, so it infers it.
- **A draft, not an auto-post.** You get editable markdown to paste wherever your team already does standup (Slack, Geekbot, a doc, a ticket). It does not post on your behalf.

<details>
<summary><b>Example: blocker_scan</b></summary>

```
# Blockers
_since Tue Jun 16. Demo data._

**1 blocker**: 1 high, 0 medium, 0 low.

- 🔴 **PROJ-412 Biometric re-auth** (slack) · flagged blocked: "Blocked on the vendor sandbox creds for PROJ-412. Waiting on infra to provision them before I can test the re-auth flow…"; awaiting review
```
</details>

<details>
<summary><b>Example: weekly_summary</b></summary>

```
# Weekly summary: Jordan Lee
_the last 7 days. Demo data._

## Shipped
- **PROJ-407 Card dispute webhook**

## In progress
- **PROJ-412 Biometric re-auth**
- **ENG-88 Rate-limit the export endpoint**

## Reviews and support
- Reviewed 1 PR for teammates

_3 work items touched, 1 PR merged, 5 commits._
```
</details>

## Privacy

This is the part most tools gloss over. `standup-mcp` is built so that using it does not feel like installing surveillance on yourself:

- **Local.** It runs on your machine, inside your AI client. There is no standup-mcp server or account.
- **Read-only.** Every token it asks for is used only to read your activity. It never writes, posts, or moves anything.
- **No AI key, no third party.** It makes no LLM calls of its own. Your activity is sent only to the APIs of the tools you connect, and to your existing AI client's model. It is not sent to me or anyone else.
- **It is yours, not your manager's.** It generates your own update for you to review and edit, not a feed of your activity for someone else.

## Connect your tools

Set any subset. Whatever you configure, it uses; with nothing set, it stays in demo mode. Restart the server after changing these.

| Variable | Source | Notes |
| --- | --- | --- |
| `GITHUB_TOKEN` | GitHub | Read-only PAT. Reads your commits, PRs, and reviews. |
| `JIRA_BASE_URL` `JIRA_EMAIL` `JIRA_API_TOKEN` | Jira | Cloud site, account email, and an [API token](https://id.atlassian.com/manage-profile/security/api-tokens). Reads your ticket moves. |
| `LINEAR_API_KEY` | Linear | A [personal API key](https://linear.app/settings/api). Reads your issue state changes and comments. |
| `SLACK_TOKEN` | Slack | A user token (`xoxp`) with `search:read` scans your own messages for blocker language. With a bot token instead, also set `SLACK_CHANNELS` (comma-separated channel ids) since bots cannot search. |
| `STANDUP_NAME` | optional | Display name for the standup's owner. Without it, the GitHub handle is used. |

Verify your connections before wiring it into a client:

```bash
GITHUB_TOKEN=ghp_xxx LINEAR_API_KEY=lin_xxx npx -y standup-mcp --check
```

It prints, per source, the authenticated identity or a clear error.

## Connect your AI client

`standup-mcp` speaks the Model Context Protocol, so any MCP-capable client can use it, whichever model is behind it: Claude Desktop, Claude Code, Cursor, Cline, Continue, Zed, Windsurf, and more. The server uses no AI API key of its own.

### Claude Desktop

Add this to `claude_desktop_config.json` (Settings, Developer, Edit Config), then restart Claude Desktop:

```json
{
  "mcpServers": {
    "standup": {
      "command": "npx",
      "args": ["-y", "standup-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token",
        "JIRA_BASE_URL": "https://your-company.atlassian.net",
        "JIRA_EMAIL": "you@company.com",
        "JIRA_API_TOKEN": "your-jira-token",
        "LINEAR_API_KEY": "lin_api_your_key",
        "SLACK_TOKEN": "xoxp-your-token"
      }
    }
  }
}
```

Leave the `env` block out entirely to run in demo mode first. Include only the sources you use.

### Claude Code

```bash
claude mcp add standup \
  -e GITHUB_TOKEN=ghp_your_token \
  -e LINEAR_API_KEY=lin_api_your_key \
  -- npx -y standup-mcp
```

### Cursor, Cline, Continue, Zed, Windsurf, and others

These read the same `mcpServers` JSON as Claude Desktop, in the client's own MCP config. Use the block above. The server is identical; only the model driving the client differs.

## How it works

The design goal is a clean seam between each tool and the standup logic.

- **One activity model.** GitHub commits, Jira moves, Linear state changes, and Slack messages all normalize to a single `ActivityEvent`. Nothing downstream knows which tool a fact came from, which is exactly what lets it group by work item across tools.
- **One provider, many sources.** Each source is an independent read-only client behind a common interface. The aggregator fans out to whichever are configured and tolerates any one failing, so a misconfigured Slack token never sinks your standup.
- **Pure-function engine.** Grouping, blocker detection, and the draft are pure functions over normalized events. They run identically on demo data and live data, and the tests run them directly.
- **No model in the server.** The server assembles a factual draft; your AI client phrases it. That is why it needs no AI key and why it can promise it never invents work.

```
src/
  index.ts            MCP server, stdio transport, --demo/--check/--help
  config.ts           per-source env resolution, demo-mode detection
  window.ts           the weekend-aware "since 

What people ask about standup-mcp

What is sathvic-kollu/standup-mcp?

+

sathvic-kollu/standup-mcp is mcp servers for the Claude AI ecosystem with 0 GitHub stars.

How do I install standup-mcp?

+

You can install standup-mcp by cloning the repository (https://github.com/sathvic-kollu/standup-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is sathvic-kollu/standup-mcp safe to use?

+

sathvic-kollu/standup-mcp has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.

Who maintains sathvic-kollu/standup-mcp?

+

sathvic-kollu/standup-mcp is maintained by sathvic-kollu. The last recorded GitHub activity is from today, with 0 open issues.

Are there alternatives to standup-mcp?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy standup-mcp to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: sathvic-kollu/standup-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/sathvic-kollu-standup-mcp)](https://claudewave.com/repo/sathvic-kollu-standup-mcp)
<a href="https://claudewave.com/repo/sathvic-kollu-standup-mcp"><img src="https://claudewave.com/api/badge/sathvic-kollu-standup-mcp" alt="Featured on ClaudeWave: sathvic-kollu/standup-mcp" width="320" height="64" /></a>

More MCP Servers

standup-mcp alternatives