mcpField
S
Standup from your activity

Standup from your activity

ローカル
github.com生産性019 週間前に更新

Standup from your activity について

Standup from your activity は、GitHub、Jira、Linear、Slack の活動から日次スタンドアップの草稿を作るローカルの読み取り専用 MCP サーバーです。記録を作業項目ごとにまとめ、活動からブロッカーを検出します。更新を代わりに投稿することはありません。

主な機能

  1. 01日次スタンドアップ草稿の作成
  2. 02作業項目ごとの活動集約
  3. 03ブロッカーの検出と優先度付け
  4. 04週次活動の要約
  5. 05活動履歴の時系列整理
  6. 06データソースへの読み取り専用アクセス

活用シーン

  1. 01最近の活動から日次報告を準備する
  2. 02ブロッカーを確認し、週次の作業要約を作る

MCP 対応

MCP サーバーは、スタンドアップ草稿、ブロッカー検出、週次活動の要約、活動履歴の確認、ソース一覧に使う5つのツールをクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sathvic-kollu-standup": {
"command": "npx",
"args": [
"-y",
"standup-mcp"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"JIRA_BASE_URL": "<JIRA_BASE_URL>",
"JIRA_EMAIL": "<JIRA_EMAIL>",
"JIRA_API_TOKEN": "<JIRA_API_TOKEN>",
"LINEAR_API_KEY": "<LINEAR_API_KEY>",
"SLACK_TOKEN": "<SLACK_TOKEN>",
"SLACK_CHANNELS": "<SLACK_CHANNELS>",
"STANDUP_NAME": "<STANDUP_NAME>",
"STANDUP_DEMO_MODE": "<STANDUP_DEMO_MODE>"
}
}
}
}
起動コマンドnpx -y standup-mcp
設定が必要な環境変数
GITHUB_TOKENシークレットGitHub read-only personal access token. Enables commits, PRs, and reviews. Leave all sources unset to use the built-in demo data.
JIRA_BASE_URLYour Jira Cloud site, e.g. https://your-company.atlassian.net.
JIRA_EMAILAtlassian account email the API token belongs to.
JIRA_API_TOKENシークレットJira API token from id.atlassian.com. Read-only use.
LINEAR_API_KEYシークレットLinear personal API key (read-only). Enables issue state changes and comments.
SLACK_TOKENシークレットSlack token with read scopes. Enables scanning your own messages for blocker language.
SLACK_CHANNELSOptional comma-separated channel ids to scan when message search is unavailable.
STANDUP_NAMEOptional display name for the standup's owner.
STANDUP_DEMO_MODESet to true to force the demo dataset even when credentials are present.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmstandup-mcp0.1.0

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
daysintegerいいえデフォルトの期間の代わりに、現在から何日前までを対象にするかを指定します。
sincestringいいえ対象期間の開始日時(ISO 形式)、例:2026-06-16。デフォルトを上書きします。デフォルトでは直近の営業日を対象とします(月曜日は金曜日までさかのぼります)。

詳細

standup-mcp

GitHub、Jira、Linear、Slackで実際に行った作業をもとに、毎日のスタンドアップ用の報告を作成します。

npm version license node MCP

毎回のスタンドアップで、昨日のことを記憶を頼りに振り返ることになります。どのコミットをしたか、どの PR を作成したか、どのチケットを進めたか、行き詰まっていると伝えた Slack のスレッドはどれだったか。作業の記録はすでにツール全体に残っています。それを入力し直すのは誰もが嫌がる手間で、そのため報告は曖昧になり(「あれに取り組みました」など)、本当のブロッカーは伝えられないままになります。

standup-mcp はその活動記録を読み取り、代わりに報告の下書きを作成します。AI アシスタントに「今日のスタンドアップでは何を話せばいいですか?」と尋ねると、実際の GitHub、Jira、Linear、Slack の活動をもとに、作業項目ごとにまとめ、具体的な変更点と、自動で検出したブロッカーを含めて回答します。

標準的な Model Context Protocol サーバーなので、どのモデルでも、あらゆる MCP クライアント(Claude、Cursor、Cline など)で動作します。ローカルで読み取り専用です。各ツールの API 呼び出しを除き、活動データがマシンの外に送信されることはなく、独自の AI API キーも不要です。モデルはホスト側のクライアントが提供します。

アカウント不要で30秒で試す

サーバーには現実的なデモデータセットが付属しており、認証情報が設定されていない場合は自動的にそのデータで実行されるため、何も接続する前に出力を確認できます。

npx -y standup-mcp --demo

これにより、4つのツールすべてを使った架空の一日の活動から、スタンドアップ報告が出力されます。主なツールの例を紹介します。

# 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

GitHub のコミット、GitHub の PR、Jira のステータス変更がすべて PROJ-412 にまとめられており、ブロッカーは Slack のメッセージから自動的に検出されています。これらを入力した人はいません。

(フラグを付けずに npx -y standup-mcp を実行すると、MCP クライアントが起動する標準入出力上で MCP サーバーが起動します。通常のターミナルで出力を見るには --demo を使います。)

できること

ツールは5つあります。どのツールも既定では直近の稼働日を対象とし、月曜日には自動的に週末の分までさかのぼるため、引数を指定する必要はほとんどありません。

ツール得られる情報
standup_draft作業項目ごとにまとめた、具体的な変更点を含む「昨日/今日/ブロッカー」のスタンドアップ報告です。「スタンドアップで何を話せばいいか?」への回答です。
blocker_scan明示的な「ブロック中/待機中」の記述、レビュー待ちの PR、停滞している進行中のチケット、支援依頼を統合し、深刻度順に並べたすべてのブロッカーです。
weekly_summary1週間の活動を「完了」と「進行中」にまとめ、レビューと合計を含めます。1対1の面談、週次報告、自己評価に使えます。
activity_digestすべてのツールを横断した「実際に起きたこと」を、新しい順に日ごとにまとめた時系列です。
list_sources接続済みのソース、またはデモデータを使用中であることを確認できます。
質問の例

AI クライアントを通じて、普段の言葉で尋ねられます。

  • 「今日のスタンドアップでは何を話せばいいですか?」
  • 「週末の分も含めて、月曜日のスタンドアップをまとめてください。」
  • 「今、何がブロッカーになっていますか?」
  • 「今週完了したことを、1対1の面談用にまとめてください。」
  • 「昨日、実際には何をしましたか?」
その原則
  • 観測されたアクティビティのみ。 実際に存在するコミット、PR、チケットの移動、メッセージを報告します。静かな日を埋めるために進捗を捏造することはありません。静かな日は、そのまま静かな日として報告します。
  • ツール別ではなく、作業項目別にまとめます。 レビュアーはチケット単位で考えるため、PROJ-412 のコミット、PR、Jira の移動、Slack のスレッドを4行ではなく1行にまとめます。
  • 自己申告ではなく、兆候からブロッカーを検出します。 行き詰まったことを伝え忘れる人もいるため、兆候から推測します。
  • 自動投稿ではなく、下書きです。 チームが普段スタンドアップに使っている場所(Slack、Geekbot、ドキュメント、チケット)に貼り付けられる、編集可能な Markdown を出力します。ユーザーに代わって投稿することはありません。
例:blocker_scan
# 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
例:weekly_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._

プライバシー

ここは多くのツールが説明を避けている部分です。standup-mcp は、自分自身を監視するツールをインストールするような感覚にならないように設計されています。

  • ローカルで動作。 AI クライアント内で、お使いのマシン上で実行されます。standup-mcp のサーバーやアカウントはありません。
  • 読み取り専用。 要求するトークンはすべて、アクティビティの読み取りにのみ使用します。書き込み、投稿、移動を行うことはありません。
  • AI キー不要、第三者なし。 独自に LLM を呼び出すことはありません。アクティビティは、接続したツールの API と、既存の AI クライアントのモデルにのみ送信されます。私や他の誰かに送信されることはありません。
  • あなた自身のためのものであり、マネージャーのためのものではありません。 他の誰かにアクティビティをフィードするのではなく、あなた自身が確認・編集するための更新内容を生成します。

ツールを接続する

必要なものだけ設定してください。設定したものはすべて使用され、何も設定しない場合はデモモードのままです。変更後はサーバーを再起動してください。

変数ソース備考
GITHUB_TOKENGitHub読み取り専用 PAT。コミット、PR、レビューを読み取ります。
JIRA_BASE_URL JIRA_EMAIL JIRA_API_TOKENJiraCloud サイト、アカウントのメールアドレス、API トークン。チケットの移動を読み取ります。
LINEAR_API_KEYLinear個人用 API キー。課題の状態変更とコメントを読み取ります。
SLACK_TOKENSlacksearch:read を持つユーザートークン(xoxp)を使うと、自分のメッセージを検索してブロッカーに関する表現を検出します。代わりにボットトークンを使う場合は、ボットは検索できないため、SLACK_CHANNELS(カンマ区切りのチャンネル ID)も設定してください。
STANDUP_NAME任意スタンドアップの所有者の表示名。設定しない場合は GitHub のハンドル名が使われます。

