← Registry

Content Tools

pst.md

Manage and publish Markdown notes to pst.md with custom themes and settings.

1 endpoint24 known toolsFirst detected September 4, 2026Last detected September 4, 2026

ENDPOINT 1

https://pst.md/api/mcp

No auth detected

MCP server metadata

Name
pst.md
Version
4.0.0
Capabilities
extensions.io.modelcontextprotocol/skillsextensions.io.modelcontextprotocol/uitools.listChangedresources.listChangedprompts.listChanged
Server instructions

INTERACTIVE UI: on a host that supports MCP Apps, list_appearance renders a theme picker showing every scheme's own colours, and the ids the user picks are sent back to you. Never build, write, or offer your own picker, swatch gallery, or HTML page for choosing a pst.md theme - the user already has one and a second one competes with it. Call list_appearance and wait for the choice. pst.md publishes Markdown notes under signed-in accounts. A note is addressed by its id; only its owner can update or delete it (sign-in required - see the client's login flow). Reading a public note by id needs no sign-in. Appearance - the color palette and font a note renders in - is chosen ONLY through Markdown front matter. There is no appearance argument. To theme a note, begin its content with a YAML block fenced by --- lines: --- title: Release notes palette-light: signal palette-dark: midnight font: lora --- # Body markdown starts here Recognized keys: - palette-light (alias: theme-light) - the theme used when the viewer is in light mode, e.g. "iterm-catppuccin-latte", "iterm-gruvbox-light", "plain-light". - palette-dark (alias: theme-dark) - the theme used when the viewer is in dark mode, e.g. "iterm-nord", "iterm-catppuccin-macchiato", "plain-dark". - palette (alias: theme) - shorthand for setting both of the above at once. A theme is one terminal scheme in one mode, so this makes both modes look the same. - font - a font id, e.g. "lora", "jetbrains-mono", "inter". - banner - the image rendered above the note and used as its link-preview image: an https URL the author hosts (the server never fetches it) or an uploaded note image's own /i/<id> path. Anything else is ignored and reported under appearance.unresolved. - title - the note's title. Front matter is the ONLY way to set it; there is no title argument. The front-matter block is kept in the stored markdown (so get_note returns it and it round-trips through edits) but is hidden when the note is rendered - it never shows in the body. Front matter is the single source of truth for appearance; there is no stored appearance field. A note's code fences are highlighted from the theme it pins (a terminal scheme is already a syntax palette), so there is no separate code theme to choose: the old code-theme (alias: code) key is still parsed and still round-trips, but it is ignored. Call list_appearance for valid theme and font ids: it returns a LEAN list ({id,label,mode,tags} - no colors) of the whole curated catalog (twenty families), and takes mode/tags/query/limit filters. Call get_appearance(ids) when color swatches are actually needed - unknown ids come back with near-match suggestions. The full lean catalog is also available as the cacheable resource pstmd://appearance/catalog. update_note requires expectedVersion (the version returned by create_note/get_note) to detect conflicting edits. Every tool result carries structuredContent matching the tool's declared outputSchema, and a text block mirroring it as compact JSON. Account-scoped tools called without authorization answer with a tool error carrying a WWW-Authenticate challenge in _meta - OAuth-capable clients handle it automatically. The tools cover the WHOLE service - notes (create/get/consume/update/delete), the library (list_library/save_note/unsave_note/set_note_folder), folders (list_folders/create_folder/update_folder/delete_folder), image uploads (create_image_upload - image bytes never travel through tools/call; it returns a short-lived pointer for a plain multipart POST - plus upload_image for hosts that pass host-held files by download_url, and list_images/delete_image for managing storage; an uploaded image's /i/<id> path works in markdown and as the banner), and whoami - so an MCP-only client never needs REST. The complete contract (every tool and its arguments, auth, appearance, one-time notes, and what Markdown renders - GFM, footnotes, syntax highlighting, KaTeX, Mermaid) is published as the pst-md skill (discovery index skill://index.json, guide skill://pst-md/SKILL.md), as the prompt pstmd_guide, and - for clients that cannot read MCP resources - as the credential-free get_skill tool. Read it before your first publish.

Known tools 24

list_appearance

Use this when you need the theme and font ids valid in a note's front matter (palette-light/palette-dark and font keys).

