KosmoKrator

communication

Discourse MCP Integration for LangGraph

Connect Discourse to LangGraph through the local KosmoKrator MCP gateway with scoped tools, credentials, and write policy.

8 functions 5 read 3 write API key auth

Connect Discourse to LangGraph

Run KosmoKrator integration calls from LangGraph nodes while preserving local credentials and permissions.

Use a graph node that calls the KosmoKrator CLI for deterministic steps or an MCP client for dynamic tool selection. The gateway is local, scoped to this integration, and starts with --write=deny so LangGraph can inspect read-capable tools without receiving write access by default.

Discourse MCP Config for LangGraph

Headless CLI calls fit repeatable graph edges; MCP fits exploratory agent nodes.

{
  "mcpServers": {
    "kosmokrator-discourse": {
      "type": "stdio",
      "command": "kosmo",
      "args": [
        "mcp:serve",
        "--integration=discourse",
        "--write=deny"
      ]
    }
  }
}

Run the Gateway Manually

kosmokrator mcp:serve --integration=discourse --write=deny

Why Use KosmoKrator Here

Scoped tools

Expose only Discourse instead of a broad multi-service tool list.

Local credentials

Reuse credentials already configured for the KosmoKrator CLI and Lua runtime.

Write policy

Start read-only, then opt into ask or allow for trusted workspaces.

Discourse Tools Visible to LangGraph

LangGraph sees stable MCP tool names generated from the Discourse integration catalog.

MCP toolSource functionTypeDescription
integration__discourse__discourse_list_topics discourse.discourse_list_topics Read List the latest topics from the Discourse forum. Returns topic titles, categories, and activity metadata.
integration__discourse__discourse_get_topic discourse.discourse_get_topic Read Get a single Discourse topic by ID, including its posts, author, and metadata.
integration__discourse__discourse_create_topic discourse.discourse_create_topic Write Create a new topic in a Discourse category. Requires a title, body content (Markdown), and category ID.
integration__discourse__discourse_update_topic discourse.discourse_update_topic Write Update an existing Discourse topic's title or move it to a different category.
integration__discourse__discourse_list_categories discourse.discourse_list_categories Read List all categories on the Discourse forum. Returns category names, IDs, descriptions, and parent relationships.
integration__discourse__discourse_get_category discourse.discourse_get_category Read Get a single Discourse category by ID, including its recent topics and metadata.
integration__discourse__discourse_create_post discourse.discourse_create_post Write Reply to an existing Discourse topic with a new post. Provide the topic ID and body content in Markdown.
integration__discourse__discourse_get_current_user discourse.discourse_get_current_user Read Get the currently authenticated Discourse user profile. Useful for verifying API credentials and identifying the user context.

Related Discourse Pages