discourse/discourse-mcp

discourse/discourse-mcp

от discourse
MCP сервер для интеграции AI-агентов с Discourse: поиск, чтение и управление топиками, постами, пользователями. Опциональная запись с защитой от злоупотреблений. Полезен для автоматизации модерации...

Discourse MCP

A Model Context Protocol (MCP) stdio server that exposes Discourse forum capabilities as tools and resources for AI agents.

  • Entry point: src/index.ts → compiled to dist/index.js (binary name: discourse-mcp)
  • SDK: @modelcontextprotocol/sdk
  • Node: >= 24
  • Version: 0.2.4 (0.2.x has breaking changes from 0.1.x - JSON-only output, resources replace list tools)
Quick start (release)
  • Run (read‑only, recommended to start)
npx -y @discourse/mcp@latest

Then, in your MCP client, either:

  • Call the discourse_select_site tool with { "site": "https://try.discourse.org" } to choose a site, or

  • Start the server tethered to a site using --site https://try.discourse.org (in which case discourse_select_site is hidden).

  • Enable writes (opt‑in, safe‑guarded)

npx -y @discourse/mcp@latest --allow_writes --read_only=false --auth_pairs '[{"site":"https://try.discourse.org","api_key":"'$DISCOURSE_API_KEY'","api_username":"system"}]'
Инструменты были проиндексированы:
discourse_filter_topicsтолько чтениеидемпотентныйвнешний мир

Находит темы через представления filtered, top или hot. Filtered использует синтаксис Discourse TopicsFilter; top использует авторитетный топ-скор Discourse и по умолчанию задает недельный период; hot определяется ровно как дневной top (не по тональности, спорности или скорости в реальном времени). Возвращает единообразную расширенную проекцию темы и достоверные метаданные пагинации.

Отфильтровать темы

Параметры
  • filterstring

    TopicsFilter query (required for the filtered view)

  • pageinteger

    Page number (0-based, default: 0)

  • per_pageinteger

    Items per page (default 20, max 50)

  • top_periodenum

    Top period (top view only; defaults to weekly)

  • viewenum
discourse_get_chat_messagesтолько чтениеидемпотентныйвнешний мир

Получает сообщения из чат-канала. Возвращает JSON-объект с channel_id, массивом messages (id, username, created_at, message, edited, thread_id, in_reply_to_id) и meta.

Получить сообщения чата

Параметры
  • channel_idintegerобязательный

    The chat channel ID

  • directionenum

    Pagination direction: 'past' for older messages, 'future' for newer

  • page_sizeinteger

    Number of messages to return (default: 50, max: 50)

  • target_datestring

    ISO 8601 date string to query messages around

  • target_message_idinteger

    Message ID to query around or paginate from

discourse_get_draftтолько чтениеидемпотентныйвнешний мир

Получает конкретный черновик по ключу. Возвращает JSON с draft_key, sequence и parsed data (title, reply, categoryId, tags, action).

Получить черновик

Параметры
  • draft_keystringобязательный

    Draft key (e.g., "new_topic", "topic_123", "new_private_message")

  • sequenceinteger

    Expected sequence number (optional)

discourse_get_queryтолько чтениеидемпотентныйвнешний мир

Получить полные сведения о запросе Data Explorer, включая SQL и параметры. Требуется API-ключ администратора.

Получить запрос Data Explorer

Параметры
  • idintegerобязательный

    Query ID

discourse_get_userтолько чтениеидемпотентныйвнешний мир

Получить информацию о пользователе. Возвращает JSON с id, username, name, trust_level, created_at, bio, admin и moderator.

Получить пользователя

Параметры
  • usernamestringобязательный
discourse_list_private_messagesтолько чтениеидемпотентныйвнешний мир

Перечисляет аутентифицированные почтовые ящики личных и групповых сообщений. Возвращает нормализованные JSON-сообщения и метаданные пагинации.

Выводит список личных сообщений.

Параметры
  • group_namestring
  • mailboxenum
  • pageinteger
  • per_pageinteger
  • usernamestring
discourse_list_user_postsтолько чтениеидемпотентныйвнешний мир

Получает постраничный список постов/ответов пользователя. Возвращает JSON-объект с массивом posts (id, topic_id, post_number, slug, title, created_at, excerpt, category_id) и meta (page, limit, has_more).

Список постов пользователя

Параметры
  • limitinteger

    Posts per page (max 50, default 30)

  • pageinteger
  • usernamestringобязательный
discourse_list_usersтолько чтениеидемпотентныйвнешний мир

Получает список пользователей через API администратора. Требуется ключ API администратора. Возвращает около 100 пользователей на странице (фиксированный размер страницы Discourse). Возвращает JSON с массивом пользователей и метаданными пагинации.

Список пользователей

Параметры
  • ascboolean

    Sort ascending (default: false/descending)

  • filterstring

    Search by username, email, or IP address

  • orderenum

    Sort order field

  • pageinteger

    Page number (0-indexed)

  • queryenum

    User query type

discourse_read_postтолько чтениеидемпотентныйвнешний мир

