{"serverInfo":{"name":"mnemoverse-memory","version":"0.1.0"},"authentication":{"required":true,"schemes":["oauth2"]},"tools":[{"name":"memory_read","description":"Search your long-term Mnemoverse memory. Use at the start of a task or whenever prior context might exist — earlier work, decisions, preferences. Returns matching saved text, its domain, and the memory ID needed for follow-up actions.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":5000,"description":"Natural-language query for saved memories. Do not include passwords, API keys, payment data, MFA codes, government IDs, or health records."},"top_k":{"type":"integer","minimum":1,"maximum":20,"description":"Maximum number of memories to return (1-20, default 5)."},"domain":{"type":"string","maxLength":100,"description":"Restrict recall to a single namespace, e.g. 'project:x' (default: all)."}},"required":["query"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"memory_id":{"type":"string","format":"uuid","description":"Identifier needed to rate or manage this saved memory."},"content":{"type":"string","description":"Stored memory content."},"domain":{"type":"string","description":"User-defined memory namespace or domain."}},"required":["memory_id","content","domain"],"additionalProperties":false},"description":"Matching memories ordered by relevance."}},"required":["items"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Read memory","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"memory_stats","description":"Overview of your long-term Mnemoverse memory: memory count and user-defined domains. Does not return stored memory text or internal diagnostics.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"memory_count":{"type":"integer","minimum":0,"description":"Number of saved memories."},"domains":{"type":"array","items":{"type":"string"},"description":"User-defined memory domains."}},"required":["memory_count","domains"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Memory stats","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"memory_write","description":"Save a durable fact to your long-term Mnemoverse memory as it emerges — a decision, preference, or project fact worth recalling in a later session. Never store passwords, API keys, payment data, MFA codes, government IDs, or health records. Returns whether it was stored and the memory ID.","inputSchema":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":5000,"description":"The text to remember (1-5,000 chars). Do not store passwords, API keys, payment data, MFA codes, government IDs, or health records."},"domain":{"type":"string","maxLength":100,"description":"Namespace: 'general', 'user:X', 'project:Z' (default 'general')."}},"required":["content"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"stored":{"type":"boolean","description":"Whether the memory was stored."},"memory_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Identifier of the stored memory, or null when it was not stored."}},"required":["stored","memory_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Write memory","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"memory_feedback","description":"Rate memories returned by memory_read — outcome from -1.0 (unhelpful) to +1.0 (helpful) — to improve future ranking. Use after acting on recalled memories. Changes ranking signals only; never alters or deletes the saved text.","inputSchema":{"type":"object","properties":{"memory_ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":20,"description":"Memory IDs from a prior memory_read to rate."},"outcome":{"type":"number","minimum":-1,"maximum":1,"description":"Outcome signal: -1.0 (failure) to +1.0 (success)."}},"required":["memory_ids","outcome"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"updated_count":{"type":"integer","minimum":0,"description":"Number of memories whose rating was recorded."}},"required":["updated_count"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Memory feedback","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"memory_create_room","description":"Create a SHARED memory room — a space the user and OTHER people's assistants can both read and write. Use when the user wants to share context with someone (e.g. 'make a room for me and Olya'). Returns the room's address; pass it as `domain` on memory_write / memory_read. To add someone, call memory_invite_to_room next.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"Room name, unique within your account (e.g. 'me-and-olya')."},"description":{"type":"string","maxLength":2000,"description":"Optional human description of the room."}},"required":["name"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"room_id":{"type":"string","description":"The room's id (room_...); pass to memory_invite_to_room."},"address":{"type":"string","description":"Domain address (xroom:<id>); pass as `domain` on read/write."},"name":{"type":"string","description":"The room name as stored."}},"required":["room_id","address","name"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Create shared room","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"memory_invite_to_room","description":"Mint an invite for a room the user owns and get a ready-to-forward message. It is single-use by default; max_uses can allow more redemptions. The user sends it to whoever they're adding; the recipient opens the link or tells their assistant the code to join. Use after memory_create_room or when the user says 'invite <someone>'.","inputSchema":{"type":"object","properties":{"room_id":{"type":"string","minLength":1,"maxLength":200,"description":"The room's id (room_...), from memory_create_room."},"scope":{"type":"string","enum":["read","read_write"],"description":"Role the invitee gets: 'read' or 'read_write' (default read_write)."},"expires_in_days":{"type":"integer","minimum":1,"maximum":90,"description":"Days until the invite expires (1-90, default 7)."},"max_uses":{"type":"integer","minimum":1,"maximum":1000,"description":"How many accounts may redeem the invite (1-1000, default 1)."}},"required":["room_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"code":{"type":"string","description":"The invite code (mnvr_...). Single-use by default, with a configurable use limit. Shown once."},"join_url":{"type":"string","description":"Landing URL the invitee can open to join."},"share_message":{"type":"string","description":"Ready-to-forward invite text."},"scope":{"type":"string","description":"Role the invitee will get."},"room_address":{"type":"string","description":"The room's domain address (xroom:<id>)."},"expires_at":{"type":["string","null"],"description":"ISO 8601 expiry, or null."}},"required":["code","join_url","share_message","scope","room_address","expires_at"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Invite to room","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"memory_join_room","description":"Join a shared memory room using an invite code (starts with 'mnvr_'). Use when the user pastes a code or says 'join room with code ...'. After joining, use the returned address as `domain` on memory_write / memory_read.","inputSchema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":200,"description":"The invite code (mnvr_...)."}},"required":["code"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"room_id":{"type":"string","description":"The room's id (room_...)."},"address":{"type":"string","description":"Domain address (xroom:<id>); pass as `domain` on read/write."},"name":{"type":"string","description":"The room name."},"scope":{"type":"string","description":"Your role in the room ('read' | 'read_write')."},"already_member":{"type":"boolean","description":"True if you were already a member (no-op join)."},"next_steps":{"type":"string","description":"How to use the room now."}},"required":["room_id","address","name","scope","already_member","next_steps"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"Join room","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"memory_list_rooms","description":"List the shared memory rooms the user can use — the ones they OWN plus the ones they've JOINED — each with the address to pass as `domain` on memory_write / memory_read. Use this to RE-FIND a room in a new session ('what rooms do I have?', 'resume the room with Olya') instead of re-creating or re-joining it.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"rooms":{"type":"array","items":{"type":"object","properties":{"room_id":{"type":"string","description":"The room's id (room_...)."},"name":{"type":"string","description":"The room name."},"address":{"type":"string","description":"Domain address (xroom:<id>); pass as `domain` on read/write."},"role":{"type":"string","description":"'owner' or 'member'."},"scope":{"type":"string","description":"'read' or 'read_write'."},"archived":{"type":"boolean","description":"True if archived (owned rooms only)."}},"required":["room_id","name","address","role","scope","archived"],"additionalProperties":false}}},"required":["rooms"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"List rooms","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"vault_list","description":"List the secrets stored in the user's Mnemoverse Vault — by ALIAS and purpose only; the secret VALUE is never returned or shown. Use this to DISCOVER which secret to use (e.g. the user says 'use my GitHub token' — find its alias) before a tool that consumes it. Only the caller's own secrets are listed.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","properties":{"secrets":{"type":"array","items":{"type":"object","properties":{"alias":{"type":"string","description":"The secret's alias — the reference you use, never the value."},"context":{"type":"string","description":"The secret's purpose/context — never the value."},"concepts":{"type":"array","items":{"type":"string"},"description":"Concept tags."}},"required":["alias","context","concepts"],"additionalProperties":false}}},"required":["secrets"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"annotations":{"title":"List vault secrets","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}}],"resources":[],"prompts":[]}