# AttachPage (remote · attachpage.com)

Publish webpages and documents, send private review links, and collect comments and approvals.

- Trust score: 69/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `attachpage.com`: 69/100 (this document), [markdown](https://verifymcp.io/servers/com-attachpage-attachpage/attachpage.md), [page](https://verifymcp.io/servers/com-attachpage-attachpage/attachpage)

## Channel facts

- Endpoint: `https://attachpage.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (publish_document).
  - HTTPS check failed: the endpoint is reachable over plaintext HTTP.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1422 tokens (~129/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 80/100
  - Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the AttachPage MCP server?

AttachPage is a hosted endpoint at https://attachpage.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-attachpage-attachpage 'https://attachpage.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-attachpage-attachpage": {
      "url": "https://attachpage.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-attachpage-attachpage": {
      "type": "http",
      "url": "https://attachpage.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-attachpage-attachpage]
url = "https://attachpage.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-attachpage-attachpage": {
      "type": "remote",
      "url": "https://attachpage.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-attachpage-attachpage --url 'https://attachpage.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-attachpage-attachpage:
    url: "https://attachpage.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-attachpage-attachpage": {
      "Transport": "http",
      "Url": "https://attachpage.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-attachpage-attachpage -t streamable-http -u 'https://attachpage.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-attachpage-attachpage": {
      "type": "http",
      "url": "https://attachpage.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 65, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “publish_anonymous_page” rewrote its description, which is the text the model reads
- [cosmetic] “publish_anonymous_page” added an optional parameter “reminderEmail”

### 2026-10-27 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-23 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (11)

### `publish_document` (~224 tokens)

Publish document

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 parameters:

- `content` (string, required): Base64 file bytes, not a local path or URL.
- `filename` (string, required): Original file name with extension, e.g. proposal.docx.
- `siteId` (string): Replace this existing page at the same address.
- `siteName` (string): Name shown to the user and recipients, e.g. "Q3 report".
- `slug` (string): Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted.
- `visibility` (string): private (invitation-only, default) or public (anyone with the link).

Output parameters:

- `siteId` (string): Page id.
- `url` (string): Page address.

### `get_profile` (~18 tokens)

Get profile

Identify the AttachPage account connected to this agent.

Output parameters:

- `email` (string)
- `id` (string)
- `name` (string)

### `publish_anonymous_page` (~209 tokens)

Publish anonymous page

Publish a public web page without an account or API key. It is deleted 48 hours after publishing unless the user opens the returned claimUrl and signs in. Returns the page URL, the claimUrl and tellUser: always relay tellUser and the claimUrl, and tell the user to keep the page before sending it to anyone. If the user gives an email address, pass it as reminderEmail: the claim link is emailed now and again before deletion.

Input parameters:

- `files` (array, required): Files of the page. The complete resulting page includes index.html at the top level.
- `reminderEmail` (string): Optional. The user's email address, only if they give it: we email them the claim link now and before the page is deleted.
- `siteName` (string): Name shown to the user and recipients, e.g. "Q3 report".
- `slug` (string): Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted.

Output parameters:

- `claimUrl` (string): Show to the user: opening it while signed in keeps the page.
- `deletesAt` (string): When the page is deleted, for people to read (UTC).
- `expiresAt` (number): When the page is deleted (ms since epoch).
- `fileCount` (number): Files published.
- `reminderEmailSent` (boolean): Present when reminderEmail was given.
- `siteId` (string): Page id.
- `tellUser` (string): Tell the user this, with the claimUrl: when the page is deleted and how to keep it.
- `url` (string): Public page address (works for 48 hours).

### `publish_page` (~226 tokens)

Publish page

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 parameters:

- `baseDeploymentId` (string): Expected current version. A changed page is refused rather than overwritten.
- `files` (array, required): Files of the page. The complete resulting page includes index.html at the top level.
- `preserveFiles` (boolean): Retain files not included in this edit. Requires siteId and baseDeploymentId.
- `siteId` (string): Replace this existing page at the same address.
- `siteName` (string): Name shown to the user and recipients, e.g. "Q3 report".
- `slug` (string): Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted.
- `visibility` (string): private (invitation-only, default) or public (anyone with the link).

Output parameters:

- `deploymentId` (string): Id of this version.
- `fileCount` (number): Files published.
- `siteId` (string): Page id; pass it to replace the page later.
- `slug` (string): Address label.
- `url` (string): Page address.
- `visibility` (string): private or public.

### `send_page` (~115 tokens)

Send page

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 parameters:

- `expiresInDays` (integer): Days the links work (default 7). 0 means they never expire.
- `message` (string): Optional note included in the invitation email.
- `recipients` (array, required): Email addresses; each person gets their own personal link.
- `siteId` (string, required): Page id (siteId) returned by a publish tool or list_pages.

Output parameters:

- `expiresAt` (number): When the links stop working (ms since epoch; year 9999 means never).
- `shareId` (string): Id of this send.
- `siteId` (string): Page id.

### `list_pages` (~18 tokens)

List pages

List the user's pages with recipient and open counts.

Output parameters:

- `pages` (array): The user's pages with recipient and open counts.

### `get_page` (~111 tokens)

Get page

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 parameters:

- `filePaths` (array): Source files to read from the current version; [] returns only the file list.
- `siteId` (string, required): Page id (siteId) returned by a publish tool or list_pages.

Output parameters:

- `deployments` (array): Recent versions, newest first.
- `id` (string): Page id (siteId).
- `name` (string): Page name.
- `shares` (array): Sends, each with recipients and when they opened the page.
- `url` (string): Page address.
- `visibility` (string): private or public.

### `update_page` (~102 tokens)

Update page

Rename a page, change its address label (slug), or switch private/public.

Input parameters:

- `name` (string): New page name.
- `siteId` (string, required): Page id (siteId) returned by a publish tool or list_pages.
- `slug` (string): New address label, 3-40 lowercase letters, digits or hyphens.
- `visibility` (string): private (invitation-only, default) or public (anyone with the link).

Output parameters:

- `deployments` (array): Recent versions, newest first.
- `id` (string): Page id (siteId).
- `name` (string): Page name.
- `shares` (array): Sends, each with recipients and when they opened the page.
- `url` (string): Page address.
- `visibility` (string): private or public.

### `get_feedback` (~79 tokens)

Get feedback

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 parameters:

- `siteId` (string, required): Page id (siteId) returned by a publish tool or list_pages.
- `status` (string): Which feedback to return (default all).

Output parameters:

- `decisions` (array): Approvals and change requests.
- `items` (array): Comments with page path and pointed-at element.

### `resolve_feedback` (~62 tokens)

Resolve feedback

Mark recipient feedback as resolved, or reopen it with resolved: false. The recipient sees the updated resolution status.

Input parameters:

- `feedbackId` (string, required): Feedback id from get_feedback.
- `resolved` (boolean): true (default) marks it resolved; false reopens it.

Output parameters:

- `ok` (boolean): true when saved.

### `notify_recipients` (~86 tokens)

Notify recipients

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 parameters:

- `note` (string): Optional note about what changed, up to 1,000 characters.
- `siteId` (string, required): Page id (siteId) returned by a publish tool or list_pages.

Output parameters:

- `notified` (number): How many people were emailed.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-attachpage-attachpage/attachpage#diagnostics

## Score history

- 2026-11-05: 69
- 2026-11-04: 68
- 2026-11-03: 68
- 2026-11-02: 67
- 2026-11-01: 67
- 2026-10-31: 66
- 2026-10-30: 66
- 2026-10-29: 65
- 2026-10-28: 65
- 2026-10-27: 65
- 2026-10-26: 64
- 2026-10-25: 64
- 2026-10-24: 63
- 2026-10-23: 63
- 2026-10-22: 62
- 2026-10-21: 62
- 2026-10-20: 62
- 2026-10-19: 61
- 2026-10-18: 61
- 2026-10-17: 60
- 2026-10-16: 60
- 2026-10-15: 59
- 2026-10-14: 55
- 2026-10-13: 55
- 2026-10-12: 54

## Common questions

### What is the AttachPage MCP server?

AttachPage is an MCP server listed in the public MCP registry as com.attachpage/attachpage. Publish webpages and documents, send private review links, and collect comments and approvals. This page covers its hosted endpoint (https://attachpage.com/mcp).

### Is the AttachPage MCP server safe to use?

AttachPage scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the AttachPage MCP server expose?

AttachPage exposes 11 tools: publish_document, get_profile, publish_anonymous_page, publish_page, send_page, and 6 more. Their descriptions and schemas cost roughly 1,250 tokens of context every time the server is loaded.

### Does the AttachPage MCP server require authentication?

No. We connected to AttachPage without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the AttachPage MCP server still maintained?

AttachPage is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://attachpage.com/mcp
- Website: https://attachpage.com/agents
- Changelog RSS feed: https://verifymcp.io/servers/com-attachpage-attachpage/attachpage.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-attachpage-attachpage/attachpage.json
- HTML version of this page: https://verifymcp.io/servers/com-attachpage-attachpage/attachpage
