markview

markview

Native macOS markdown previewer. Opens files and renders markdown content in a live preview window directly from your AI tools.

Category
Visit Server

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

MarkView 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
Preview 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 ![](./image.png)
  • Drag and drop — drop any .md file 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:

License

MIT — see LICENSE.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured