Skip to content

MCPクライアント ​

Codatum は MCP(Model Context Protocol)サーバーを提供しています。 Claude や Cursor などのMCPクライアントから接続すると、AIエージェントの実行、 データやノートブックの操作、エージェントコネクタに設定された外部サービスの利用ができます。

接続は OAuth の認可によって作られ、承認したスコープの範囲だけが許可されます。 PAT と同じく、主体とは別に発行・失効できる資格情報のため、 その承認と失効を到達可能性の変更として記録します。

MCPクライアントは、外部の AI がトークンを使って自律的に Codatum を操作する入口です。 そのため、接続からのツールの呼び出しを、スコープや権限の不足で拒否されたものも含めて1回ずつ記録します。 MCPアクセスプロファイルの無効化などで使えなくなった接続からの呼び出しは、記録されません。

ツールが操作したリソースは、操作対象のリソースのイベントとして記録されます。 どのクライアントのどの接続からの操作かは context.mcp に入ります。

接続できるユーザーと権限の上限は、MCPアクセスプロファイルで決まります。 利用できるユーザーやグループ、許可するスコープ、直接利用できるエージェントコネクタの変更を、 到達可能性の変更として記録します。

イベント一覧 ​

イベントリソース説明
mcp_client.connectmcp_oauth_sessionMCPクライアントの接続が承認された
mcp_client.call_toolmcp_oauth_sessionMCPクライアントがツールを呼び出した
mcp_client.disconnectmcp_oauth_sessionMCPクライアントの接続が失効された
mcp_client.create_access_profilemcp_access_profileMCPアクセスプロファイルが作成された
mcp_client.rename_access_profilemcp_access_profileMCPアクセスプロファイル名が変更された
mcp_client.change_access_profile_statusmcp_access_profileMCPアクセスプロファイルが有効化・無効化された
mcp_client.change_access_profile_allowed_scopesmcp_access_profileMCPアクセスプロファイルの許可するスコープが変更された
mcp_client.change_access_profile_connector_permissionmcp_access_profileMCPアクセスプロファイルのエージェントコネクタへの到達範囲が変更された
mcp_client.add_access_profile_permissionmcp_access_profileMCPアクセスプロファイルの利用権限が付与された
mcp_client.remove_access_profile_permissionmcp_access_profileMCPアクセスプロファイルの利用権限が削除された
mcp_client.delete_access_profilemcp_access_profileMCPアクセスプロファイルが削除された

イベント詳細 ​

mcp_client.connect プレビュー ​

記録期間: 2026-10-25 〜

MCPクライアントからの接続の承認を記録します。

フィールド値
event.codemcp_client.connect
scope.typeworkspace
resource.typemcp_oauth_session
references接続したMCPクライアントと、適用されるMCPアクセスプロファイル
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra承認されたスコープ

references ​

接続したMCPクライアントと、認可時に選択されたMCPアクセスプロファイルの識別子と表示名が入ります。

relationtype必須説明
viamcp_client必須MCPクライアント
viamcp_access_profile必須MCPアクセスプロファイル

extra ​

この接続に許可された操作の範囲が入ります。

名前型必須説明
scopesstring[]必須この接続に許可された操作の範囲

サンプル ​

json
{
  "event": {
    "code": "mcp_client.connect",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_oauth_session",
    "uid": "oauth_sess_01",
    "name": null,
    "path": "mcp_oauth_session/oauth_sess_01",
    "parts": [
      {
        "type": "mcp_oauth_session",
        "uid": "oauth_sess_01",
        "name": null
      }
    ],
    ...
  },
  "references": [
    {
      "type": "mcp_client",
      "uid": "cursor-dcr-01",
      "name": "Cursor",
      "relation": "via"
    },
    {
      "type": "mcp_access_profile",
      "uid": "mcp_ap_01",
      "name": "Analysts",
      "relation": "via"
    }
  ],
  "extra": {
    "scopes": [
      "agent:execute",
      "sql:execute"
    ]
  },
  ...
}

mcp_client.call_tool プレビュー ​

記録期間: 2026-10-25 〜

