fleet_session_round
Submit a scoring round to evaluate per-node scores and retrieve the cumulative fleet snapshot for monitoring fleet drift and prediction stability.
Instructions
Submit a scoring round to an existing fleet session. Each node's scores array is evaluated and the cumulative fleet snapshot is returned. Response: { round, nodes: [{ episodes: [...] }], fleet_summary }. Episodes in the response can be passed to visualize, alert_check, or compare_windows.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Fleet session ID | |
| scores | Yes | Per-node score arrays for this round. Max 16 nodes, 10,000 scores per node. |
Implementation Reference
- src/index.ts:632-649 (registration)Registration of the 'fleet_session_round' tool via server.tool(), defining its name, description, input schema (session_id and scores), and the async handler callback.
server.tool( "fleet_session_round", "Submit a scoring round to an existing fleet session. Each node's scores array is evaluated and the cumulative fleet snapshot is returned. Response: { round, nodes: [{ episodes: [...] }], fleet_summary }. Episodes in the response can be passed to visualize, alert_check, or compare_windows.", { session_id: z.string().describe("Fleet session ID"), scores: z.array(z.array(z.number().int().min(0).max(65535)).min(1).max(10000)).min(1).max(16).describe("Per-node score arrays for this round. Max 16 nodes, 10,000 scores per node."), }, async ({ session_id, scores }) => { const guard = requireApiKey(); if (guard) return guard; const result = await apiFetch("/api/fleet-session", { method: "POST", headers: apiKeyHeaders(), body: { action: "round", session_id, scores }, }); return formatResult(result); } ); - src/index.ts:636-638 (schema)Input schema for fleet_session_round: session_id (string) and scores (array of arrays of Q0.16 integers, 1-16 nodes, 1-10000 scores each).
session_id: z.string().describe("Fleet session ID"), scores: z.array(z.array(z.number().int().min(0).max(65535)).min(1).max(10000)).min(1).max(16).describe("Per-node score arrays for this round. Max 16 nodes, 10,000 scores per node."), }, - src/index.ts:639-648 (handler)Handler logic: checks API key authentication, then POSTs to /api/fleet-session with action: 'round', session_id, and scores. Returns the API response formatted as MCP text content.
async ({ session_id, scores }) => { const guard = requireApiKey(); if (guard) return guard; const result = await apiFetch("/api/fleet-session", { method: "POST", headers: apiKeyHeaders(), body: { action: "round", session_id, scores }, }); return formatResult(result); }