DotMD
Markdown reader and editor for Mac with a built-in local MCP server. Agents such as Claude Code, Codex and Cursor can open files, read your comments and selection, and send documents for your review.
Documentation
Quick answer
DotMD runs a local MCP server on your Mac, so Claude Code, Codex, Cursor or any MCP client can open your Markdown files, read your selection and comments, and send you a document to review. It is for working with Markdown in DotMD, not for converting other formats; agent tools are part of DotMD Reviewer, and reading is free.
Updated 31 October 2026
Turn on the Markdown MCP server
This is an MCP server for working with your Markdown files in DotMD: opening them, reading what you comment on, and reviewing what the agent writes. It is not a converter that turns other formats into Markdown. Everything happens in Settings → MCP:
- MCP server starts the server. The status at the top turns green and says Listening.
- Start with DotMD starts it whenever DotMD starts.
- Port is 8089 by default. After you change it, turn the server off and on.
- The address,
http://127.0.0.1:8089/mcp, is shown at the top, with a copy button.
The server runs while DotMD is open. Close DotMD and the agent can't reach it.
Connect your agent to the MCP server
Add the server's address once, in the way your agent does it.
Claude Code
Run this in Terminal. Details are in the Claude Code guide.
claude mcp add -s user --transport http dotmd http://127.0.0.1:8089/mcp
Codex
In the Codex app open Settings → MCP servers → Add server and choose Streamable HTTP, or add this to ~/.codex/config.toml. The tool_timeout_sec line lets Codex wait while you review. More in the Codex guide.
[mcp_servers.dotmd]
url = "http://127.0.0.1:8089/mcp"
tool_timeout_sec = 3600
Cursor, Visual Studio Code and others
Add a server with this configuration. The Cursor guide has the steps.
{
"mcpServers": {
"dotmd": { "type": "http", "url": "http://127.0.0.1:8089/mcp" }
}
}
What the agent can do with DotMD
The server gives the agent twelve tools:
| Tool | What it does |
|---|---|
open_file | Opens a file or folder in DotMD, optionally at a line, which gets highlighted |
request_review | Sends a document the agent wrote to you for review and waits until you click Send or Approve |
get_current_file | Which file is open, its title, the mode and the section you're reading |
get_selection | The text you selected, with its line numbers |
highlight | Scrolls to lines and highlights them for a few seconds |
show_changes | Shows the agent's edits next to their comments, or in the version history |
list_files | The Markdown files in your workspace, with their titles |
search | Searches the text of every file in the workspace |
get_review_comments | The comments on a file, yours or a reviewing agent's |
add_review_comments | Leaves comments on lines of a file, as a reviewer, under the agent's name |
complete_review | Tells you a reviewing agent is done, with its verdict and a one-sentence summary |
resolve_review_comments | Sends comments back to you for review, each with a note and the lines changed for it |
The loop for a spec: the agent writes it and calls request_review, you comment, click Send, and the agent fixes each comment and sends it back with resolve_review_comments. See how it looks in the Claude Code guide.
Security: who can reach the server
- The server listens on 127.0.0.1 only, so other computers can't reach it.
- Web pages can't use it. Any request that comes from a browser is refused, and so is a request whose address doesn't name this Mac, which also stops DNS rebinding.
- It accepts only JSON requests, which a web form can't send.
- It never writes files. The tools act on the front DotMD window.
- It opens only files DotMD has access to: your workspace, Downloads and, if you allowed it, your Home folder. For anything else the agent is told to ask you to add the folder to the workspace.
Refused requests show up in Recent Requests in red, with the reason.
Agents in Docker
Inside a Docker container, 127.0.0.1 is the container itself, not your Mac. With Docker Desktop, containers reach the Mac as host.docker.internal, so use that address:
claude mcp add -s user --transport http dotmd http://host.docker.internal:8089/mcp
Other clients take the same address in their configuration. Every container on this Mac can reach the server this way, as it can any other server Docker Desktop lets through to your Mac. Computers on your network still can't.
Questions about DotMD's MCP server
Is there an MCP server for reviewing Markdown files on Mac?
Yes, DotMD has one built in. Turn it on in Settings → MCP; it answers at http://127.0.0.1:8089/mcp while DotMD is open. The agent can open files, read your selection and comments, and send you a document to review.
Which agents work with DotMD's MCP server?
Any MCP client: Claude Code, Codex, Cursor, Visual Studio Code and others. Each one needs the same address added once in its MCP settings.
Can other computers reach DotMD's MCP server?
No. It listens on 127.0.0.1, so only your Mac can reach it. The server never writes files; the agent edits files as it always does, and you see every change in DotMD.
Can a web page use it?
No. Requests from a browser are refused, and only JSON requests from this Mac are accepted.
Port 8089 is taken.
Change the port in Settings → MCP, turn the server off and on, and update the address in your agent.