MCPクライアントの接続からのツールの呼び出しを、1回につき1件記録します。 必要なスコープが接続で使えない場合(接続時に承認していない、またはMCPアクセスプロファイルで 許可されていない)と、ユーザーの権限で使えないツールの呼び出しは、result.status が deny になります。 存在しないツールの呼び出しと、引数がツールの定義に合わない呼び出しは記録されません。 接続で使えるスコープが agent:execute だけの場合、AIエージェント以外のツールは存在しないツールと 同じ扱いになり、呼び出しは記録されません。

ツールの引数と結果は記録されません。ツールが操作したリソースは、操作対象のリソースのイベントから辿れます。

フィールド値
event.codemcp_client.call_tool
scope.typeworkspace
resource.typemcp_oauth_session
references接続しているMCPクライアント
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra呼び出したツール

references ​

呼び出し元の接続のMCPクライアントの識別子と表示名が入ります。

relationtype必須説明
viamcp_client必須MCPクライアント

extra ​

呼び出されたツールの名前が入ります。

名前型必須説明
toolstring必須呼び出されたツールの名前

サンプル ​

json
{
  "event": {
    "code": "mcp_client.call_tool",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_oauth_session",
    "uid": "oauth_sess_01",
    "name": null,
    "path": "mcp_oauth_session/oauth_sess_01",
    "parts": [
      {
        "type": "mcp_oauth_session",
        "uid": "oauth_sess_01",
        "name": null
      }
    ],
    ...
  },
  "references": [
    {
      "type": "mcp_client",
      "uid": "cursor-dcr-01",
      "name": "Cursor",
      "relation": "via"
    }
  ],
  "context": {
    "mcp": {
      "client": {
        "type": "mcp_client",
        "uid": "cursor-dcr-01",
        "name": "Cursor"
      },
      "oauth_session": {
        "type": "mcp_oauth_session",
        "uid": "oauth_sess_01"
      },
      "access_profile": {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      },
      "scopes": [
        "sql:execute",
        "support:read"
      ]
    }
  },
  "extra": {
    "tool": "run_sql"
  },
  ...
}

mcp_client.disconnect プレビュー ​

記録期間: 2026-10-25 〜

MCPクライアントからの接続の失効を記録します。有効期限切れによる自動失効は記録されません。

フィールド値
event.codemcp_client.disconnect
scope.typeworkspace
resource.typemcp_oauth_session
references接続していたMCPクライアント
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra(なし)

references ​

失効した接続のMCPクライアントの識別子と表示名が入ります。

relationtype必須説明
viamcp_client必須MCPクライアント

サンプル ​

json
{
  "event": {
    "code": "mcp_client.disconnect",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_oauth_session",
    "uid": "oauth_sess_01",
    "name": null,
    "path": "mcp_oauth_session/oauth_sess_01",
    "parts": [
      {
        "type": "mcp_oauth_session",
        "uid": "oauth_sess_01",
        "name": null
      }
    ],
    ...
  },
  "references": [
    {
      "type": "mcp_client",
      "uid": "cursor-dcr-01",
      "name": "Cursor",
      "relation": "via"
    }
  ],
  ...
}

mcp_client.create_access_profile プレビュー ​

記録期間: 2026-10-25 〜

MCPアクセスプロファイルの作成を記録します。

フィールド値
event.codemcp_client.create_access_profile
scope.typeworkspace
resource.typemcp_access_profile
references(なし)
query(なし)
outbound(なし)
change作成時の設定
grant(なし)
extra(なし)

change ​

作成時点の有効状態・許可するスコープ・エージェントコネクタへの到達範囲が入ります。 利用できるユーザーやグループは、同じ request.uid の mcp_client.add_access_profile_permission から辿れます。

名前モード型必須説明
enabled値bool必須作成時の有効状態
allowed_scopes値string[]必須作成時の許可するスコープの一覧
connector値AiProfileAccessMode必須作成時のエージェントコネクタへの到達範囲の指定方法

サンプル ​

