MCP更新 2026-08-14

MCP サーバー

PentaTrail の CTEM データを、承認した外部ツールから読み書きするための案内です。繋ぎ先の設定と同意の手順、ツールごとの使い方と実例を載せています。

繋ぎ方

繋ぎ先
https://api.pentatrail.co/mcp
  1. 1. 繋ぎ先を登録する

    お使いの外部ツール(MCP に対応した AI ツール)に、遠隔サーバーとして https://api.pentatrail.co/mcp を登録します。鍵や利用者名は要りません。

  2. 2. ブラウザで承認する

    ツールが接続を始めると、ブラウザが開いて PentaTrail のログインと承認画面に進みます。画面には、その接続で実際にできることが並びます。内容を読んで「承認する」を押してください。

  3. 3. ツールが使えるようになる

    承認が済むと、このページのツールがツールから呼べるようになります。契約を 2 つ以上お持ちの場合は、ctem_list_my_contracts で contract_id を調べて他のツールに渡してください。

  4. 4. いつでも取り消せる

    承認した外部ツールは、管理画面(admin.pentatrail.co)の設定からいつでも取り消せます。取り消すと、そのツールからは何も読めなくなります。

読み取りツール

現況を尋ねるツールです。1 回の呼び出しで答えが揃うように束ねてあります。

ここに載せているのは、必須の引数と、どの動作に何が要るかです。絞り込みや並び替えなど省略できる引数はツールそのものが説明を持っており、お使いの外部ツールが受け取るツールの一覧(tools/list)がその正本になります。

ctem_list_domains

監視しているドメインと、その実証の状態。ここから始めます。既定の結果に出る id は、そのまま他のツールの domain_id に使えます。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
include_archived省略可監視から外したドメインも含めます(既定 false)。⚠ 含めた非 active の id は、他のツールの domain_id には使えません。
domain_id省略可指定するとそのドメインの WHOIS 登録情報も一緒に返ります。
成功の例
ctem_list_domains()

{
  "data": { "domains": [ … ], "plan": { … } }
}
ctem_get_domain_overview

このドメインの現況。資産の件数、脅威検出レベル別の未対処件数、直近の変化を 1 回で返します。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
domain_id必須対象のドメイン。ctem_list_domains が返す id をそのまま渡します。
成功の例
ctem_get_domain_overview({ domain_id: "…" })

{
  "data": {
    "assets_counts": { … },
    "findings_severity": { … },
    "changes": [ … ]
  }
}
ctem_list_assets

資産の一覧。何を見るかは kind で選びます(ホスト・IP・URL・ポート・技術・バケット・除外・能動スキャンの対象)。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
domain_id必須対象のドメイン。ctem_list_domains が返す id をそのまま渡します。
kind必須どの資産を見るか: host / ip / url / port / port_group / tech / tech_group / bucket / exclusion / scan_scope。exclusion は除外を戻すときに要る除外 id の唯一の入手先で、scan_scope は能動スキャンの対象として承認済みのホストの一覧です。
page省略可ページ番号(既定 1)。
limit省略可1 ページの件数(既定 20)。
search省略可種別ごとの検索。⚠ その種別が受けない絞り込みを渡すと、黙って無視せず断ります。
成功の例
ctem_list_assets({ domain_id: "…", kind: "host" })

{
  "data": { "assets": [ … ] },
  "pagination": { "page": 1, "limit": 20, … }
}
ctem_list_findings

所見の一覧。脅威検出レベルの高い順に返ります。status を省略すると未対処のみ、情報レベルは除きます。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
domain_id必須対象のドメイン。ctem_list_domains が返す id をそのまま渡します。
page省略可ページ番号(既定 1)。
limit省略可1 ページの件数(既定 20)。
status省略可状態で絞り込みます。all を渡すと全状態が返ります。
成功の例
ctem_list_findings({ domain_id: "…" })

{
  "data": { "findings": [ … ], "matrix": [ … ] },
  "pagination": { … }
}
ctem_get_finding

所見 1 件の詳細。検知の履歴と、その所見に紐づく AI ディープスキャンの実行も一緒に返します。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
finding_id必須対象の所見。ctem_list_findings が返す id を渡します。⚠ このツールはドメインを取りません(所見の id だけで引けます)。
成功の例
ctem_get_finding({ finding_id: "…" })

{
  "data": {
    "finding": { … },
    "detection_history": { "first_detected": "…", "events": [ … ] },
    "deep_scan_jobs": [ … ]
  }
}
ctem_get_prioritization

