DotMD is an MCP server.Your agents see what you're reading.
DotMD runs a local MCP server on your Mac. Claude Code, Codex, Cursor or any MCP client can open your Markdown files, read your selection and comments, point at lines, and send you a spec to review.
macOS 14 or later. Reading is free; DotMD Pro has a 3-day free trial.
Quick answer
Settings → MCP → MCP server starts it at http://127.0.0.1:8089/mcp. Add that address to your agent once. The agent can then open files in DotMD, read your selection and comments, highlight lines, and send a document to you for review. Reviews and the agent tools are part of DotMD Pro (3-day free trial); reading stays free.
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 --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.
You see every call
Recent Requests in Settings → MCP shows what each assistant did, in plain words: "Codex · Opened plans/auth.md at line 42" with a green check, "Searched for “rate limit” (5 matches)", or "Couldn't open ~/notes/a.md — no access" with a red cross. Hover a line for the full path or the reason. Technical details lists the raw HTTP requests instead. The list is kept only while DotMD is open.
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 --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
Can other computers reach DotMD's MCP server?
No. It listens on 127.0.0.1 only. Docker containers on this Mac can, through host.docker.internal.
Can a web page use it?
No. Requests from a browser are refused, and only JSON requests from this Mac are accepted.
Does the server write my files?
No. It never writes files; it acts on the front DotMD window.
Port 8089 is taken.
Change the port in Settings → MCP, turn the server off and on, and update the address in your agent.