json
{
  "event": {
    "code": "mcp_client.create_access_profile",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "change": {
    "fields": [
      {
        "name": "enabled",
        "new": true
      },
      {
        "name": "allowed_scopes",
        "new": [
          "notebook:read",
          "sql:execute",
          "support:read"
        ]
      },
      {
        "name": "connector",
        "new": "disabled"
      }
    ]
  },
  ...
}

mcp_client.rename_access_profile プレビュー ​

記録期間: 2026-10-25 〜

MCPアクセスプロファイルの表示名の変更を記録します。

フィールド値
event.codemcp_client.rename_access_profile
scope.typeworkspace
resource.typemcp_access_profile
references(なし)
query(なし)
outbound(なし)
changename
grant(なし)
extra(なし)

change ​

名前モード型必須説明
name値string必須変更前後の表示名
sensitivity: pii

サンプル ​

json
{
  "event": {
    "code": "mcp_client.rename_access_profile",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "change": {
    "fields": [
      {
        "name": "name",
        "old": "Default",
        "new": "Analysts"
      }
    ]
  },
  ...
}

mcp_client.change_access_profile_status プレビュー ​

記録期間: 2026-10-25 〜

MCPアクセスプロファイルの有効化・無効化を記録します。 無効なプロファイルは、新しい接続でも既存の接続でも使えません。

フィールド値
event.codemcp_client.change_access_profile_status
scope.typeworkspace
resource.typemcp_access_profile
references(なし)
query(なし)
outbound(なし)
changeenabled
grant(なし)
extra(なし)

change ​

名前モード型必須説明
enabled値bool必須変更前後の有効状態

サンプル ​

有効化 ​
json
{
  "event": {
    "code": "mcp_client.change_access_profile_status",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "change": {
    "fields": [
      {
        "name": "enabled",
        "old": false,
        "new": true
      }
    ]
  },
  ...
}
無効化 ​
json
{
  "event": {
    "code": "mcp_client.change_access_profile_status",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "change": {
    "fields": [
      {
        "name": "enabled",
        "old": true,
        "new": false
      }
    ]
  },
  ...
}

mcp_client.change_access_profile_allowed_scopes プレビュー ​

記録期間: 2026-10-25 〜

MCPアクセスプロファイルの許可するスコープの変更を記録します。 外したスコープは、このプロファイルを使う既存の接続でも使えなくなります。 接続時に承認していないスコープは、追加しても既存の接続では使えません。

フィールド値
event.codemcp_client.change_access_profile_allowed_scopes
scope.typeworkspace
resource.typemcp_access_profile
references(なし)
query(なし)
outbound(なし)
change変更前後の許可するスコープ
grant(なし)
extra(なし)

change ​

変更前後のスコープの一覧が入ります。差分ではありません。

名前モード型必須説明
allowed_scopes値string[]必須変更前後の許可するスコープの一覧

サンプル ​

json
{
  "event": {
    "code": "mcp_client.change_access_profile_allowed_scopes",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "change": {
    "fields": [
      {
        "name": "allowed_scopes",
        "old": [
          "notebook:read",
          "support:read"
        ],
        "new": [
          "notebook:read",
          "sql:execute",
          "support:read"
        ]
      }
    ]
  },
  ...
}

mcp_client.change_access_profile_connector_permission プレビュー ​

記録期間: 2026-10-25 〜

MCPアクセスプロファイルで、MCPクライアントから直接利用できるエージェントコネクタの範囲の変更を記録します。 変わった項目だけが入ります。 許可リストの中身(エージェントコネクタの識別子)は記録せず、変更があったことだけを connector_list で示します。 エージェントコネクタを使えるようにする・使えなくする変更では、connector:* スコープも変わるため、 同じ request.uid で mcp_client.change_access_profile_allowed_scopes も記録されます。

フィールド値
event.codemcp_client.change_access_profile_connector_permission
scope.typeworkspace
resource.typemcp_access_profile
references(なし)
query(なし)
outbound(なし)
change変更されたエージェントコネクタへの到達範囲
grant(なし)
extra(なし)

change ​

名前モード型必須説明
connector値AiProfileAccessMode任意変更前後のエージェントコネクタへの到達範囲の指定方法
connector_listフラグ—任意エージェントコネクタの許可リストの中身に変更があったことを示す true

サンプル ​

許可リストへの切り替え ​
json
{
  "event": {
    "code": "mcp_client.change_access_profile_connector_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "change": {
    "fields": [
      {
        "name": "connector",
        "old": "disabled",
        "new": "allow_list"
      },
      {
        "name": "connector_list",
        "changed": true
      }
    ]
  },
  ...
}
許可リストの中身だけの変更 ​
json
{
  "event": {
    "code": "mcp_client.change_access_profile_connector_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "change": {
    "fields": [
      {
        "name": "connector_list",
        "changed": true
      }
    ]
  },
  ...
}

mcp_client.add_access_profile_permission プレビュー ​

記録期間: 2026-10-25 〜

ユーザー・サービスアカウント・グループ・全メンバーへのMCPアクセスプロファイル利用権限の付与を記録します。

フィールド値
event.codemcp_client.add_access_profile_permission
scope.typeworkspace
resource.typemcp_access_profile
references(なし)
query(なし)
outbound(なし)
change(なし)
grant付与先と付与権限
extra(なし)

grant ​

権限が付与された相手(ユーザー・サービスアカウント・グループ・全メンバー)と付与された権限が入ります。

サンプル ​

ユーザーへの権限付与 ​
json
{
  "event": {
    "code": "mcp_client.add_access_profile_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "grant": {
    "target": {
      "type": "mcp_access_profile",
      "uid": "mcp_ap_01",
      "name": "Analysts"
    },
    "grantee": {
      "type": "user",
      "uid": "63e1be654aa70ad689601bec",
      "email_addr": "taro@example.com"
    },
    "role": {
      "new": "mcp_access_profile.user"
    }
  },
  ...
}
グループへの権限付与 ​
json
{
  "event": {
    "code": "mcp_client.add_access_profile_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "grant": {
    "target": {
      "type": "mcp_access_profile",
      "uid": "mcp_ap_01",
      "name": "Analysts"
    },
    "grantee": {
      "type": "group",
      "uid": "63e1be654aa70ad689601be3",
      "name": "Data Engineers"
    },
    "role": {
      "new": "mcp_access_profile.user"
    }
  },
  ...
}
ワークスペース全員への権限付与 ​

特定の相手ではなくワークスペースの全メンバーへ開放した場合です。

json
{
  "event": {
    "code": "mcp_client.add_access_profile_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "grant": {
    "target": {
      "type": "mcp_access_profile",
      "uid": "mcp_ap_01",
      "name": "Analysts"
    },
    "grantee": {
      "type": "workspace",
      "uid": "63e1be654aa70ad689601be0",
      "name": "Acme Analytics"
    },
    "role": {
      "new": "mcp_access_profile.user"
    }
  },
  ...
}

mcp_client.remove_access_profile_permission プレビュー ​

記録期間: 2026-10-25 〜

MCPアクセスプロファイル利用権限の削除を記録します。 権限を失ったユーザーの既存の接続では、このプロファイルを使えなくなります。

フィールド値
event.codemcp_client.remove_access_profile_permission
scope.typeworkspace
resource.typemcp_access_profile
references(なし)
query(なし)
outbound(なし)
change(なし)
grant削除先と削除された権限
extra(なし)

grant ​

権限が削除された相手(ユーザー・サービスアカウント・グループ・全メンバー)と削除された権限が入ります。

サンプル ​

json
{
  "event": {
    "code": "mcp_client.remove_access_profile_permission",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  "grant": {
    "target": {
      "type": "mcp_access_profile",
      "uid": "mcp_ap_01",
      "name": "Analysts"
    },
    "grantee": {
      "type": "user",
      "uid": "63e1be654aa70ad689601bec",
      "email_addr": "taro@example.com"
    },
    "role": {
      "old": "mcp_access_profile.user"
    }
  },
  ...
}

mcp_client.delete_access_profile プレビュー ​

記録期間: 2026-10-25 〜

MCPアクセスプロファイルの削除を記録します。

フィールド値
event.codemcp_client.delete_access_profile
scope.typeworkspace
resource.typemcp_access_profile
references(なし)
query(なし)
outbound(なし)
change(なし)
grant(なし)
extra(なし)

サンプル ​

json
{
  "event": {
    "code": "mcp_client.delete_access_profile",
    ...
  },
  "scope": {
    "type": "workspace",
    ...
  },
  "resource": {
    "type": "mcp_access_profile",
    "uid": "mcp_ap_01",
    "name": "Analysts",
    "path": "mcp_access_profile/mcp_ap_01",
    "parts": [
      {
        "type": "mcp_access_profile",
        "uid": "mcp_ap_01",
        "name": "Analysts"
      }
    ],
    ...
  },
  ...
}

Codatum Audit Events 監査ログイベントカタログ