# Discourse to Markdown Plugin

**URL:** https://meta.discourse.org/t/discourse-to-markdown-plugin/401199
**Category:** Plugin
**Tags:** markdown, ai
**Created:** [April 22, 2026, 2:33am UTC](https://meta.discourse.org/t/discourse-to-markdown-plugin/401199 "2026-04-22T02:33:17Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![benword](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/benword/32/493782_2.png) [@benword](https://meta.discourse.org/u/benword)
#### Post date: [April 28, 2026, 8:38pm UTC](https://meta.discourse.org/t/discourse-to-markdown-plugin/401199/6 "2026-04-28T20:38:28Z")

</div>

> [@jrgong](#):
>
> OMG, that’s exactly what I have been looking for, fantastic timing! We use the API or MCP frequently and it always bugged us that the raw content doesn’t have resolved image URLs
> 
> Thank you for the work!
> 
> Edit: Could that somehow be used with [Discourse MCP](https://meta.discourse.org/t/discourse-mcp-is-here/386983) as well?

Glad it’s useful!

Discourse MCP could add content negotiation as an optional path. It would not need to require this plugin, it could request `Accept: text/markdown` from the canonical topic/post URL and fall back to the current JSON API behavior if the site does not support Markdown.

This plugin is just one way for a Discourse site to satisfy that request today. Without either this plugin or equivalent support in Discourse core, the `Accept` header alone would not change the JSON API output.

So the ideal MCP integration might be: try `text/markdown` on the content URL first, then fall back to `/t/:id.json?include_raw=true`.

---

_[View the full topic](https://meta.discourse.org/t/discourse-to-markdown-plugin/401199)._
