Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "srift_approve_join", "srift_close_session", "srift_join_session" and 6 more
{"audience":["agent","user"],"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"priority":0.8,"readOnlyHint":false,"title":"Approve Join Request"}
{"audience":["agent","user"],"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"priority":0.7,"readOnlyHint":false,"title":"Close Session"}
{"audience":["agent","user"],"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"priority":0.9,"readOnlyHint":false,"title":"Join SRIFT Session"}
{"audience":["agent","user"],"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"priority":0.6,"readOnlyHint":false,"title":"Kick Peer"}
{"audience":["agent","user"],"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"priority":0.8,"readOnlyHint":true,"title":"List Active Transfers"}
{"audience":["agent","user"],"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"priority":0.75,"readOnlyHint":true,"title":"Diagnose Network Transports"}
Host-only. Reject a pending guest joinrequest.request; the temp user ID comes from pendingJoins in srift_session_status.
{"audience":["agent","user"],"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"priority":0.7,"readOnlyHint":false,"title":"Reject Join Request"}
{"audience":["agent","user"],"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"priority":0.8,"readOnlyHint":true,"title":"Get Session Status"}
{"audience":["agent","user"],"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"priority":0.9,"readOnlyHint":false,"title":"Start SRIFT Session"}
Changed the definition of "srift_session_status"
{"properties":{"participants":{"description":"Session members(local daemon): pass userId to srift_kick_user to remove one" ⟨144 unchanged words⟩
Changed the definition of "srift_approve_join", "srift_close_session", "srift_join_session" and 6 more
⟨3 unchanged words⟩ destructiveHint":false,"priority":0.8,"readOnlyHint":false,"title":"Approve Join Request"}
⟨3 unchanged words⟩ destructiveHint":true,"priority":0.7,"readOnlyHint":false,"title":"Close Session"}
Changed the definition of "srift_start_session"
⟨15 unchanged words⟩ The host approves all future joins. E2EE keysderivearelocallygeneratedfromon each device; thesessionoptionalIDroomSecret+isoptionalmixedroomSecret.into every key.
pypi:srift (package_pypi) — from mcp_registry
Changed the definition of "srift_kick_user", "srift_net_diagnose", "srift_session_status" and 1 more
Host-only. Disconnect andbanremove a peer from the active room. Get the peer's userId from srift_session_status (participants).
{"properties":{"base":{"description":"The SRIFT server that was probed","type":"string"},"checkedAt":{"description":"When the probe ran (ISO 8601); cached results show an older time","type":"string"},"context":{"description":"runtime (mcp, cli ⟨166 unchanged words⟩
Added "srift_net_diagnose" (8 tools before, 9 now)
Diagnose Network Transports — Diagnose SRIFT on this machine: connectivity (DNS, proxy, HTTPS/TLS, WebSocket relay, UDP/P2P, peer discovery, clock), the local runtime (loopback, background processes, daemon + version, disk) and the environment (sandbox/CI/container detection, curl). Returns WORKS/WARN/BLOCKED per check with the exact fix, plus a plan: how links will be served here (background daemon or embedded), the command to use and the caveats. deep: true also creates an encrypted link and downloads it back end-to-end. Read-only apart from that temporary self-test link. Run this first when a transfer stalls or a quick…
Verified owner set by github_owner proof on srivardhan113
Certificate recorded, valid to 2026-11-21
Authorization not required
First tool surface recorded: 8 tools (server version 3.0.0)
Showing the latest 11 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨3 unchanged words⟩ destructiveHint":false,"priority":0.9,"readOnlyHint":false,"title":"Join SRIFT Session"}
⟨3 unchanged words⟩ destructiveHint":true,"priority":0.6,"readOnlyHint":false,"title":"Kick Peer"}
⟨3 unchanged words⟩ destructiveHint":false,"priority":0.8,"readOnlyHint":true,"title":"List Active Transfers"}
⟨3 unchanged words⟩ destructiveHint":false,"priority":0.75,"readOnlyHint":true,"title":"Diagnose Network Transports"}
⟨3 unchanged words⟩ destructiveHint":true,"priority":0.7,"readOnlyHint":false,"title":"Reject Join Request"}
⟨3 unchanged words⟩ destructiveHint":false,"priority":0.8,"readOnlyHint":true,"title":"Get Session Status"}
⟨3 unchanged words⟩ destructiveHint":false,"priority":0.9,"readOnlyHint":false,"title":"Start SRIFT Session"}
⟨2 unchanged words⟩ {"description":"Optional shared secret mixed intokeyeveryderivation.key. Never sent toserver. Without itthekey is derivable from theserver;sessionaIDmember(whichwhothejoinsserverwithsees);asetdifferentitsecrettocannotmakereadthechatkeyorparticipant-only.files.","type":"string"},"sessionName":{ ⟨13 unchanged words⟩
Get current session details: session { id, role (host/guest), connection state, your userId }, pending join requests (approve with srift_approve_join),peerandcount.members with their userIds (remove one with srift_kick_user).
{"properties":{"isConnectedparticipants":{"description":"TrueSessionifmembersconnected(local daemon): pass userId tosignalingsrift_kick_userserverto remove one","items":{"properties":{"isHost":{"type":"boolean"},"online":{"type":"boolean"},"userId":{"type":"string"},"username":{"type":"string"}},"type":"object"},"type":"array"},"peerCount":{"description":"Number of connectedpeerssockets in the room (hosted endpoint)","type":"number"},"pendingJoins":{ ⟨31 unchanged words⟩ :"object"},"type":"array"},"rolesession":{"description":"The active session (id is null when there is none)","properties":{"id":{"description":"Activerolesession ID","type":["string","null"]},"isConnected":{"description":"True if connected to the signaling server","type":"boolean"},"name":{"description":"Session name","type":["string","null"]},"role":{"description":"\"host\", \"guest\", or null","type":["string","null"]},"sessionIdstatus":{"description":"ActiveGuestsessiononly:ID\"pending_approval\" or \"approved\" (hosted endpoint)","type":"string"},"userId":{"description":"Yourifuseranyid in the session","type":["string","null"]}},"type":"object"}},"type":"object"}
{"properties":{"roomSecret":{"description":"Optional shared secretfor extra-strongmixedE2EEinto key derivation. Never sent to server. Without it the key is derivable from the session ID (which the server sees); set it to make the key participant-only.","type":"string"},"sessionName":{ ⟨13 unchanged words⟩