Skip to main content
Glama

postmd-mcp-server

Server Details

Publish Markdown as a shareable web page, with document graphs drawn beside the text

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
reinlainer/postmd-mcp-server
GitHub Stars
0
Server Listing
PostMD MCP Server

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct action on documents: create, delete, get metadata, get raw content, update. The only potential overlap between get_document and get_document_raw is explicitly resolved by the descriptions, which clarify that metadata excludes content and point to the raw tool for Markdown source.

Naming Consistency5/5

All five tools follow a consistent postmd_verb_noun pattern (postmd_create_document, postmd_get_document, etc.), with only a minor modifier suffix in postmd_get_document_raw. The prefix and casing are uniform throughout.

Tool Count5/5

Five tools are well-scoped for a document publishing service, covering the essential CRUD operations plus raw content retrieval. This is comfortably within the ideal 3-15 range.

Completeness4/5

The core lifecycle (create, read, update, delete) is fully covered, but there is no tool to list or search documents, and shareUrl is only returned on creation, not retrievable later. These are minor gaps that most workflows can work around.

Available Tools

5 tools
postmd_create_documentAInspect

Publish Markdown as a PostMD web page. No API key required — anyone can publish. Returns docCode and data.shareUrl; hand shareUrl to people. Documents have a 30-day retention period (data.retainedUntil) that extends on each read. Documents without a password can be updated or deleted by anyone; password-protected documents require the password or the owner's API key. With an API key the document belongs to that member; groupId files it into that group (key with documents:write).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoShown in the viewer and link previews. Defaults to fileName without .md.
groupIdNoFile the document in this group instead of the default group (needs an API key).
fileNameNoUpload filename, must end in .md. Default document.md.
markdownYesFull Markdown document as one UTF-8 string (the entire source, not a summary). May include graph data in an HTML comment, which the viewer draws beside the text; the format is at /docs/graph.
passwordNoReaders must supply this password to see the content.
viewerStyleNoViewer theme: readable (default), github, minimal, report, pamphlet or dark. Unknown values fall back to readable.

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the thin annotations (destructiveHint=false, title). It discloses auth model (no key required, key for ownership), retention (30-day, extended on read, data.retainedUntil), mutation semantics for passwordless vs password-protected docs, required scope for groupId, and the return fields. This is exactly the behavioral context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose, then layers behavior in a tight sequence. It is dense but every clause (retention, shareUrl, ownership) carries information; only the 'anyone can publish' framing is mildly redundant with the surrounding sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no rich annotations, the description carries the full burden and does so: it names the return values (docCode, data.shareUrl, data.retainedUntil), explains sharing, retention, ownership, and permission requirements. Nothing essential to correct invocation is missing.

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 already 100%, so the baseline is 3, but the description adds real meaning: groupId's requirement of an API key and the documents:write scope, plus the password/ownership implications that the schema only gestures at ('Readers must supply this password').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: publish Markdown as a PostMD web page. It is clearly distinguishable from the get/delete siblings in intent, though it never explicitly contrasts itself with postmd_update_document or the other siblings by name.

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?

Usage conditions are implied and partially spelled out (no API key required, API key for ownership, groupId for filing), but there is no explicit statement of when to choose this tool over update_document or the getters. An agent must infer the create-vs-modify boundary.

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

postmd_delete_documentA
Destructive
Inspect

Delete a document. Password-protected documents require the password or the owner's API key; documents without a password can be deleted by anyone.

