{"ok":true,"site":{"host":"agentdom-one.vercel.app","url":"https://agentdom-one.vercel.app/","type":"live","desc":"AgentDom — a private, client-side knowledge workbench. Your notes never leave your browser; an AI agent can help via narrow WebMCP tools.","tools":[{"name":"list_documents","kind":"answer","impl":"imperative","description":"Lists every local note (document) the user has, most recently updated first. Use this to see what documents exist. Returns, for each document, only its id, title, a short one-line preview, tags, and last-updated time — never the full document body. Does NOT open or select a document; call open_document with the id you want next.","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_documents","kind":"answer","impl":"imperative","description":"Full-text keyword search across all local documents. Use this when the user wants to find a document by topic or content, e.g. 'find my notes about pricing'. Returns matching documents' ids, titles, and a short highlighted snippet only — never full document bodies. Also highlights the matches in the page for the user to see. Does NOT open a document for editing; call open_document with the id of the result you want to act on next.","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"One or more keywords to search for across document titles and bodies, e.g. \"onboarding roadmap\"."}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"open_document","kind":"act","impl":"imperative","description":"Opens one document as the current document — the default target for editing tools (insert_paragraph, replace_text, save_document, create_share_link). Omit documentId for 'open the document I was working on most recently' — the most-recently-updated document opens deterministically. Pass documentId to open a specific one found via list_documents or search_documents. Returns id, title, a short preview, tags, and stats — NOT the full body text.","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"documentId":{"type":"string","description":"Optional id to open a specific document. Omit to open the most recently updated one."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_current_document","kind":"answer","impl":"imperative","description":"Returns metadata about whichever document is currently open in the app (the one the user last clicked on, or the one open_document last selected) — id, title, a short preview, tags, and stats, NOT the full body text. Use this to check what's currently open before editing it, without needing to already know its id. Returns ok: false if no document is currently open — call open_document first in that case.","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"summarize_selection","kind":"act","impl":"imperative","description":"Summarizes ONLY the text the human user currently has highlighted/selected on the page right now — it takes no text input and cannot be given arbitrary text, so it can never be used to extract a full document. Use this when the user asks you to summarize something they just selected. Returns a short capped summary only. Returns ok: false with no summary if nothing is currently selected — ask the user to select text first rather than guessing.","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"summarize_document","kind":"act","impl":"imperative","description":"Summarizes one WHOLE document by id (unlike summarize_selection, which only reads the user's live text selection). Use this for a quick summary of an entire document, or to understand it before writing new content with insert_paragraph. Output length is hard-capped regardless of document length, so it can never approximate the full text. Does not save or share anything — combine with create_share_link for that.","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"documentId":{"type":"string","description":"Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to use the currently open document."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"suggest_document_links","kind":"act","impl":"imperative","description":"Analyzes all local documents for likely topical connections and proposes links between pairs of them, each with a short reason (shared terms). Use this when the user asks you to find connections or relationships between their documents. Returns only titles, ids, and short reasons — never document bodies. Suggestions are shown to the user as cards and require the user's explicit accept_link_suggestion before becoming permanent — this tool alone changes nothing permanent.","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"highlight_related_documents","kind":"act","impl":"imperative","description":"Highlights, in the page's document list, the documents most related to one given document (by shared terms) — a visual aid only. Use this when the user wants to see what's related to a document without necessarily linking anything. Returns the related documents' ids, titles, and shared terms — never document bodies. This is purely visual and reversible; it does NOT create any permanent link (use suggest_document_links + accept_link_suggestion for that).","annotations":{"readOnlyHint":true,"untrustedContentHint":true,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"documentId":{"type":"string","description":"Required. Id of the document, as returned by list_documents, search_documents, or open_document. This is the document to find related documents for."}},"required":["documentId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"insert_paragraph","kind":"act","impl":"imperative","description":"Inserts one new paragraph into a document, at the top or the bottom. Matches requests like 'add a short summary paragraph at the top'. The `text` parameter is the exact paragraph content to add. Leaves existing content unchanged; replace_text is the tool for changing existing content. Modifies the document's saved content immediately and returns its new character count.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"inputSchema":{"type":"object","properties":{"documentId":{"type":"string","description":"Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to use the currently open document."},"text":{"type":"string","description":"The paragraph text to insert, written by you. Plain text; do not include markdown headers."},"position":{"type":"string","enum":["top","bottom"],"description":"'top' inserts as the first paragraph; 'bottom' appends as the last paragraph."}},"required":["text","position"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"replace_text","kind":"act","impl":"imperative","description":"Finds the first exact occurrence of a snippet of text within a document's body and replaces it with new text. Use this for targeted edits like fixing a sentence or updating a specific phrase — NOT for adding new content (use insert_paragraph for that). The match is case-sensitive and must match exactly, including punctuation. Actually modifies the document's saved content immediately. Returns ok: false if no match was found.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"inputSchema":{"type":"object","properties":{"documentId":{"type":"string","description":"Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to use the currently open document."},"find":{"type":"string","description":"The exact, case-sensitive text to search for in the document body. Must match exactly, including punctuation."},"replaceWith":{"type":"string","description":"The text that replaces the first match of `find`. An empty string removes the matched text."}},"required":["find","replaceWith"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"save_document","kind":"act","impl":"imperative","description":"Confirms a document's edits are saved to local storage and returns a final snapshot (title, character count, saved time). Matches 'save it' or 'save this document'. Edits from insert_paragraph/replace_text already persist immediately; this call gives a definitive confirmation. Does not create a shareable link — for a combined 'save and share' request, call create_share_link alone instead, which saves first.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"documentId":{"type":"string","description":"Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to save the currently open document."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_share_link","kind":"act","impl":"imperative","description":"Saves the document and generates a shareable URL opening a read-only snapshot of it, viewable by anyone with the link, without access to this browser's storage. The snapshot is a capped summary only, never the full document text. Matches 'save it and give me a link I can share' or 'give me a link to this document' — one call handles both saving and sharing. Returns the url in the response.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"inputSchema":{"type":"object","properties":{"documentId":{"type":"string","description":"Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to share the currently open document."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"accept_link_suggestion","kind":"act","impl":"imperative","description":"Accepts one pending suggestion from suggest_document_links, permanently linking the two documents it named. Use this only after the user has agreed to a specific suggestion. Requires the suggestionId from a prior suggest_document_links call — not a document id. Calling it again on an already-resolved suggestion has no further effect.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"suggestionId":{"type":"string","description":"The id of a pending suggestion, exactly as returned in the 'suggestionId' field of a prior suggest_document_links call. This is not a document id."}},"required":["suggestionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reject_link_suggestion","kind":"act","impl":"imperative","description":"Rejects one pending suggestion from suggest_document_links, removing it from the pending list without linking the documents. Use this only after the user has declined a specific suggestion. Requires the suggestionId from a prior suggest_document_links call — not a document id. Calling it again on an already-resolved suggestion has no further effect.","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"inputSchema":{"type":"object","properties":{"suggestionId":{"type":"string","description":"The id of a pending suggestion, exactly as returned in the 'suggestionId' field of a prior suggest_document_links call. This is not a document id."}},"required":["suggestionId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","favicon":"/favicons/agentdom-one.vercel.app.svg","apiSurface":"spec","toolCount":14}}