MarkView

io.github.paulhkang94Published by GitHub account paulhkang94v1.7.2Updated Oct 24, 2026

Native macOS markdown preview with MCP server for Claude Code. Swift/SwiftUI, no Electron.

VerifiedSTDIODesktop onlyFiles & StorageDeveloper Tools

Overview

AI-generated overview

Lets an assistant render markdown strings or open .md files in a native macOS MarkView preview window.

What you can do
MarkView is a native macOS markdown preview app with a small MCP server that exposes two tools: preview_markdown renders a markdown string in a live-reloading MarkView window, and open_file opens an existing .md file in the app. Rendering supports GitHub Flavored Markdown, Mermaid diagrams, syntax highlighting, and local image paths. The app itself also offers a split-pane editor, linting, and HTML/PDF export.
When to use it
Useful when working on macOS with Claude Code or Claude Desktop and you want markdown output shown in a real native window instead of a terminal or browser tab. Best for reviewing generated documentation, READMEs, or notes as they are written.
Requirements
macOS 14 or later and the MarkView app installed (Homebrew cask recommended, or built from source with Swift 6.0+ and Xcode Command Line Tools). The MCP server runs locally over stdio via npx mcp-server-markview, so Node.js is needed. No accounts, API keys, or environment variables are declared.
Before you install
The server is desktop-only and macOS-only, so it cannot run on other platforms or in a browser. open_file opens files on the local machine, and preview_markdown displays content in a window, so avoid pointing it at sensitive files on a shared or screen-visible machine. The app is versioned separately from the npm wrapper, so the two may not always match.

Installation

In SourceWeft

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

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

MarkView

[App] [npm] [Glama]

Native macOS markdown preview with MCP server for Claude Code. Claude writes markdown — MarkView renders it live, in a real native window, while you work.

Versions: The macOS app (app badge) and the npm MCP wrapper (npm badge) are versioned independently. App releases happen when the Swift binary changes; npm patches happen for MCP server improvements. Both badges always show the latest of each.

[MarkView demo]

Preview onlyEditor + Preview
[Preview][Editor + Preview]

Quick Start — Claude Code

One command to wire MarkView into every Claude Code session:

bash
claude mcp add --transport stdio --scope user markview -- npx mcp-server-markview

That's it. Claude can now call preview_markdown to render any markdown string in a native macOS window, or open_file to open any .md file directly.

ToolWhat it does
preview_markdownRender markdown content in a live-reloading MarkView window
open_fileOpen an existing .md file in MarkView

Claude Desktop Setup

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{  "mcpServers": {    "markview": {      "command": "npx",      "args": ["mcp-server-markview"]    }  }}

Note: MCP servers belong in ~/.claude.json (Claude Code) or claude_desktop_config.json (Claude Desktop), not ~/.claude/settings.json.

Installation

Homebrew (recommended)

bash
# Full .app with Quick Look extension — Apple notarized, Gatekeeper approvedbrew install --cask paulhkang94/markview/markview
# CLI only (builds from source)brew tap paulhkang94/markviewbrew install markview

Build from source

Prerequisites: macOS 14+, Swift 6.0+ (Xcode Command Line Tools)

bash
git clone https://github.com/paulhkang94/markview.gitcd markviewswift build -c release

Install as app (Open With support)

bash
bash scripts/bundle.sh --install

Creates MarkView.app in /Applications and registers it with Launch Services for right-click > Open With in Finder. Refuses (unless you pass --force) if a Dock tile is pinned to a build/ or repo-root MarkView.app path, since both are ephemeral dev output.

Install CLI

bash
bash scripts/install-cli.sh

Creates mdpreview and md symlinks in ~/.local/bin/.

Usage

CLI

bash
mdpreview README.md       # Open a filemdpreview                 # Open empty editor

Finder

Right-click any .md, .markdown, .mdown, .mkd file > Open With > MarkView

Programmatic

bash
open -a MarkView README.md

Features

  • GitHub Flavored Markdown via swift-cmark (tables, strikethrough, autolinks, task lists, footnotes)
  • Mermaid diagrams — flowcharts, sequence, Gantt, ER, and pie charts
  • Syntax highlighting via Prism.js (18 languages)
  • Quick Look integration — spacebar-preview .md files in Finder without opening the app
  • Markdown linting with 9 built-in rules and status bar diagnostics
  • Live split-pane editor with WKWebView rendering and bidirectional scroll sync
  • File watching with DispatchSource — works with VS Code, Vim, and other editors
  • Local image rendering — inlines relative paths like ![](./image.png) correctly
  • Export to HTML and PDF
  • HTML sanitizer — strips scripts, event handlers, and XSS vectors
  • Drag and drop — drop any .md file onto the window to open
  • Find & Replace — Cmd+F / Cmd+Option+F
  • Format on save — auto-applies lint fixes
  • Auto-save, word count, line numbers, scroll position preservation
  • Dark mode — system/light/dark theme options, 18 configurable settings

Architecture

Sources/MarkViewCore/           # Library (no UI, fully testable)  MarkdownRenderer.swift        # cmark-gfm C API wrapper  FileWatcher.swift             # DispatchSource file monitoring  MarkdownLinter.swift          # 9-rule pure Swift linting engine  HTMLSanitizer.swift           # XSS prevention  LanguagePlugin.swift          # Plugin protocol + registry  Plugins/                      # CSV, HTML, Markdown plugins
Sources/MarkView/               # SwiftUI app (macOS 14+)  ContentView.swift             # Split-pane editor + preview  WebPreviewView.swift          # WKWebView with Prism.js  ExportManager.swift           # HTML/PDF export
Sources/MarkViewMCPServer/      # MCP server for AI tool integration  main.swift                    # stdio JSON-RPC (preview_markdown, open_file)
Tests/TestRunner/               # 403 standalone tests (no XCTest)Tests/VisualTester/             # 5 visual regression tests + WCAG contrastTests/FuzzTester/               # 10K random input crash testingTests/DiffTester/               # Differential testing vs cmark-gfm CLI

See docs/ARCHITECTURE.md for full details.

Testing

bash
swift run MarkViewTestRunner    # 403 testspython3 scripts/verify.py       # Full verification (build + tests, writes stamp)python3 scripts/verify.py --extended  # + fuzz + differentialbash scripts/test-mcp.sh        # MCP protocol tests

Development

bash
swift buildswift run MarkViewswift run MarkView /path/to/file.md

Support

License

MIT — see LICENSE.

Source: README.md at commit 523804c

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.7.2LatestSep 16, 2026

Score

50% 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 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts