MCPサーバー

SRIFT

app.srift/srift
コミュニケーション セキュリティ 公開・接続可能 MCP 2026-07-28

このMCPでできること

Creates encrypted peer-to-peer sessions for agent file transfers and chat with host-controlled joining, approvals, and peer management.

srift_approve_join
Approve Join Request
Host-only. Approve a pending guest join request by their temp user ID.
入力スキーマ
{'type': 'object', 'required': ['tempUserId'], 'properties': {'tempUserId': {'type': 'string', 'description': 'Temp user ID from session_status pendingJoins'}}}
出力スキーマ
{'type': 'object', 'properties': {'success': {'type': 'boolean', 'description': 'True if guest was approved'}, 'tempUserId': {'type': 'string', 'description': 'Approved user temporary ID'}}}
srift_close_session
Close Session
Close the active session. Flushes E2EE keys, disconnects signaling, clears chat history.
破壊的操作あり
入力スキーマ
{'type': 'object', 'properties': {}}
出力スキーマ
{'type': 'object', 'properties': {'message': {'type': 'string', 'description': 'Confirmation message'}, 'success': {'type': 'boolean', 'description': 'True if session was closed cleanly'}}}
srift_join_session
Join SRIFT Session
Request to join an existing SRIFT session by its 7-character session ID. The host must approve before transfers/chat work.
入力スキーマ
{'type': 'object', 'required': ['sessionId'], 'properties': {'username': {'type': 'string', 'description': 'Display name (optional, defaults to AI-Agent)'}, 'sessionId': {'type': 'string', 'description': '7-character session ID (e.g. ABC1234)'}, 'roomSecret': {'type': 'string', 'description': "Optional shared secret matching the host's"}}}
出力スキーマ
{'type': 'object', 'required': ['sessionId'], 'properties': {'status': {'type': 'string', 'description': 'Join request status (approved, pending, or joined)'}, 'message': {'type': 'string', 'description': 'Status message or instructions'}, 'sessionId': {'type': 'string', 'description': 'Session room code'}}}
srift_kick_user
Kick Peer
Host-only. Disconnect and remove a peer from the active room. Get the peer's userId from srift_session_status (participants).
破壊的操作あり
入力スキーマ
{'type': 'object', 'required': ['userId'], 'properties': {'userId': {'type': 'string', 'description': 'User ID of the participant to disconnect and remove'}}}
出力スキーマ
{'type': 'object', 'properties': {'userId': {'type': 'string', 'description': 'ID of kicked peer'}, 'success': {'type': 'boolean', 'description': 'True if peer was successfully kicked'}}}
srift_list_transfers
List Active Transfers
List all active and recent transfers with progress, speed, ETA, and status.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {}}
出力スキーマ
{'type': 'object', 'properties': {'transfers': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Filename'}, 'size': {'type': 'number', 'description': 'Size in bytes'}, 'fileId': {'type': 'string', 'description': 'Transfer unique file ID'}, 'status': {'type': 'string', 'description': 'Transfer status (uploading, downloading, completed, failed)'}, 'progress': {'type': 'number', 'description': 'Transfer percentage 0-100'}, 'speedKBps': {'type': 'number', 'description': 'Current transfer speed in KB/s'}, 'etaSeconds': {'type': 'number', 'description': 'Estimated remaining seconds'}}}, 'description': 'List of live or recent file transfers'}}}
srift_net_diagnose
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-share call fails for an unclear reason.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {'deep': {'type': 'boolean', 'description': 'Also run an end-to-end self-test: create an encrypted single-use link and download it back through the relay (≈2 MB, a few seconds).'}, 'fresh': {'type': 'boolean', 'description': 'Force a fresh probe instead of returning a cached result (slower, more accurate).'}}}
出力スキーマ
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'True if the diagnostic ran successfully (independent of what it found)'}, 'env': {'type': 'object', 'description': 'Relevant environment (proxy vars, sandbox indicators, Node version, etc.)'}, 'base': {'type': 'string', 'description': 'The SRIFT server that was probed'}, 'plan': {'type': 'object', 'description': 'serveFrom (background-daemon | embedded | unavailable), transport, shareCommand, downloadCommand, advice[] — what to do in this environment'}, 'rungs': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'fix': {'type': 'string'}, 'name': {'type': 'string'}, 'group': {'type': 'string', 'description': '"connectivity", "runtime" or "environment"'}, 'detail': {'type': 'string'}, 'status': {'type': 'string', 'description': '"WORKS", "WARN" (works with a caveat), "BLOCKED", or "SKIPPED"'}}}, 'description': 'Each transport rung checked, in order, with status and a fix hint if blocked'}, 'context': {'type': 'object', 'description': 'runtime (mcp, cli, npx, binary, pypi…), cliVersion, serverVersion, daemonVersion'}, 'summary': {'type': 'string', 'description': 'One-line conclusion'}, 'verdict': {'type': 'string', 'description': '"ok", "degraded", or "blocked"'}, 'selfTest': {'type': 'object', 'description': 'deep only: { ok, ms, bytes, mbps, via, error? }'}, 'checkedAt': {'type': 'string', 'description': 'When the probe ran (ISO 8601); cached results show an older time'}, 'recommendedMode': {'type': 'string', 'description': '"relay" when links can be served from here, otherwise "none"'}}}
srift_reject_join
Reject Join Request
Host-only. Reject a pending guest join request.
破壊的操作あり
入力スキーマ
{'type': 'object', 'required': ['tempUserId'], 'properties': {'reason': {'type': 'string', 'description': 'Optional rejection reason message sent to guest'}, 'tempUserId': {'type': 'string', 'description': 'Temp user ID from session_status pendingJoins'}}}
出力スキーマ
{'type': 'object', 'properties': {'success': {'type': 'boolean', 'description': 'True if guest join request was rejected'}, 'tempUserId': {'type': 'string', 'description': 'Rejected user temporary ID'}}}
srift_session_status
Get Session Status
Get current session details: session { id, role (host/guest), connection state, your userId }, pending join requests (approve with srift_approve_join), and members with their userIds (remove one with srift_kick_user).
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {}}
出力スキーマ
{'type': 'object', 'properties': {'session': {'type': 'object', 'properties': {'id': {'type': ['string', 'null'], 'description': 'Active session ID'}, 'name': {'type': ['string', 'null'], 'description': 'Session name'}, 'role': {'type': ['string', 'null'], 'description': '"host", "guest", or null'}, 'status': {'type': 'string', 'description': 'Guest only: "pending_approval" or "approved" (hosted endpoint)'}, 'userId': {'type': ['string', 'null'], 'description': 'Your user id in the session'}, 'isConnected': {'type': 'boolean', 'description': 'True if connected to the signaling server'}}, 'description': 'The active session (id is null when there is none)'}, 'peerCount': {'type': 'number', 'description': 'Number of connected sockets in the room (hosted endpoint)'}, 'participants': {'type': 'array', 'items': {'type': 'object', 'properties': {'isHost': {'type': 'boolean'}, 'online': {'type': 'boolean'}, 'userId': {'type': 'string'}, 'username': {'type': 'string'}}}, 'description': 'Session members (local daemon): pass userId to srift_kick_user to remove one'}, 'pendingJoins': {'type': 'array', 'items': {'type': 'object', 'properties': {'username': {'type': 'string', 'description': 'Username of requesting user'}, 'tempUserId': {'type': 'string', 'description': 'Temporary ID of requesting user'}}}, 'description': 'List of pending guest join requests waiting for host approval'}}}
srift_start_session
Start SRIFT Session
Create a new SRIFT secure session. Returns the 7-character session ID and a shareable URL. The host approves all future joins. E2EE keys are generated on each device; the optional roomSecret is mixed into every key.
入力スキーマ
{'type': 'object', 'properties': {'roomSecret': {'type': 'string', 'description': 'Optional shared secret mixed into every key. Never sent to the server; a member who joins with a different secret cannot read chat or files.'}, 'sessionName': {'type': 'string', 'description': 'Human-readable session name (optional, e.g. "Project Collab")'}}}
出力スキーマ
{'type': 'object', 'required': ['sessionId'], 'properties': {'url': {'type': 'string', 'description': 'Direct browser join URL to share with peers'}, 'role': {'type': 'string', 'description': 'User role in session (host)'}, 'sessionId': {'type': 'string', 'description': '7-character unique session room code'}}}
変更
srift_start_session
2026年10月1日2:52
追加
srift_net_diagnose
2026年9月27日2:51
変更
srift_kick_user
2026年9月27日2:51
変更
srift_session_status
2026年9月27日2:51
変更
srift_start_session
2026年9月27日2:51
追加
srift_list_transfers
2026年9月17日7:58
追加
srift_kick_user
2026年9月17日7:58
追加
srift_reject_join
2026年9月17日7:58
追加
srift_approve_join
2026年9月17日7:58
追加
srift_close_session
2026年9月17日7:58
追加
srift_session_status
2026年9月17日7:58
追加
srift_join_session
2026年9月17日7:58
追加
srift_start_session
2026年9月17日7:58