# Enhanced Markdown is now an MCP server for AI agents

October 31, 2026 ·

<!-- -->

5 min read

[NGPilot](https://ngpilot.com)

Markdown won because it is the format AI models write best: it is plain text, it diffs cleanly, and every developer already has it in a repo somewhere. The wiki is where that content is supposed to end up — architecture docs, runbooks, RFCs, meeting notes — and "import markdown to Confluence" is a search people type often enough that it stings. The distance between "a markdown file" and "a Confluence page" has always been a copy-paste with formatting losses at the end.

The MCP era should close that loop. This week it did for diagrams — [Mermaid Plus became an MCP server](/blog/mermaid-plus-mcp-server.md). Now the document layer follows.

## What we shipped[​](#what-we-shipped "Direct link to What we shipped")

Enhanced Markdown for Confluence now ships a `rovo:mcp` module — Atlassian's bridge that turns Forge app actions into MCP tools. The same four actions that power the built-in Rovo agent are exposed as an MCP server:

| Tool                      | What it does                                                                  |
| ------------------------- | ----------------------------------------------------------------------------- |
| `create-markdown`         | Adds a markdown block to a page — or creates a new page/blogpost from it      |
| `get-markdown`            | Reads back the markdown source and the page version                           |
| `update-markdown`         | Replaces a markdown block with a version-checked write                        |
| `convert-markdown-blocks` | Turns markdown code blocks already on the page into rendered blocks, in place |

These edit the real content on the real page. Everything the macro renders in the editor works through the tools: tables, fenced code with syntax highlighting, KaTeX math, Mermaid fences. Version locking prevents lost updates; an open editor draft is synced instead of clobbered; every call runs with **the invoking user's own Confluence permissions**.

## Using it in Claude Code, end to end[​](#using-it-in-claude-code-end-to-end "Direct link to Using it in Claude Code, end to end")

This is the part you came for. One-time setup:

**1. Admin: expose the tools.** External access is off by default. In [admin.atlassian.com](https://admin.atlassian.com), open your organization → **Apps → Sites** → your site → **Connected apps** → **Enhanced Markdown for Confluence**, and switch on the four markdown tools. Once per site.

**2. Register the server in Claude Code:**

```
claude mcp add --scope user --transport http enhanced-markdown \

  https://mcp.atlassian.com/forge/6c4adb40-91c3-41db-8804-db25b2998069



claude mcp list

#   enhanced-markdown: https://mcp.atlassian.com/forge/6c4adb40-… - ! Needs authentication
```

**3. Authenticate.** Start `claude`, run `/mcp`, select **enhanced-markdown → Authenticate**. A browser opens the Atlassian OAuth 2.1 consent screen — sign in, pick your site, approve. `claude mcp list` flips to `✔ Connected`.

**4. Work your wiki.** Four prompts, one per tool — paste-ready:

> Create a page titled "API Style Guide" in our DEV space from this markdown: …(paste)…

> Read the markdown on <https://your-site.atlassian.net/wiki/spaces/TEAM/pages/123456789/Architecture> and tighten the wording

> Update the markdown on page 123456789 — replace the Draft warning with the final release notes below: …(paste)…

> Convert the markdown code blocks on <https://your-site.atlassian.net/wiki/spaces/TEAM/pages/987654321/Imported-Notes> into rendered blocks

Two things to know: over MCP there is **no open page**, so point the client at the page URL or its numeric ID (the number in `…/pages/123456789/Title`) or a space key — the tools' errors say exactly this rather than guessing a target. And until the OAuth step is done, non-interactive Claude runs skip the server silently; check `claude mcp list` first.

Cursor users: add the same URL as a remote HTTP MCP server — the OAuth flow is identical. The full walkthrough, including the admin setup and the Rovo Studio path, lives in [the user guide](/docs/Enhanced-Markdown-for-Confluence/ai-agents.md).

## Multi-block pages: the tools refuse to guess[​](#multi-block-pages-the-tools-refuse-to-guess "Direct link to Multi-block pages: the tools refuse to guess")

A wiki page can hold several markdown macros — a spec and an appendix, a report and its data notes. So `get-markdown` and `update-markdown` **stop and ask which block you mean** whenever a page has more than one, numbered from the top. Your answer becomes the `index`, and the write lands exactly there. The one failure a wiki-writing agent must never have is quietly editing the wrong block; we traded a round-trip for that guarantee.

The same philosophy runs through the whole surface: version mismatches are reported, never overwritten; an open editor draft is written into and republished, never clobbered by a three-way merge; and if a request could mean two different pages, the tool asks instead of picking.

## Why an app, not a standalone MCP server[​](#why-an-app-not-a-standalone-mcp-server "Direct link to Why an app, not a standalone MCP server")

A standalone Confluence MCP server would need you to hand a third party an API token with write access to your wiki. Ours rides on the Forge app you already installed: Atlassian hosts it, access goes through Atlassian's own OAuth and permission layer, and admin controls exposure per site. The same argument we made for diagrams applies to documents — [the full version is in the Mermaid Plus post](/blog/mermaid-plus-mcp-server.md).

With both apps exposing MCP, one agent can hold the whole page: "update the architecture doc, then regenerate its sequence diagram" is now two tool calls in one conversation.

## What's next[​](#whats-next "Direct link to What's next")

Search is the obvious next tool — finding the right page without leaving the agent. If you're building agents on top of your wiki, tell us what's missing: the [Marketplace listing](https://marketplace.atlassian.com/apps/1237026/enhanced-markdown-for-confluence) takes feedback, and so does this blog.

Try <!-- -->Enhanced Markdown for Confluence

Write Markdown with live split preview, Mermaid diagrams, KaTeX/LaTeX math, and 190+ code languages — all in one macro, free for up to 10 users.

[Get it on the Atlassian Marketplace](https://marketplace.atlassian.com/apps/1237026/enhanced-markdown-for-confluence?utm_source=ngpilot.com\&utm_medium=website\&utm_campaign=enhanced-markdown-for-confluence)

## Related guides

* [How to Create Mermaid Diagrams in Jira](/blog/how-to-create-mermaid-diagrams-jira.md)
* [Export Jira Issues to Excel or CSV](/blog/export-jira-issues-to-excel.md)
* [Bulk Download Jira Attachments](/blog/bulk-download-jira-attachments.md)
* [How to Migrate Confluence Content](/blog/how-to-migrate-confluence-content.md)
* [How to Add a Block Quote in Confluence](/blog/block-quote-confluence.md)

Explore NGPILOT[Browse Solutions](/solutions.md)[All Apps](/apps.md)[All Posts](/blog/archive.md)[Atlassian Marketplace →](https://marketplace.atlassian.com/vendors/1226848/?utm_source=ngpilot.com\&utm_medium=blog\&utm_campaign=hub-links)

**Tags:**

* [confluence](/blog/tags/confluence.md)
* [markdown](/blog/tags/markdown.md)
* [mcp](/blog/tags/mcp.md)
* [ai-agents](/blog/tags/ai-agents.md)
* [rovo](/blog/tags/rovo.md)
* [claude-code](/blog/tags/claude-code.md)
