mcpField
O
Openlane MCP Server

Openlane MCP Server

ローカル
github.com法務・行政34 週間前に更新

Openlane MCP Server について

Openlane MCP Serverは、GRCチームがOpenlaneのデータを扱うためのオープンソースMCPサーバーです。既定では読み取り専用で、書き込みと削除には明示的な有効化が必要です。

主な機能

  1. 01統制、証拠、ポリシー、リスクの照会
  2. 02ワークフロー、ベンダー、評価の絞り込み
  3. 03関係の要約とページ分割結果
  4. 04作成・更新・削除の任意有効化
  5. 05Openlane Cloudとセルフホスト環境への接続

活用シーン

  1. 01プログラムの統制と証拠を確認する
  2. 02ベンダーのリスクと評価を調べる
  3. 03承認待ちポリシーやワークフローを確認する
  4. 04権限に応じてGRC記録を更新する

MCP 対応

stdioまたはStreamable HTTPで、Openlaneの照会ツールと任意の書き込み・削除ツールをMCPクライアントに提供します。各操作にはOpenlaneの認可が適用されます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"gregdog-mcp-server-theopenlane": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPENLANE_API_TOKEN",
"-e",
"OPENLANE_ORGANIZATION_ID",
"-e",
"OPENLANE_BASE_URL",
"-e",
"OPENLANE_ALLOW_WRITE",
"-e",
"OPENLANE_ALLOW_DELETE",
"ghcr.io/gregdog/mcp-server-theopenlane:v0.8.0"
],
"env": {
"OPENLANE_API_TOKEN": "<OPENLANE_API_TOKEN>",
"OPENLANE_ORGANIZATION_ID": "<OPENLANE_ORGANIZATION_ID>",
"OPENLANE_BASE_URL": "<OPENLANE_BASE_URL>",
"OPENLANE_ALLOW_WRITE": "<OPENLANE_ALLOW_WRITE>",
"OPENLANE_ALLOW_DELETE": "<OPENLANE_ALLOW_DELETE>"
}
}
}
}
起動コマンドdocker run -i --rm -e OPENLANE_API_TOKEN -e OPENLANE_ORGANIZATION_ID -e OPENLANE_BASE_URL -e OPENLANE_ALLOW_WRITE -e OPENLANE_ALLOW_DELETE ghcr.io/gregdog/mcp-server-theopenlane:v0.8.0
設定が必要な環境変数
OPENLANE_API_TOKENシークレットOpenlane API token or PAT
OPENLANE_ORGANIZATION_IDOrganization ID for multi-org PATs
OPENLANE_BASE_URLOpenlane API base URL
OPENLANE_ALLOW_WRITEEnable write MCP tools
OPENLANE_ALLOW_DELETEEnable delete MCP tools

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

パッケージ
ocighcr.io/gregdog/mcp-server-theopenlane:v0.8.0

ツール

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

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

詳細

Openlane MCP サーバー

CI Go License CodeQL

Openlane GRC プラットフォーム向けの、安全なオープンソースの Model Context Protocol サーバーです。

このプロジェクトは Openlane の公式製品ではなく、theopenlane, Inc. の推奨を受けていません。

概要

openlane-mcp を使うと、Cursor や Claude Desktop などの MCP クライアントが、stdio(デフォルト)または Streamable HTTP 経由で Openlane に問い合わせられます。公式 Openlane Go クライアントを通じて、Openlane Cloud またはセルフホストのインスタンスに接続します。

MCP Client
    → Openlane MCP Server (stdio or HTTP)
        → Official Openlane Go Client
            → Openlane API

サーバーはデフォルトで読み取り専用です。書き込みツールと削除ツールは、それぞれ個別にオプトインできます。すべてのリクエストには引き続き Openlane の認可が適用されます。

機能

  • プログラム、コントロール、エビデンス、ポリシー、リスク、標準、タスク、エンティティ(ベンダー)、アセット、プラットフォーム、連絡先、検出事項、アセスメント、コントロール実装、グループ、ユーザー、ワークフローに対する Openlane MCP アクセス
  • ベンダー/セキュリティ関連フィールドと簡潔な関連情報の要約を含む、拡張された取得ツール
  • エンティティ、リスク、検出事項、エビデンス、プログラム、アセスメント、実装、ワークフローに対するリストフィルター
  • コントロール、エビデンス、ポリシー、リスク、タスク、ベンダー/エンティティ、連絡先、ベンダーのリスクレビュー、ワークフロー定義、ワークフロー割り当て、ネイティブのポリシーライフサイクルに対する、オプトイン方式の作成/更新ツール
  • 同じドメインに加え、ワークフロー定義に対するオプトイン方式の削除ツール(プログラムと標準を除く)
  • Openlane Cloud とセルフホストの Openlane(ベース URL を設定可能)
  • stdio トランスポート(デフォルト)と、オプトイン方式の Streamable HTTP トランスポート
  • ネイティブ Go バイナリ
  • Docker イメージ(GitHub Releases で公開)
  • タグ付きリリースでの MCP Registry 登録(io.github.GregDog/mcp-server-theopenlane)

クイックスタート

コンソールの開発者設定で Openlane API トークンまたは PAT を作成します。組織トークンは tola_ で始まります。個人用アクセストークンは tolp_ で始まります。

export OPENLANE_API_TOKEN="tola_..."
# Optional for multi-org PATs:
export OPENLANE_ORGANIZATION_ID="..."

openlane-mcp serve

次に、MCP クライアントを接続します。クライアント設定を参照してください。

インストール

ソースから
go install github.com/GregDog/mcp-server-theopenlane/cmd/openlane-mcp@latest

Go 1.27 以降が必要です。

GitHub Releases

タグ付きの GitHub Releases で、SHA256 チェックサム付きのバイナリアーカイブ(linux/darwin amd64+arm64、windows amd64)を公開する予定です。

Docker
docker run --rm -i \
  -e OPENLANE_API_TOKEN \
  -e OPENLANE_ORGANIZATION_ID \
  ghcr.io/gregdog/mcp-server-theopenlane serve

イメージは GitHub Releases とともに ghcr.io/gregdog/mcp-server-theopenlane で公開されます。

クライアント設定

Cursor(stdio、推奨)

このリポジトリの .cursor/mcp.json は scripts/mcp-serve.sh を使用します。このスクリプトは .env を読み込み、ローカルバイナリを実行します。

{
  "mcpServers": {
    "openlane": {
      "command": "bash",
      "args": ["${workspaceFolder}/scripts/mcp-serve.sh"]
    }
  }
}

または、グローバルにインストールして環境変数を直接渡します。

{
  "mcpServers": {
    "openlane": {
      "command": "openlane-mcp",
      "args": ["serve"],
      "env": {
        "OPENLANE_API_TOKEN": "${env:OPENLANE_API_TOKEN}",
        "OPENLANE_ORGANIZATION_ID": "${env:OPENLANE_ORGANIZATION_ID}"
      }
    }
  }
}
Cursor(HTTP)

bash scripts/mcp-http.sh でサーバーを起動し(HTTP トランスポートを参照)、テンプレートとして examples/cursor-http.mcp.json を使用します。

Claude Desktop

claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "openlane": {
      "command": "openlane-mcp",
      "args": ["serve"],
      "env": {
        "OPENLANE_API_TOKEN": "tola_your_token_here"
      }
    }
  }
}

トークンをコミットするのではなく、環境変数による置換またはローカルのシークレットストアを利用してください。このリポジトリの例では、架空の値のみを使用しています。

セキュリティ

読み取りツールは常に利用できます。書き込みツールを利用するには、OPENLANE_ALLOW_WRITE=true または --allow-write が必要です。削除ツールを利用するには、OPENLANE_ALLOW_DELETE=true または --allow-delete が必要です。

