MarkdownMCP
Provides live preview and change tracking for Markdown documents, allowing agents to scope a file and have updates streamed to a browser UI with tabs, change highlights, and history.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MarkdownMCPWatch /tmp/notes.md and open live preview"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MarkdownMCP
Live markdown preview for LLM agents. The agent calls one tool when a markdown file comes into scope; a shared hub watches the file, opens your OS default browser (managed profile) on the first create/change, and streams updates into a multi-tab Vue UI (unread dots, toggleable change marks, history).
Features
One MCP tool:
scope_markdown— call once before the first write (path may not exist yet)Singleton hub shared by all MCP clients; exits when no clients remain
Sticky high port — hub reuses a preferred port from
settings.jsonso preview tabs reconnect after restartsManaged browser profile — system default browser with an isolated profile under the app data dir; left open when the hub exits
Reconnect-first — does not spawn a new window if a managed browser session is already running
In-app tabs with subtle unread indicators
Toggleable change highlights + snapshot history
First-run settings (theme, bind host, preferred port, allowed path roots)
Cross-platform (Windows, macOS, Linux)
Related MCP server: markview
Quick install (Grok)
From this repo (after build), or once published:
# From monorepo root
npm install
npm run build
# User-level MCP (Grok)
grok mcp add markdown-mcp -- node /absolute/path/to/live-markdown-mcp/packages/mcp/dist/cli.jsOr with a global/workspace link:
npm link -w markdown-mcp
grok mcp add markdown-mcp -- markdown-mcp~/.grok/config.toml equivalent:
[mcp_servers.markdown-mcp]
command = "node"
args = ["/absolute/path/to/live-markdown-mcp/packages/mcp/dist/cli.js"]
enabled = true
startup_timeout_sec = 60Copy the skill so the model knows when to call the tool:
# Windows PowerShell
Copy-Item -Recurse .grok/skills/markdown-scope $HOME/.grok/skills/markdown-scopeOther clients
Claude Code
claude mcp add markdown-mcp -- node /absolute/path/to/live-markdown-mcp/packages/mcp/dist/cli.jsOr project .mcp.json:
{
"mcpServers": {
"markdown-mcp": {
"command": "node",
"args": ["/absolute/path/to/live-markdown-mcp/packages/mcp/dist/cli.js"]
}
}
}Cursor
.cursor/mcp.json:
{
"mcpServers": {
"markdown-mcp": {
"command": "node",
"args": ["/absolute/path/to/live-markdown-mcp/packages/mcp/dist/cli.js"]
}
}
}Agent usage
1. Decide you will create or edit a markdown doc the user should see rendered.
2. Call scope_markdown once with the path (absolute preferred).
3. Write/edit the file freely — do not call the tool again for edits.Tool:
Tool | Args | Purpose |
|
| Watch + preview this file |
Architecture
MCP client(s) --stdio--> markdown-mcp bridge
|
+--> ensure hub up (singleton)
+--> register client
+--> scope_markdown → hub API
Hub --chokidar--> disk
Hub --WebSocket--> Vue UI (tabs, diffs, history)
Hub --spawn--> system default browser + managed profile (first file event, if none running)State lives under:
Platform | Directory |
Windows |
|
macOS |
|
Linux |
|
File / dir | Role |
| Live hub URL/port/pid (cleared when hub stops) |
| Theme, bind host, preferredPort, browser prefs |
| Singleton lock |
| Managed browser user-data / profile |
| Last launched browser pid (reconnect-first) |
Development
npm install
npm run build
npm run start:hub # hub only (stays up until Ctrl+C; no MCP client timeout if you register manually)
npm run start:mcp # MCP stdio server (spawns hub as needed)
npm run dev:web # Vite UI against a hub on :7420 (optional proxy)
npm run test:unit # shared + hub unit tests
npm run test:local # unit + sticky-port + browser policy + default-browser
npm run test:sticky-port # sticky port integration (uses real app data dir)
npm run test:default-browser # OS default product → binary (skips if browser missing)Install-dependent checks (Brave/Chrome/Edge/Firefox present on disk, OS default detection) skip with a clear message when the browser is not installed — they do not fail CI machines without that browser.
Packages:
Package | Role |
| Types + defaults |
| HTTP/WS hub, watchers, browser |
| Vue UI |
| MCP stdio entry ( |
Settings
First browser open shows a short wizard. Later: Settings in the UI.
Setting | Default |
Theme | System / Light / Dark |
Bind host |
|
Preferred port | auto (high port 49152–65535, then sticky) |
Allowed path roots | empty = allow any |
Open browser on first file event | on |
Preserve scroll | on |
Show changes by default | on |
Changing bind host or preferred port requires a hub restart. Non-loopback binds ask for confirmation.
Sticky port & browser profile
On first start (or empty preferred port), the hub binds a free high port and writes it to
settings.jsonaspreferredPort.Later starts try that port first. If it is taken, the hub picks another free high port and updates
preferredPort.On the first scoped file create/change (when enabled), the hub launches the system default browser with a dedicated profile under
browser-profile/. Common engines are supported (Chrome/Edge/Brave/Chromium via--user-data-dir, Firefox via-profile). Safari and unknown browsers fall back to a normal URL open with limited isolation.If a managed browser session is already running, the hub does not open another window (the open tab reconnects over WebSocket).
Stopping the hub does not close the browser.
Troubleshooting
Issue | Fix |
Hub won't start | Delete |
Browser never opens | Scope a file and write it; browser waits for first create/change. Confirm “Open browser on first file event” is on. |
Extra browser windows | Hub skips launch when |
Tab won’t reconnect after restart | Ensure sticky |
Path denied | Add root under Settings → Allowed path roots |
UI is fallback HTML | Run |
Port unknown | Read |
License
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Markdown workspace for AI agents: read, write, organize, and share markdown documents.
Web data tools for AI agents: pages as markdown, search, maps, commerce, jobs, AI answers.
MarkupBase turns AI-generated Markdown and HTML into durable, versioned artifacts that people can review and discuss. Its MCP server lets agents publish new versions, preserve contextual comments, include hosted images, and respond to feedback through secure account-linked identities, creating a clear human review boundary without requiring real-time editing.
Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceServes markdown instructions as tools to provide LLMs with team playbooks, coding standards, domain knowledge, and personal workflows through version-controlled files.15MIT
- AlicenseNot gradedqualityAmaintenanceNative macOS markdown previewer. Opens files and renders markdown content in a live preview window directly from your AI tools.38MIT

openmarkdownofficial
FlicenseNot gradedqualityAmaintenanceLocal-first Markdown editor whose MCP server lets a coding agent and a human co-edit the same .md file — it opens and reveals files in the editor and reads or section-edits their contents. Tools: open_file, reveal, read_section, write_section, wait_for_change.60-- AlicenseNot gradedqualityAmaintenanceEnables AI agents to send HTML documents to a local viewer, where they are stored and displayed in a live web UI for browsing and searching.14ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kschroeder/live-markdown-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server