Skip to main content
Glama

El problema

Escribiste un README, un PRD, notas de reunión o un documento de API en markdown. Ahora necesitas compartirlo con alguien que no tiene un renderizador de markdown, no usa GitHub o simplemente necesita un enlace limpio que pueda abrir en un navegador.

plsreadme convierte cualquier markdown en una página web permanente y bellamente renderizada en un solo paso. Sin cuentas. Sin registros. Sin fricción.

Related MCP server: slideless-mcp

✨ Características

  • Compartir instantáneo — Pega markdown o sube un archivo, obtén un enlace plsrd.me

  • Renderizado hermoso — Tipografía limpia, modo oscuro, adaptable a móviles

  • Comentarios en línea — Los lectores pueden hacer clic en cualquier párrafo y dejar comentarios

  • Modo de revisión (actual vs línea de tiempo) — Los documentos con múltiples versiones muestran por defecto comentarios del borrador actual con acceso con un clic al historial completo de la línea de tiempo

  • Auto-formateo con IA — Lánzale texto sin formato; saldrá como markdown limpio

  • Servidor MCP — Comparte documentos directamente desde Claude, Cursor, VS Code o cualquier cliente MCP

  • Habilidad OpenClaw — Disponible en ClawHub para flujos de trabajo de agentes de IA

  • Enlaces cortos — Cada documento obtiene una URL compacta plsrd.me/v/xxx

  • Acceso sin procesar — Descarga el archivo .md original desde cualquier enlace compartido

  • Línea de tiempo de versiones + restauración segura/v/:id/versions + /v/:id/history + API de restauración con prioridad de archivo para una reversión rápida

  • Base de autenticación Clerk — Conexión con GitHub/Google + respaldo de correo electrónico alojado por Clerk + utilidades de verificación de autenticación en el backend

  • Modelo de propiedad (Fase 2) — los documentos pueden vincularse a un usuario de Clerk (owner_user_id) mientras se preservan los flujos anónimos

  • Panel de Mis Enlaces (Fase 3) — página /my-links autenticada con búsqueda/ordenamiento/paginación y acciones rápidas de copiar/abrir

  • Reclamación de enlaces heredados (Fase 4) — los usuarios registrados pueden reclamar enlaces anónimos antiguos probando el admin_token original

  • Demo de sitio web sin configuración — No se necesita cuenta ni clave de API para probarlo en el navegador

🚀 Inicio rápido

Web

Ve a plsreadme.com, pega tu markdown, haz clic en compartir.

Rutas de autenticación y estado de lanzamiento

Orden de recomendación:

  1. Prueba primero en el navegador — ruta de demostración más rápida, no requiere configuración MCP.

  2. Usa MCP remoto alojado con inicio de sesión en navegador cuando se verifique el soporte del cliente.

  3. Usa clave de API / respaldo de MCP local cuando el inicio de sesión interactivo no esté disponible.

Estado actual del lanzamiento:

Trayectoria

Estado actual

Regla de propiedad

Etiqueta de origen

Demo de sitio web anónimo

Disponible ahora mediante flujo de demo verificado por navegador

owner_user_id = NULL hasta que el usuario guarde/reclame el documento

web_demo

Creación en sitio web registrado

Disponible ahora

el documento se crea con el usuario de Clerk registrado como propietario

web_signed_in

MCP remoto alojado con inicio de sesión en navegador

Disponible ahora en clientes compatibles

crea documentos propiedad del usuario registrado tras el inicio de sesión

mcp_remote_login

MCP remoto alojado con clave de API

Disponible ahora como respaldo de compatibilidad

crea documentos propiedad del propietario de la clave de API

mcp_remote_api_key

MCP npm local con clave de API

Disponible ahora y recomendado para configuraciones stdio locales

crea documentos propiedad del propietario de la clave de API

mcp_local_api_key

Respaldo anónimo de MCP npm local

Aún disponible solo con consentimiento explícito

permanece anónimo a menos que se reclame/guarde después

mcp_local_anonymous

Notas sobre el lanzamiento de MCP remoto alojado:

  • https://plsreadme.com/mcp

  • https://plsreadme.com/sse

Esas rutas de MCP remoto alojado están activas detrás de un inicio de sesión en navegador protegido por OAuth en el código, incluyendo /authorize, /oauth/token y /oauth/register.

Notas operativas:

  • D1 doc_create_events es la tabla canónica de atribución de creación a través de flujos web, MCP alojado y MCP local.

  • docs.raw_view_count rastrea cada impacto de renderizado, mientras que docs.view_count está reservado para lecturas probablemente humanas.

  • Consulta docs/runbooks/auth-surface-monitoring.md para el conjunto de consultas de producción y los pasos de respuesta.

  • los tokens de acceso duran aproximadamente 1 hora

  • los tokens de actualización duran aproximadamente 30 días

  • reconectar el mismo cliente reemplaza la concesión anterior

  • cerrar sesión en el sitio web no revoca por sí mismo una concesión de editor existente

  • este repositorio ahora está conectado a un enlace KV de Cloudflare Workers dedicado llamado OAUTH_KV

Cuando el inicio de sesión en el navegador no esté disponible en tu cliente, crea una clave de API personal desde /my-links y usa el respaldo de encabezado remoto alojado o el paquete local npx -y plsreadme-mcp.

Modelo de confianza de la demo del sitio web hoy:

  • las creaciones anónimas del sitio web en /api/create-link requieren una concesión de verificación de navegador de corta duración

  • las creaciones del sitio web registrado omiten esa concesión y mantienen la baja fricción

  • la interfaz de usuario posterior a la creación ahora se ramifica en Guardar en mi cuenta, Conectar tu editor y Copiar enlace

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_..."
}

Guarda el admin_token: lo necesitarás para editar o eliminar:

# 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_..."

Línea de tiempo de versiones + restauración segura

Usa el endpoint de línea de tiempo para revisar el contexto de revisión durante los ciclos de iteración de IA:

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" }
  ]
}

Si una edición de IA hace retroceder el documento, restaura una instantánea anterior (prioridad de archivo, no destructiva):

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

La restauración tiene una tasa limitada similar a las actualizaciones (actualmente 60/hora por clave de actor) para reducir el abuso.

Para documentos propiedad de un usuario de Clerk autenticado, la actualización/eliminación/restauración también requiere esa sesión de propietario (para evitar la mutación entre usuarios), mientras que los documentos anónimos continúan funcionando solo con admin_token.

Notas de uso del modo de revisión (Borrador actual primero, Línea de tiempo bajo demanda)

El visor de documentos ahora expone controles de revisión de comentarios:

  • Borrador actual — muestra solo los comentarios vinculados a la última versión del documento (por defecto cuando un documento tiene múltiples versiones).

  • Línea de tiempo — muestra el historial completo de comentarios entre versiones.

Puedes obtener los mismos modos directamente desde la 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"

Los enlaces del visor persisten el modo en la URL para un contexto de revisión compartible:

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

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

Para reclamar un enlace anónimo heredado en tu cuenta registrada:

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 (Editores de IA)

Recomendación actual hoy:

  • usa MCP remoto alojado con inicio de sesión en navegador cuando tu cliente lo admita limpiamente

  • usa el respaldo de clave de API personal cuando la autenticación remota no esté disponible o sea incómoda en ese cliente

  • usa el paquete local plsreadme-mcp con PLSREADME_API_KEY para la ruta stdio más segura

Conecta tu editor a plsreadme y comparte documentos con lenguaje natural:

"Comparte este README como un enlace de plsreadme" "Convierte mi PRD en una página compartible" "Haz que estas notas de reunión sean un enlace legible"

Bucle de revisión automática MCP/agente con /versions

Para flujos de escritura de IA iterativos (borrador → crítica → revisión), los agentes pueden consumir /v/:id/versions como fuente de verdad:

  1. Mantén la URL legible canónica (/v/:id) para humanos.

  2. Consulta /v/:id/versions entre iteraciones.

  3. Compara current_version con la última versión revisada.

  4. Si cambió, obtén raw_url para la versión más nueva y ejecuta comprobaciones de revisión.

  5. Si la calidad retrocede, activa opcionalmente /v/:id/restore con token de administrador + sesión de propietario.

Esto proporciona a la automatización un seguimiento de revisión determinista sin necesidad de extraer HTML.

Consulta docs/ai-iteration-versioning.md para un manual completo.

🔌 Configuración de MCP

Matriz de compatibilidad de clientes

Actual al 5 de abril de 2026:

Cliente

Ruta recomendada

Soporte de inicio de sesión en navegador

Respaldo de clave de API

Notas

Claude Code

MCP remoto alojado primero

verificado en vivo

mejor flujo remoto admitido; stdio local con PLSREADME_API_KEY también funciona bien

Cursor

MCP remoto alojado primero

documentado, pero depende de la compilación en la práctica

usa encabezados si tu compilación no muestra el aviso de OAuth

VS Code

MCP remoto alojado cuando esté disponible

existe configuración, el lanzamiento varía según la compilación

type: "http" más respaldo de encabezado funciona cuando la UX de inicio de sesión está ausente

Windsurf

MCP remoto alojado cuando esté disponible

soporte remoto documentado

usa serverUrl + encabezados cuando la autenticación del navegador aún no está expuesta

Claude Desktop

npm local MCP

no hay flujo de navegador remoto verificado aquí

prefiere stdio + PLSREADME_API_KEY

HTTP sin procesar / scripts

modo de encabezado remoto alojado

no

envía Authorization: Bearer $PLSREADME_API_KEY directamente

Inicio de sesión remoto alojado (clientes compatibles)

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"
    }
  }
}

Notas del ciclo de vida:

  • el TTL del token de acceso es de aproximadamente 1 hora

  • el TTL del token de actualización es de aproximadamente 30 días

  • reconectar el mismo cliente reemplaza la concesión anterior

  • cerrar sesión finaliza la sesión del sitio web pero no revoca automáticamente una concesión de editor existente

  • usa GET /api/auth/mcp-grants y DELETE /api/auth/mcp-grants/:grantId para auditar o revocar concesiones de editor alojadas

Si tu cliente admite el inicio de sesión en el navegador, prefiere esta ruta. Es la configuración más limpia y mantiene los documentos propiedad vinculados a tu cuenta del sitio web automáticamente.

Respaldo de clave de API remota alojada

Crea una clave de API personal desde https://plsreadme.com/my-links primero, luego usa uno de estos:

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}"
      }
    }
  }
}

Usuarios de endpoint remoto sin procesar:

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

Respaldo npm local

Claude Code:

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

Cursor: Agrega a ~/.cursor/mcp.json:

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

VS Code: Agrega a .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: Agrega a claude_desktop_config.json:

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

Windsurf: Agrega a ~/.codeium/windsurf/mcp_config.json:

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

Notas:

  • stdio local ahora espera PLSREADME_API_KEY por defecto para que los nuevos documentos sean propiedad

  • el modo anónimo heredado explícito aún existe con PLSREADME_ALLOW_ANONYMOUS=1

  • crea tu clave desde https://plsreadme.com/my-links

Migración de configuraciones MCP anónimas existentes

Si ya usaste plsreadme-mcp de forma anónima:

  1. Crea una clave de API personal desde /my-links.

  2. Agrega PLSREADME_API_KEY a la configuración de tu cliente MCP.

  3. Mantén PLSREADME_ALLOW_ANONYMOUS=1 solo como una muleta de compatibilidad temporal para flujos de trabajo antiguos.

  4. Reclama enlaces anónimos antiguos más tarde con /api/auth/claim-link si aún tienes su admin_token.

La regla de migración es simple:

  • las creaciones automatizadas/de editor nuevas deben ser propiedad por defecto

  • el MCP local anónimo ahora es solo heredado y explícito

  • la ruta de demo del sitio web sigue siendo de configuración cero incluso mientras la autenticación del editor se vuelve más estricta

add-mcp

npx add-mcp plsreadme-mcp

OpenClaw

clawhub install plsreadme

Docker (para registros MCP / comprobaciones de listado)

Construye y ejecuta el servidor MCP stdio en un contenedor limpio:

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

El servidor contenedorizado usa stdio (sin puertos, no se requieren variables de entorno).

🛠 Herramientas MCP

Herramienta

Qué hace

plsreadme_share_file

Comparte un archivo local por ruta → devuelve un enlace compart

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