Docshare

io.github.CloudCorpRecords由 GitHub 账号 CloudCorpRecords 发布v0.1.0更新于 Nov 5, 2026

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

概览

AI 生成的概览

把助手连接到 EveryPage 账户,可上传 PDF、生成可追踪分享链接、管理收件人变体链接与 Webhook,并查看阅读数据。

可以做什么
  • 从本地路径或 https 网址上传 PDF,获得追踪链接、嵌入代码和二维码地址
  • 浏览已分享文档、查看单个文件的链接与保护设置,修改密码、有效期、下载权限、阅读模式、邮箱门槛、查看次数、页码范围或短链,替换在线链接背后的内容,以及移入回收站或彻底清除
  • 查看阅读报告,并用游标轮询最近的浏览、下载和邮箱线索
  • 为每位指定收件人创建独立追踪链接,并可撤销链接或按 GDPR 要求抹除姓名
  • 列出 Webhook 端点及其投递状态,并创建、测试或删除端点
  • 查看已连接账户、其套餐及套餐权限
适用场景
适合需要分享 PDF 并了解谁打开、读到何处、在哪里中断的场景,也适合在对话中管理按收件人区分的追踪链接与线索收集。
运行要求
通过 npx 或 Docker 以 stdio 在本地运行。需要 EveryPage 账户和 EVERYPAGE_API_KEY 环境变量;可选 EVERYPAGE_BASE_URL 覆盖地址,以及 EVERYPAGE_READ_ONLY=true 仅开放只读工具。需要能访问 EveryPage 的网络。
安装前请注意
API 密钥属于凭据,通过环境变量传入,缺失时所有工具都会失败。写入类工具可上传、替换、移入回收站或永久清除文档,修改访问设置,撤销链接,抹除收件人姓名,以及创建或删除 Webhook。上传的 PDF 和抓取的网址会发送到 EveryPage,阅读数据包含收件人姓名和邮箱线索。部分工具标注为 Pro,取决于账户套餐。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Docshare,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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

来源:README.md,提交 4e53287

工具

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

输入参数source必填settings

everypage_list_files

List documents, optionally filtered by name

输入参数name

everypage_get_file

One document's links, protection and status

输入参数file必填

everypage_update_file_settings

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

输入参数file必填settings必填

everypage_delete_file

Trash a document, or purge it permanently

输入参数file必填purge

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

输入参数file必填source必填

everypage_get_readership

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

输入参数file必填

everypage_list_events

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

输入参数filetypelimitsince

everypage_create_variants

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

输入参数file必填labels必填

everypage_list_variants

Those links and their status

输入参数file必填

everypage_update_variant

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

输入参数file必填labelrevokedvariant必填overrides

everypage_delete_variant

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

输入参数file必填redactvariant必填

everypage_list_webhooks

Webhook endpoints and their delivery health

无需输入参数。

everypage_manage_webhook

Create, test or delete a webhook endpoint

输入参数urlaction必填eventswebhook

everypage_account

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

无需输入参数。

版本历史

1
  1. v0.1.0最新Nov 5, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分