markview
Native macOS markdown previewer. Opens files and renders markdown content in a live preview window directly from your AI tools.
README
MarkView
A native macOS markdown preview app built with Swift and SwiftUI. No Electron, no web server — just a fast, lightweight previewer that renders GitHub Flavored Markdown.
Demo

<a href="https://glama.ai/mcp/servers/@paulhkang94/markview"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@paulhkang94/markview/badge" alt="markview MCP server" /> </a>
Screenshots
| Preview only | Editor + Preview |
|---|---|
![]() |
![]() |
Features
- Live preview with split-pane editor and WKWebView rendering
- GitHub Flavored Markdown via Apple's swift-cmark (tables, strikethrough, autolinks, task lists)
- Syntax highlighting for 18 languages via Prism.js
- Markdown linting with 9 built-in rules and status bar diagnostics
- File watching with DispatchSource (works with VS Code, Vim, and other editors)
- Multi-format support via plugin architecture (Markdown, CSV, HTML)
- HTML sanitizer that strips scripts, event handlers, and XSS vectors
- Mermaid diagrams — flowcharts, sequence, Gantt, ER, and pie charts via mermaid.js
- Bidirectional scroll sync — frame-perfect editor/preview sync via CADisplayLink
- Local image rendering — correctly inlines relative paths like
 - Drag and drop — drop any
.mdfile onto the window to open - Find & Replace — Cmd+F to find, Cmd+Option+F to find and replace
- Format on save — auto-applies markdown lint fixes when saving
- Window auto-resize — smart resize when toggling editor/preview panes
- Export to HTML and PDF
- Dark mode support with system/light/dark theme options
- 18 configurable settings including font, preview width, tab behavior, and more
Installation
Homebrew (recommended)
# Full .app with Quick Look extension
brew install --cask paulhkang94/markview/markview
# CLI only (builds from source)
brew tap paulhkang94/markview
brew install markview
The app is Apple notarized and Gatekeeper approved — no quarantine warnings on install.
Build from source
Prerequisites: macOS 14+, Swift 6.0+ (included with Xcode Command Line Tools)
git clone https://github.com/paulhkang94/markview.git
cd markview
swift build -c release
Install as app (Open With support)
bash scripts/bundle.sh --install
This creates MarkView.app in /Applications and registers it with Launch Services. You can then right-click any .md file in Finder and choose Open With > MarkView.
Install CLI commands
bash scripts/install-cli.sh
This creates mdpreview and md symlinks in ~/.local/bin/. Note: if md is aliased in your shell (e.g., to mkdir), use mdpreview instead.
Usage
CLI
mdpreview README.md # Open a file
mdpreview # Open empty editor
Finder
Right-click any .md, .markdown, .mdown, .mkd file > Open With > MarkView
Programmatic
open -a MarkView README.md
MCP Server (AI Integration)
MarkView includes an MCP server that lets AI assistants preview markdown directly in MarkView.
Tools
| Tool | Description |
|---|---|
preview_markdown |
Write content to a temp file and open it in MarkView with live reload |
open_file |
Open an existing .md file in MarkView |
Quick Start (npx)
npx mcp-server-markview
Claude Code Setup
Add to ~/.claude/settings.json:
{
"mcpServers": {
"markview": {
"command": "npx",
"args": ["mcp-server-markview"],
"type": "stdio"
}
}
}
Or use the built binary directly (faster startup, no Node.js required):
{
"mcpServers": {
"markview": {
"command": "/path/to/markview/.build/release/MarkViewMCPServer",
"type": "stdio"
}
}
}
Claude Desktop Setup
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"markview": {
"command": "npx",
"args": ["mcp-server-markview"]
}
}
}
Test the MCP server
bash scripts/test-mcp.sh
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
MarkdownSuggestions.swift # Auto-suggest engine
LanguagePlugin.swift # Plugin protocol + registry
HTMLSanitizer.swift # XSS prevention
Plugins/ # CSV, HTML, Markdown plugins
Sources/MarkView/ # SwiftUI app (macOS 14+)
ContentView.swift # Split-pane editor + preview
WebPreviewView.swift # WKWebView with Prism.js
Settings.swift # 18 settings with theme/width/font enums
ExportManager.swift # HTML/PDF export
Sources/MarkViewMCPServer/ # MCP server for AI tool integration
main.swift # stdio JSON-RPC server (preview_markdown, open_file)
Tests/TestRunner/ # 382 standalone tests (no XCTest)
Tests/VisualTester/ # 5 visual regression tests + WCAG contrast
Tests/FuzzTester/ # 10K random input crash testing
Tests/DiffTester/ # Differential testing vs cmark-gfm CLI
scripts/test-mcp.sh # 5 MCP protocol + integration tests
See docs/ARCHITECTURE.md for full details.
Testing
# Run all tests (382 tests)
swift run MarkViewTestRunner
# Full verification (build + tests)
bash verify.sh
# Extended (fuzz + differential)
bash verify.sh --extended
Development
swift build # Build all targets
swift run MarkView # Launch app
swift run MarkView /path/to/file.md # Launch with file
swift run MarkViewTestRunner # Run tests
Support
If MarkView is useful to you, consider supporting development:
- GitHub Sponsors
- Star this repo to help others find it
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

