{"server":"com.attachpage/attachpage","count":11,"tools":[{"name":"get_feedback","title":"Get feedback","description":"Read recipient comments, page paths, pointed-at elements (selector and visible text), and approval or change-request decisions. The status filter selects open, resolved, or all feedback.","input_schema":{"type":"object","required":["siteId"],"properties":{"siteId":{"type":"string","description":"Page id (siteId) returned by a publish tool or list_pages."},"status":{"enum":["open","resolved","all"],"type":"string","description":"Which feedback to return (default all)."}}},"output_schema":{"type":"object","properties":{"items":{"type":"array","description":"Comments with page path and pointed-at element."},"decisions":{"type":"array","description":"Approvals and change requests."}}},"annotations":{"title":"Get feedback","readOnlyHint":true,"openWorldHint":false,"destructiveHint":false,"untrustedContentHint":true},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"get_page","title":"Get page","description":"Details for one page: address, visibility, recipients and who opened it. Optional filePaths reads exact uploaded source files from that version, up to 20 files and 256 KB total, with text or base64 encoding. An empty filePaths array returns a bounded manifest without file contents.","input_schema":{"type":"object","required":["siteId"],"properties":{"siteId":{"type":"string","description":"Page id (siteId) returned by a publish tool or list_pages."},"filePaths":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Source files to read from the current version; [] returns only the file list."}}},"output_schema":{"type":"object","properties":{"id":{"type":"string","description":"Page id (siteId)."},"url":{"type":"string","description":"Page address."},"name":{"type":"string","description":"Page name."},"shares":{"type":"array","description":"Sends, each with recipients and when they opened the page."},"visibility":{"type":"string","description":"private or public."},"deployments":{"type":"array","description":"Recent versions, newest first."}}},"annotations":{"title":"Get page","readOnlyHint":true,"openWorldHint":false,"destructiveHint":false,"untrustedContentHint":true},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"get_profile","title":"Get profile","description":"Identify the AttachPage account connected to this agent.","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}},"additionalProperties":false},"annotations":{"title":"Get profile","readOnlyHint":true,"openWorldHint":false,"destructiveHint":false,"untrustedContentHint":false},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"list_pages","title":"List pages","description":"List the user's pages with recipient and open counts.","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","properties":{"pages":{"type":"array","description":"The user's pages with recipient and open counts."}}},"annotations":{"title":"List pages","readOnlyHint":true,"openWorldHint":false,"destructiveHint":false,"untrustedContentHint":true},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"notify_recipients","title":"Notify recipients","description":"Email existing active recipients that a page has been updated, with an optional note. Each recipient receives a fresh personal link. Sends email immediately; sent email cannot be recalled.","input_schema":{"type":"object","required":["siteId"],"properties":{"note":{"type":"string","description":"Optional note about what changed, up to 1,000 characters."},"siteId":{"type":"string","description":"Page id (siteId) returned by a publish tool or list_pages."}}},"output_schema":{"type":"object","properties":{"notified":{"type":"number","description":"How many people were emailed."}}},"annotations":{"title":"Notify recipients","readOnlyHint":false,"openWorldHint":true,"destructiveHint":true,"untrustedContentHint":false},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"publish_anonymous_page","title":"Publish anonymous page","description":"Publish a public web page without an account or API key. It expires in 48 hours. Returns the page URL and a personal claimUrl; opening that link while signed in makes the page permanent.","input_schema":{"type":"object","required":["files"],"properties":{"slug":{"type":"string","description":"Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted."},"files":{"type":"array","items":{"type":"object","required":["path","content"],"properties":{"path":{"type":"string","description":"Path inside the page, e.g. index.html or assets/logo.png."},"content":{"type":"string","description":"File contents: text, or base64 when encoding is base64."},"encoding":{"enum":["utf8","base64"],"type":"string","description":"utf8 (default) for text files, base64 for images and other binary files."}}},"description":"Files of the page. The complete resulting page includes index.html at the top level."},"siteName":{"type":"string","description":"Name shown to the user and recipients, e.g. \"Q3 report\"."}}},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"Public page address (works for 48 hours)."},"siteId":{"type":"string","description":"Page id."},"claimUrl":{"type":"string","description":"Show to the user: opening it while signed in keeps the page."},"expiresAt":{"type":"number","description":"When the page expires (ms since epoch)."},"fileCount":{"type":"number","description":"Files published."}}},"annotations":{"title":"Publish anonymous page","readOnlyHint":false,"openWorldHint":true,"destructiveHint":false,"untrustedContentHint":false},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"publish_document","title":"Publish document","description":"Publish a PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx/.xls), or CSV file as a browser-viewable page, private by default. Accepts filename and base64 content, up to 4 MB decoded. Documents become readable PDFs, slides have presentation controls, and spreadsheets have searchable sheet tabs. Preserves the original for download. A siteId replaces the page at the same address. Does not send invitations.","input_schema":{"type":"object","required":["filename","content"],"properties":{"slug":{"type":"string","description":"Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted."},"siteId":{"type":"string","description":"Replace this existing page at the same address."},"content":{"type":"string","description":"Base64 file bytes, not a local path or URL."},"filename":{"type":"string","description":"Original file name with extension, e.g. proposal.docx."},"siteName":{"type":"string","description":"Name shown to the user and recipients, e.g. \"Q3 report\"."},"visibility":{"enum":["private","public"],"type":"string","description":"private (invitation-only, default) or public (anyone with the link)."}}},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"Page address."},"siteId":{"type":"string","description":"Page id."}}},"annotations":{"title":"Publish document","readOnlyHint":false,"openWorldHint":true,"destructiveHint":true,"untrustedContentHint":false},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"publish_page","title":"Publish page","description":"Publish a web page as the connected user. A siteId replaces an existing page at the same address. preserveFiles retains omitted assets and requires the baseDeploymentId of that version; stale edits are refused. Visibility is private (invitation-only, default) or public. Requires an authenticated AttachPage connection.","input_schema":{"type":"object","required":["files"],"properties":{"slug":{"type":"string","description":"Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted."},"files":{"type":"array","items":{"type":"object","required":["path","content"],"properties":{"path":{"type":"string","description":"Path inside the page, e.g. index.html or assets/logo.png."},"content":{"type":"string","description":"File contents: text, or base64 when encoding is base64."},"encoding":{"enum":["utf8","base64"],"type":"string","description":"utf8 (default) for text files, base64 for images and other binary files."}}},"description":"Files of the page. The complete resulting page includes index.html at the top level."},"siteId":{"type":"string","description":"Replace this existing page at the same address."},"siteName":{"type":"string","description":"Name shown to the user and recipients, e.g. \"Q3 report\"."},"visibility":{"enum":["private","public"],"type":"string","description":"private (invitation-only, default) or public (anyone with the link)."},"preserveFiles":{"type":"boolean","description":"Retain files not included in this edit. Requires siteId and baseDeploymentId."},"baseDeploymentId":{"type":"string","description":"Expected current version. A changed page is refused rather than overwritten."}}},"output_schema":{"type":"object","properties":{"url":{"type":"string","description":"Page address."},"slug":{"type":"string","description":"Address label."},"siteId":{"type":"string","description":"Page id; pass it to replace the page later."},"fileCount":{"type":"number","description":"Files published."},"visibility":{"type":"string","description":"private or public."},"deploymentId":{"type":"string","description":"Id of this version."}}},"annotations":{"title":"Publish page","readOnlyHint":false,"openWorldHint":true,"destructiveHint":true,"untrustedContentHint":false},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"resolve_feedback","title":"Resolve feedback","description":"Mark recipient feedback as resolved, or reopen it with resolved: false. The recipient sees the updated resolution status.","input_schema":{"type":"object","required":["feedbackId"],"properties":{"resolved":{"type":"boolean","description":"true (default) marks it resolved; false reopens it."},"feedbackId":{"type":"string","description":"Feedback id from get_feedback."}}},"output_schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"true when saved."}}},"annotations":{"title":"Resolve feedback","readOnlyHint":false,"openWorldHint":true,"destructiveHint":true,"untrustedContentHint":false},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"send_page","title":"Send page","description":"Email personal invitations for a page to the specified recipient addresses, with an optional message and access expiry. Sends email immediately; sent email cannot be recalled.","input_schema":{"type":"object","required":["siteId","recipients"],"properties":{"siteId":{"type":"string","description":"Page id (siteId) returned by a publish tool or list_pages."},"message":{"type":"string","description":"Optional note included in the invitation email."},"recipients":{"type":"array","items":{"type":"string"},"description":"Email addresses; each person gets their own personal link."},"expiresInDays":{"type":"integer","description":"Days the links work (default 7). 0 means they never expire."}}},"output_schema":{"type":"object","properties":{"siteId":{"type":"string","description":"Page id."},"shareId":{"type":"string","description":"Id of this send."},"expiresAt":{"type":"number","description":"When the links stop working (ms since epoch; year 9999 means never)."}}},"annotations":{"title":"Send page","readOnlyHint":false,"openWorldHint":true,"destructiveHint":true,"untrustedContentHint":false},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"},{"name":"update_page","title":"Update page","description":"Rename a page, change its address label (slug), or switch private/public.","input_schema":{"type":"object","required":["siteId"],"properties":{"name":{"type":"string","description":"New page name."},"slug":{"type":"string","description":"New address label, 3-40 lowercase letters, digits or hyphens."},"siteId":{"type":"string","description":"Page id (siteId) returned by a publish tool or list_pages."},"visibility":{"enum":["private","public"],"type":"string","description":"private (invitation-only, default) or public (anyone with the link)."}}},"output_schema":{"type":"object","properties":{"id":{"type":"string","description":"Page id (siteId)."},"url":{"type":"string","description":"Page address."},"name":{"type":"string","description":"Page name."},"shares":{"type":"array","description":"Sends, each with recipients and when they opened the page."},"visibility":{"type":"string","description":"private or public."},"deployments":{"type":"array","description":"Recent versions, newest first."}}},"annotations":{"title":"Update page","readOnlyHint":false,"openWorldHint":true,"destructiveHint":true,"untrustedContentHint":false},"source":"probe","observed_at":"2026-10-18T16:42:36.958Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/com.attachpage%2Fattachpage/connection?target=mcpServers","arguments":{"name":"com.attachpage/attachpage","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/com.attachpage%2Fattachpage","arguments":{"name":"com.attachpage/attachpage"}}]}