AttachPage
Server Details
Send webpages and documents like email attachments. Publish a site folder or a PDF, Word, PowerPoint, Excel or CSV file as a hosted page, send each recipient a personal link you can revoke, and see who opened it. Recipients comment and approve; your agent reads the feedback, publishes the fix at the same address and resolves the comments. Users sign in with OAuth (free with Google or Microsoft); without an account, agents can publish a public page that expires in 48 hours.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 11 tools
Most tools target distinct resource+action pairs, but the three publish variants (publish_page, publish_document, publish_anonymous_page) and the two email tools (send_page vs notify_recipients) require careful reading to distinguish. The descriptions do clarify the boundaries (auth vs anonymous, invitation vs update notification), so confusion is limited.
All eleven tools follow a strict snake_case verb_noun pattern (get_page, list_pages, publish_page, send_page, update_page, resolve_feedback). No deviations or mixed conventions.
Eleven tools is well within the ideal 3-15 range and each tool covers a distinct capability (profile, pages, publishing, documents, feedback, recipients). Nothing feels redundant or missing at the count level.
The surface covers the full lifecycle reasonably: publish, get, list, update, feedback read/resolve, and recipient invitation/notification. The notable gap is the absence of any delete/archive or recipient-management tool, so pages can never be removed and recipients can't be added without re-sending invitations.
Available Tools
11 toolsget_feedbackGet feedbackBRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | Page id (siteId) returned by a publish tool or list_pages. | |
| status | No | Which feedback to return (default all). |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No | Comments with page path and pointed-at element. |
| decisions | No | Approvals and change requests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered without the description. The description adds useful context about what is returned (paths, selectors, visible text, decisions), but nothing about auth, scope, or pagination behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler, and the highest-value information (what is returned) is front-loaded. The second sentence largely duplicates the schema's status description, which is the only minor waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, the returns need not be spelled out, yet the description still orients the agent well; annotations cover safety and both params are documented. The one real gap is the absence of any routing guidance versus resolve_feedback among the siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, including the "default all" note on status. The description's mention of open/resolved/all adds no syntax or meaning beyond the enum already in the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ("Read") and enumerates the resource contents precisely: recipient comments, page paths, pointed-at elements (selector and visible text), and approval/change-request decisions. An agent knows exactly what this tool retrieves. It never names a sibling (e.g. resolve_feedback) to distinguish reading from resolving, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is "The status filter selects open, resolved, or all feedback," which restates the enum rather than telling the agent when to choose this tool over resolve_feedback or when to check feedback at all. No when-to-use, prerequisites, or exclusion conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pageGet pageARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | Page id (siteId) returned by a publish tool or list_pages. | |
| filePaths | No | Source files to read from the current version; [] returns only the file list. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Page id (siteId). |
| url | No | Page address. |
| name | No | Page name. |
| shares | No | Sends, each with recipients and when they opened the page. |
| visibility | No | private or public. |
| deployments | No | Recent versions, newest first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine behavioral context beyond that: a 20-file/256 KB cap, text or base64 encoding, and the notable edge case that an empty array returns a bounded manifest with no contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what is returned, then the optional mode and its boundaries. No filler or restatement of the name; every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters, full schema coverage, and an output schema handling return values, the description covers everything needed: the target resource, the optional file-retrieval mode, and its limits. Nothing required for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: filePaths reads source files from the current version, and the limits plus encoding modes and empty-array semantics go beyond the schema's terse '[] returns only the file list'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Details for one page') and enumerates the returned fields (address, visibility, recipients, openers), which cleanly differentiates it from list_pages. An agent can tell this is a single-item detail fetch without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the description explains the optional filePaths mode but never names when to choose this over list_pages or get_feedback, nor any prerequisite beyond the schema's reference to a publish tool. No when-not guidance is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileGet profileRead-onlyInspect
Identify the AttachPage account connected to this agent.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | No | |
| No |
list_pagesList pagesARead-onlyInspect
List the user's pages with recipient and open counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| pages | No | The user's pages with recipient and open counts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that the listing includes recipient and open counts, which is mild extra context, but says nothing about pagination, ordering, or scope of the result set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with zero filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with full annotation coverage and an output schema, the description covers what is needed. Only a note on whether the list is paginated or filtered would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource ('List the user's pages') plus the content of the listing ('recipient and open counts'), which distinguishes it from the singular get_page sibling. It never explicitly names an alternative, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given, and none of the siblings (get_page, send_page, publish_page) are referenced. The agent must infer that this is the enumeration counterpart to get_page from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notify_recipientsNotify recipientsADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional note about what changed, up to 1,000 characters. | |
| siteId | Yes | Page id (siteId) returned by a publish tool or list_pages. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notified | No | How many people were emailed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the irreversibility profile is partly covered; the description nonetheless adds real context beyond them by stating email is sent immediately, cannot be recalled, and that each recipient gets a fresh personal link. It still omits permission requirements and what happens when no active recipients exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no padding, and the core action plus its scope are front-loaded ahead of the caveats. Every clause carries information the agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and rich annotations, the description only needs to cover scope and side effects, which it does. The remaining gap is the undefined term 'active recipients' and the behavior when none qualify, a minor omission for a two-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both note and siteId are already documented in the schema. The description only restates that the note is optional and tied to 'what changed', adding no syntax or format details, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (email) and a scoped resource (existing active recipients) tied to a page update, which is enough to separate it from publish_page and send_page in most cases. It stops short of naming the sibling it should not be confused with, so it lands at a clear-but-not-differentiating 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'that a page has been updated' implies the trigger context (use after a content change), but there is no explicit when-not guidance or routing to alternatives such as send_page or publish_page. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_anonymous_pagePublish anonymous pageAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted. | |
| files | Yes | Files of the page. The complete resulting page includes index.html at the top level. | |
| siteName | No | Name shown to the user and recipients, e.g. "Q3 report". |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | Public page address (works for 48 hours). |
| siteId | No | Page id. |
| claimUrl | No | Show to the user: opening it while signed in keeps the page. |
| expiresAt | No | When the page expires (ms since epoch). |
| fileCount | No | Files published. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly false, destructive false, openWorld true). The description goes well beyond them: the page expires in 48 hours, the response includes a URL and a personal claimUrl, and opening that link while signed in makes the page permanent. That is exactly the lifecycle and side-effect context an agent needs for a publish operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: capability, expiry constraint, and return/claim semantics. The scope qualifier is front-loaded in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return shape needn't be re-explained, yet the description adds the non-obvious claimUrl semantics that the schema cannot convey. Combined with the expiry behavior, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so slug, files, and siteName are already documented in the schema, and the description adds no syntax or format details for them. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (publish a public web page) plus the defining scope qualifier: no account or API key. This clearly separates it from siblings like publish_page and publish_document, which are not marked anonymous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear selecting condition ('without an account or API key') that tells the agent when this tool applies versus the authenticated publish tools. It does not explicitly name publish_page/publish_document as the alternative, so the routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_documentPublish documentADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted. | |
| siteId | No | Replace this existing page at the same address. | |
| content | Yes | Base64 file bytes, not a local path or URL. | |
| filename | Yes | Original file name with extension, e.g. proposal.docx. | |
| siteName | No | Name shown to the user and recipients, e.g. "Q3 report". | |
| visibility | No | private (invitation-only, default) or public (anyone with the link). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | Page address. |
| siteId | No | Page id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations flag destructiveHint=true and openWorldHint=true, and the description explains exactly why: "A siteId replaces the page at the same address" discloses the destructive replacement behavior. It also adds the 4 MB decoded size cap, the private-by-default visibility, and that the original is preserved for download – substantial context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and format list, then progressively adds size, rendering, and replacement details. Most sentences earn their place, though the middle sentence on PDF/slide/spreadsheet rendering is mildly descriptive padding rather than decision-critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the description still covers formats, size limits, default visibility, replacement semantics, and the no-invitation behavior. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real constraints not in the schema: the 4 MB decoded limit and that content must be base64 bytes ("not a local path or URL" is reinforced). It also clarifies the siteId replacement semantics beyond the schema's short note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (publish) and resource (file → browser-viewable page) and enumerates the accepted formats, so the agent knows exactly what the tool consumes and produces. It does not, however, name or distinguish itself from close siblings like publish_page or publish_anonymous_page, leaving that routing to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"private by default" and "Does not send invitations" give clear contextual boundaries, implicitly steering the agent away from send_page/notify_recipients when no notification is wanted. There is no explicit when-not or named alternative, so the guidance is contextual rather than directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_pagePublish pageADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Optional address label, 3-40 lowercase letters, digits or hyphens. Random when omitted. | |
| files | Yes | Files of the page. The complete resulting page includes index.html at the top level. | |
| siteId | No | Replace this existing page at the same address. | |
| siteName | No | Name shown to the user and recipients, e.g. "Q3 report". | |
| visibility | No | private (invitation-only, default) or public (anyone with the link). | |
| preserveFiles | No | Retain files not included in this edit. Requires siteId and baseDeploymentId. | |
| baseDeploymentId | No | Expected current version. A changed page is refused rather than overwritten. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | Page address. |
| slug | No | Address label. |
| siteId | No | Page id; pass it to replace the page later. |
| fileCount | No | Files published. |
| visibility | No | private or public. |
| deploymentId | No | Id of this version. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare a destructive write, and the description goes well beyond them: it explains what gets destroyed (an existing page at the same address is replaced), the optimistic-concurrency behavior (stale edits are refused, changed page refused rather than overwritten), the preserveFiles retention semantics, the default visibility, and the auth requirement. This is exactly the kind of side-effect context an agent needs before a destructive call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five tight sentences, purpose front-loaded, each covering a distinct concern (identity, replace semantics, concurrency, visibility, auth) with no filler. Slight overlap with schema-described fields keeps it from being maximally economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, open-world publishing tool, the description covers safety (destructive replacement), auth prerequisites, concurrency guardrails, visibility defaults, and asset retention. With an output schema present, return values need no explanation, so nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds causal semantics the schema does not: siteId's replace-at-same-address effect, the coupling of preserveFiles to baseDeploymentId, and the refusal-on-stale-edit behavior. It does not add file/encoding details, which is acceptable since the schema covers them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ("Publish a web page") and adds the qualifier "as the connected user," which implicitly distinguishes it from the sibling publish_anonymous_page. It stops short of explicitly naming that sibling or contrasting with update_page/publish_document, so differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the prerequisites (authenticated AttachPage connection) and the conditions attached to specific parameters (siteId replaces, preserveFiles requires baseDeploymentId), which implies the update-in-place use case. However, it never says when to choose this tool over publish_anonymous_page, update_page, or publish_document, so routing guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_feedbackResolve feedbackADestructiveInspect
Mark recipient feedback as resolved, or reopen it with resolved: false. The recipient sees the updated resolution status.
| Name | Required | Description | Default |
|---|---|---|---|
| resolved | No | true (default) marks it resolved; false reopens it. | |
| feedbackId | Yes | Feedback id from get_feedback. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | true when saved. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the mutation profile is covered. The description adds genuine context beyond that: the recipient sees the updated resolution status, disclosing an external visibility/notification side effect, and clarifies the default (true) versus reopen behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the primary action and its toggle stated up front. Every clause carries information (operation, inverse, recipient-visible effect).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described, and the description covers the mutation and its recipient-visible consequence. It is slightly thin on reversibility/permissions context for a destructive-flagged tool, but otherwise complete for this two-parameter operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already states that resolved:true (default) resolves and false reopens, plus that feedbackId comes from get_feedback. The description essentially restates the schema's boolean semantics rather than adding new meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource pair (mark recipient feedback as resolved) and adds the inverse operation (reopen with resolved: false), so the agent can distinguish it from the read-only sibling get_feedback. It does not explicitly name any sibling, but the mutating purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when to use the tool by explaining the two modes (resolve vs. reopen via resolved: false), which is useful branching guidance. However, it gives no explicit when-not-to-use conditions, prerequisites, or routing to alternatives such as get_feedback for reading status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_pageSend pageADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | Page id (siteId) returned by a publish tool or list_pages. | |
| message | No | Optional note included in the invitation email. | |
| recipients | Yes | Email addresses; each person gets their own personal link. | |
| expiresInDays | No | Days the links work (default 7). 0 means they never expire. |
Output Schema
| Name | Required | Description |
|---|---|---|
| siteId | No | Page id. |
| shareId | No | Id of this send. |
| expiresAt | No | When the links stop working (ms since epoch; year 9999 means never). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the safety profile is known. The description adds genuine value beyond that by naming the concrete consequence — the email is sent immediately and cannot be recalled — which tells the agent the effect is externally visible and irreversible. It stops short of mentioning required permissions or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, and the operative content (what is sent to whom) is front-loaded ahead of the caution about irreversibility. Nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers the action plus its irreversible external effect. The only material gaps are unstated prerequisites (whether the page must be published first) and no cross-reference to notify_recipients, which is a plausible competing choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters including defaults (7 days, 0 = never expire) and the personal-link-per-recipient behavior. The description only restates 'optional message and access expiry,' adding no syntax or format detail beyond the schema. Baseline 3 applies when structured fields carry the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (email) and resource (personal invitations for a page) with the scoping detail 'to the specified recipient addresses.' It is clearly distinct from read tools like get_page and list_pages, though it does not explicitly differentiate itself from the nearby sibling notify_recipients, which an agent might reasonably confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for sharing a page by email, but there is no explicit when-to-use statement, no condition distinguishing it from notify_recipients, and no stated prerequisites (e.g., must the page be published first?). The line about immediacy and irreversibility is a caution rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_pageUpdate pageBDestructiveInspect
Rename a page, change its address label (slug), or switch private/public.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New page name. | |
| slug | No | New address label, 3-40 lowercase letters, digits or hyphens. | |
| siteId | Yes | Page id (siteId) returned by a publish tool or list_pages. | |
| visibility | No | private (invitation-only, default) or public (anyone with the link). |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Page id (siteId). |
| url | No | Page address. |
| name | No | Page name. |
| shares | No | Sends, each with recipients and when they opened the page. |
| visibility | No | private or public. |
| deployments | No | Recent versions, newest first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the safety profile is covered externally. The description adds what is being mutated (name, slug, visibility), but does not disclose the consequences of a destructive mutation, e.g. that changing the slug breaks previously shared links or that visibility changes who can access an existing page.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the actions in the order of the schema fields, with zero filler or repetition. Nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and annotations cover the destructive/write nature. The description accounts for all three mutable attributes, leaving only permission requirements and partial-update behavior unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema supplies format constraints (slug 3-40 lowercase letters/digits/hyphens) and enum meanings (private invitation-only vs public link). The description merely restates the same three fields, so the baseline 3 applies with no added semantics such as whether the update is partial or atomic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb (rename/change/switch) with a specific resource (page) and enumerates the three mutable attributes: name, slug, visibility. That is enough to distinguish it from the read-oriented siblings (get_page, list_pages) and the publish siblings, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. An agent is not told whether this requires ownership/admin rights, whether publish_page is the right call instead when the page does not yet exist, or what to do for a partial vs. full update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
- First observed
get_feedback - First observed
get_page - First observed
get_profile - First observed
list_pages - First observed
notify_recipients - First observed
publish_anonymous_page - First observed
publish_document - First observed
publish_page - First observed
resolve_feedback - First observed
send_page - First observed
update_page
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.