Skip to main content
Glama

Server Details

Publish an HTML document as a link anyone can open in one tap, plus PDF, image and Word export.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
jcaiagent7143-ui/sendpage-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 3 of 3 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct operation: list, publish, or update documents. There is no overlap in purpose, making it clear which tool to select for a given action.

Naming Consistency5/5

All tool names follow the same verb_noun pattern (list_documents, publish_document, update_document), providing a predictable and consistent naming convention.

Tool Count4/5

With only 3 tools, the server is slightly minimal but well-scoped for a document publishing service. Each tool is essential and covers the core workflow without unnecessary bloat.

Completeness4/5

The set covers the primary lifecycle of publishing, updating, and listing documents. A delete operation is missing, but it is not critical for the server's apparent purpose, and the existing tools handle common use cases without dead ends.

Available Tools

7 tools
check_documentCheck a document before sendingA
Read-only
Inspect

Check an HTML document for the problems a recipient will notice and you cannot: links that lead nowhere, images that will not load, placeholder text left in, http:// references the viewer blocks. Call this BEFORE handing someone a share link — a hallucinated URL or a dead CDN image is invisible while writing and obvious when reading. Pass html to check a draft, or shortId to re-check something already published after fixing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlNoA draft to check before publishing. Use this or `shortId`.
shortIdNoAn already-published document to check. Use this or `html`.
editTokenNoThe edit token, if this key did not publish the document.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable context about what the check covers and the key insight that certain problems are invisible during writing but obvious when reading. It doesn't detail output format or rate limits, but given annotation coverage, the extra context pushes it above baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with a clear structure: what it checks, when to call it, and which parameter to pass. Every sentence earns its place, and the key action is front-loaded in the first sentence. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only check tool with complete schema and annotations, the description covers the action, timing, and parameter selection well. The only gap is no explanation of the return value (e.g., whether it returns a list of problems), but since it's a check tool, the output is somewhat implicit and not critical for invocation decisions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% parameter coverage with clear descriptions for html, shortId, and editToken. The description adds meaning by explaining when to use html (draft) vs shortId (already-published), which clarifies the primary selection logic. It doesn't explain editToken, but the schema already handles that, so the description adds a modest bonus.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('check an HTML document') with a concrete resource type and lists the exact problem classes it catches (dead links, broken images, placeholder text, blocked http:// references). It clearly differentiates from siblings like get_document (retrieval) or publish_document (publishing) by focusing on pre-send validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit timing guidance: 'Call this BEFORE handing someone a share link.' It also clarifies the two primary input modes (html for drafts, shortId for already-published docs). While it doesn't name specific sibling tools as alternatives, the context makes the intended use clear, so it's slightly below the highest bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_documentExport a document as an image, PDF or Word fileA
Read-onlyIdempotent
Inspect

Get a downloadable PNG image, PDF, or Word (.docx) file of a document already published to SendPage. Use this when the user wants a file copy — to attach, print, or hand over — not just the link. Returns a URL to fetch the file. PNG and PDF are free (free-tier documents carry a small watermark); Word export requires Pro.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatYesThe file format: "png" (image), "pdf", or "docx" (Word, Pro only).
shortIdYesThe document's id, the last part of its share link.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds that the tool returns a URL to fetch the file, that PNG/PDF are free with a potential watermark, and that Word requires Pro. This provides meaningful behavioral context without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the action, then usage guidance, then return format and caveats. Every sentence adds necessary information with no repetition or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description covers the purpose, usage, return value, prerequisites, and format caveats. It is sufficiently complete for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents both parameters and their formats (100% coverage). The description adds value by explaining the Pro requirement for docx and the watermark behavior, which clarifies the practical implications of the format parameter beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool exports a published document as a downloadable PNG, PDF, or Word file, using specific verbs and resources. It differentiates from siblings like get_document by clarifying it provides a file copy rather than just a link.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this when the user wants a file copy for attaching, printing, or handing over, and not just the link. It also notes the requirement that the document must already be published and mentions Word requires Pro, but it does not explicitly name alternative sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_documentRead a published document backA
Read-onlyIdempotent
Inspect

Fetch the current HTML of a document you published, so it can be edited rather than rewritten. Call this before update_document: acting on feedback usually means one small change, and regenerating the whole file loses everything else about it.

ParametersJSON Schema
NameRequiredDescriptionDefault
shortIdYesThe document's id, the last part of its share link.
editTokenNoThe edit token, if this key did not publish the document.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable context beyond annotations by specifying the return type ('current HTML') and the behavioral benefit of editing rather than regenerating. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action, and every sentence earns its place. It conveys purpose, usage context, and rationale without any filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, rich annotations, and 100% schema coverage for the two parameters, the description is sufficiently complete for selecting and invoking the tool. It specifies the return type ('current HTML') and the recommended call pattern ('before update_document'), which is all the agent needs to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both shortId and editToken clearly described in the input schema. The description does not add additional parameter-level semantics beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb and resource: 'Fetch the current HTML of a document you published.' It distinguishes itself from sibling tools by framing the output as editable rather than something to rewrite, and explicitly names update_document as the paired next step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: 'Call this before update_document' and explains why, noting that 'regenerating the whole file loses everything else about it.' This clearly communicates when to use the tool and the reasoning behind the recommended workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_commentsRead feedback on a documentA
Read-onlyIdempotent
Inspect