Читает конкретный пост. Возвращает JSON с id, topic_id, post_number, username, created_at и raw content.

Читать пост

Параметры
  • post_idintegerобязательный
discourse_read_private_messageтолько чтениеидемпотентныйвнешний мир

Читает аутентифицированное личное сообщение, его посты, а также прямые записи разрешённых пользователей и групп. Отклоняет публичные темы.

Читает личное сообщение.

Параметры
  • post_limitinteger

    Max posts to return (default 5, max 50)

  • start_post_numberinteger

    Start from this post number (1-based)

  • topic_idintegerобязательный
discourse_read_topicтолько чтениеидемпотентныйвнешний мир

Читает метаданные темы и сообщения. Большие лимиты на количество сообщений могут потребовать нескольких запросов к вышестоящему сервису. Для очередей модерации предпочитайте проверяемые данные списка/детали, а не массовые вызовы этого инструмента для отмеченных тем.

Читать тему

Параметры
  • post_limitinteger

    Max posts to return (default 5, max 50)

  • start_post_numberinteger

    Start from this post number (1-based)

  • topic_idintegerобязательный
discourse_read_topic_postsтолько чтениеидемпотентныйвнешний мир

Читает точные, самые ранние, самые поздние, вокруг поста или отфильтрованные по имени пользователя сведения по теме. Выборка ограничена 50 сообщениями и сообщает размер видимого потока, не утверждая, что загружена вся тема.

Читает выбранные сообщения темы.

Параметры
  • limitinteger
  • post_idsinteger[]
  • post_numberinteger
  • replies_onlyboolean
  • selection_modeenumобязательный
  • topic_idintegerобязательный
  • usernamesstring[]
discourse_run_queryтолько чтениеидемпотентныйвнешний мир

Выполняет запрос Data Explorer с параметрами. Возвращает columns, rows, result_count, duration_ms. Запросы выполняются в транзакциях только для чтения с тайм-аутом 10 секунд. Требуется admin API key.

Выполнить запрос Data Explorer

Параметры
  • explainboolean

    Include query execution plan in response

  • idintegerобязательный

    Query ID to run

  • limitinteger | string

    Maximum number of rows to return (default: query default, use 'ALL' for unlimited)

  • paramsobject

    Query parameters as key-value pairs

discourse_searchтолько чтениеидемпотентныйвнешний мир

Ищет содержимое сайта. Возвращает JSON-объект с массивом results из подходящих тем (id, slug, title) и объектом meta (total, has_more).

Discourse Search

Параметры
  • max_resultsinteger
  • querystringобязательный

    Search query

discourse_search_postsтолько чтениеидемпотентныйвнешний мир

Выполняет поиск доказательств на уровне постов с использованием синтаксиса запросов Discourse. В отличие от discourse_search, сохраняет найденные посты, выделенные фрагменты, авторов, темы, категории и правдивое ограниченное продолжение. Это поиск по ключевым словам, а не семантический поиск Discourse AI.

Ищет публикации.

Параметры
  • pageinteger
  • querystringобязательный
discourse_select_site

Проверяет и выбирает сайт Discourse. Возвращает JSON с URL и названием сайта.

Выбрать сайт

Параметры
  • sitestringобязательный

    Base URL of the Discourse site

Похожие MCP-сервера

saseq/discord-mcp

saseq/discord-mcp

MCP-сервер для Discord API, интегрирующий ботов с ИИ-ассистентами. Даёт AI полный контроль над сервером: управление каналами, сообщениями и модерацией. Идеален для автоматизации Discord-сообществ.

Java482
iprashantraj/mcp-discord-bridge

iprashantraj/mcp-discord-bridge

MCP-сервер для управления Discord-сервером через AI: 44 инструмента для каналов, сообщений, ролей, модерации и вебхуков. Подходит для автоматизации модерации и администрирования с любым MCP-клиентом.

TypeScript3
jaipandya/producthunt-mcp-server

jaipandya/producthunt-mcp-server

MCP-сервер для интеграции Product Hunt с AI-агентами. Получайте посты, коллекции, отзывы и данные пользователей через Model Context Protocol. Полезен разработчикам и энтузиастам, работающим с LLM и...

Python53
gwbischof/bluesky-social-mcp

gwbischof/bluesky-social-mcp

MCP сервер для Bluesky на atproto. Выполняет все базовые действия: управление профилем, лентой и постами (текст/медиа), а также лайки, репосты и подписки. Подходит для автоматизации и разработки ботов.

Python16
peturgeorgievv-factory/postfast-mcp

peturgeorgievv-factory/postfast-mcp

MCP-сервер для API PostFast: планируйте и публикуйте посты в соцсетях, загружайте медиа, смотрите аналитику. Работает с AI-ассистентами — полезно маркетологам и SMM-специалистам для автоматизации.

TypeScript5
chigwell/telegram-mcp

chigwell/telegram-mcp

Интеграция Telegram с MCP-клиентами через 80+ инструментов: от отправки сообщений до управления группами и файлами. Подходит для автоматизации, анализа чатов и работы с несколькими аккаунтами.

Python1583
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин