Docshare

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 5, 2026

EveryPage tracked PDF links: upload, update and delete PDFs, variant links and webhooks.

Overview

AI-generated overview

Connects an assistant to an EveryPage account to upload PDFs, share tracked links, manage recipient variants and webhooks, and read viewership analytics.

What you can do
  • Upload a PDF from a local path or https URL and get a tracked link, embed code and QR URL
  • Browse shared documents, inspect one file's links and protection, change passcode, expiry, downloads, viewer mode, email gate, view limit, page range or slug, replace content behind a live link, and trash or purge files
  • Read readership reports and poll recent views, downloads and captured leads with a cursor
  • Create and manage one tracked link per named recipient, including revoking or GDPR-redacting a name
  • List webhook endpoints and their delivery health, and create, test or delete them
  • Show the connected account, its plan and plan limits
When to use it
Useful when you share PDFs and want to know who opened them, how far they read and where they dropped off, or when you need per-recipient tracked links and lead capture managed from a chat session.
Requirements
Runs locally over stdio via npx or Docker. Requires an EveryPage account and the EVERYPAGE_API_KEY environment variable; optional EVERYPAGE_BASE_URL override and EVERYPAGE_READ_ONLY=true to expose only read tools. Network access to EveryPage is needed.
Before you install
The API key is a credential passed in the environment; without it every tool fails. Write tools can upload, replace, trash or permanently purge documents, change access settings, revoke links, redact recipient names and create or delete webhooks. Uploaded PDFs and fetched URLs are sent to EveryPage, and readership data includes recipient names and email-gate leads. Some tools are marked Pro and depend on the account plan.

Installation

In SourceWeft

  1. Open Docshare in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

docshare

Hand someone a PDF and actually know what happened to it. docshare talks to EveryPage: you upload a document once, share the tracked link it gives back, and from then on every open, download, and email-gate completion is recorded against that link — or, with variants, against the exact recipient you sent it to.

There are fifteen tools. Sharing and lifecycle: everypage_share_pdf uploads a PDF from a local path or an https URL and can apply its share settings in the same call; everypage_list_files and everypage_get_file browse what you have shared; everypage_update_file_settings changes the passcode, expiry, download permission, viewer mode, email gate, view limit, page range, or slug; everypage_replace_content swaps the PDF behind a live link while the link and its history stay put; and everypage_delete_file trashes a document, or purges it for good when you ask for that explicitly.

Readership: everypage_get_readership reports who read a document, how far they got, and where they dropped off, while everypage_list_events streams recent views, downloads, or captured leads behind a polling cursor you carry from one call to the next (a cursor only works for the stream type it came from).

Variants and webhooks: everypage_create_variants makes one tracked link per named recipient, everypage_list_variants, everypage_update_variant, and everypage_delete_variant manage them (including GDPR redaction of a recipient's name), everypage_list_webhooks and everypage_manage_webhook look after webhook endpoints and their delivery health, and everypage_account shows the connected account, its plan, and what that plan allows.

A file argument is forgiving about form: paste the UUID, the short link id, or the full share URL — /embed/ links and links carrying ?via= work too. Uploads are checked before they leave the machine: the bytes must start with the PDF magic %PDF-, and a PDF fetched from an https URL is downloaded without your EveryPage key, which is only ever sent to EveryPage itself.

Configuration

bash
export EVERYPAGE_API_KEY="..."            # requiredexport EVERYPAGE_BASE_URL="https://everypage.co"   # optional overrideexport EVERYPAGE_READ_ONLY="true"         # optional: read tools only

Without EVERYPAGE_API_KEY, every tool fails with EVERYPAGE_API_KEY is not set before any request is made. With EVERYPAGE_READ_ONLY=true, only the seven read tools (everypage_list_files, everypage_get_file, everypage_get_readership, everypage_list_events, everypage_list_variants, everypage_list_webhooks, everypage_account) are listed, and calling any other tool is refused.

CLI

Each tool is a subcommand taking one JSON argument string:

bash
npx @reneturcios/docshare everypage_share_pdf '{"source":"./deck.pdf","settings":{"requireEmail":true}}'npx @reneturcios/docshare everypage_list_events '{"type":"view","limit":20}'npx @reneturcios/docshare everypage_create_variants '{"file":"https://everypage.co/s/abc123?via=email","labels":["Ana","Ben"]}'npx @reneturcios/docshare --version

Output is the tool's result text (normally the upstream JSON). Exit codes: 0 on success, 1 on a runtime error (including a validation or upstream failure), 2 on a usage error.

MCP server

bash
npx -y @reneturcios/docshare mcp

MCP client config:

json
{  "mcpServers": {    "docshare": {      "command": "npx",      "args": ["-y", "@reneturcios/docshare", "mcp"],      "env": { "EVERYPAGE_API_KEY": "..." }    }  }}

Docker

bash
docker run -i -e EVERYPAGE_API_KEY=... ghcr.io/cloudcorprecords/docsharedocker run --rm -e EVERYPAGE_API_KEY=... ghcr.io/cloudcorprecords/docshare everypage_account '{}'

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # tsx --test test/*.test.ts (fake fetch + fake file reader, no network)npm run dev     # run the CLI from source

License

MIT — Copyright (c) 2026 Rene Turcios

Source: README.md at commit 4e53287

Tools

15

everypage_share_pdf

Create a tracked link by uploading a PDF to your EveryPage account (from a local path, or by fetching any user-supplied https URL) and get the tracked link, embed code and QR URL — applying share settings to the new file in the same call

Parameterssourcerequiredsettings

everypage_list_files

List documents, optionally filtered by name

Parametersname

everypage_get_file

One document's links, protection and status

Parametersfilerequired

everypage_update_file_settings

Change passcode, expiry, downloads, viewer mode, email gate, view limit, page range, slug

Parametersfilerequiredsettingsrequired

everypage_delete_file

Trash a document, or purge it permanently

Parametersfilerequiredpurge

everypage_replace_content

Replace the PDF stored behind a live link with new content (from a local path, or by fetching any user-supplied https URL), keeping the link and its history · Pro

Parametersfilerequiredsourcerequired

everypage_get_readership

Who read it, how far they got, where they dropped off

Parametersfilerequired

everypage_list_events

Recent reads, downloads or captured leads, with a polling cursor

Parametersfiletypelimitsince

everypage_create_variants

Create one tracked link per recipient on your EveryPage account, so reads are attributed by name · Pro

Parametersfilerequiredlabelsrequired

everypage_list_variants

Those links and their status

Parametersfilerequired

everypage_update_variant

Rename, revoke or restore one recipient's link · Pro

Parametersfilerequiredlabelrevokedvariantrequiredoverrides

everypage_delete_variant

Delete it, or GDPR-redact the recipient's name · Pro

Parametersfilerequiredredactvariantrequired

everypage_list_webhooks

Webhook endpoints and their delivery health

Takes no parameters.

everypage_manage_webhook

Create, test or delete a webhook endpoint

Parametersurlactionrequiredeventswebhook

everypage_account

The connected account, its plan, and what that plan allows

Takes no parameters.

Version history

1
  1. v0.1.0LatestNov 5, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts