Inkra MCP
Inkra MCP lets MCP clients drive a running macOS Inkra Markdown editor and manipulate the currently open document through 18 tools.
Read, set, insert into, replace within, and search document content.
Open, create, and save Markdown documents.
Open folders and list files with an optional glob filter.
Retrieve the document outline and YAML frontmatter.
List, add, and remove bookmarks.
Switch themes (standard/sepia/night) and view modes (focus/wide).
Inspect current app/window state.
Inkra MCP Server
Drive a native macOS Markdown editor from Claude, Cursor, or any MCP client.
This is the official Model Context Protocol bridge for Inkra — a native macOS Markdown editor (SwiftUI + AppKit, not Electron) with live KaTeX/Mermaid preview and a built-in AI assistant.
You need the Inkra app installed and running, with Inkra Pro. This MCP server is a stdio→HTTP bridge — Inkra owns the document state, undo stack, syntax highlighting, and rendering. The MCP server and the REST API are part of Inkra Pro; the free trial includes them. Get Inkra at store.juergenkoller.software/apps/inkra.
The Inkra version from the website already contains this bridge as
inkra-mcp-server. Inkra → Settings → API → Copy MCP Config gives you a ready-made configuration. Build from this repository only if you want to audit or modify the bridge.
What you can do
"Claude, open ~/Notes/2026-thesis.md, find every heading that contains 'TODO', add a checkbox after it, and save."
"Cursor, list all files in the current folder, bookmark the H2 'Methodology', and switch to Focus Mode."
The MCP server exposes 18 tools across these categories:
Category | Tools |
Document content |
|
Document lifecycle |
|
Navigation |
|
Folder / files |
|
Metadata |
|
View |
|
State |
|
Every tool operates on the currently open document in the Inkra app — so AI agents see exactly what you see, edits show up live with syntax highlighting and preview, and undo/redo work in the app's normal undo stack.
Related MCP server: Nemeton MCP
Installation
Prerequisites
macOS 14 (Sonoma) or later
Inkra app installed and running — get it here (website version; the Mac App Store version does not include the MCP server)
Inkra Pro, or the free trial — without it the app answers every MCP call with “Inkra Pro required”
API enabled in Inkra → Settings → API (“API Enabled”)
Swift 5.9+ (Xcode 15+) only if building from source
Use the bridge inside the app (recommended)
/Applications/Inkra.app/Contents/MacOS/inkra-mcp-serverIt always matches the installed app version.
Build from source
git clone https://github.com/juergenkoller-software/inkra-mcp.git
cd inkra-mcp
swift build -c release
# Binary: .build/release/InkraMCPPre-built binary
Not needed on a Mac: the website version of Inkra ships the bridge (see above). The binary attached to Releases is a static Linux x86_64 build for container-based MCP registries such as Glama; it does not run on macOS.
Configuration
Claude Desktop
{
"mcpServers": {
"inkra": {
"command": "/Applications/Inkra.app/Contents/MacOS/inkra-mcp-server",
"env": {
"INKRA_API_PORT": "42932",
"INKRA_API_TOKEN": "your-token-here"
}
}
}
}Get INKRA_API_TOKEN from Inkra → Settings → API, or use Copy MCP Config there, which fills in path, port, and token.
Claude Code
claude mcp add inkra /Applications/Inkra.app/Contents/MacOS/inkra-mcp-server \
--env INKRA_API_PORT=42932 \
--env INKRA_API_TOKEN=your-token-hereCursor / other MCP clients
Same pattern — stdio MCP server, two env vars.
How it works
┌────────────────┐ JSON-RPC stdio ┌────────────────┐ HTTP+Bearer ┌────────────────┐
│ Claude/Cursor │ ───────────────► │ InkraMCP │ ─────────────► │ Inkra.app │
│ (MCP client) │ ◄─────────────── │ (this repo) │ ◄───────────── │ (port 42932) │
└────────────────┘ └────────────────┘ └────────────────┘The bridge translates MCP tool calls into requests to Inkra's local REST API. The app handles document state (NSTextView with TextKit 2), AST-based syntax highlighting, KaTeX/Mermaid live preview, undo/redo, session restore, and exports.
Environment variables
Variable | Default | Description |
|
| Port of Inkra's local HTTP server (Inkra → Settings → API) |
| (none) | Bearer token from Inkra → Settings → API (required) |
Errors
Every refusal comes back as an MCP error (isError: true) with a sentence the agent can act on:
Situation | What the bridge reports |
Inkra not running, or API switched off | Inkra is not reachable at |
Token missing or wrong (HTTP 401) | Set |
No Inkra Pro (HTTP 403 | The MCP server is part of Inkra Pro; only the user can upgrade, in the app or in the store |
Any other HTTP error | Status code and Inkra's error text |
Before version 1.1.0 the bridge ignored the HTTP status, so a wrong token or the Pro lock looked like a successful call (“OK, 0 characters”).
About Inkra
Inkra is a native macOS Markdown editor — not an Electron app. Highlights:
Native — SwiftUI + AppKit, real macOS performance
Live preview — KaTeX formulas, Mermaid diagrams, code highlighting rendered in real time via WKWebView
Focus mode + wide mode — distraction-free writing
Built-in AI assistant — Claude, OpenAI, Ollama, or Inkra KI (dedicated endpoint, no API key needed)
Export — HTML and PDF with full layout, formulas, diagrams, code blocks
Session restore — folder, file, cursor, scroll position
MCP server (this repo) + REST API with Swagger UI — part of Inkra Pro
24 EU languages
Available on the Mac App Store and as a direct download — the MCP server ships with the direct download
→ Get Inkra at store.juergenkoller.software
License
MIT — see LICENSE. Bridge open source; Inkra app is commercial.
Issues & support
Bridge bugs: open an issue
App support: support@juergenkoller.software
Built by Juergen Koller Software GmbH.
Available Tools
18 toolsbookmark_addB
Adds a bookmark at a specific position in the text
Inputs: name (required), offset (required).
bookmark_removeB
Removes a bookmark by its ID
Inputs: id (required).
bookmarks_listB
Returns all bookmarks of the current document
Inputs: no named parameters.
document_createB
Creates a new document with optional content
Inputs: path, content.
document_get_contentA
Returns the full text content of the document
Inputs: no named parameters.
document_insertB
Inserts text at a position (line/column, 0-based)
Inputs: line (required), text (required), column (required).
document_openC
Opens a file in the editor (absolute path)
Inputs: path (required).
document_replaceB
Finds and replaces text in the document
Inputs: pattern (required), replacement (required), regex.
document_saveA
Saves the current document
Inputs: no named parameters.
document_searchB
Searches the document for text or regex
Inputs: query (required), regex.
document_set_contentC
Replaces the full text content of the document
Inputs: content (required).
folder_list_filesB
Lists files in the opened folder
Inputs: glob.
folder_openB
Opens a folder in the sidebar
Inputs: path (required).
frontmatter_getA
Returns the YAML frontmatter of the document
Inputs: no named parameters.
outline_getA
Returns the heading structure of the document
Inputs: no named parameters.
theme_setA
Switches the theme (standard, sepia, night)
Inputs: id (required).
view_mode_setC
Controls Focus Mode and Wide Mode
Inputs: wide, focus.
window_infoB
Returns the current app state
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 18 tools
Each tool addresses a distinct operation: bookmarks, documents, folders, frontmatter, outline, theme, view mode, and window info. There is no ambiguity or overlap between tools.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., bookmark_add, document_create, folder_open). The convention is uniform across the entire set.
18 tools is a reasonable number for a text editor MCP server. It covers file, document, bookmark, folder, and UI operations without being excessive or sparse.
The server covers core editing operations (create, open, save, insert, replace, search, set/get content), bookmarks, frontmatter, outline, and UI settings. Minor omissions like undo/redo or deletion are absent but do not severely hinder usability.
Maintenance
Related MCP Connectors
MCP-native collaborative markdown editor with real-time AI document editing
MCP Server for Web2MD — convert URLs to Markdown from Claude Desktop, Cursor, etc.
Free Markdown notes app, Mac and iPhone. Sync ($5.99/mo) adds a personal MCP endpoint for your AI.
Creative workspace. Public MCP: outline previews for Codex and Claude Code; media in the web app.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for AI Diagram Maker — generate software engineering diagrams from natural language, code, ASCII diagram, images, or Mermaid. Inline diagram rendering using MCP apps UI and diagram URL in responses. Works with Cursor, Claude Desktop, Claude Code, and any MCP-compatible AI.557 npm10MIT
- AlicenseCqualityCmaintenanceMCP bridge for Nemeton — control native macOS virtual machines (Apple Virtualization.framework) from Claude Desktop, Claude Code, or any MCP client. 50+ tools across VM lifecycle, snapshots, console, files, networking, and host metrics. Bridge open-source (MIT), Nemeton app is commercial.491MIT
- AlicenseBqualityCmaintenanceMCP bridge for PDF Content Search — full-text PDF search with Apple Vision OCR across thousands of documents in under a second from Claude, Cursor, or any MCP client. Advanced filters (date, category, sender, amount), wildcards, boolean operators. Bridge open-source (MIT), PDF Content Search app is commercial with free iOS+Android companion scanner apps.841MIT
- AlicenseAqualityCmaintenanceMCP server for FreezeText — OCR anything on your Mac screen from Claude, Cursor, or any MCP client. Freeze the screen and extract text via Apple Vision (videos, popups, protected PDFs), OCR a region or a base64 image, and manage a searchable capture history. 12 tools. Bridge open-source (MIT), FreezeText app is free.121MIT