Skip to main content
Glama
EveryPageApp

everypage-mcp

Official
by EveryPageApp

Share a PDF

everypage_share_pdf

Upload a PDF and get a tracked share link, embeddable iframe, and QR code. Apply passcode, expiry, or download limits, then monitor who reads it.

Instructions

Upload a PDF to EveryPage and get back a tracked share link, an embeddable iframe, and a QR code URL. Give either path (a PDF on this machine) or url (an https link to a PDF). Share settings such as a passcode, expiry or download permission can be applied in the same call. Every read of the resulting link is tracked - use everypage_get_readership afterwards to see who read it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNohttps:// link to a PDF. Fetched without credentials, then uploaded.
pathNoAbsolute path to a PDF on this machine, e.g. /Users/you/proposal.pdf.
slugNoVanity link name on the owner's custom domain: lowercase letters, digits and hyphens. Requires the Pro plan.
pageToNoLast page readers may see. Set pageFrom and pageTo to 0 to clear the limit (clearing is never plan-gated).
filenameNoDisplay name for the document. Defaults to the file's own name.
pageFromNoFirst page readers may see (1-based). Pair with pageTo. Pages outside the window are never sent to the browser. Requires the Pro plan.
passcodeNoRequire this passcode to open the document. Requires the Basic plan or higher.
viewLimitNoBurn the link after this many views. 0 clears the limit. Requires the Basic plan or higher.
watermarkNoStamp the reader's identity across the pages. Requires the Pro plan.
askReceiptNoAsk readers to confirm they received the document. Requires the Basic plan or higher.
viewerModeNoHow the document is presented: standard scroll, page-turning flipbook, swipe, or magazine spread.
expiryHoursNoExpire the link this many hours from now. Capped by plan: 7 days on free, 365 days on basic, unlimited on pro.
gateDomainsNoRestrict the email gate to these domains, e.g. ["acme.com"]. An empty array clears the restriction. Requires the Pro plan.
neverExpireNoKeep the link alive permanently. Overrides expiryHours. Requires the Pro plan.
notifyOnViewNoEmail the owner when someone reads the document. Requires the Basic plan or higher.
requireEmailNoMake readers give an email address before they can read. Requires the Pro plan.
allowDownloadNoLet readers download the original PDF.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
sizeNoSize of the uploaded PDF in bytes.
uuidYesThe document's canonical UUID.
qr_urlYesPNG QR code for the share link. Public - no credentials needed to fetch it.
shortIdNoThe document's short share-URL alias.
fileNameNoThe document's display name.
shareUrlYesThe tracked share link to send to a reader.
warningsNoNon-fatal problems. The operation succeeded; these describe what could not be applied.
embed_codeYesReady-to-paste <iframe> that embeds the document.
totalPagesNo
appliedSettingsNoSettings that were applied.
Behavior4/5

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

Annotations already mark readOnlyHint false, so the description's 'Upload a PDF' is expected. It adds behavioral details beyond annotations: the share link is tracked, returns an iframe and QR URL, and settings can be applied in the same call. No contradiction.

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

Conciseness4/5

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

Four sentences, front-loaded with the core purpose and outcome. The third sentence about share settings is slightly redundant with the schema but reinforces that settings are applied in the same call; 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?

Given 17 parameters, full schema descriptions, and an output schema, the description provides essential orientation: source selection (path/url), output artifacts, and tracking. It does not explicitly state that at least one source is required or how to update/delete the share, but the annotation and schema richness cover most operational details.

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 coverage is 100% with all parameter descriptions present, so baseline 3 applies. The description only highlights 'path', 'url', and examples like 'passcode, expiry or download permission', which adds little over 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?

Clearly states 'Upload a PDF to EveryPage and get back a tracked share link, an embeddable iframe, and a QR code URL' – a specific action with a concrete resource and result. It distinguishes from sibling tools (list/get/update) by focusing on the share-creation action.

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?

Mentions 'Give either `path` (a PDF on this machine) or `url` (an https link to a PDF)' – clear usage instruction. Points to 'everypage_get_readership afterwards' as a follow-up, but does not explicitly name alternative share-management tools like update_file_settings or delete_file.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EveryPageApp/everypage-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server