Read the feedback people have left on a document you published. Call this when the user asks whether anyone has responded or replied, and always before revising a document — the comments say what to change. Returns each comment with who left it and when, oldest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
shortIdYesThe document's id, the last part of its share link.
editTokenNoThe edit token, if this key did not publish the document.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/destructive annotations, the description adds meaningful behavioral context: the prerequisite that the document must be one the user published, and the return structure (who left each comment, when, oldest first). This is substantive value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each with a distinct purpose: what it does, when to use it, and what it returns. The most important information is front-loaded, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description fully compensates by stating the return fields (who, when) and ordering (oldest first). It also covers the published-document prerequisite. This is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with clear descriptions for both shortId and editToken, so the baseline is 3. The description's mention of 'a document you published' reinforces the editToken context but does not add new parameter-specific semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read') and resource ('feedback people have left on a document'), clearly distinguishing it from siblings that handle the document itself. The scope ('on a document you published') adds precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use triggers: when the user asks about responses/replies, and always before revising a document. However, it lacks explicit when-not-to-use or named alternatives, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_documentsList published documentsA
Read-onlyIdempotent
Inspect

List the documents published with this API key, newest first, with their share links and view counts. Use it to find a document the user published earlier so it can be updated or re-sent.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful behavioral context: 'with this API key' scoping, 'newest first' ordering, and that share links and view counts are included. This goes beyond the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The first sentence states the action and return value; the second gives a practical use case. Well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description tells the user what will be returned: share links and view counts, sorted newest first. It covers the essential behavior for a simple list tool, though it omits possible pagination or limit details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description does not need to explain parameter semantics. Baseline 4 applies; the description is clear that the operation is parameterless and focused on listing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('List'), a clear resource ('documents published with this API key'), and details on ordering and returned fields. It clearly distinguishes from siblings like get_document (single document) and publish/update (mutations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an explicit use case: 'Use it to find a document the user published earlier so it can be updated or re-sent.' This clearly implies when to use the tool, though it does not explicitly mention alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_documentPublish an HTML documentAInspect

Publish an HTML document to SendPage and get a shareable link the recipient can open in one tap on any device. Use this whenever the user has an HTML document and wants to send, share, or deliver it to someone — it is the delivery step after the document is written. The link renders the page as designed, previews with a title and preview card in WhatsApp/Telegram/Slack/email, and can be exported to PDF, image or Word. Returns the share link plus an edit token for later updates.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYesThe complete HTML document, from <!DOCTYPE html> onwards.
titleNoTitle shown in the link preview and document header. Taken from the HTML's <title> if omitted.
senderNameNoWho the document is from, shown to the recipient. Optional.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read, non-idempotent, open-world operation. The description adds valuable context: it creates a SendPage link, previews in messaging apps, supports export formats, and returns an edit token. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with clear front-loading: purpose, usage context, and output/behavior. Every sentence adds value with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly states what is returned (share link and edit token). It also covers preview and export behavior. It could be more precise about response structure, but it is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have full schema descriptions, so the description doesn't need to detail each parameter. It reinforces that 'html' must be the complete document and mentions title fallback behavior, but adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool publishes an HTML document to SendPage and returns a shareable link. This is a specific verb+resource combination that distinguishes it from sibling tools like get_document, update_document, and list_documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this whenever the user has an HTML document and wants to send, share, or deliver it to someone' and frames it as the 'delivery step after the document is written.' This provides strong when-to-use guidance, but it does not name a specific alternative tool for non-delivery scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_documentUpdate a published documentA
DestructiveIdempotent
Inspect

Replace the contents or title of a document already published to SendPage. The share link stays exactly the same, so use this to fix a typo or update figures instead of publishing again — anyone who already has the link sees the correction.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlNoReplacement HTML. Optional.
titleNoReplacement title. Optional.
shortIdYesThe document's id, the last part of its share link.
editTokenNoThe edit token returned when the document was published.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint and readOnlyHint false, and the description adds valuable behavioral context: the share link stays exactly the same and existing viewers see the correction. This goes beyond the annotation flags and helps the agent understand consequences without contradicting 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core verb and resource, and every sentence adds value: the first states the action, the second explains the share-link behavior and recommended use case. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with strong schema coverage and annotations present, the description sufficiently explains the purpose, key non-obvious behavior, and use scenario. It does not describe return values, but no output schema exists and this is not critical for an update operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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. The description's mention of 'contents or title' maps to the html and title parameters, but it does not add additional meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly uses the verb 'Replace' with the resource 'contents or title of a document already published to SendPage', and implicitly distinguishes itself from publish_document by emphasizing the same share link is retained. This makes the tool's purpose unambiguous and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('fix a typo or update figures') and provides a clear alternative behavior ('instead of publishing again'), which effectively tells the agent not to re-publish. It does not name the sibling publish_document explicitly, but the intent is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Publish HTML or markdown artifacts (reports, dashboards, demos) as instant shareable links with TTL expiry, social preview cards, and optional password protection. Works with the hosted service or a self-hosted instance.
    1
    18
    13
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Publish Markdown or HTML to a clean, shareable public link straight from your AI assistant — OAuth sign-in, no API keys. Tools: publish and list_my_pages.
    1
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.