Standup from your activity について
Standup from your activity は、GitHub、Jira、Linear、Slack の活動から日次スタンドアップの草稿を作るローカルの読み取り専用 MCP サーバーです。記録を作業項目ごとにまとめ、活動からブロッカーを検出します。更新を代わりに投稿することはありません。
主な機能
- 01日次スタンドアップ草稿の作成
- 02作業項目ごとの活動集約
- 03ブロッカーの検出と優先度付け
- 04週次活動の要約
- 05活動履歴の時系列整理
- 06データソースへの読み取り専用アクセス
活用シーン
- 01最近の活動から日次報告を準備する
- 02ブロッカーを確認し、週次の作業要約を作る
MCP 対応
MCP サーバーは、スタンドアップ草稿、ブロッカー検出、週次活動の要約、活動履歴の確認、ソース一覧に使う5つのツールをクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y standup-mcpGITHUB_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| days | integer | いいえ | デフォルトの期間の代わりに、現在から何日前までを対象にするかを指定します。 |
| since | string | いいえ | 対象期間の開始日時(ISO 形式)、例:2026-06-16。デフォルトを上書きします。デフォルトでは直近の営業日を対象とします(月曜日は金曜日までさかのぼります)。 |
詳細
standup-mcp
GitHub、Jira、Linear、Slackで実際に行った作業をもとに、毎日のスタンドアップ用の報告を作成します。
毎回のスタンドアップで、昨日のことを記憶を頼りに振り返ることになります。どのコミットをしたか、どの 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_summary | 1週間の活動を「完了」と「進行中」にまとめ、レビューと合計を含めます。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_TOKEN | GitHub | 読み取り専用 PAT。コミット、PR、レビューを読み取ります。 |
JIRA_BASE_URL JIRA_EMAIL JIRA_API_TOKEN | Jira | Cloud サイト、アカウントのメールアドレス、API トークン。チケットの移動を読み取ります。 |
LINEAR_API_KEY | Linear | 個人用 API キー。課題の状態変更とコメントを読み取ります。 |
SLACK_TOKEN | Slack | search: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 を使ってこのようなツールを開発しています。毎日のスタンドアップの手間を減らせたら、どのように活用しているかぜひお聞かせください。
- ウェブサイト:sathvickollu.com
- LinkedIn:linkedin.com/in/sathvic-kollu
issue やプルリクエストを歓迎します。
ライセンス
MIT。LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。