Moderation
Get Review Queue Count
read-onlyidempotentopen-worldGet the authoritative count of pending reviewable records visible to the authenticated user. This counts queue items, not individual flag/score records; upstream Guardian permissions remain authoritative.
List Reviewables
read-onlyidempotentopen-worldWork through the exhaustive visible Discourse queue in pages of 10. For ordinary triage, call with only status=pending and offset=0—do not guess topic/category/type filters. Use meta.total and follow next_offset while has_more is true. Each result already includes bounded evidence and exact dynamic actions; fetch detail only for a shortlisted item that needs fresher context.
Parameters
offsetinteger>= 0Queue offset; start at 0 and follow meta.next_offset
statusstringpendingapprovedrejectedignoreddeletedallpendingReviewable status; defaults to pending
typestringExact reviewable class such as ReviewableFlaggedPost; blank/all/any means no type filter
topic_ idinteger>= 0Exact topic ID; omit or use 0 for no topic filter
category_ idinteger>= 0Exact category ID; omit or use 0 for no category filter
prioritystringExact upstream priority filter; omit or pass blank for all priorities
usernamestringTarget username filter; omit or pass blank for all users
reviewed_ bystringReviewer username; omit or pass blank for all reviewers
claimed_ bystringClaiming moderator username; omit or pass blank for all claim states
flagged_ bystringFlagger username; omit or pass blank for all flaggers
from_ datestringInclusive ISO date/time lower bound; omit or pass blank for no lower bound
to_ datestringInclusive ISO date/time upper bound; omit or pass blank for no upper bound
sort_ orderstringExact upstream queue sort order; omit or pass blank for Discourse's default
score_ typestringExact upstream score type; omit or pass blank for all score types
List Reviewable Topics
read-onlyidempotentopen-worldNon-exhaustive topic-level signal only: list pending topics at or above Discourse's minimum review priority. Do not use this tool to work through or rank the full queue because it omits reviewable IDs, actions, low-priority items, and items without topics. Use discourse_list_reviewables for moderation triage.
Get Reviewable
read-onlyidempotentopen-worldRefresh one shortlisted reviewable's bounded context, current version, claim state, scores, and exact dynamic actions. Paginated list results already include evidence/actions, so do not fan this tool out across the queue. Optionally includes Discourse's score explanation; never generates a recommendation.
Parameters
reviewable_ idintegerrequiredinclude_ explanationbooleanGet User Moderation Summary
read-onlyidempotentopen-worldGet staff-authorized behavioral moderation counters for a user. Omits unrelated administrative capability flags; Discourse permissions remain authoritative.
Parameters
usernamestringrequiredGet Post Revision
read-onlyidempotentopen-worldGet a staff/Guardian-authorized post revision with bounded diffs, edit reason, actor, version, and hidden-state evidence.
Body
post_ idintegerrequiredrevisionstring | integerPerform Reviewable Action
destructiveopen-worldPerform one exact dynamic action after a fresh serialized preflight. Choose by the action's full description, not label alone (for example delete-and-agree differs from delete-and-ignore). The displayed action ID may be UI-prefixed; this tool safely routes its server_action. Requires confirm=true and write enablement.
Parameters
reviewable_ idintegerrequiredReviewable ID from list/detail
action_ idstringrequiredExact available_actions[].id from the current reviewable; the MCP maps its server_action to the route
expected_ versioninteger>= 0Version observed during review; fail closed if it has changed
additional_ fieldsobjectOnly fields advertised by the selected dynamic action contract
confirmbooleanrequiredExplicit acknowledgement that the selected action may delete content, delete users, or block accounts