Skip to main content
Glama

问题所在

你用 Markdown 写了一个 README、PRD、会议纪要或 API 文档。现在你需要将其分享给没有 Markdown 渲染器、不使用 GitHub,或者只是需要一个可以在浏览器中打开的简洁链接的人。

plsreadme 只需一步即可将任何 Markdown 转换为永久、渲染精美的网页。无需账户。无需注册。零门槛。

Related MCP server: slideless-mcp

✨ 功能

  • 即时共享 — 粘贴 Markdown 或上传文件,获取 plsrd.me 链接

  • 精美渲染 — 简洁的排版、深色模式、移动端响应式

  • 行内评论 — 读者可以点击任何段落并留下反馈

  • 审阅模式(当前 vs 时间轴) — 多版本文档默认为当前草稿反馈,并可一键访问完整的时间轴历史记录

  • AI 自动格式化 — 丢入原始文本;它会输出为整洁的 Markdown

  • MCP 服务器 — 直接从 Claude、Cursor、VS Code 或任何 MCP 客户端共享文档

  • OpenClaw 技能 — 可在 ClawHub 上用于 AI 代理工作流

  • 短链接 — 每个文档都会获得一个紧凑的 plsrd.me/v/xxx URL

  • 原始访问 — 从任何共享链接下载原始 .md 文件

  • 版本时间轴 + 安全恢复/v/:id/versions + /v/:id/history + 优先归档的恢复 API,实现快速回滚

  • Clerk 身份验证基础 — GitHub/Google 登录集成 + Clerk 托管的电子邮件备选方案 + 后端身份验证验证工具

  • 所有权模型(第 2 阶段) — 文档可以关联到 Clerk 用户 (owner_user_id),同时保留匿名流程

  • 我的链接仪表板(第 3 阶段) — 经过身份验证的 /my-links 页面,支持搜索/排序/分页以及快速复制/打开操作

  • 旧链接认领(第 4 阶段) — 已登录用户可以通过证明原始 admin_token 来认领旧的匿名链接

  • 零配置网站演示 — 在浏览器中尝试无需账户或 API 密钥

🚀 快速开始

网页

前往 plsreadme.com,粘贴你的 Markdown,点击分享。

身份验证路径与发布状态

推荐顺序:

  1. 先在浏览器中尝试 — 最快的演示路径,无需 MCP 设置。

  2. 在客户端支持验证后使用托管远程 MCP 配合浏览器登录

  3. 在无法进行交互式登录时使用 API 密钥 / 本地 MCP 备选方案

当前发布状态:

流程

当前状态

所有权规则

来源标签

匿名网站演示

通过浏览器验证的演示流程现已可用

owner_user_id = NULL,直到用户后续保存/认领文档

web_demo

已登录网站创建

现已可用

文档创建时将已登录的 Clerk 用户作为所有者

web_signed_in

托管远程 MCP 配合浏览器登录

在受支持的客户端中现已可用

浏览器登录后为已登录用户创建归属文档

mcp_remote_login

托管远程 MCP 配合 API 密钥

作为兼容性备选方案现已可用

为 API 密钥所有者创建归属文档

mcp_remote_api_key

本地 npm MCP 配合 API 密钥

现已可用,推荐用于本地 stdio 设置

为 API 密钥所有者创建归属文档

mcp_local_api_key

本地 npm MCP 匿名备选方案

仅在明确选择加入时可用

除非后续认领/保存,否则保持匿名

mcp_local_anonymous

托管远程 MCP 发布说明:

  • https://plsreadme.com/mcp

  • https://plsreadme.com/sse

这些托管的远程 MCP 路由在代码中通过 OAuth 保护的浏览器登录运行,包括 /authorize/oauth/token/oauth/register

操作说明:

  • D1 doc_create_events 是跨网页、托管 MCP 和本地 MCP 流程的规范创建归属表。

  • docs.raw_view_count 跟踪每次渲染点击,而 docs.view_count 保留用于疑似人类的阅读。

  • 请参阅 docs/runbooks/auth-surface-monitoring.md 获取生产查询集和响应步骤。

  • 访问令牌有效期约为 1 小时

  • 刷新令牌有效期约为 30 天

  • 重新连接同一客户端会替换旧的授权

  • 退出网站登录本身不会撤销现有的编辑器授权

  • 此仓库现已连接到名为 OAUTH_KV 的专用 Cloudflare Workers KV 绑定

当客户端不支持浏览器登录时,请从 /my-links 创建个人 API 密钥,并使用托管远程标头备选方案或本地 npx -y plsreadme-mcp 软件包。

网站演示信任模型现状:

  • /api/create-link 上的匿名网站创建需要短期的浏览器验证授权

  • 已登录网站创建跳过该授权,保持低门槛

  • 创建后 UI 现在分支为 保存到我的账户连接你的编辑器复制链接

API

curl -X POST https://plsreadme.com/api/render \
  -H "Content-Type: application/json" \
  -d '{"markdown": "# Hello World\n\nThis is my doc."}'
{
  "id": "abc123def456",
  "url": "https://plsreadme.com/v/abc123def456",
  "raw_url": "https://plsreadme.com/v/abc123def456/raw",
  "admin_token": "sk_..."
}

保存 admin_token — 你在编辑或删除时需要它:

# Update
curl -X PUT https://plsreadme.com/v/abc123def456 \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{"markdown": "# Updated content"}'

# Delete
curl -X DELETE https://plsreadme.com/v/abc123def456 \
  -H "Authorization: Bearer sk_..."

版本时间轴 + 安全恢复

使用时间轴端点在 AI 迭代周期中查看修订上下文:

curl https://plsreadme.com/v/abc123def456/versions
{
  "id": "abc123def456",
  "current_version": 5,
  "total_versions": 5,
  "versions": [
    { "version": 5, "is_current": true, "raw_url": "https://plsreadme.com/v/abc123def456/raw" },
    { "version": 4, "is_current": false, "raw_url": "https://plsreadme.com/v/abc123def456/raw?version=4" }
  ]
}

如果 AI 编辑导致文档回退,请恢复之前的快照(优先归档,非破坏性):

curl -X POST https://plsreadme.com/v/abc123def456/restore \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{"version": 4}'

恢复操作与更新一样受到速率限制(目前每个执行者密钥 60 次/小时),以减少滥用。

对于由已通过身份验证的 Clerk 用户拥有的文档,更新/删除/恢复也需要该所有者会话(以防止跨用户修改),而匿名文档仅使用 admin_token 即可继续工作。

审阅模式使用说明(先显示当前草稿,按需显示时间轴)

文档查看器现在公开了评论审阅控件:

  • 当前草稿 — 仅显示绑定到最新文档版本的评论(当文档有多个版本时为默认值)。

  • 时间轴 — 显示完整的跨版本评论历史记录。

你可以直接从 API 获取相同的模式:

# Latest-version comments only
curl "https://plsreadme.com/api/comments/abc123def456?view=current"

# Full timeline comments (default API behavior)
curl "https://plsreadme.com/api/comments/abc123def456?view=all"

查看器链接在 URL 中保留模式以供可共享的审阅上下文使用:

  • https://plsreadme.com/v/abc123def456?view=current

  • https://plsreadme.com/v/abc123def456?view=timeline

要将旧的匿名链接认领到你的已登录账户中:

curl -X POST https://plsreadme.com/api/auth/claim-link \
  -H "Authorization: Bearer <clerk-session-jwt>" \
  -H "Content-Type: application/json" \
  -d '{"id":"abc123def456","adminToken":"sk_..."}'

MCP (AI 编辑器)

目前的建议:

  • 当你的客户端干净地支持时,使用托管远程 MCP 配合浏览器登录

  • 当远程身份验证不可用或在客户端中不便时,使用个人 API 密钥备选方案

  • 为了最安全的 stdio 路径,使用带有 PLSREADME_API_KEY 的本地 plsreadme-mcp 软件包

将你的编辑器连接到 plsreadme 并通过自然语言共享文档:

“将此 README 分享为 plsreadme 链接” “将我的 PRD 变成一个可共享的页面” “将这些会议纪要变成一个可读的链接”

MCP/代理自动审阅循环与 /versions

对于迭代式 AI 写作流程(草稿 → 批评 → 修改),代理可以将 /v/:id/versions 作为事实来源:

  1. 为人类保留规范的可读 URL (/v/:id)。

  2. 在迭代之间轮询 /v/:id/versions

  3. current_version 与上次审阅的版本进行比较。

  4. 如果发生更改,获取最新版本的 raw_url 并运行审阅检查。

  5. 如果质量回退,可选择使用管理员令牌 + 所有者会话触发 /v/:id/restore

这为自动化提供了确定性的修订跟踪,而无需抓取 HTML。

请参阅 docs/ai-iteration-versioning.md 获取完整手册。

🔌 MCP 设置

客户端兼容性矩阵

截至 2026 年 4 月 5 日:

客户端

推荐路径

浏览器登录支持

API 密钥备选方案

说明

Claude Code

优先托管远程 MCP

已验证在线

最佳支持的远程流程;使用 PLSREADME_API_KEY 的本地 stdio 也运行良好

Cursor

优先托管远程 MCP

已记录,但实际上取决于构建版本

如果你的构建版本未显示 OAuth 提示,请使用标头

VS Code

可用时使用托管远程 MCP

存在配置,发布情况因构建版本而异

当登录 UX 缺失时,type: "http" 加标头备选方案有效

Windsurf

可用时使用托管远程 MCP

已记录远程支持

当浏览器身份验证尚未公开时,使用 serverUrl + 标头

Claude Desktop

本地 npm MCP

此处无已验证的远程浏览器流程

优先使用 stdio + PLSREADME_API_KEY

原始 HTTP / 脚本

托管远程标头模式

直接发送 Authorization: Bearer $PLSREADME_API_KEY

托管远程登录(受支持的客户端)

Claude Code:

claude mcp add --transport http plsreadme https://plsreadme.com/mcp

Cursor:

{
  "mcpServers": {
    "plsreadme": {
      "url": "https://plsreadme.com/mcp"
    }
  }
}

VS Code:

{
  "servers": {
    "plsreadme": {
      "type": "http",
      "url": "https://plsreadme.com/mcp"
    }
  }
}

Windsurf:

{
  "mcpServers": {
    "plsreadme": {
      "serverUrl": "https://plsreadme.com/mcp"
    }
  }
}

生命周期说明:

  • 访问令牌 TTL 约为 1 小时

  • 刷新令牌 TTL 约为 30 天

  • 重新连接同一客户端会替换旧的授权

  • 退出登录会结束网站会话,但不会自动撤销现有的编辑器授权

  • 使用 GET /api/auth/mcp-grantsDELETE /api/auth/mcp-grants/:grantId 来审计或撤销托管编辑器授权

如果你的客户端支持浏览器登录,请优先选择此路径。这是最干净的设置,并自动将归属文档绑定到你的网站账户。

托管远程 API 密钥备选方案

首先从 https://plsreadme.com/my-links 创建个人 API 密钥,然后使用以下其中一种:

Claude Code:

claude mcp add --transport http \
  --header "Authorization: Bearer $PLSREADME_API_KEY" \
  plsreadme-api https://plsreadme.com/mcp

Cursor:

{
  "mcpServers": {
    "plsreadme-api": {
      "url": "https://plsreadme.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:PLSREADME_API_KEY}"
      }
    }
  }
}

VS Code:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "plsreadme-api-key",
      "description": "plsreadme personal API key",
      "password": true
    }
  ],
  "servers": {
    "plsreadme-api": {
      "type": "http",
      "url": "https://plsreadme.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:plsreadme-api-key}"
      }
    }
  }
}

Windsurf:

{
  "mcpServers": {
    "plsreadme-api": {
      "serverUrl": "https://plsreadme.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:PLSREADME_API_KEY}"
      }
    }
  }
}

原始远程端点用户:

curl -i https://plsreadme.com/mcp \
  -H "Authorization: Bearer $PLSREADME_API_KEY"

本地 npm 备选方案

Claude Code:

claude mcp add --transport stdio \
  --env PLSREADME_API_KEY=$PLSREADME_API_KEY \
  plsreadme -- npx -y plsreadme-mcp

Cursor: 添加到 ~/.cursor/mcp.json

{
  "mcpServers": {
    "plsreadme": {
      "command": "npx",
      "args": ["-y", "plsreadme-mcp"],
      "env": {
        "PLSREADME_API_KEY": "${env:PLSREADME_API_KEY}"
      }
    }
  }
}

VS Code: 添加到 .vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "plsreadme-api-key",
      "description": "plsreadme personal API key",
      "password": true
    }
  ],
  "servers": {
    "plsreadme": {
      "command": "npx",
      "args": ["-y", "plsreadme-mcp"],
      "env": {
        "PLSREADME_API_KEY": "${input:plsreadme-api-key}"
      }
    }
  }
}

Claude Desktop: 添加到 claude_desktop_config.json

{
  "mcpServers": {
    "plsreadme": {
      "command": "npx",
      "args": ["-y", "plsreadme-mcp"],
      "env": {
        "PLSREADME_API_KEY": "<paste-your-personal-api-key>"
      }
    }
  }
}

Windsurf: 添加到 ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "plsreadme": {
      "command": "npx",
      "args": ["-y", "plsreadme-mcp"],
      "env": {
        "PLSREADME_API_KEY": "${env:PLSREADME_API_KEY}"
      }
    }
  }
}

说明:

  • 本地 stdio 现在默认期望 PLSREADME_API_KEY,以便新文档具有归属权

  • 显式的旧版匿名模式仍然存在,使用 PLSREADME_ALLOW_ANONYMOUS=1

  • https://plsreadme.com/my-links 创建你的密钥

迁移现有的匿名 MCP 设置

如果你已经匿名使用了 plsreadme-mcp

  1. /my-links 创建个人 API 密钥。

  2. PLSREADME_API_KEY 添加到你的 MCP 客户端配置中。

  3. 仅将 PLSREADME_ALLOW_ANONYMOUS=1 作为旧工作流的临时兼容性拐杖保留。

  4. 如果你仍有旧的 admin_token,稍后使用 /api/auth/claim-link 认领旧的匿名链接。

迁移规则很简单:

  • 新的自动化/编辑器创建默认应具有归属权

  • 匿名本地 MCP 现在仅限旧版且需显式开启

  • 网站演示路径即使在编辑器身份验证变得更严格时,仍保持零配置

add-mcp

npx add-mcp plsreadme-mcp

OpenClaw

clawhub install plsreadme

Docker (用于 MCP 注册表 / 列表检查)

在干净的容器中构建并运行 stdio MCP 服务器:

docker build -t plsreadme-mcp:local .
docker run --rm -i plsreadme-mcp:local

容器化服务器使用 stdio(无需端口,无需环境变量)。

🛠 MCP 工具

工具

功能

plsreadme_share_file

通过路径共享本地文件 → 返回可共享链接。重新共享会更新同一链接。

plsreadme_share_text

直接共享 Markdown 或纯文本 → 返回可共享链接

plsreadme_update

使用新内容更新现有文档(按 ID 或文件路径)

plsreadme_delete

永久删除共享文档(按 ID 或文件路径)

plsreadme_list

列出你从此项目共享的所有文档

提示词:

  • share-document — 将内容共享为可读链接的引导流程

  • refactor-and-share — 使用你的 AI 模型将原始文本重构为精美的 Markdown,然后共享它

纯文本输入?没问题 — MCP 会自动将其结构化为 Markdown,或者你可以使用 refactor-and-share 提示词来利用 AI 的推理能力获得精美的结果。

.plsreadme 记录文件

MCP 服务器会在你的项目根目录下的 .plsreadme JSON 文件中跟踪你共享的文档。这存储了编辑和删除所需的文档 ID、URL 和管理员令牌。

**⚠️ 将 `.pls

Available Tools

5 tools
plsreadme_deleteA
Destructive

Delete a plsreadme document permanently.

Requires either the document ID or the original file path. Looks up the admin token from the local .plsreadme record file.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoDocument ID to delete.
file_pathNoOriginal file path (looks up the linked doc).

TDQS

A4.2/5.0
Behavior4/5

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

Annotations mark destructiveHint=true. The description adds that deletion is 'permanently' and reveals that the tool 'Looks up the admin token from the local .plsreadme record file,' which is a behavioral dependency beyond 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 succinct sentences: first states the primary action, second provides key constraints. No unnecessary words or repetition. Every sentence adds value.

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 simple delete tool with no output schema, the description covers the core action, permanence, and a prerequisite. The token lookup detail is helpful. It could mention error handling or confirmation, but overall is adequate for an agent.

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?

Schema coverage is 100% with both parameters having descriptions. The description adds the critical constraint that 'Requires either the document ID or the original file path,' clarifying that they are alternatives, which the schema's optionality does not convey.

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 action: 'Delete a plsreadme document permanently.' The verb 'Delete' and the resource 'plsreadme document' are specific. The description distinguishes from siblings (list, share, update) as there is no other delete tool.

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

Usage Guidelines3/5

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

The description provides a usage prerequisite: requires either document ID or file path. However, it does not specify when not to use this tool or offer alternatives to alternatives to deletion. The guidance is minimal but present.

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

plsreadme_listA
Read-onlyIdempotent

List all plsreadme documents tracked in the local .plsreadme file.

Shows document IDs, titles, URLs, and source files.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the detail that it reads from a local file, which is useful but not essential beyond 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?

The description is extremely concise with two sentences that front-load the core action. Every word serves a purpose, and there is no extraneous information.

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 simple list operation with no parameters and no output schema, the description adequately covers behavior (lists all documents) and return fields. It does not mention sorting or pagination, but given the tool's simplicity, this is acceptable.

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?

There are no parameters in the input schema, so the description does not need to add parameter details. Schema coverage is 100% by default, and the description provides no contradictory or missing information.

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 specifically states the action (list all documents), the resource (plsreadme documents tracked in the local .plsreadme file), and the output fields (IDs, titles, URLs, source files). It clearly distinguishes from sibling operations like delete, share, and update.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus its siblings. There is no mention of prerequisites or alternatives, leaving the agent to infer context from the tool name alone.

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

plsreadme_share_fileB
Read-only

Share a local markdown file as a clean, readable web link on plsreadme.com.

Reads the file, uploads it, and returns a permanent shareable URL. If the file was previously shared, updates the existing link instead of creating a new one.

Tracks links in a local .plsreadme file for future edits and deletes.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesPath to the markdown file to share (relative or absolute).

TDQS

B3.4/5.0
Behavior1/5

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

The description contradicts the annotation 'readOnlyHint=true' by stating it uploads the file and may update existing links, indicating a write operation. This is a serious inconsistency, so score 1 as per rules.

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?

Four concise sentences, no redundant information. The first sentence captures the primary purpose, and each subsequent sentence adds relevant detail without excess.

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 single-parameter tool with no output schema, the description adequately covers the main behavior: reading, uploading, updating if previously shared, and tracking links. It lacks details on error cases or URL format, but overall sufficient.

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% and the parameter 'file_path' is well-described in the schema. The description adds context about reading and uploading the file, but does not significantly add meaning beyond the schema. Baseline 3 applies.

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 shares a local markdown file as a web link, with specific verb 'Share' and resource 'local markdown file'. It distinguishes from siblings like 'share_text' (which shares raw text) and 'update' (which updates existing links).

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

Usage Guidelines3/5

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

The description implies usage when a markdown file needs sharing, and mentions updating existing links. However, it does not explicitly exclude other use cases or provide guidance on when not to use this tool versus alternatives like 'share_text' or 'update'.

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

plsreadme_share_textA
Read-only

Share text as a clean, readable web link on plsreadme.com.

Accepts markdown or plain text. Plain text is auto-structured into markdown before upload. Returns a permanent shareable URL.

Tracks links in a local .plsreadme file for future edits and deletes.

ParametersJSON Schema
NameRequiredDescriptionDefault
markdownYesContent to share. Markdown preferred, but plain text accepted.
titleNoOptional title (auto-detected from first H1 if omitted).

TDQS

A3.8/5.0
Behavior1/5

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

Annotations set readOnlyHint=true, but the description describes creating a share link and tracking in a local file, which contradicts that. Description adds context about tracking but fails to resolve the contradiction.

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 concise sentences with no wasted words, front-loaded with the main purpose.

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, but description mentions the return value (permanent URL) and tracking behavior, covering key aspects. Lacks mention of rate limits or authentication, but acceptable for a simple tool.

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?

Schema coverage is 100%, but description adds value by stating markdown is preferred but plain text accepted, and title is auto-detected if omitted.

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 shares text as a clean web link, accepts markdown or plain text, and distinguishes from siblings like share_file which handles files.

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 explains when to use it (to share text) and implies alternatives by naming siblings, but lacks explicit when-not-to-use or exclusion criteria.

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

plsreadme_updateA
Idempotent

Update an existing plsreadme document with new content.

Requires either the document ID or the original file path. Looks up the admin token from the local .plsreadme record file.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoDocument ID to update.
file_pathNoOriginal file path (looks up the linked doc).
markdownYesNew markdown content.

TDQS

A4.4/5.0
Behavior4/5

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

Adds context beyond annotations: authentication via local file, alternative identifiers. Consistent with idempotentHint=true and readOnlyHint=false. No contradictions.

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, first states action, second details requirements. No redundant information, highly efficient.

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?

Covers action, required params, and identification method. Lacks error handling details or return type, but sufficient for a simple update tool with idempotent hint.

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?

Schema coverage is 100%, baseline 3. Description adds meaning by clarifying id and file_path are alternatives, not both required. Enhances understanding of parameter relationships.

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 verb 'Update' and the resource 'existing plsreadme document'. It distinguishes this tool from siblings (delete, list, share) by specifying content update.

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 guidance on required parameters (either id or file_path) and mentions a prerequisite (admin token lookup). Could explicitly state when to use vs alternatives, but siblings are distinct actions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.1
    • Addedplsreadme_delete
    • Addedplsreadme_list
    • Addedplsreadme_share_file
    • Addedplsreadme_share_text
    • Addedplsreadme_update

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: delete, list, share file, share text, update. There is no ambiguity as descriptions clearly differentiate them.

Naming Consistency5/5

All tools follow the consistent pattern 'plsreadme_verb' with verbs like delete, list, share_file, share_text, update. Naming is uniform and predictable.

Tool Count5/5

With 5 tools covering the core operations of sharing, listing, updating, and deleting documents, the count is well-scoped and appropriate for the service's purpose.

Completeness4/5

The tool set offers full CRUD-like coverage (create via share, read via list, update, delete) but lacks a direct 'get by ID' tool, though list provides IDs and URLs.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers