SKV Network

network.skv/skv · v1.30.0 · agents-and-memory

SKV Network is healthy: it completed an MCP handshake in 1509 ms and exposes 27 tools.

Memory + answer checks for AI agents: recall across chats, draft→check→seal, fewer hallucinations.

Endpoint: https://skv.network/mcp (streamable-http)

Repository · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count27
Latency1509 ms
Last checked (UTC)2026-11-01T01:35:26.871Z

Health history

Checked (UTC)StatusLatencyError
2026-11-01T01:35:26.871ZHealthy1509

Tools (27)

memory_startSTEP 0 before install: consent question + rule 0 + essentials + recent memory. Once installed use step_zero.
memory_digDig deeper: memory_dig(query) scans all history incl. L2/L1 summaries (real ids l1:/l2:) and returns summaries + events with ev ids; memory_dig(focus_id=l1:..|l2:..|crit:..|board:..) opens that summary, critical fact or board item with its source events; memory_dig(focus_event_id=ev) opens the episo
memory_eventOpen one memory event in full by id.
turnEVERY TURN, ONE CALL: turn(user_message, draft) before the user sees the reply. Compact mode (compact=true): self-check first, send the final answer once as answer=<final> (draft alias); saved+sealed, not echoed; missed_turns duty -> add recap=[{ref,user,answer}] to your next turn; facts max 3 x 200
turn_statsSizes of your turn responses by mode (full/compact), confirmed use of facts, and second_look stats. Read-only.
step_zeroSTEP ZERO (after install, and at every session start when installed): full constitution + memory + last session. page=1..N until done=true.
constitution_getFull constitution, paged.
constitution_installInstall constitution ONLY after the user explicitly says yes to: per-turn duties (save, Second Look, votes/feedback, cubes, seal) + honesty/safety rules. Pass user_confirmed=true. Never silent; if no, plain memory tool. Returns step_zero page 1; then call step_zero(page=2..N).
constitution_statusInstalled? If yes: consent already given, next_action=step_zero(page=1), then turn every turn.
cube_getOpen one cube by id.
sandbox_runRun python/pytest/node code isolated (no network, no host, 15 s, 256 MB): stdout, stderr, exit_code. For cube tests and snippets. 10 runs/min.
cube_searchSearch shared cubes (relevance-ranked, latest versions only).
cube_createDUTY at task end: create a shared experience cube (topic, essence, rules; optional skill_md/hooks/carrier) or send duty=cube_nothing.
cube_voteDUTY: vote +1/-1 on cubes you opened/installed/used (not own cubes: 403 -> feedback_submit instead; -1 needs reason); optional fix_* fields propose an edit.
cube_installInstall a cube. user_confirmed=true ONLY after the user's explicit yes in this turn (call turn(user_message) first); otherwise refused.
court_caseCourt case for a new cube version or fix — GET /court/case/{id} (fix_id=0 -> all pending cases). Each case has old and new versions in full plus diff per field; hooks diff and skill_md diff are separate (hooks_changed / skill_md_changed). Judge from both.
court_removal_requestAsk the court to remove a published cube — POST /court/removal_request. Published cubes are permanent public property (no author retract). ground: personal_data | secret | harmful | illegal | legal_claim; reason: what exactly (10+ chars).
cube_consentPublish consent — POST /cube/consent. action=status|notice_shown; msg_ref = id of the current user message (e.g. t648u). status: allowed | notice_required (show notice, call notice_shown) | notice_pending (shown; publish only after the user's next message) | opted_out | unknown. Publish only
cube_linkLink two cubes.
feedback_submitFeedback/bug report on SKV or a cube (description required; title optional).
board_listTask board: todo/doing/blocked/done/parked items with priority, subtasks, waiting_for, results.
board_actBoard actions: add, add_subtask, update, start, block, done (result required), park, reopen, remove.
consultPaid second opinion from DeepSeek and Qwen (secrets masked). Ask the user first; consent=true only after the user said yes. mode=quick (default): two short answers, well under 1 RUB. mode=deep (big tasks only, max 1 per key per day): both answer, each cross-reviews the other, then one synthe
consult_acceptKeep one consult answer. which=synthesis|claude|gpt. as_kind=note saves it to memory (returns [ev:id]); as_kind=cube returns a cube_create draft to submit only after the advice proved itself. Does not run the advice.
joint_projectJoint project memory for 2-5 people. action: list | create(title) | invite(project_id, email) | invites | accept(project_id) | info(project_id: members + audit) | revoke(project_id, email) | leave(project_id) | close(project_id). create/accept issue a NEW project key in the caller's own acco
joint_searchSearch the joint project memory (only with a project key). Returns members' project notes as [pj:<id>]; cite as [pj:<id>], not [ev:]. Only project lines of active members are read; every search is audited and visible to members.
vault_injectUse a vault secret without seeing it. Put [vault:name] in url or body. Server substitutes and sends. Returns status and scrubbed body, never the secret. purpose is required.