baserCMS クラスリファレンス

NegotiationLogger
in package

MCP のネゴシエーション内容を記録する

クライアントがどの世代(Modern / Legacy)でどのプロトコルバージョンを 要求してきたかを残す事で、クライアント側の移行を検知できるようにする。 常駐プロセスの死活監視が不要になった代わりに、これが運用時の主要な 確認手段になる。

引数やトークンの中身は記録しない。

Table of Contents

Methods

describe()  : array<string|int, mixed>
記録する内容を組み立てる
log()  : void
ネゴシエーション内容をログに記録する
readRecent()  : array<string|int, mixed>
直近の接続状況をログから読み出す
sanitize()  : string
ログに記録する値を正規化する

Methods

describe()

記録する内容を組み立てる

public static describe(array<string|int, mixed> $mcpRequest, string $protocolVersionHeader) : array<string|int, mixed>

Modern(2026-07-28 以降)はリクエストごとの _meta でバージョンを伝え、 Legacy は initialize の params でバージョンを伝える。

Parameters
$mcpRequest : array<string|int, mixed>

MCP リクエスト

$protocolVersionHeader : string

MCP-Protocol-Version ヘッダの値

Return values
array<string|int, mixed>

log()

ネゴシエーション内容をログに記録する

public static log(array<string|int, mixed> $mcpRequest, string $protocolVersionHeader) : void
Parameters
$mcpRequest : array<string|int, mixed>

MCP リクエスト

$protocolVersionHeader : string

MCP-Protocol-Version ヘッダの値

readRecent()

直近の接続状況をログから読み出す

public static readRecent([int $limit = 10 ][, string|null $logFile = null ]) : array<string|int, mixed>

管理画面で「クライアントがどの世代で接続しているか」を確認できるようにする。

Parameters
$limit : int = 10

取得件数

$logFile : string|null = null

ログファイルのパス(テスト用)

Return values
array<string|int, mixed> —

新しい順の接続状況

sanitize()

ログに記録する値を正規化する

public static sanitize(mixed $value[, bool $stripDelimiters = false ]) : string

クライアントが送信する値をそのまま記録すると、改行を含めて偽の記録行を作り 管理画面の「直近の接続状況」を偽装できるため、制御文字を除去し長さを制限する

Parameters
$value : mixed
$stripDelimiters : bool = false

記録形式の区切り文字(空白・スラッシュ)も置き換えるか

Return values
string
On this page

Search results