# `com.attachpage/attachpage` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/com.attachpage/attachpage
- JSON: https://anlyon.dev/api/v1/servers/com.attachpage/attachpage
- Version: 1.0.1 (active)
- Publisher: com.attachpage (domain proven to the MCP Registry)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Metadata from the official MCP Registry, synced 2026-10-21T17:51:43.823Z

Title and description, as the publisher wrote them:

```untrusted-server-text
AttachPage
Publish webpages and documents, send private review links, and collect comments and approvals.
```

Scanned 2026-10-21T18:46:22.346Z over streamable-http.

**11 tools: 6 can delete or cancel things, 1 do something that can't be undone and 4 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 6 | deny |
| Can't be undone | irreversible | 1 | ask |
| Changes things | write | 0 | ask |
| Only reads | read | 4 | allow |

## Findings

- **warn** Annotations that disagree with the tool in `resolve_feedback` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "resolve_feedback" destructive (destructiveHint: true), and its name says "resolve", a word for reading.

annotations: {"readOnlyHint":false,"destructiveHint":true,"openWorldHint":true}; The name "resolve_feedback" says "resolve": a word for reading.
```


## Deletes or cancels (6)

Removes, cancels or revokes something. Claude Code: deny.

### `notify_recipients`

- The name "notify_recipients" says "notify": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `publish_document`

- The name "publish_document" says "publish": a word for a change that another call does not undo.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `publish_page`

- The name "publish_page" says "publish": a word for a change that another call does not undo.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `resolve_feedback`

- The name "resolve_feedback" says "resolve": a word for reading.
- The description's first verb is "mark": a word for a change.
- The server marks it destructive (destructiveHint: true).
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Mark recipient feedback as resolved, or reopen it with resolved: false. The recipient sees the updated resolution status.
```

### `send_page`

- The name "send_page" says "send": a word for sending, and what is sent cannot be taken back.
- The input addresses people (input.recipients): what it sends cannot be taken back.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `update_page`

- The name "update_page" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).

Description, as the server wrote it:

```untrusted-server-text
Rename a page, change its address label (slug), or switch private/public.
```

## Can't be undone (1)

Sends, pays, publishes or merges: once done, it cannot be taken back. Claude Code: ask.

### `publish_anonymous_page`

- The name "publish_anonymous_page" says "publish": a word for a change that another call does not undo.

Description, as the server wrote it:

```untrusted-server-text
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.
```

## Only reads (4)

Looks things up and changes nothing. Claude Code: allow.

### `get_feedback`

- The name "get_feedback" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `get_page`

- The name "get_page" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

### `get_profile`

- The name "get_profile" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Identify the AttachPage account connected to this agent.
```

### `list_pages`

- The name "list_pages" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List the user's pages with recipient and open counts.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `attachpage`:

```json
{
  "permissions": {
    "allow": [
      "mcp__attachpage__get_profile",
      "mcp__attachpage__list_pages",
      "mcp__attachpage__get_page",
      "mcp__attachpage__get_feedback"
    ],
    "ask": [
      "mcp__attachpage__publish_anonymous_page"
    ],
    "deny": [
      "mcp__attachpage__publish_document",
      "mcp__attachpage__publish_page",
      "mcp__attachpage__send_page",
      "mcp__attachpage__update_page",
      "mcp__attachpage__resolve_feedback",
      "mcp__attachpage__notify_recipients"
    ]
  }
}
```
