AttachPage
Publish webpages and documents, send private review links, and collect comments and approvals.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"attachpage": {
"url": "https://attachpage.com/mcp"
}
}
}Remote endpoints
https://attachpage.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🔴publish_document(filename, content, siteId, siteName, slug, ...)
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",
"properties": {
"filename": {
"type": "string"
},
"content": {
"type": "string",
"description": "Base64 file bytes, not a local path or URL."
},
"siteId": {
"type": "string"
},
"siteName": {
"type": "string"
},
"slug": {
"type": "string"
},
"visibility": {
"type": "string",
"enum": [
"private",
"public"
]
}
},
"required": [
"filename",
"content"
]
}🟢get_profile
Identify the AttachPage account connected to this agent.
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}🟡publish_anonymous_page(siteName, slug, files)
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",
"properties": {
"siteName": {
"type": "string"
},
"slug": {
"type": "string"
},
"files": {
"type": "array",
"description": "Files of the page. The complete resulting page includes index.html at the top level.",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string"
},
"content": {
"type": "string"
},
"encoding": {
"type": "string",
"enum": [
"utf8",
"base64"
]
}
}
}
}
},
"required": [
"files"
]
}🔴publish_page(siteId, siteName, slug, visibility, files, ...)
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",
"properties": {
"siteId": {
"type": "string"
},
"siteName": {
"type": "string"
},
"slug": {
"type": "string"
},
"visibility": {
"type": "string",
"enum": [
"private",
"public"
]
},
"files": {
"type": "array",
"description": "Files of the page. The complete resulting page includes index.html at the top level.",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string"
},
"content": {
"type": "string"
},
"encoding": {
"type": "string",
"enum": [
"utf8",
"base64"
]
}
}
}
},
"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."
}
},
"required": [
"files"
]
}🔴send_page(siteId, recipients, message, expiresInDays)
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",
"properties": {
"siteId": {
"type": "string"
},
"recipients": {
"type": "array",
"items": {
"type": "string"
}
},
"message": {
"type": "string"
},
"expiresInDays": {
"type": "integer"
}
},
"required": [
"siteId",
"recipients"
]
}🟢list_pages
List the user's pages with recipient and open counts.
Input Schema
{
"type": "object",
"properties": {}
}🟢get_page(siteId, filePaths)
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",
"properties": {
"siteId": {
"type": "string"
},
"filePaths": {
"type": "array",
"maxItems": 20,
"items": {
"type": "string"
}
}
},
"required": [
"siteId"
]
}🔴update_page(siteId, name, slug, visibility)
Rename a page, change its address label (slug), or switch private/public.
Input Schema
{
"type": "object",
"properties": {
"siteId": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"visibility": {
"type": "string",
"enum": [
"private",
"public"
]
}
},
"required": [
"siteId"
]
}🟢get_feedback(siteId, status)
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",
"properties": {
"siteId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"open",
"resolved",
"all"
]
}
},
"required": [
"siteId"
]
}🔴resolve_feedback(feedbackId, resolved)
Mark recipient feedback as resolved, or reopen it with resolved: false. The recipient sees the updated resolution status.
Input Schema
{
"type": "object",
"properties": {
"feedbackId": {
"type": "string"
},
"resolved": {
"type": "boolean"
}
},
"required": [
"feedbackId"
]
}🔴notify_recipients(siteId, note)
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",
"properties": {
"siteId": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"siteId"
]
}Community
Evidence