jotview

io.github.jotbinsPublished by GitHub account jotbinsv0.7.0Updated Oct 29, 2026

Turn markdown and Mermaid diagrams into rendered jotbins.com links, and read them back.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFiles & Storage

Overview

AI-generated overview

Turns markdown, Mermaid diagrams and math into shareable rendered jotbins.com links, and reads the markdown back out of such links.

What you can do
  • Render markdown into a ready-made jotbins link, with Mermaid diagrams, math, callouts and emoji shortcodes
  • Read the markdown behind a jotbins /d link, public /p paste or short link for quoting or editing
  • Optionally render a local markdown file by path instead of pasted text (local server only)
  • Choose whether long documents are uploaded to shorten the link or kept entirely in the URL
When to use it
Useful when you want an assistant to hand you a readable, shareable page for notes, reports or diagrams instead of a wall of raw markdown, or when you paste a jotbins link and want it read, quoted or revised.
Requirements
Remote option: the hosted Streamable HTTP endpoint, no sign-in. Local option: Node 18 or newer, run via npx; no account or configuration. Local file rendering needs the server started in the project folder or with an allowed directory.
Before you install
Links over 500 characters (MCP) or 2000 characters (CLI) are uploaded to the shortener, which stores the document text; short links expire after 30 days unused unless made permanent. Use the never/raw options to keep documents local. Reading a short link counts as a visit and keeps it alive. The remote server cannot forbid uploads.

Installation

In SourceWeft

  1. Open jotview in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.jotbins%2Fjotview/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "jotview": {
      "type": "http",
      "url": "https://mcp.jotbins.com/mcp"
    }
  }
}

README

jotview

Turn a markdown file into a jotbins link that renders it.

bash
npx jotview notes.md# https://jotbins.com/d#z:U1bwSM3JyecCAA

Zero dependencies. No install, no account, no config.

How it works

The document is compressed and packed into the URL's fragment — the part after #. Fragments are never sent to a server, so for links 2000 characters or fewer nothing you write leaves your machine. Opening the link renders it entirely in the browser.

Usage

jotview <file>            mint a link from a filejotview                   read markdown from stdinjotview decode <url>      print the markdown behind a /d, /p or short linkjotview mcp [--raw]       run as an MCP server for AI agents
  --raw                   never shorten; always the full /d URL  --short                 always shorten, even when small  --keep                  make a shortened link permanent  --open                  open the link in your browser  --copy                  copy the link to your clipboard  --json                  print the result as one JSON line (see below)  --base-url <url>        override https://jotbins.com  -h, --help  -v, --version

Examples:

bash
jotview README.md --opencat notes.md | jotviewjotview notes.md | pbcopyLINK=$(jotview notes.md --raw)jotview decode https://surl.jotbins.com/abc123 > notes.md

decode accepts jotbins.com/d links (decoded locally), surl.jotbins.com short links (fetched; like a click, that keeps an active short link alive) and public jotbins.com/p pastes (fetched from jotbins; private pastes read as not found).

Shortening, and what it costs you

A document's link grows with the document — roughly half the markdown's size in characters. A 20 KB file produces an ~8,700-character URL, which Discord, X, and most chat clients will not accept.

So links over 2000 characters are shortened via surl.jotbins.com, and jotview tells you on stderr when that happens:

note: uploaded to jotbins to shorten (8768 → 30 chars). use --raw to keep it local.note: short link expires after 30 days unused. use --keep to keep it forever.

Shortening uploads your document. The fragment is the markdown, so storing the URL stores the text. Below the threshold nothing is uploaded and no network request is made at all. Use --raw to keep a long document local, accepting a URL too long to paste into most places.

Short links clean up after themselves. One nobody opens for 30 days is deleted, with a 60-day window to bring it back from its waiting page. Pass --keep to make it permanent from the start, or click Save link on the waiting page any time before then. Full /d links are never stored, so they never expire.

If the shortener is unreachable or rate-limited, jotview prints the full link and exits 0 — it never fails your pipeline over a shortening problem.

Use with AI agents (MCP)

jotview mcp is a stdio MCP server with two tools. With render_markdown an AI writes markdown — notes, a report, a Mermaid diagram — and gets back a jotbins link to hand you; with read_link it reads a jotbins link you share.

Claude Code

bash
claude mcp add jotview -- npx -y jotview mcp

Claude Desktop — download jotview.mcpb from the latest release and double-click it. Optionally pick a docs folder it may read files from.

Cursor and other clients — add to the MCP config:

json
{ "mcpServers": { "jotview": { "command": "npx", "args": ["-y", "jotview", "mcp"] } } }

Then just ask: "draw a diagram of our deploy flow and give me a jotbins link."

render_markdown takes content (the markdown), plus optional title (link text instead of the first heading), keep (make a short link permanent) and shorten ("auto", "always" or "never"). It returns a ready-made markdown link, [First heading](url), and a note on whether anything was uploaded. It never reads files — the AI passes text it already has.

Rendering files. The local server can also take a path instead of content, so the AI doesn't have to paste a whole file into the tool call. It reads only .md, .markdown, .mdx and .txt files, and only inside the folder the server runs in (Claude Code starts it in your project) or a folder you allow with --allow-dir:

bash
claude mcp add -s user jotview -- npx -y jotview mcp --allow-dir ~/notes

If the server runs in / or your home folder and no --allow-dir is given, path is switched off. The remote server never reads files.

read_link takes a url (a /d link, a public /p paste or a short link) and returns the markdown behind it, so you can paste a link and say "fix the typos and give me a new link." Links never change; an edit is a new link.

Uploads. Every character of a link costs tokens, so MCP shortens sooner than the CLI: links over 500 characters go through surl.jotbins.com, which uploads the document (short links expire after 30 days unused unless keep is set). To forbid uploads entirely, start the server with --raw:

bash
claude mcp add jotview -- npx -y jotview mcp --raw

Works with clients on any MCP revision from 2024-11-05 through 2026-07-28.

Remote server — no install

The same tool runs at https://mcp.jotbins.com/mcp (Streamable HTTP, no sign-in), for clients that can't run local commands.

  • claude.ai (web and mobile): Settings → Connectors → Add custom connector → paste https://mcp.jotbins.com/mcp.
  • Claude Code: claude mcp add -s user --transport http jotview https://mcp.jotbins.com/mcp

Same rules as the local server, except it can't forbid uploads: use shorten: "never" per call, or the local --raw server, to keep a document off surl.jotbins.com. Uploads are rate-limited per client; over the limit you still get the full link.

The Worker lives in worker/ and deploys with cd worker && npx wrangler deploy.

Output contract

stdout is the URL and nothing else. Notices, warnings, and errors go to stderr, so $(jotview x.md) and jotview x.md | pbcopy stay clean.

With --json, stdout is one JSON line instead, for scripts and CI:

json
{"url":"https://surl.jotbins.com/abc123","rawUrl":"https://jotbins.com/d#z:…","shortened":true,"permanent":false,"failure":null}

failure is the shortener's error when shortening was tried and failed (url is then the full link).

Exit codes: 0 success, 1 runtime error, 2 usage error.

Limits

Input is capped at 1 MB, matching what the /d renderer will open.

Requirements

Node 18 or newer.

Releasing

Releases run from GitHub Actions. On an up-to-date main:

bash
npm version minorgit push --follow-tags

npm version also updates manifest.json and server.json. The v* tag then tests, publishes to npm (trusted publishing, with provenance), attaches jotview.mcpb to a GitHub release, and updates the MCP Registry entry. Move the Unreleased notes in CHANGELOG.md under the new version first (commit that before npm version). The Worker deploys separately: cd worker && npx wrangler deploy.

If a release run fails partway, fix the cause and finish it with gh workflow run release.yml -f tag=vX.Y.Z — finished steps are skipped.

License

MIT

Source: README.md at commit 5e3c39f

Tools

2

render_markdown

Render markdown with jotbins

Turn markdown (GitHub-flavored, with ```mermaid diagrams, $math$ / $$math$$, > [!NOTE] callouts and :emoji: shortcodes) into a link that renders it as a page on jotbins.com. Returns a ready-made markdown link to show the user. Small documents live entirely in the link; larger ones are uploaded to surl.jotbins.com for a short link that expires after 30 days unused unless keep is true.

Parameterskeeptitlecontentrequiredshorten

Version history

3
  1. v0.7.0LatestOct 29, 2026
  2. v0.5.2Oct 26, 2026
  3. v0.5.1Oct 25, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts