Appearance
MCPクライアント
Codatum は MCP(Model Context Protocol)サーバーを提供しています。 Claude や Cursor などのMCPクライアントから接続すると、AIエージェントの実行、 データやノートブックの操作、エージェントコネクタに設定された外部サービスの利用ができます。
接続は OAuth の認可によって作られ、承認したスコープの範囲だけが許可されます。 PAT と同じく、主体とは別に発行・失効できる資格情報のため、 その承認と失効を到達可能性の変更として記録します。
MCPクライアントは、外部の AI がトークンを使って自律的に Codatum を操作する入口です。 そのため、接続からのツールの呼び出しを、スコープや権限の不足で拒否されたものも含めて1回ずつ記録します。 MCPアクセスプロファイルの無効化などで使えなくなった接続からの呼び出しは、記録されません。
ツールが操作したリソースは、操作対象のリソースのイベントとして記録されます。 どのクライアントのどの接続からの操作かは context.mcp に入ります。
接続できるユーザーと権限の上限は、MCPアクセスプロファイルで決まります。 利用できるユーザーやグループ、許可するスコープ、直接利用できるエージェントコネクタの変更を、 到達可能性の変更として記録します。
イベント一覧
| イベント | リソース | 説明 |
|---|---|---|
mcp_client.connect | mcp_oauth_session | MCPクライアントの接続が承認された |
mcp_client.call_tool | mcp_oauth_session | MCPクライアントがツールを呼び出した |
mcp_client.disconnect | mcp_oauth_session | MCPクライアントの接続が失効された |
mcp_client.create_access_profile | mcp_access_profile | MCPアクセスプロファイルが作成された |
mcp_client.rename_access_profile | mcp_access_profile | MCPアクセスプロファイル名が変更された |
mcp_client.change_access_profile_status | mcp_access_profile | MCPアクセスプロファイルが有効化・無効化された |
mcp_client.change_access_profile_allowed_scopes | mcp_access_profile | MCPアクセスプロファイルの許可するスコープが変更された |
mcp_client.change_access_profile_connector_permission | mcp_access_profile | MCPアクセスプロファイルのエージェントコネクタへの到達範囲が変更された |
mcp_client.add_access_profile_permission | mcp_access_profile | MCPアクセスプロファイルの利用権限が付与された |
mcp_client.remove_access_profile_permission | mcp_access_profile | MCPアクセスプロファイルの利用権限が削除された |
mcp_client.delete_access_profile | mcp_access_profile | MCPアクセスプロファイルが削除された |
イベント詳細
mcp_client.connect プレビュー
記録期間: 2026-10-25 〜
MCPクライアントからの接続の承認を記録します。
| フィールド | 値 |
|---|---|
event.code | mcp_client.connect |
scope.type | workspace |
resource.type | mcp_oauth_session |
references | 接続したMCPクライアントと、適用されるMCPアクセスプロファイル |
query | (なし) |
outbound | (なし) |
change | (なし) |
grant | (なし) |
extra | 承認されたスコープ |
references
接続したMCPクライアントと、認可時に選択されたMCPアクセスプロファイルの識別子と表示名が入ります。
relation | type | 必須 | 説明 |
|---|---|---|---|
via | mcp_client | 必須 | MCPクライアント |
via | mcp_access_profile | 必須 | MCPアクセスプロファイル |
extra
この接続に許可された操作の範囲が入ります。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
scopes | string[] | 必須 | この接続に許可された操作の範囲 |
サンプル
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.code | mcp_client.call_tool |
scope.type | workspace |
resource.type | mcp_oauth_session |
references | 接続しているMCPクライアント |
query | (なし) |
outbound | (なし) |
change | (なし) |
grant | (なし) |
extra | 呼び出したツール |
references
呼び出し元の接続のMCPクライアントの識別子と表示名が入ります。
relation | type | 必須 | 説明 |
|---|---|---|---|
via | mcp_client | 必須 | MCPクライアント |
extra
呼び出されたツールの名前が入ります。
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
tool | string | 必須 | 呼び出されたツールの名前 |
サンプル
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.code | mcp_client.disconnect |
scope.type | workspace |
resource.type | mcp_oauth_session |
references | 接続していたMCPクライアント |
query | (なし) |
outbound | (なし) |
change | (なし) |
grant | (なし) |
extra | (なし) |
references
失効した接続のMCPクライアントの識別子と表示名が入ります。
relation | type | 必須 | 説明 |
|---|---|---|---|
via | mcp_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.code | mcp_client.create_access_profile |
scope.type | workspace |
resource.type | mcp_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.code | mcp_client.rename_access_profile |
scope.type | workspace |
resource.type | mcp_access_profile |
references | (なし) |
query | (なし) |
outbound | (なし) |
change | name |
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.code | mcp_client.change_access_profile_status |
scope.type | workspace |
resource.type | mcp_access_profile |
references | (なし) |
query | (なし) |
outbound | (なし) |
change | enabled |
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.code | mcp_client.change_access_profile_allowed_scopes |
scope.type | workspace |
resource.type | mcp_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.code | mcp_client.change_access_profile_connector_permission |
scope.type | workspace |
resource.type | mcp_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.code | mcp_client.add_access_profile_permission |
scope.type | workspace |
resource.type | mcp_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.code | mcp_client.remove_access_profile_permission |
scope.type | workspace |
resource.type | mcp_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.code | mcp_client.delete_access_profile |
scope.type | workspace |
resource.type | mcp_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"
}
],
...
},
...
}