On by default

Topics

Read Topic

read-onlyidempotentopen-world
discourse_read_topic

Read topic metadata and posts. Large post limits can require multiple upstream requests. For moderation queues, prefer reviewable list/detail evidence instead of fanning this tool out across flagged topics.

Parameters

topic_idintegerrequired
post_limitinteger[1, 50]

Max posts to return (default 5, max 50)

start_post_numberinteger>= 1

Start from this post number (1-based)

Read Post

read-onlyidempotentopen-world
discourse_read_post

Read a specific post. Returns JSON with id, topic_id, post_number, username, created_at, and raw content.

Parameters

post_idintegerrequired

Read Selected Topic Posts

read-onlyidempotentopen-world
discourse_read_topic_posts

Read exact, earliest, latest, around-post, or username-filtered topic evidence. Selection is bounded to 50 posts and reports the visible stream size without claiming the entire topic was loaded.

Parameters

topic_idintegerrequired
selection_modestringlatestearliestpost_idsaround_postusernamesrequired
limitinteger[1, 50]
post_idsArray<integer>
post_numberinteger
usernamesArray<string>
replies_onlyboolean

Create Post

discourse_create_post

Create a post in a topic. author_username requires a global API key. Returns the actual upstream author so callers can verify attribution.

Parameters

topic_idintegerrequired
rawstringrequired
author_usernamestring

Create Category

discourse_create_category

Create a new category. Returns JSON with id, slug, and name.

Parameters

namestringrequired
colorstring
text_colorstring
emojistring
iconstring
parent_category_idinteger
descriptionstring

Create Topic

discourse_create_topic

Create a new topic. author_username requires a global API key. Returns the actual upstream author so callers can verify attribution.

Parameters

titlestringrequired
rawstringrequired
category_idinteger
tagsArray<string>
author_usernamestring

Update Topic

discourse_update_topic

Update an existing topic (title, category, tags, featured_link). Returns JSON with updated topic details.

Parameters

topic_idintegerrequired

Topic ID to update

titlestring

New title

category_idinteger

Move to category

tagsArray<string>

Replace all tags

original_titlestring

For conflict detection - expected current title

original_tagsArray<string>

For conflict detection - expected current tags

Update Post

discourse_update_post

Update the content of an existing post. Returns JSON with updated post details.

Parameters

post_idintegerrequired

Post ID to update

rawstringrequired

New post content (markdown)

edit_reasonstring

Reason for the edit