Inferred read-only
get_appearance

Use this when you need the color swatches for specific themes chosen from list_appearance (or guessed).

Inferred read-only
get_skill

Use this to read the full pst.md guide (SKILL.md) before your first publish: every tool and its arguments, the REST equivalents, OAuth, appearance front matter, one-time notes, and exactly what Markdown renders.

Potential side effects
check_scheme

Use this to check a candidate terminal scheme BEFORE authoring or importing it: it runs the scheme through the SAME derivation every pst.md theme gets and reports what would ship.

Potential side effects
create_note

Use this when the user wants Markdown published as a pst.md note (a shareable link, a paste, a private note, an expiring or one-time note).

Inferred read-only
get_note

Use this to read a note by id - ALWAYS safe: it never consumes a burn-after-read note (for a burn note it returns metadata with the content withheld).

Inferred read-only
consume_note

Use this ONLY when the user explicitly intends to spend a burn-after-read note's single read: it returns the content and then the note is erased for everyone.

Inferred read-only
update_note

Use this to edit a note the user owns.

Potential side effects
delete_note

Use this ONLY when the user explicitly asks to permanently delete a specific note they own - pass the exact note id; never guess one, and confirm intent when the request is ambiguous.

Potential side effects
delete_notes

Use this ONLY when the user explicitly asks to permanently delete several specific notes they own - pass the exact note ids; never guess one, and confirm intent when the request is ambiguous.

Potential side effects
list_library

Use this to list the signed-in user's library - notes they own plus notes they saved - most-recent activity first.

Inferred read-only
save_note

Use this to save someone else's PUBLIC note into the user's library as a live reference (never a copy - it keeps reflecting the owner's edits).

Inferred read-only
unsave_note

Use this to remove the user's saved reference to a note from their library.

Potential side effects
set_note_folder

Use this to move the user's library entry for a note into one of their folders, or to the root (folderId: null).

Inferred read-only
list_folders

Use this to list all of the signed-in user's folders, alphabetical.

Inferred read-only
create_folder

Use this to create a folder for organizing the user's library.

Potential side effects
update_folder

Use this to rename, recolor, or re-parent one of the user's folders.

Inferred read-only
delete_folder

Use this ONLY when the user explicitly asks to delete a specific folder they own - pass the exact folder id.

Potential side effects
create_image_upload

TWO upload tools exist and the choice is mechanical.

Potential side effects
upload_image

TWO upload tools exist and the choice is mechanical.

Potential side effects
list_images

Use this to see the images the signed-in account has uploaded, newest first, and how much of its storage they use.

Inferred read-only
view_image

Use this to actually SEE an uploaded image, not just its id - it returns the picture itself so you can describe, check or compare what is in it.

Inferred read-only
delete_image

Use this to permanently delete one of the signed-in account's uploaded images and free its storage.

Potential side effects
whoami

Use this to confirm which pst.md account is connected and what this connection can do: the account's public display name (null when none is set), its passkey count, the credential's authority, image storage used against the per-account quota, and the create_note budget for this caller's IP.

Inferred read-only

CONNECT WITH APPROVAL

Client installation

Review this server and its permissions before adding it. Secret placeholders must be set locally.

Codex

~/.codex/config.toml

[mcp_servers.pst-md]
url = "https://pst.md/api/mcp"
enabled = true
Claude Code

.mcp.json

{
  "mcpServers": {
    "pst-md": {
      "type": "http",
      "url": "https://pst.md/api/mcp"
    }
  }
}
Claude Desktop

Settings → Connectors → Add custom connector

Name: pst-md
Remote MCP URL: https://pst.md/api/mcp

Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.

Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "pst-md": {
      "url": "https://pst.md/api/mcp"
    }
  }
}
Visual Studio Code

.vscode/mcp.json

Add to Visual Studio Code
{
  "servers": {
    "pst-md": {
      "type": "http",
      "url": "https://pst.md/api/mcp"
    }
  }
}
Generic MCP

Client-specific MCP configuration

{
  "name": "pst-md",
  "transport": "streamable-http",
  "url": "https://pst.md/api/mcp"
}
MCP Inspector

Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.

TRUST AND VERIFICATION EVIDENCE

Loading Trust v2 evidence…

Checking the associated registrable domain. The BuiltWith key remains server-side.

Indexed

Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.