mcpField
M
MCP Workboard

MCP Workboard

ローカル
github.com/crunchtools生産性12 日前に更新

MCP Workboard について

MCP Workboard は WorkBoard の OKR・戦略実行プラットフォームを MCP に接続し、チームや管理者によるユーザー、目標、主要な成果、ワークストリームの管理を支援します。ローカル実行とトークン保護を重視し、OAuth 認証ツールも備えています。

主な機能

  1. 01ユーザーとアクセスロールの管理
  2. 02目標と主要な成果の取得・作成
  3. 03主要な成果の進捗更新
  4. 04チームのワークストリーム管理
  5. 05ローカル実行と API トークン保護
  6. 06OAuth 認証状態ツール

活用シーン

  1. 01個人またはチームの OKR の確認
  2. 02週次チェックインでの主要な成果の進捗更新
  3. 03目標の作成とチームのワークストリーム管理

MCP 対応

MCP サーバーとして、WorkBoard のユーザー、目標、主要な成果、ワークストリームのツールに加え、認証状態と OAuth フローを MCP クライアントに公開します。stdio に対応し、Streamable HTTP も設定できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"crunchtools-workboard": {
"command": "uvx",
"args": [
"mcp-workboard-crunchtools"
]
}
}
}
起動コマンドuvx mcp-workboard-crunchtools

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

パッケージ
pypimcp-workboard-crunchtools0.6.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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 トークンの取得
  1. WorkBoard インスタンスにログインします
  2. Admin Settings > API Configuration に移動します
  3. JWT API トークンを生成します
  4. トークンをすぐにコピーし、安全に保管します
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 経由でアクセスできるサーバーをシェルなしで再認証できます。

  1. WorkBoard アプリのリダイレクト URI として、公開コールバック URL(例:https://workboard.example.com/callback)を登録します。
  2. HTTP トランスポートを使用してサーバーを実行し、WORKBOARD_OAUTH_REDIRECT_URI に同じ URL を設定します。プロキシは /callback をサーバーにルーティングする必要があります。
  3. workboard_auth_start_tool を呼び出し、返された URL を開いて承認します。WorkBoard は /callback にリダイレクトし、サーバーは認可コードを交換してトークンストアにトークンを保存します。認可の有効期限は 10 分です。
  4. 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_URIunsetこのサーバーの /callback ルートの公開 URL です。workboard_auth_start_tool には必須です。CLI の login では無視され、http://localhost:8963/callback が使用されます。
WORKBOARD_TOKEN_STORE_PATH~/.config/mcp-workboard/tokens.jsonOAuth トークンの保存先

使用例

現在のユーザーを取得する
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 をご覧ください。

  • 脅威モデルと攻撃経路
  • 多層防御アーキテクチャ
  • トークン取り扱いのベストプラクティス
  • 入力検証ルール
主なセキュリティ機能
  1. トークン保護

    • SecretStr として保存(誤ってログに記録されることはありません)
    • 環境変数のみで管理(ファイルや引数には保存されません)
    • すべてのエラーメッセージからサニタイズ
  2. 入力検証

    • すべての入力に Pydantic モデルを使用
    • ID に対する正の整数の検証
    • ユーザー作成時のメールアドレス検証
  3. API の強化

    • API ベース URL をハードコード(SSRF を防止)
    • TLS 証明書の検証
    • リクエストのタイムアウト
    • レスポンスサイズの上限
  4. 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 をお読みください。

リンク

コメント

MCP は初めてですか?

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

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