MCP Workboard について
MCP Workboard は WorkBoard の OKR・戦略実行プラットフォームを MCP に接続し、チームや管理者によるユーザー、目標、主要な成果、ワークストリームの管理を支援します。ローカル実行とトークン保護を重視し、OAuth 認証ツールも備えています。
主な機能
- 01ユーザーとアクセスロールの管理
- 02目標と主要な成果の取得・作成
- 03主要な成果の進捗更新
- 04チームのワークストリーム管理
- 05ローカル実行と API トークン保護
- 06OAuth 認証状態ツール
活用シーン
- 01個人またはチームの OKR の確認
- 02週次チェックインでの主要な成果の進捗更新
- 03目標の作成とチームのワークストリーム管理
MCP 対応
MCP サーバーとして、WorkBoard のユーザー、目標、主要な成果、ワークストリームのツールに加え、認証状態と OAuth フローを MCP クライアントに公開します。stdio に対応し、Streamable HTTP も設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP WorkBoard CrunchTools
WorkBoard OKR および戦略実行プラットフォーム向けの、安全な MCP(Model Context Protocol)サーバーです。
概要
この MCP サーバーは、次のように設計されています。
- デフォルトで安全 - 脅威モデリング、入力検証、トークン保護
- サードパーティサービス不要 - stdio 経由でローカル実行され、API トークンがマシンの外に出ることはありません
- クロスプラットフォーム対応 - Linux、macOS、Windows で動作します
- 自動更新 - GitHub Actions が CVE を監視し、依存関係を更新します
- コンテナー化 - Hummingbird Python ベースイメージ上に構築され、
quay.io/crunchtools/mcp-workboardで利用できます
命名規則
| コンポーネント | 名前 |
|---|---|
| GitHub リポジトリ | crunchtools/mcp-workboard |
| コンテナー | quay.io/crunchtools/mcp-workboard |
| Python パッケージ(PyPI) | mcp-workboard-crunchtools |
| CLI コマンド | mcp-workboard-crunchtools |
| モジュールのインポート | mcp_workboard_crunchtools |
Hummingbird を使用する理由
コンテナーイメージは、Project Hummingbird の Hummingbird Python ベースイメージ上に構築されており、次の特長があります。
- CVE への露出を最小限に抑制 - 最小限のパッケージセットで構築され、攻撃対象領域を大幅に縮小します
- 定期的な更新 - セキュリティパッチが速やかに適用されます
- Python 向けに最適化 - uv パッケージマネージャーが事前に設定されています
- 本番環境対応 - 適切なシグナル処理と、デフォルトでの非 root ユーザー実行に対応しています
機能
ユーザー管理(4 ツール)
workboard_get_user_tool- ID でユーザーを取得するか、現在認証されているユーザーを取得しますworkboard_list_users_tool- すべてのユーザーを一覧表示します(Data-Admin ロールが必要です)workboard_create_user_tool- 新しいユーザーを作成します(Data-Admin ロールが必要です)workboard_update_user_tool- 既存のユーザーを更新します
目標管理(5 ツール)
workboard_get_objectives_tool- ユーザーが所有するすべての目標を取得しますworkboard_get_team_objectives_tool- 過去の四半期も含め、指定した日付範囲と重なるチームの目標を取得します(低速:表示可能なすべての目標を読み込みます)workboard_get_objective_details_tool- 特定の目標の詳細と主要な結果を取得しますworkboard_get_my_objectives_tool- 現在のユーザーが所有する目標を ID で取得します(推奨)workboard_create_objective_tool- 主要な結果を含む新しい目標を作成します(Data-Admin が必要です)
主要な結果の管理(2 ツール)
workboard_get_my_key_results_tool- 現在のユーザーの主要な結果を、指標 ID と進捗状況とともに一覧表示しますworkboard_update_key_result_tool- 週次の OKR チェックイン用に、主要な結果の進捗状況を更新します
ワークストリーム管理(6 ツール)
workboard_get_workstreams_tool- 認証済みユーザーがアクセスできるチームのワークストリームを取得しますworkboard_get_workstream_activities_tool- すべてのアクション項目を含むワークストリームの詳細を取得しますworkboard_get_workstream_columns_tool- ワークストリームで使用されているカンバン列を一覧表示しますworkboard_get_team_workstreams_tool- 特定のチームに属するすべてのワークストリームを取得しますworkboard_create_workstream_tool- チーム用の新しいワークストリームを作成しますworkboard_update_workstream_tool- ワークストリームのプロパティ(名前、日付、ペース、健全性、優先度)を更新します
認証(3 ツール)
workboard_auth_status_tool- 認証モード、トークンストア、認証情報が機能するかどうか(GET /user)を報告しますworkboard_auth_start_tool- ブラウザーでの承認用に WorkBoard の認可 URL を返します(OAuth モード)workboard_auth_result_tool- 直近の認可リダイレクトの結果を報告します
インストール
uvx を使用する場合(推奨)
uvx mcp-workboard-crunchtools
pip を使用する場合
pip install mcp-workboard-crunchtools
コンテナーを使用する場合
podman run -e WORKBOARD_API_TOKEN=your_token \
quay.io/crunchtools/mcp-workboard
設定
WorkBoard API トークンの取得
- WorkBoard インスタンスにログインします
- Admin Settings > API Configuration に移動します
- JWT API トークンを生成します
- トークンをすぐにコピーし、安全に保管します
Claude Code への追加
claude mcp add mcp-workboard \
--env WORKBOARD_API_TOKEN=your_token_here \
-- uvx mcp-workboard-crunchtools
コンテナーバージョンの場合:
claude mcp add mcp-workboard \
--env WORKBOARD_API_TOKEN=your_token_here \
-- podman run -i --rm -e WORKBOARD_API_TOKEN quay.io/crunchtools/mcp-workboard
サーバーでの OAuth(リバースプロキシの背後にあるコンテナ)
OAuth モード(WORKBOARD_CLIENT_ID + WORKBOARD_CLIENT_SECRET)では、HTTPS 経由でアクセスできるサーバーをシェルなしで再認証できます。
- WorkBoard アプリのリダイレクト URI として、公開コールバック URL(例:
https://workboard.example.com/callback)を登録します。 - HTTP トランスポートを使用してサーバーを実行し、
WORKBOARD_OAUTH_REDIRECT_URIに同じ URL を設定します。プロキシは/callbackをサーバーにルーティングする必要があります。 workboard_auth_start_toolを呼び出し、返された URL を開いて承認します。WorkBoard は/callbackにリダイレクトし、サーバーは認可コードを交換してトークンストアにトークンを保存します。認可の有効期限は 10 分です。workboard_auth_status_toolを呼び出して確認します(またはworkboard_auth_result_toolを呼び出して失敗の理由を確認します)。
podman run -p 8000:8000 \
-e WORKBOARD_CLIENT_ID -e WORKBOARD_CLIENT_SECRET \
-e WORKBOARD_OAUTH_REDIRECT_URI=https://workboard.example.com/callback \
-e WORKBOARD_TOKEN_STORE_PATH=/data/tokens.json -v workboard-tokens:/data:Z \
quay.io/crunchtools/mcp-workboard --transport streamable-http --host 0.0.0.0
| 変数 | デフォルト | 説明 |
|---|---|---|
WORKBOARD_OAUTH_REDIRECT_URI | unset | このサーバーの /callback ルートの公開 URL です。workboard_auth_start_tool には必須です。CLI の login では無視され、http://localhost:8963/callback が使用されます。 |
WORKBOARD_TOKEN_STORE_PATH | ~/.config/mcp-workboard/tokens.json | OAuth トークンの保存先 |
使用例
現在のユーザーを取得する
User: Who am I in WorkBoard?
Assistant: [calls workboard_get_user with no args]
すべてのユーザーを一覧表示する
User: List all WorkBoard users
Assistant: [calls workboard_list_users]
ユーザーの目標を取得する
User: Show me objectives for user 12345
Assistant: [calls workboard_get_objectives with user_id=12345]
目標の詳細を取得する
User: Get details on objective 67890 for user 12345
Assistant: [calls workboard_get_objective_details with user_id=12345, objective_id=67890]
自分の目標を取得する
User: Show me my objectives (IDs: 2900058, 2900075, 2901770)
Assistant: [calls workboard_get_my_objectives with objective_ids=[2900058, 2900075, 2901770]]
自分の主要な成果指標を一覧表示する
User: Show me my key results
Assistant: [calls workboard_get_my_key_results]
主要な成果指標の進捗を更新する
User: Update key result 12345 to 75
Assistant: [calls workboard_update_key_result with metric_id=12345, value="75"]
目標を作成する
User: Create an objective called "Increase retention" owned by [email protected]
Assistant: [calls workboard_create_objective with name, owner, dates, and optional key_results]
ワークストリームを一覧表示する
User: Show me my workstreams
Assistant: [calls workboard_get_workstreams]
ワークストリームのアクションアイテムを取得する
User: Show me the agenda for workstream 4130463
Assistant: [calls workboard_get_workstream_activities with ws_id=4130463]
セキュリティ
このサーバーは、セキュリティを最優先事項として設計されています。詳しくは SECURITY.md をご覧ください。
- 脅威モデルと攻撃経路
- 多層防御アーキテクチャ
- トークン取り扱いのベストプラクティス
- 入力検証ルール
主なセキュリティ機能
-
トークン保護
- SecretStr として保存(誤ってログに記録されることはありません)
- 環境変数のみで管理(ファイルや引数には保存されません)
- すべてのエラーメッセージからサニタイズ
-
入力検証
- すべての入力に Pydantic モデルを使用
- ID に対する正の整数の検証
- ユーザー作成時のメールアドレス検証
-
API の強化
- API ベース URL をハードコード(SSRF を防止)
- TLS 証明書の検証
- リクエストのタイムアウト
- レスポンスサイズの上限
-
CVE の自動スキャン
- GitHub Actions が依存関係を毎週スキャン
- セキュリティ更新に対するイシューを自動作成
- Dependabot アラートを有効化
開発
セットアップ
git clone https://github.com/crunchtools/mcp-workboard.git
cd mcp-workboard
uv sync
テストの実行
uv run pytest
リントと型チェック
uv run ruff check src tests
uv run mypy src
コンテナのビルド
podman build -t mcp-workboard .
ライセンス
AGPL-3.0-or-later
コントリビューション
コントリビューションを歓迎します。セキュリティ関連の変更を提出する前に、SECURITY.md をお読みください。
リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。