読み取りを正常に行うには、次の両方が必要です。

  1. 関連する object:read スコープ(または同等の PAT 権限)を持つ Openlane トークン
  2. 選択した組織において、そのオブジェクトに対する Openlane の認可

書き込みと削除には、さらにサーバー側でのオプトイン(OPENLANE_ALLOW_WRITE/OPENLANE_ALLOW_DELETE)と、対応する Openlane トークン権限が必要です。ワークフロー定義の書き込み、ワークフロー割り当て操作、ネイティブポリシーのライフサイクル操作、ワークフローの削除には、ツール呼び出しで confirm: true も必要です。

トークンがログに記録されることはありません。docs/security.mdを参照してください。

ツールの対応範囲

ツール説明
openlane_controls_listコントロールを一覧表示します
openlane_controls_search参照コード、タイトル、説明でコントロールを検索します
openlane_control_getIDでコントロールを取得します(関連情報の概要を含む)
openlane_programs_listプログラムを一覧表示します(名前での絞り込みは任意)
openlane_program_getIDでプログラムを取得します(関連情報の概要を含む)
openlane_evidence_listエビデンスのメタデータを一覧表示します(プログラム/コントロールでの絞り込みは任意)
openlane_evidence_getIDでエビデンスのメタデータを取得します
openlane_policies_list内部ポリシーを一覧表示します(ステータスでの絞り込みは任意)
openlane_policies_awaiting_approval承認待ちのポリシーを一覧表示します(ネイティブの NEEDS_APPROVAL と、あなたに割り当てられた保留中のワークフローを含む)
openlane_policy_getIDでポリシーを取得します
openlane_risks_listリスクを一覧表示します(プログラム/エンティティ/コントロール/ステータスでの絞り込みは任意)
openlane_risk_getIDでリスクを取得します(関連情報の概要を含む)
openlane_findings_list指摘事項を一覧表示します(プログラム/評価/オープン状態/重大度での絞り込みは任意)
openlane_finding_getIDで指摘事項を取得します
openlane_assessments_list評価を一覧表示します
openlane_assessment_getIDで評価を取得します
openlane_control_implementations_listコントロールの実装を一覧表示します
openlane_control_implementation_getIDでコントロールの実装を取得します
openlane_mapped_controls_listフレームワーク間のコントロールマッピング(MappedControl)を一覧表示します
openlane_mapped_control_getIDでコントロールマッピングを取得します
openlane_standards_list標準/フレームワークを一覧表示します
openlane_standard_getIDで標準を取得します
openlane_tasks_listタスクを一覧表示します
openlane_task_getIDでタスクを取得します
openlane_entities_listエンティティを一覧表示します(ベンダー。リスク/ティア/レビュー/セキュリティでの絞り込みは任意)
openlane_entity_getIDでエンティティを取得します(ベンダー/セキュリティ/商業関連のフィールドを含む)
openlane_assets_listアセットを一覧表示します
openlane_asset_getIDでアセットを取得します
openlane_platforms_listプラットフォームを一覧表示します(システム境界。名前/表示 ID/ステータス/環境/リージョン/重要度での絞り込みは任意)
openlane_platform_getIDでプラットフォームを取得します(説明文、オーナーの役割、スコープへのリンク、図のメタデータを含む)
openlane_contacts_list連絡先を一覧表示します
openlane_contact_getIDで連絡先を取得します
openlane_reviews_listベンダーのリスクレビューを一覧表示します(エンティティでの絞り込みは任意)
openlane_review_getIDでベンダーのリスクレビューを取得します
openlane_groups_listグループを一覧表示します(名前での絞り込みは任意)
openlane_group_getIDでグループを取得します
openlane_users_listユーザーを一覧表示します(名前/メールアドレスでの絞り込みは任意)
openlane_user_getIDでユーザーを取得します
openlane_workflows_listワークフロー定義を一覧表示します(スキーマ/種類/有効状態での絞り込みは任意)
openlane_workflows_search名前または説明でワークフロー定義を検索します
openlane_workflow_getIDでワークフロー定義を取得します(平易な英語での概要を含む)
openlane_workflow_instances_listワークフローインスタンスを一覧表示します(定義/状態/オブジェクトでの絞り込みは任意)
openlane_workflow_instance_getIDでワークフローインスタンスを取得します(割り当て、イベント、提案のプレビューを含む)
openlane_workflow_assignments_list自分のワークフロー承認割り当てを一覧表示します
openlane_workflow_assignment_getIDでワークフロー割り当てを取得します(対象、期限、オブジェクトのコンテキストを含む)
openlane_workflow_metadata_getオブジェクトの種類ごとに、ワークフローで利用可能なフィールド、エッジ、リゾルバーキーを取得します

書き込みツール(OPENLANE_ALLOW_WRITE=true または --allow-write が必要です):

ツール説明
openlane_control_create / openlane_control_updateコントロールを作成または更新します
openlane_mapped_control_create / openlane_mapped_control_updateフレームワーク間のコントロールマッピング(MappedControl)を作成または更新します
openlane_evidence_create / openlane_evidence_updateエビデンスを作成または更新します。オプションの control_ids / add_control_ids / remove_control_ids(組織が所有するコントロールのみ。システムカタログのコピーは対象外)と、オプションの base64 ファイルアップロードに対応しています
openlane_controls_list / openlane_controls_searchオプションの linkable_only を指定すると、エビデンスとのリンクに適した組織所有のコントロールが返されます
openlane_policy_create / openlane_policy_update内部ポリシーを作成または更新します
openlane_policy_submit_for_approval / openlane_policy_approve / openlane_policy_publish / openlane_policy_return_to_draftInternalPolicy のネイティブなステータス遷移を実行します(confirm が必要です)
openlane_risk_create / openlane_risk_updateリスクを作成または更新します
openlane_task_create / openlane_task_updateタスクを作成または更新します
openlane_entity_create / openlane_entity_updateエンティティ(ベンダー)を作成または更新します。オプションの base64 ロゴアップロードまたは logo_remote_url に対応しています
openlane_platform_create / openlane_platform_updateプラットフォーム(システム境界)を作成または更新します。所有者フィールドにはユーザー ID、メールアドレス、名前、またはグループ ID/名前を指定できます。オプションのスコープリンク ID と base64 図面アップロードに対応しています
openlane_contact_create連絡先を作成します(オプションの entity_ids に対応)
openlane_vendor_risk_review_create / openlane_vendor_risk_review_updateベンダーリスクレビューを作成または更新します
openlane_workflow_create / openlane_workflow_updateWorkflowDefinition を作成または更新します(confirm が必要です)
openlane_workflow_assignment_approve / openlane_workflow_assignment_rejectWorkflowAssignment を承認または却下します(confirm が必要です)
openlane_workflow_assignment_request_changes / openlane_workflow_assignment_reassign割り当てへの変更を要求するか、割り当てを再割り当てします(confirm が必要です)

削除ツール(OPENLANE_ALLOW_DELETE=true または --allow-delete が必要です):

ツール説明
openlane_control_deleteID を指定してコントロールを削除します
openlane_mapped_control_deleteID を指定してコントロールマッピングを削除します
openlane_evidence_deleteID を指定してエビデンスを削除します
openlane_policy_deleteID を指定してポリシーを削除します
openlane_risk_deleteID を指定してリスクを削除します
openlane_task_deleteID を指定してタスクを削除します
openlane_workflow_deleteID を指定してワークフロー定義を削除します(confirm が必要です)

詳細については、docs/tools.md を参照してください。すべてのモードを有効にすると、77 個のツール(読み取り 44 個、書き込み 27 個、削除 6 個)が利用できます。

拡充された取得ツールは、上限付きの関連情報サマリー(count + items)を返すため、エージェントは浅い呼び出しを何十回も連鎖させることなく、プログラム、ベンダー、コントロール、指摘事項に関する質問に回答できます。

一覧レスポンスはページネーションに対応しています(items、next_cursor、has_more、total_count)。デフォルトのページサイズは 20、最大は 50 です。

現在の Openlane Go クライアントには、専用のコントロール検索 GraphQL オペレーションはありません。openlane_controls_search は、公式の ControlWhereInput contains フィルターを使用します。

読み取りツールは、ファイルの内容や事前署名付きダウンロード URL を返しません。書き込みツールは、エビデンスの作成・更新時に、オプションで base64 エンコードされた files[] を受け付けます(デコード後のファイルサイズのデフォルト上限は、ファイルごとに 10 MiB です)。

証跡とコントロールの紐付け

openlane_evidence_create は省略可能な control_ids を受け付けます。openlane_evidence_update は add_control_ids / remove_control_ids に対応しています。紐付けできるのは 組織所有 のコントロール(owner_id が設定されているもの)のみです。システムカタログのコピーは拒否されます(core#1647)。紐付け可能なコントロールの一覧表示には、linkable_only: true を指定して openlane_controls_search を使用します。プログラムによってインポートされたコントロールは、owner_id が設定されていても source: FRAMEWORK と表示される場合があります。

openlane_control_update は、ユーザー ID、メールアドレス、名前、またはグループ ID を指定する owner_id と delegate_id を受け付けます。ユーザー識別子は、管理対象の個人グループ(Openlane の controlOwnerID / delegateID)に解決されます。読み取りレスポンスには、解決済みの user_email を含む control_owner オブジェクトと delegate オブジェクトが含まれます。グループ ID に対して openlane_user_get を使用しないでください。詳細は docs/openlane-assignee-ids.md を参照してください(ユーザー、グループ、組織の違い、およびグローバルに固定されるものとコントロールのみに適用されるもの)。

大容量の files[] Base64 アップロードには、ペイロードをマシン間で渡す直接 MCP クライアントまたは自動化スクリプトを使用してください。ツール呼び出し間で content_base64 をコピーするエージェントのループでは、データが切り詰められたり破損したりする可能性があります。

HTTP トランスポート

デフォルトでは、サーバーは stdio を使用します。ローカルで HTTP をテストするには、次のようにします。

export OPENLANE_MCP_TRANSPORT=http
export OPENLANE_MCP_HTTP_ADDR=127.0.0.1:8090
openlane-mcp serve

デフォルトのバインド先は ループバックのみ(127.0.0.1:8090)です。公開範囲を理解している場合を除き、0.0.0.0 やポートのみの :port アドレスは使用しないでください。

HTTP モードには認証機能が組み込まれていません。 公開インターネットに直接公開しないでください。エンドポイントにアクセスできる人は誰でも、サーバーの Openlane トークンを使用できます。リモート環境や共有ネットワークにデプロイする場合は、信頼できる認証リバースプロキシ(または同等のプライベートネットワーク制御)をサーバーの前段に配置してください。詳細は docs/security.md を参照してください。

HTTP 経由で大容量の証跡ファイルをアップロードする場合は、OPENLANE_MCP_HTTP_MAX_BODY_BYTES の値を大きくしてください。

MCP Registry

タグ付きリリースのたびに、MCP Registry に io.github.GregDog/mcp-server-theopenlane として公開されます。OCI パッケージは ghcr.io/gregdog/mcp-server-theopenlane です。

開発

make test
make build
./bin/openlane-mcp version

docs/development.md を参照してください。

コントリビューション

CONTRIBUTING.md を参照してください。MCP ツールの追加や拡張については、docs/adding-tools.md を参照してください。

good first issue または help wanted のラベルが付いたイシューから始めるのがおすすめです。

ライセンス

Apache License 2.0 です。LICENSE を参照してください。

Openlane の名称は互換性を説明する目的でのみ使用しています。Openlane のロゴをコピーしたり、公式の推奨を受けているかのように示したりしないでください。

コメント

MCP は初めてですか?

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

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