discourse-mcp/CHANGELOG.md
2026-01-29 16:08:20 +08:00

9 KiB

Changelog

0.2.5 (2026-01-29)

Bug Fixes

  • Expand ~ in --profile paths before reading file

0.2.4 (2026-01-20)

Features

  • Add discourse_list_users tool to query and filter users (requires admin API key)
  • Add discourse_update_user tool to update user profiles with avatar support
  • Add discourse_upload_file tool to upload images via base64, URL, or local file
  • Add discourse_update_topic tool to update existing topics
    • Update title, category, tags, and featured_link via PUT /t/-/:topic_id.json
    • Conflict detection via optional original_title and original_tags parameters
  • Enhance discourse_create_user to accept upload_id for avatar setting
    • Note: active and approved default to true (Discourse defaults both to false)
    • This means users created via this tool are immediately usable without manual activation/approval

Maintenance

  • Add ESLint configuration with typescript-eslint
    • New npm run lint script
    • Fix existing lint issues across codebase
  • Add HTTP client PUT method and multipart form data support
  • Improve TypeScript types: add ToolRegistrar and ResourceRegistrar narrowed interfaces

Bug Fixes

  • Remove unused with_private parameter from discourse_search schema
  • Return consistent JSON error format for input validation failures
    • Validation errors now return {error: "Validation failed", issues: [{path, message}]}
    • Previously threw unstructured errors that bypassed the standard error format
  • Support --flag=value syntax in generate-user-api-key subcommand
    • Fixes handling of values that start with -- (e.g., encrypted payloads)

0.2.3 (2026-01-14)

Bug Fixes

  • Fix tags resource to include tag names alongside id and count

    • discourse://site/tags now returns {id, name, count} instead of just {id, count}
    • Tag name is the string used in filters (e.g., tag:mcp-test)
  • Fix discourse_list_user_posts to always include id field

    • id is now always present (may be null for first posts/topic creation where post_number: 1)
    • Use topic_id + post_number to reference posts when id is null
  • Fix discourse_filter_topics to respect per_page limit

    • Results are now properly sliced to the requested per_page value
    • has_more correctly indicates when more results are available

Documentation

  • Fix tool descriptions to accurately describe return types:

    • discourse_filter_topics: "Returns JSON array" → "Returns JSON object with results array"
    • discourse_get_chat_messages: "Returns JSON array" → "Returns JSON object with channel_id, messages array, and meta"
    • discourse_get_user: Added missing admin, moderator fields to description
    • discourse_list_user_posts: Clarified return structure with posts array and meta
  • Update README.md to reflect correct output formats for tags and chat messages

0.2.2 (2026-01-14)

Features

  • Add HTTP Basic Auth support for sites behind reverse proxies
    • New http_basic_user and http_basic_pass fields in auth_pairs configuration
    • Sends Authorization: Basic header alongside Discourse API authentication headers

0.2.1 (2026-01-13)

Breaking Changes

  • All tool outputs now return strict JSON instead of Markdown
  • List tools converted to MCP Resources (URI-addressable endpoints):
    • discourse_list_categoriesdiscourse://site/categories
    • discourse_list_tagsdiscourse://site/tags
    • discourse_list_chat_channelsdiscourse://chat/channels
    • discourse_list_user_chat_channelsdiscourse://user/chat-channels
    • discourse_list_draftsdiscourse://user/drafts

Features

  • Add MCP Resources for static/semi-static data (categories, tags, groups, chat channels, drafts)
  • Add discourse://site/groups resource with visibility and membership settings
  • Add lean JSON response format optimized for token efficiency
  • Centralize rate limiting and JSON response builders (DRY refactor)

0.1.17 (2026-01-12)

  • Publish server to MCP registry

0.1.16 (2025-12-30)

Features

  • ability to create post as another user by overriding Api-Username header

Breaking Changes

  • remove author_user_id param from discourse_create_post tool
  • remove author_user_id param from discourse_create_topic tool

0.1.15 (2025-12-26)

Features

  • add support for emoji and icon params in discourse_create_category tool
  • add support for author_username and author_user_id params in discourse_create_post tool
  • add support for author_username and author_user_id params in discourse_create_topic tool

0.1.14 (2025-12-19)

Features

  • change github link in the User Agent string

0.1.13 (2025-12-03)

Features

  • add discourse_list_drafts tool to list all drafts for the current user
  • add discourse_get_draft tool to retrieve a specific draft by key
  • add discourse_save_draft tool to create or update drafts (requires writes enabled)
  • add discourse_delete_draft tool to delete drafts (requires writes enabled)
  • draft tools support new_topic, topic reply, and private message draft types
  • include sequence number tracking for optimistic locking on draft updates

0.1.12 (2025-12-03)

Features

  • add discourse_list_chat_channels tool to list all public chat channels with filtering and pagination
  • add discourse_list_user_chat_channels tool to list user's chat channels with unread tracking
  • add discourse_get_chat_messages tool with flexible pagination and date-based filtering
  • support directional pagination (past/future) and querying around specific dates or messages
  • include smart pagination hints that guide users on how to navigate message history

0.1.11 (2025-12-02)

Breaking Changes

  • update minimum Node.js requirement from 18 to 24
  • required due to RSA_PKCS1_PADDING deprecation in generate-user-api-key functionality
  • users must upgrade to Node.js 24+ to use the User API Key generator

0.1.10 (2025-11-11)

Bug Fixes

  • fix start_post_number parameter in discourse_read_topic - use valid post_number API parameter instead of invalid near parameter
  • fixes bug where start_post_number > 20 would return zero posts due to invalid API parameter being ignored by Discourse

0.1.9 (2025-10-20)

Features

  • add discourse_list_user_posts tool to fetch user posts and replies
  • support pagination with page parameter (30 posts per page)
  • include formatted output with topic titles, dates, excerpts, and URLs

0.1.8 (2025-10-20)

Features

  • add User API Key support and generator
  • implement User-Api-Key and User-Api-Client-Id headers for non-admin authentication
  • add generate-user-api-key command with RSA keypair generation and interactive setup
  • add enhanced HTTP error logging with detailed diagnostics for troubleshooting

Bug Fixes

  • enable logger output to stderr (uncommented process.stderr.write())
  • support kebab-case CLI arguments in mergeConfig (--allow-writes, --read-only, etc.)
  • ensure CLI flags override profile settings regardless of case style (kebab-case or snake_case)

0.1.7 (2025-10-17)

Features

  • add optional HTTP transport support via --transport flag
  • implement Streamable HTTP transport (stateless mode) as alternative to stdio
  • add --port flag for configuring HTTP server port (default: 3000)
  • include health check endpoint at /health for HTTP mode

0.1.6 (2025-10-16)

Bug Fixes

  • fix broken 0.1.5 release

0.1.5 (2025-10-16)

Bug Fixes

  • correct filter_topics pagination to be 0-based (2f0eb17)

0.1.4 (2025-09-02)

0.1.3 (2025-08-20)

0.1.2 (2025-08-20)

0.1.1 (2025-08-20)