ParametersJSON Schema
NameRequiredDescriptionDefault
docCodeYes
passwordNoDocument password if the document has one and you are not authenticated as its owner.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the safety profile is covered. The description adds real value beyond that by disclosing the authorization model: password-protected docs need the password or owner's API key, while unprotected docs can be deleted by anyone. That is a meaningful behavioral trait not captured by the annotation.

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, no filler, with the core action front-loaded and the authorization rule following immediately. Every clause earns its place.

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 two-parameter destructive tool with no output schema, the description covers the action and the authorization prerequisite well. It could note irreversibility or the outcome of a successful delete, but the essential information an agent needs to call it correctly is present.

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 50% — docCode has no description, but the description explains the semantics of the password parameter (required only when the document is protected and you aren't the owner), reinforcing and slightly extending the schema's own note. The description compensates for the undocumented docCode by making the overall invocation model clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Delete a document'), which is unambiguous and clearly distinct from the create/get/update siblings. It doesn't explicitly name a sibling to contrast with, but the destructive action is unmistakable.

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?

It states the authorization condition for password-protected documents versus unprotected ones, which is useful context for invoking the tool. However, it offers no guidance on when to prefer this over siblings or what preconditions exist (e.g., whether deletion is reversible), so usage is implied rather than fully framed.

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

postmd_get_documentA
Read-only
Inspect

Get document metadata by docCode: title, fileName, hasPassword, viewerStyle, timestamps. Public — no API key needed. Content is not included; use postmd_get_document_raw for the Markdown source.

ParametersJSON Schema
NameRequiredDescriptionDefault
docCodeYesDocument code, e.g. P-123-456-789.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, and the description adds useful behavior beyond that: no API key required and a negative scope ('content is not included'). It does not cover pagination (not applicable for a single-doc lookup), so a 4 is fair.

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 tight clauses: what it returns, auth posture, and the sibling escape hatch. Zero waste and the resource and key field are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description enumerates the returned fields (title, fileName, hasPassword, viewerStyle, timestamps), states the auth model, and points to the sibling for content — everything an agent needs to call it correctly.

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 docCode already has an example (P-123-456-789) in the schema. The description only restates that lookup is by docCode, adding no syntax or format detail beyond the schema, so the 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?

States a specific verb and resource ('Get document metadata by docCode') and enumerates the returned fields, so the agent knows exactly what it retrieves. It also explicitly distinguishes itself from the sibling postmd_get_document_raw.

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

Usage Guidelines5/5

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

Explicitly says content is not included and names the alternative (postmd_get_document_raw) for Markdown source, giving the exact condition that routes to the sibling. Also clarifies it is a public endpoint requiring no API key.

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

postmd_get_document_rawA
Read-only
Inspect

Get the stored Markdown source of a document. Public — no API key needed. Password-protected documents need password.

ParametersJSON Schema
NameRequiredDescriptionDefault
docCodeYes
passwordNoPlain document password, if the document has one.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered; the description adds genuinely useful behavioral context beyond that — no authentication required and a conditional password requirement. Error or failure behavior (e.g. wrong password, missing doc) is not described, keeping it below a 5.

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 short sentences with zero filler: purpose first, then access model, then the conditional parameter note. Every sentence carries information an agent needs before calling.

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?

There is no output schema, but the description effectively characterizes the return value as the document's stored Markdown source, which is sufficient. The one remaining gap is docCode's semantics, which neither the schema nor the description covers.

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 50%: the password parameter is described in the schema, but docCode has no description anywhere. The description reinforces the conditional semantics of password ('password-protected documents need password'), which is real added value, but it does nothing to explain docCode's format or source.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: retrieve the stored Markdown source of a document. The word 'raw'/'Markdown source' implicitly separates it from the sibling postmd_get_document, but that distinction is never made explicit, so an agent must infer it.

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?

Gives clear operational context: the endpoint is public with no API key, and a password is required only when the document is password-protected. It stops short of naming a preferred alternative (e.g. postmd_get_document for rendered content), so the when-not-to-use case is left implicit.

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

postmd_update_documentA
Destructive
Inspect

Update a document. Password-protected documents require the password or the owner's API key; documents without a password can be updated by anyone. Include markdown to replace the stored content; any metadata field replaces that field. clearPassword removes the password. Replacing the content requires notesOnReplace.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
docCodeYes
fileNameNoUpload filename when replacing content. Default document.md.
markdownNoFull new Markdown body as one UTF-8 string. Omit if only metadata changes. Adding or revising a graph means sending the whole body with the graph comment in it; the format is at /docs/graph.
passwordNoReaders must supply this password to see the content.
viewerStyleNoViewer theme: readable (default), github, minimal, report, pamphlet or dark. Unknown values fall back to readable.
clearPasswordNotrue removes the password.
notesOnReplaceNoRequired when replacing the content. Notes are located by the text they quote, so replacing the body moves or loses where they point: a note whose quote is gone loses its place in the body, and one whose quote now appears elsewhere points there. keep replaces anyway and leaves the notes. abort refuses when the document has notes anchored to its text, and the answer says how many.
currentPasswordNoCurrent password to authenticate if the document is password-protected.

TDQS

A3.7/5.0
Behavior4/5

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

With only destructiveHint=true in annotations, the description carries most of the burden and does well: it discloses the authorization model, that clearPassword removes protection, and that replacing content requires notesOnReplace. It does not explain the return payload or whether updates are atomic/reversible, but the destructive side effects of replacement are surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the action, then auth rules, then the two mutating behaviors. No filler; the only cost is that it reads as a compact rule list rather than a narrative.

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 9-parameter destructive mutation with no output schema, the description covers the critical unknowns: authentication, content-vs-metadata replacement, and the notesOnReplace requirement. Minor gaps remain (e.g., behavior of unknown title/fileName combinations, confirmation of success), but nothing essential is missing.

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 description coverage is 78%, so the schema already documents most parameters (including the detailed notesOnReplace semantics). The description restates markdown/metadata/clearPassword behavior at a high level, adding cohesion but little information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening 'Update a document' gives a clear verb+resource, and the following sentences specify what updating entails (content replacement vs. metadata field replacement, password clearing). It does not explicitly contrast itself with the create/delete/get siblings, but the operation is unambiguous.

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?

It states the auth conditions (password or owner API key for protected documents; open for unprotected) and that metadata fields replace individually, which implies when to use each mode. However there is no explicit 'use X instead when Y' guidance and no mention of the sibling tools, so alternatives are left to inference.

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. 2 tool updates
    • Changedpostmd_create_document1 field changed
      • changedInput schema / properties / markdown / description
        Previous value: -"Full Markdown document as one UTF-8 string (the entire source, not a summary)."New value: +"Full Markdown document as one UTF-8 string (the entire source, not a summary). May include graph data in an HTML comment, which the viewer draws beside the text; the format is at /docs/graph."
    • Changedpostmd_update_document1 field changed
      • changedInput schema / properties / markdown / description
        Previous value: -"Full new Markdown body as one UTF-8 string. Omit if only metadata changes."New value: +"Full new Markdown body as one UTF-8 string. Omit if only metadata changes. Adding or revising a graph means sending the whole body with the graph comment in it; the format is at /docs/graph."
  2. 5 tool updates
    • First observedpostmd_create_document
    • First observedpostmd_delete_document
    • First observedpostmd_get_document
    • First observedpostmd_get_document_raw
    • First observedpostmd_update_document

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.