mcp-discord-forum
Allows creating, replying to, and managing forum posts in Discord forum channels.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-discord-forumcreate a forum post in #general about new feature request"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-discord-forum
MCP server for posting and managing topics in Discord forum channels.
Usage
Add to your MCP client config (e.g. ~/.kiro/settings/mcp.json):
{
"mcpServers": {
"discord-forum": {
"command": "npx",
"args": ["-y", "mcp-discord-forum"],
"env": {
"DISCORD_BOT_TOKEN": "your-bot-token-here"
},
"disabled": false,
"autoApprove": [
"create_forum_post",
"reply_to_forum_post",
"list_forum_posts",
"get_forum_post_messages",
"list_forum_tags"
]
}
}
}Related MCP server: Discord MCP Server
Tools
Tool | Description |
| Create a new post (thread) in a forum channel |
| Reply to an existing forum post |
| List active posts in a forum channel |
| Get messages from a forum post |
| List available tags in a forum channel |
Setup — Creating the Discord Bot
Create the application:
Click New Application, give it a name and confirm
In the sidebar, click Bot
Click Reset Token → copy the generated token (use it as
DISCORD_BOT_TOKEN)
Enable intents:
5. On the same Bot page, scroll to Privileged Gateway Intents
6. Enable Message Content Intent
7. Save changes
Invite the bot to your server:
8. In the sidebar, click OAuth2 → URL Generator
9. Under Scopes, check: bot
10. Under Bot Permissions, check:
- View Channels
- Send Messages
- Send Messages in Threads
- Create Public Threads
- Read Message History
11. Copy the generated URL at the bottom, open it in the browser and select your server
Grant access to the forum channel:
12. In Discord, right-click the forum channel → Edit Channel → Permissions
13. Add the bot and make sure the permissions above are allowed
Finding Channel IDs
Enable Developer Mode in Discord (Settings → Advanced → Developer Mode), then right-click any channel and select Copy Channel ID.
Available Tools
6 toolscreate_forum_postB
Create a new post (thread) in a Discord forum channel
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | List of tag IDs to apply to the post | |
| title | Yes | Title of the forum post | |
| content | Yes | Content/body of the first message in the post | |
| channel_id | Yes | ID of the forum channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure, but only provides basic purpose. It omits details like required permissions, rate limits, or content formatting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no unnecessary words. However, it could be slightly expanded to include usage context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description leaves gaps in behavioral and usage guidance. While parameter semantics are covered, the overall context for an agent to correctly invoke the tool is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and schema descriptions adequately explain each parameter. The description adds no additional information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', resource 'post (thread)', and context 'in a Discord forum channel'. It distinguishes from siblings like edit_forum_post and reply_to_forum_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The description implies use for creating new threads versus replying or editing, but lacks exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_forum_postB
Edit the title of an existing forum post (thread)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | New title for the forum post | |
| thread_id | Yes | ID of the forum post thread to edit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It only states the action without disclosing behavioral traits like permissions, reversibility, or effects on other fields (e.g., does editing title reset timestamps?).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no fluff. Essential information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters and no output schema, the description is minimal but adequate for basic understanding. However, it lacks usage guidelines and behavioral details, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters. The description adds no extra meaning beyond what the schema's 'description' fields provide (e.g., 'New title' is same as schema). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Edit' and the specific resource 'title of an existing forum post (thread)', distinguishing it from sibling tools like create_forum_post (creation) and reply_to_forum_post (adding a message).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when to edit title vs. reply to change content). No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forum_post_messagesC
Get messages from a forum post thread
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of messages to fetch (max 100) | |
| thread_id | Yes | ID of the forum post thread |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It only says 'Get messages', implying read-only but no details on auth, rate limits, error behavior, or what happens if thread_id is invalid. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very short (one sentence) and front-loaded. However, it lacks critical details, making it under-specified rather than concise. It earns its place but is insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations. Tool returns a list of messages, but description doesn't mention sorting, pagination behavior, or response structure. Incomplete for a retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the schema already documents them. The description does not add any additional meaning or context beyond what is in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Get' and resource 'messages from a forum post thread', making the tool's purpose obvious. It distinguishes from sibling tools like list_forum_posts (which lists threads) and reply_to_forum_post (which adds). However, it could be more specific about scope (e.g., pagination).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For example, when to use get_forum_post_messages vs list_forum_posts is implied by name but not explicitly stated. No when-not or context clues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_forum_postsA
List active threads (posts) in a Discord forum channel
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the forum channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only mentions 'active threads', not other behavioral traits like read-only nature, authentication, rate limits, or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter list tool, it conveys core purpose but lacks details on pagination, output structure, or what 'active' means, leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter fully, and the description adds no extra meaning beyond what the schema's property description already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('active threads (posts) in a Discord forum channel'), distinguishing it from sibling tools that focus on creation, editing, or retrieving messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'get_forum_post_messages' or 'list_forum_tags', but the sibling names make the distinction fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_forum_tagsB
List available tags in a Discord forum channel
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the forum channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies read-only but lacks details on behavior like rate limits, scope of tags, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, very concise and front-loaded. Appropriate for a simple list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with one parameter and no output schema, description is adequate but lacks details on return format or any constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter channel_id with schema description 'ID of the forum channel'. Description adds no further meaning beyond schema, which has 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'list', resource 'tags', and context 'Discord forum channel'. Distinguishes from sibling tools like create_forum_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not mention prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_forum_postA
Send a message (reply) to an existing forum post thread
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Message content | |
| thread_id | Yes | ID of the forum post thread to reply to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it sends a reply, implying a write operation, but does not mention any side effects, authorization requirements, rate limits, or error conditions. More transparency is needed for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and target. Every word is necessary, and there is no redundancy or fluff. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description is minimally complete. However, it lacks mention of what the tool returns upon success (e.g., confirmation or message object). Given the context, adding a brief note about the result would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with basic descriptions for both parameters. The tool description itself adds no additional meaning beyond the schema. While the schema is adequate, the description could elaborate on allowed formats or constraints for 'content' or 'thread_id'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a message (reply)') and the resource ('existing forum post thread'). It effectively distinguishes from siblings like 'create_forum_post' (new thread) and 'edit_forum_post' (editing existing), so the agent knows exactly what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have an existing thread to reply to, but it does not explicitly state when to use this tool versus alternatives. Given sibling tools like 'get_forum_post_messages' and 'list_forum_posts', explicit guidance on when to reply versus read would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.0.2- First observed
create_forum_post - First observed
edit_forum_post - First observed
get_forum_post_messages - First observed
list_forum_posts - First observed
list_forum_tags - First observed
reply_to_forum_post
TDQS
Scored across 6 tools
Each tool has a distinct purpose: creating, editing, listing, replying, fetching messages, and listing tags. No overlap or ambiguity.
All tools follow a consistent verb_noun pattern using snake_case, such as create_forum_post, list_forum_posts, etc. No deviations.
Six tools cover the essential operations for a Discord forum server. The count is well-scoped and not excessive or insufficient.
The set covers creation, reading, listing, replying, and tag management. Missing operations like deletion or archiving are minor omissions for a basic forum tool.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Control your Discord community: send/read messages, manage channels and forums, and handle webhook…
Browse and manage Reddit posts, comments, and threads. Fetch user activity, explore hot/new/rising…
Manage feature requests, votes, roadmaps, and changelogs from any MCP client.
Official TimeToPost MCP server for social post drafting, scheduling, publishing and approval queues.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with Discord servers through a bot, supporting channel management, messaging, forum operations, reactions, and webhooks.22593MIT
- AlicenseBqualityFmaintenanceEnables interaction with Discord channels through a bot, allowing users to send messages and files, retrieve messages with advanced filtering, and download attachments of any type.594MIT
- AlicenseNot gradedqualityCmaintenanceEnables reading and acting on Discord through your own running desktop client, including messages, direct messages, group chats, threads, forum posts, search, and write operations like sending, editing, reacting, and managing threads.107MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with Discord through the REST API, supporting message reading and sending, channel and guild management, threads, pins, and reactions.17MIT