Skip to main content

2 posts tagged with "ai-agents"

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.

Mermaid Plus is now an MCP server for AI agents

· 5 min read

Mermaid diagrams won because they are text: they diff cleanly, they live in version control, and AI models are good at writing them. The MCP era should have been the moment every AI client learned to draw them. It half-happened — and the half that happened isn't the interesting half.

The Mermaid MCP ecosystem today: renderers, not editors​

Search the MCP registries for "mermaid" and you'll find a handful of community servers. There is no official one — the Mermaid project ships the library, a CLI, and the mermaid.ink rendering service, but no MCP. The community servers are all variations on one pattern: take Mermaid code, launch a headless browser, render a PNG or SVG, hand the image back to the chat. Some are well built. As a category, they make your AI client a screensaver — it can show you a diagram, but the diagram evaporates when the conversation ends, and nothing your team maintains ever changes.

That's the gap. The diagrams worth editing don't live in chat windows. They live in your wiki, embedded in the architecture page someone's onboarding doc links to. An MCP server for Mermaid should be able to find and maintain those.

What we shipped​

Mermaid Plus Diagrams & AI Agent 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 now exposed as an MCP server:

ToolWhat it does
create-diagramRenders a Mermaid diagram onto a page or blogpost — or creates a new page with it
get-diagramReads back the diagram source and its version
update-diagramReplaces the diagram source with a version-checked write
convert-diagramTurns Mermaid code blocks already on the page into rendered diagrams, in place

These aren't chat decorations. They edit the real macros on the real page: version locking prevents lost updates, an open editor draft is synced instead of clobbered, and every call runs with the invoking user's own Confluence permissions — the client can only see and change what that person could change in the editor.

Three ways to use it​

1. In Confluence chat (already live). The Rovo agent picks up the page you're viewing — "make this diagram clearer" just works. This is the original surface and it's unchanged.

2. In agents you build in Rovo Studio. Create an agent, Add tools → Connected apps, and add the four Mermaid Plus tools — next to tools from any other app that exposes them. A release-notes agent that reads Jira and updates your architecture diagrams in the same conversation is now a configuration exercise, not an integration project.

3. In any MCP client. Claude Code, Cursor, or anything that speaks MCP can connect to:

https://mcp.atlassian.com/forge/0ddaf927-b00c-4186-8b1a-490be0cb7b69

Exposure is admin-controlled per site: external access is off by default, and a site admin flips it on under Apps → Sites → your site → Connected apps → Mermaid Plus → Tools in Atlassian Administration. Without that toggle the endpoint authenticates but shows no tools; with it, users approve their own connection through an OAuth 2.1 consent screen scoped to sites where the app is installed. (The built-in Rovo agent needs none of this — it's live the moment the app is installed.)

Connecting Claude Code, concretely:

# Register the server (--scope user = available in all your projects)
claude mcp add --scope user --transport http mermaid-plus \
https://mcp.atlassian.com/forge/0ddaf927-b00c-4186-8b1a-490be0cb7b69

Then start claude, run /mcp, select mermaid-plus → Authenticate, and approve the consent screen in the browser. claude mcp list flips from ! Needs authentication to ✔ Connected, and your first prompt can be as plain as:

Read the Mermaid diagram on https://your-site.atlassian.net/wiki/spaces/TEAM/pages/123456789/Architecture and suggest a clearer layout

Cursor users: add the same URL as a remote HTTP MCP server — the OAuth flow is identical. The full walkthrough, including the admin setup, lives in the user guide.

One behavioral difference worth knowing​

In Confluence chat, "this page" means the page you're looking at — the context comes for free. Over MCP there is no open page, so you pass the numeric ID from the page URL (…/pages/123456789/Title → 123456789) or a space key. That's not a limitation we chose; it's the honest shape of working outside the wiki. Every one of our tools' errors will tell the client exactly this rather than guessing at a target — a wrong-page write is the one failure this feature must never have.

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 MCP server is a capability of the app, not another vendor trust decision.

What's next​

The four tools are the floor, not the ceiling — a search tool (find pages by title or space) is the obvious next one, once it can ship without a scope-change disruption for existing installs. If you're building agents on top of Confluence diagrams, we'd like to hear what's missing: the Marketplace listing takes feedback, and so does this blog.