EveryPage MCP server

Your assistant can share a document. Now it can tell you who read it

The EveryPage MCP server gives Claude, Cursor, VS Code and any other MCP client a way to turn a PDF into a tracked link - and then answer the question that actually matters: did they read it, how far did they get, and which page did they stop on?

Set up the EveryPage MCP server in two minutes.

The server runs locally, on your machine, launched by your MCP client. There is nothing to host and nothing to deploy - and because it runs where your files are, it can read a PDF straight off your disk.

  1. 1

    Create an API key

    In your EveryPage account settings, create an API key. It starts with ep_live_ and is shown once. Every plan can create one, including the free plan.

  2. 2

    Add the server to your client

    Paste the configuration below into your MCP client and restart it. The package is fetched from npm on first run - there is nothing to install by hand. Node 20 or newer is required.

  3. 3

    Ask for what you want

    No commands to learn. Ask your assistant to share a document, or ask whether anyone has read one, and it will pick the right tool itself.

mcp config

Claude Desktop, Cursor, VS Code and friends

Add this to your MCP client's configuration file, replacing the placeholder with your own key. The key stays in your local config and is sent only to everypage.co.

{
  "mcpServers": {
    "everypage": {
      "command": "npx",
      "args": ["-y", "everypage-mcp"],
      "env": { "EVERYPAGE_API_KEY": "ep_live_..." }
    }
  }
}

Using Claude Code? One command does the same thing:

claude mcp add everypage --env EVERYPAGE_API_KEY=ep_live_... -- npx -y everypage-mcp

What the EveryPage MCP server can do.

Fifteen tools, shaped around tasks rather than API endpoints - so "share this and tell me when they read it" is one request, not five. Here are the ones you will use most.

everypage_share_pdf

Upload a PDF from your machine or a link, and get back a tracked share URL, an embeddable iframe and a QR code - applying a passcode, expiry or download rule in the same step.

everypage_get_readership

Who read a document and how far they got: views, unique readers, read time, completion, countries, the page where readers drop off, and which page they went back to.

everypage_list_events

Recent activity across every document - reads, downloads, or leads captured by an email gate - with a cursor so the next check only returns what is new.

everypage_list_files

List your documents with their links and view counts, filtered by name when you are looking for one in particular.

everypage_get_file

Look up a single document: its links, whether it is passcode-protected or gated, and whether it is still live. Accepts a share URL pasted straight from the browser.

everypage_update_file_settings

Change how a document is shared after the fact - passcode, expiry, downloads, viewer mode, email gate, view limit, page range or vanity name.

everypage_create_variants

Pro

Mint a separate tracked link for each recipient in one call, so reads are attributed to a person by name rather than blending into one anonymous total.

everypage_replace_content

Pro

Swap the PDF behind a live link. The link, QR code, settings and readership history all survive - only the document changes.

everypage_manage_webhook

Create, test or delete a webhook endpoint, and see whether an existing one is still delivering.

everypage_account

Which account is connected, which plan it is on, and what that plan allows.

Things worth asking for.

These are ordinary requests, not commands. The assistant works out which tools to call and in what order.

“Share this proposal with a passcode and give me the link.”

One step: the PDF is read off your disk, uploaded, protected, and the share link, QR code and embed snippet come back together.

“Did anyone read the deck I sent on Monday?”

You get a summary rather than a data dump - readers, time spent, completion, and the page where people stopped - with the raw numbers still available underneath.

“Send this to Alice, Bob and Carol with separate links.”

One tracked link per person, labelled with their name, so the next readership check tells you which of them actually opened it.

“Anything new since yesterday?”

A digest of reads, downloads and captured leads across every document, using a cursor so nothing is counted twice.

How it behaves.

The details that decide whether an integration is pleasant or exhausting to use.

Paste a link, not an ID

Anywhere a document is named, you can give a share URL copied from the browser, a short link ID, or the full UUID. There is no lookup step and nothing to memorise.

Your key never leaves your machine

The key lives in your local MCP config and is sent only to everypage.co. When you ask it to share a PDF from someone else's URL, that download is made with no EveryPage credentials attached at all.

Large files stream

A local PDF is read off disk rather than into memory, so a 2 GB document uploads without the process growing. Files are checked for size and format before anything is sent.

Deleting is reversible by default

Deleting a document moves it to the trash, and says so; destroying it permanently takes an explicit instruction. Irreversible tools are flagged so clients can ask you first.

What each plan unlocks.

The MCP server itself is free and works on every plan. What it can do is bounded by the plan the connected account is on - and a refusal always says which plan is needed.

CapabilityFreeBasicPro
Share a PDF and get a tracked link
Readership summary and activity feed
Passcodes, view limits and read notifications
Page-by-page drop-off statistics
A separate tracked link per recipient
Email-capture gate, content replacement, page ranges

Questions.

Which AI clients does this work with?

Any client that speaks the Model Context Protocol. That includes Claude Code, the Claude desktop and web apps, Cursor, VS Code, and a growing list of others. The setup is the same everywhere: point the client at npx everypage-mcp and give it an API key.

Does my assistant get access to my documents' contents?

No. The tools work with links and readership statistics, not document contents. The one file it reads is the PDF you explicitly ask it to share, and that is read only to upload it.

Can it delete something by accident?

Deleting a document moves it to the trash, where it can be restored - destroying one permanently requires an explicit instruction. Every irreversible tool is marked as such in the protocol, so clients that support confirmation prompts will ask before running it. If you would rather it could not write at all, set EVERYPAGE_READ_ONLY to true and only the read-only tools are offered.

Do I need a paid plan?

No. Sharing documents and seeing who read them work on the free plan. Passcodes, view limits and page-by-page statistics need Basic; per-recipient links, the email-capture gate and content replacement need Pro.

Is this different from the API, Zapier or n8n?

It is the same API underneath. Zapier, Make and n8n are for workflows you build once and leave running; this is for asking in the moment, in conversation. Many people use both - an assistant to share and check, a workflow to route new leads into a CRM.

Is it open source?

Yes, MIT licensed, on GitHub, and published on npm and in the official MCP registry. The tool surface is snapshot-tested, so a tool cannot be renamed or removed without a deliberate release.

Ask your assistant who read it.

Create an account, generate an API key, and paste four lines into your MCP client. The next document you share can answer for itself.

Start free

Related: all integrations · the developer API · the n8n node · raw webhooks · the DocSend alternative