クライアントに接続する前に、接続を確認してください。

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

ソースごとに、認証済みの ID または明確なエラーが表示されます。

AI クライアントを接続する

standup-mcp は Model Context Protocol に対応しているため、Claude Desktop、Claude Code、Cursor、Cline、Continue、Zed、Windsurf など、MCP 対応のクライアントであれば、背後で使用するモデルを問わず利用できます。サーバー自体に AI API キーは不要です。

Claude Desktop

これを claude_desktop_config.json に追加し(Settings、Developer、Edit Config)、Claude Desktop を再起動してください。

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

まずはデモモードで実行する場合、env ブロック全体を省略してください。使用するソースのみを含めてください。

Claude Code
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 など

これらのクライアントは、Claude Desktop と同じ mcpServers JSON を、各クライアント独自の MCP 設定から読み込みます。上記のブロックを使用してください。サーバーは同一で、異なるのはクライアントを動かすモデルのみです。

仕組み

設計上の目標は、各ツールとスタンドアップのロジックとの間を明確に切り分けることです。

  • 単一のアクティビティモデル。 GitHub のコミット、Jira の移動、Linear の状態変更、Slack のメッセージはすべて、単一の ActivityEvent に正規化されます。後続の処理は、ある情報がどのツールから来たのかを認識しません。だからこそ、ツールをまたいで作業項目ごとにグループ化できます。
  • 1 つのプロバイダー、多数のソース。 各ソースは、共通インターフェースの背後にある独立した読み取り専用クライアントです。アグリゲーターは設定されたソースに対して並列に処理を振り分け、どれか 1 つが失敗しても処理を続けるため、Slack トークンの設定ミスでスタンドアップ全体が失敗することはありません。
  • 純粋関数のエンジン。 グループ化、ブロッカー検出、下書きの生成は、正規化されたイベントを処理する純粋関数です。デモデータでも実データでも同じように実行され、テストから直接呼び出されます。
  • サーバーにモデルはありません。 サーバーが事実に基づく下書きを組み立て、AI クライアントがその文章を整えます。そのため AI キーは不要で、作業内容を決してでっち上げないと保証できます。
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 last standup" window
  provider.ts         aggregator that fans out to configured sources
  types.ts            ActivityEvent and the source/provider interfaces
  normalize.ts        work-item key extraction, signal and noise detection
  sources/            github, jira, linear, slack clients, plus the demo provider
  analytics/          grouping, blockers, draft, weekly, digest (pure functions)
  tools/              one MCP tool per file, thin wrappers over analytics

検証済みの項目

  • 5 つすべてのツールが、実際の MCP stdio を使ってエンドツーエンドで動作します(npm test)。
  • 解析のヒューリスティック(作業項目キー、ブロッカーを示す表現、ノイズフィルター)は単体テスト済みです(test/normalize.test.ts)。
  • エンジンは、週末を含む月曜日のウィンドウ、作業項目のグループ化、ブロッカーの深刻度、組み立てられた下書きも含めて、単体テスト済みです(test/draft.test.ts)。
  • デモデータセットに対してエンジン全体を実行し、ツール間で結果が一致することを検証しています(npm run smoke)。

デモデータセットでエンジンの動作を確認できます。ただし、すべての実際のアカウント形式に対して各ライブクライアントを検証するものではありません。そのため、解析レイヤーは個別に単体テストされ、各ソースは小さく、さまざまな状況に対応できるようにしています。--check を実行してご自身の接続を確認してください。また、アカウントでレスポンスの形式を正しく解析できない場合は、issue を作成してください。

ロードマップ

  • 会議を進行する PM 向けに複数人の状況をまとめる team_standup ビュー
  • カレンダーソース(会議をアクティビティとして扱い、会議が多い日も実態に即して表示します)
  • GitLab と Bitbucket
  • サイクルタイムや「前回確認してからの変更点」のダイジェスト
  • トークンに加え、OAuth フローにも対応

Sathvic Kollu が開発

SaaS やフィンテックのチームでデリバリーを担当しており、Claude Code を使ってこのようなツールを開発しています。毎日のスタンドアップの手間を減らせたら、どのように活用しているかぜひお聞かせください。

issue やプルリクエストを歓迎します。

ライセンス

MIT。LICENSE をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。