Skip to main content

One post tagged with "claude-code"

View All Tags

Enhanced Markdown is now an MCP server for AI agents

· 5 min read

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. Now the document layer follows.

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:

ToolWhat it does
create-markdownAdds a markdown block to a page — or creates a new page/blogpost from it
get-markdownReads back the markdown source and the page version
update-markdownReplaces a markdown block with a version-checked write
convert-markdown-blocksTurns 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​

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, 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.

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​

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.

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​

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 takes feedback, and so does this blog.