discourse_filter_topicsFilter topics with a concise query language: use key:value tokens separated by spaces; category/categories for categories (comma = OR, '=category' = without subcats, '-' prefix = exclude), tag/tags (comma = OR, '+' = AND) and tag_group; status:(open|closed|archived|listed|unlisted|public) and personal in:(bookmarked|watching|tracking|muted|pinned); dates: created/activity/latest-post-(before|after) with YYYY-MM-DD or N (days); numeric: likes[-op]-(min|max), posts-(min|max), posters-(min|max), views-(min|max); order: activity|created|latest-post|likes|likes-op|posters|title|views|category with optional -asc; free text terms are matched full-text. Results are permission-aware.Input schema{
"type": "object",
"properties": {
"filter": {
"type": "string",
"minLength": 1,
"description": "Filter query, e.g. 'category:support status:open created-after:30 order:activity'"
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (1-based)"
},
"per_page": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Items per page (max 50)"
}
},
"required": [
"filter"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | | — |
discourse_get_userGet basic user info.Input schema{
"type": "object",
"properties": {
"username": {
"type": "string",
"minLength": 1
}
},
"required": [
"username"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | | — |
discourse_list_categoriesList categories visible to the current auth context.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
} | — | | — |
discourse_list_tagsList tags (if enabled).Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
} | — | | — |
discourse_read_postRead a specific post.Input schema{
"type": "object",
"properties": {
"post_id": {
"type": "integer",
"exclusiveMinimum": 0
}
},
"required": [
"post_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | | — |
discourse_read_topicRead a topic metadata and first N posts.Input schema{
"type": "object",
"properties": {
"topic_id": {
"type": "integer",
"exclusiveMinimum": 0
},
"post_limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"start_post_number": {
"type": "integer",
"minimum": 1,
"description": "Start from this post number (1-based)"
}
},
"required": [
"topic_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | | — |
discourse_searchSearch site content.Input schema{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Search query"
},
"with_private": {
"type": "boolean"
},
"max_results": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | | — |
discourse_select_siteValidate and select a Discourse site for subsequent tool calls.Input schema{
"type": "object",
"properties": {
"site": {
"type": "string",
"format": "uri",
"description": "Base URL of the Discourse site"
}
},
"required": [
"site"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | | — |