Stateful WebSocket session registry with per-connection Shannon entropy delta tracking for schema di
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Sends a WebSocket close frame with the specified status code, waits for the server close handshake, and removes the session from the registry. Returns a final telemetry snapshot. Use when a session is no longer needed. Do NOT use to temporarily pause a session -- the session_id is permanently deallocated after this call and cannot be reused.
32-character session id of the session to close.
Optional UTF-8 close reason string, max 123 bytes per RFC 6455.
WebSocket close status code per RFC 6455 (1000-4999). Defaults to 1000.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Sends a WebSocket close frame with the specified status code, waits for the server close handshake, and removes the session from the registry. Returns a final telemetry snapshot. Use when a session is no longer needed. Do NOT use to temporarily pause a session -- the session_id is permanently deallocated after this call and cannot be reused.
| Argument | Type | Description |
|---|---|---|
| reason | string | Optional UTF-8 close reason string, max 123 bytes per RFC 6455. |
| session_id* | string | 32-character session id of the session to close. |
| status_code | number | WebSocket close status code per RFC 6455 (1000-4999). Defaults to 1000. |
{
"type": "object",
"title": "close_websocket_sessionArguments",
"required": [
"session_id"
],
"properties": {
"reason": {
"type": "string",
"title": "Reason",
"default": "",
"maxLength": 123,
"description": "Optional UTF-8 close reason string, max 123 bytes per RFC 6455."
},
"session_id": {
"type": "string",
"title": "Session Id",
"maxLength": 32,
"minLength": 32,
"description": "32-character session id of the session to close."
},
"status_code": {
"type": "number",
"title": "Status Code",
"default": 1000,
"maximum": 4999,
"minimum": 1000,
"description": "WebSocket close status code per RFC 6455 (1000-4999). Defaults to 1000."
}
}
}Returns up to max_frames buffered inbound frames received since the last drain (or session open), each annotated with its Shannon entropy delta and schema validation result. Use to poll for incoming messages without holding a blocking connection. Do NOT use as a real-time streaming mechanism -- it returns only frames already buffered.
| Argument | Type | Description |
|---|---|---|
| max_frames | number | Maximum number of buffered frames to return in a single call. |
| session_id* | string | 32-character session id of the open session to drain frames from. |
{
"type": "object",
"title": "drain_ws_frame_bufferArguments",
"required": [
"session_id"
],
"properties": {
"max_frames": {
"type": "number",
"title": "Max Frames",
"default": 32,
"maximum": 256,
"minimum": 1,
"description": "Maximum number of buffered frames to return in a single call."
},
"session_id": {
"type": "string",
"title": "Session Id",
"maxLength": 32,
"minLength": 32,
"description": "32-character session id of the open session to drain frames from."
}
}
}Returns real-time telemetry for a session: connection state, frame counts, cumulative and rolling Shannon entropy statistics, schema violation rate, and uptime. Use to diagnose whether a stream is diverging from its expected schema or to verify a session is still alive before sending. Do NOT use as the primary liveness check in a tight loop.
| Argument | Type | Description |
|---|---|---|
| session_id* | string | 32-character session id of the session to inspect. |
{
"type": "object",
"title": "inspect_ws_session_telemetryArguments",
"required": [
"session_id"
],
"properties": {
"session_id": {
"type": "string",
"title": "Session Id",
"maxLength": 32,
"minLength": 32,
"description": "32-character session id of the session to inspect."
}
}
}Establishes a persistent WebSocket connection to a target URL and registers it in the stateful session registry. Returns a session_id for all subsequent operations. Use when an agent needs to initiate a long-lived connection before sending or receiving frames. Do NOT use to reconnect an already-open session -- call close_websocket_session first, or use the session_id of an existing session.
| Argument | Type | Description |
|---|---|---|
| target_url* | string | Full WebSocket URL to connect to (must start with ws:// or wss://). |
| connect_timeout_seconds | number | Maximum seconds to wait for the WebSocket handshake to complete. |
{
"type": "object",
"title": "open_websocket_sessionArguments",
"required": [
"target_url"
],
"properties": {
"target_url": {
"type": "string",
"title": "Target Url",
"minLength": 6,
"description": "Full WebSocket URL to connect to (must start with ws:// or wss://)."
},
"connect_timeout_seconds": {
"type": "number",
"title": "Connect Timeout Seconds",
"default": 10,
"maximum": 60,
"minimum": 0.5,
"description": "Maximum seconds to wait for the WebSocket handshake to complete."
}
}
}Sends a single text or binary frame over an open session and returns the frame's Shannon entropy delta relative to the session baseline. Use for request-response patterns or publishing commands to a WebSocket server. Do NOT use to send a sequence of frames in bulk -- call this tool once per frame. Fails if session_id does not exist or connection is not in OPEN state.
| Argument | Type | Description |
|---|---|---|
| payload* | string | Frame payload. For binary frames, encode as hex and set frame_type to 'binary'. |
| frame_type | string | Either 'text' or 'binary'. Determines wire encoding. |
| session_id* | string | 32-character session id (uuid4 hex, no dashes) returned by open_websocket_session. |
{
"type": "object",
"title": "send_typed_ws_frameArguments",
"required": [
"session_id",
"payload"
],
"properties": {
"payload": {
"type": "string",
"title": "Payload",
"maxLength": 131072,
"minLength": 0,
"description": "Frame payload. For binary frames, encode as hex and set frame_type to 'binary'."
},
"frame_type": {
"enum": [
"text",
"binary"
],
"type": "string",
"title": "Frame Type",
"default": "text",
"description": "Either 'text' or 'binary'. Determines wire encoding."
},
"session_id": {
"type": "string",
"title": "Session Id",
"maxLength": 32,
"minLength": 32,
"description": "32-character session id (uuid4 hex, no dashes) returned by open_websocket_session."
}
}
}