いま何から手を付けるか。危険度の帯・対象ホスト・担当・分類・攻撃経路の要所を 1 回で返します。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
domain_id必須対象のドメイン。ctem_list_domains が返す id をそのまま渡します。
fqdn省略可省略できます。渡したときだけ、そのホストの詳細も一緒に返します。
asset_type省略可省略できます。渡したときだけ、その種別の分類タグも一緒に返します。
成功の例
ctem_get_prioritization({ domain_id: "…" })

{
  "data": {
    "bands": [ … ],
    "hosts": [ … ],
    "host_owners": [ … ],
    "chokepoints": { "rows": [ … ], "uncovered_finding_count": … }
  }
}
ctem_list_groups

グループと構成員、契約の担当者。group_id を渡すと、そのグループの構成員も一緒に返します。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
domain_id必須対象のドメイン。ctem_list_domains が返す id をそのまま渡します。
group_id省略可省略できます。渡したときだけ、そのグループの構成員も一緒に返します。
成功の例
ctem_list_groups({ domain_id: "…" })

{
  "data": {
    "groups": [ … ],
    "contract_members": [ … ],
    "triage_summary": { … }
  }
}
ctem_get_validation_state

AI ディープスキャンが動いているか、止まっているならなぜか。実行中のまとまりと履歴も返します。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
domain_id必須対象のドメイン。ctem_list_domains が返す id をそのまま渡します。
成功の例
ctem_get_validation_state({ domain_id: "…" })

{
  "data": {
    "origin_state": { … },
    "active_batches": [ … ],
    "finding_stats": { … },
    "history": [ … ]
  }
}
ctem_list_tasks

対処すべきことと進み具合。task_id を渡すと、その 1 件がどのページに居るかも返します。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
domain_id必須対象のドメイン。ctem_list_domains が返す id をそのまま渡します。
page省略可ページ番号(既定 1)。
limit省略可1 ページの件数(既定 20)。
task_id省略可省略できます。渡したときだけ、その 1 件の居場所を一緒に返します。
成功の例
ctem_list_tasks({ domain_id: "…" })

{
  "data": { "tasks": [ … ], "progress": { … } },
  "pagination": { … }
}
ctem_get_executive_summary

経営向けの現況。スコアの推移と週次の要旨を返します。week_start を省略すると、選べる週のうち最新を使います。⚠ 選べる週が 1 つも無い契約では weekly_snapshot と week_start は項目ごと付きません。週はあってもその週の要旨が無ければ weekly_snapshot は null で、講評(briefing)もまだ作られていなければ null です。

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
domain_id必須対象のドメイン。ctem_list_domains が返す id をそのまま渡します。
week_start省略可省略できます。省略すると最新の週を自分で選びます。選べる週が 1 つも無いときは週次を呼びません。
成功の例
ctem_get_executive_summary({ domain_id: "…" })

{
  "data": {
    "score_trend": [ … ],
    "snapshot_weeks": [ … ],
    "weekly_snapshot": { … },
    "briefing": { … }
  }
}

書き込みツール

状態を変えるツールです。操作の族を 1 本にまとめ、どの操作かは action で選びます。

ctem_manage_domain

監視するドメインを増やす・所有の確認を求める・監視から外す。

actionregisterrequest_verificationarchive

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
action必須どの操作を行うか: register / request_verification / archive。動作ごとに要る引数が違います(足りなければ何が要るかを返します)。
domain省略可action="register" のとき、監視を始めるドメイン名。
origin_domain_id省略可action="request_verification" / "archive" のとき、どの監視中ドメインか。
成功の例
ctem_manage_domain({ action: "register", domain: "example.com" })

{
  "data": { "domain_id": "…", "domain": "example.com", "status": "active" }
}
ctem_manage_exclusions

資産を監視の対象から外す、または戻す(1 件でも、まとめてでも)。戻すのに要る除外 id は ctem_list_assets({ kind: "exclusion" }) で取れます。

actionexcludeexclude_bulkrestorerestore_bulk

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
action必須どの操作を行うか: exclude / exclude_bulk / restore / restore_bulk。動作ごとに要る引数が違います(足りなければ何が要るかを返します)。
domain_id省略可action="exclude" のとき、その資産が属するドメイン。
origin_domain_id省略可action="exclude_bulk" / "restore_bulk" のとき、その資産が属するドメイン。
category省略可action="exclude" / "exclude_bulk" / "restore_bulk" のとき、資産の種別。
category_key省略可action="exclude" のとき、資産の鍵(1 件)。
category_keys省略可action="exclude_bulk" / "restore_bulk" のとき、資産の鍵(複数)。
exclusion_id省略可action="restore" のとき、どの除外を戻すか。
成功の例
ctem_manage_exclusions({ action: "restore", exclusion_id: "…" })

{
  "data": null
}
ctem_manage_group

グループを作る・変える・消す、ホストを割り当てる、利用者を出し入れする。

actioncreateupdatedeleteassign_hostsadd_memberremove_member

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
action必須どの操作を行うか: create / update / delete / assign_hosts / add_member / remove_member。動作ごとに要る引数が違います(足りなければ何が要るかを返します)。
group_id省略可作成以外の動作で、どのグループか。⚠ action="assign_hosts" で省くと、渡した資産をいまのグループから外します。
name省略可action="create"(必須)/"update" のとき、グループの名前。
user_id省略可action="add_member" / "remove_member" のとき、どの利用者か。
asset_type省略可action="assign_hosts" のとき、host か ip か。
asset_ids省略可action="assign_hosts" のとき、どの資産を割り当てるか。
成功の例
ctem_manage_group({ action: "create", name: "公開Web" })

{
  "data": { "group_id": "…" }
}
ctem_classify_asset

分類のタグを付ける・外す、管理の区分を決める。

actionadd_tagsremove_tagsset_management_type

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
action必須どの操作を行うか: add_tags / remove_tags / set_management_type。動作ごとに要る引数が違います(足りなければ何が要るかを返します)。
tags省略可action="add_tags" のとき、書き込むタグの行。
asset_type省略可action="remove_tags" のとき、host か ip か。
asset_ids省略可action="remove_tags" のとき、どの資産か。
tag_key省略可action="remove_tags" のとき、どのタグか。
host_id省略可action="set_management_type" のとき、どのホストか。
management_type省略可action="set_management_type" のとき、新しい管理の区分。
成功の例
ctem_classify_asset({ action: "set_management_type", host_id: "…", management_type: "…" })

{
  "data": null
}
ctem_manage_validation

AI ディープスキャンを止める側だけを扱います。⚠ 始める側は画面のままです(ホストの承認と、自動実行への同意は画面で行います)。

actionrevoke_host_approvalrevoke_autorun_consentdisablecancel_batch

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
action必須どの操作を行うか: revoke_host_approval / revoke_autorun_consent / disable / cancel_batch。動作ごとに要る引数が違います(足りなければ何が要るかを返します)。
origin_domain_id省略可どのドメインか(cancel_batch 以外の動作で要ります)。
fqdns省略可action="revoke_host_approval" のとき、承認を取り消すホスト。
batch_id省略可action="cancel_batch" のとき、どのまとまりを取り消すか。
confirm省略可action="disable" のとき true が要ります。ドメインの AI ディープスキャンを止めるのは、ここからは戻せません。
成功の例
ctem_manage_validation({ action: "revoke_host_approval", origin_domain_id: "…", fqdns: ["www.example.com"] })

{
  "data": {
    "approved_count": 0,
    "revoked_count": 1,
    "purged_jobs": 0,
    "skipped": []
  }
}
ctem_manage_task

対処タスクを完了にする・差し戻す・状態を変える・担当と期限を決める。

actioncompletereopenset_statusset_assignment

引数

contract_id省略可所属している契約が 1 つなら省けます。複数に所属しているときだけ指定してください。
action必須どの操作を行うか: complete / reopen / set_status / set_assignment。動作ごとに要る引数が違います(足りなければ何が要るかを返します)。
task_id省略可どのタスクか。ctem_list_tasks が返す id を渡します。
status省略可action="set_status" のとき、新しい状態。
assignee_user_id省略可action="set_assignment" のとき、誰が持つか。
成功の例
ctem_manage_task({ action: "complete", task_id: "…" })

{
  "data": null
}

接続用のツール

CTEM のツールとは別に、接続の入口として 1 本だけ用意しています。

ctem_list_my_contracts

自分がどの契約に所属しているかを返します。複数に所属しているときに、他のツールへ渡す contract_id を調べるためのものです。どこにも所属していないときは、失敗ではなく空の一覧が返ります。

成功の例
ctem_list_my_contracts()

{
  "contracts": [
    { "contract_id": "…", "name": "…" }
  ]
}

お問い合わせはこちら