Discord
Server Details
Connect a Discord bot (bot token from the developer portal) to read/send messages, list guilds and c
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mcp-dir/discord-mcp
- GitHub Stars
- 0
Available Tools
21 toolsauthenticateAIdempotentInspect
MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header Authorization: Bearer <token> for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "" } after the user pastes, or with no args to get the link.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include idempotentHint=true and readOnlyHint=false, but the description adds context: the tool initiates browser login, returns a link, and accepts a token for session or permanent access. It does not contradict annotations. It could mention that calling with no args may open a browser or return a link, but it already says 'get the link'. No annotation contradiction.
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 moderately sized, but it is slightly verbose with the IDE agent framing and multiple clauses. It front-loads the key action and provides necessary details. Could be tightened but is acceptable.
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 tool's simplicity (one optional param, no output schema, no nested objects), the description is complete enough. It explains both the no-arg and token modes, and the permanent vs. session option. It lacks details on what the response looks like, but output schema absence makes that less critical.
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 has one optional parameter 'token' with no description. The description explains its purpose: 'paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes'. This adds meaning beyond the schema, providing type and usage context.
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 that this tool is for authentication: it provides a login link or accepts a token. It distinguishes itself from siblings (connect, marketplace, etc.) by focusing on the auth flow for IDE agents. However, it could be more explicit that this is the authentication entry point vs. other connection tools.
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 gives explicit usage scenarios: best practice is to add the token as a header in config for permanent access, or paste it here for session-only login. It also explains the two modes: call with token or no args to get a link. This provides clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connectARead-onlyIdempotentInspect
Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, read-only operation. The description adds behavior about the two specific response states (authenticated vs connect_url) and mentions 'per-install URLs', which adds useful context beyond the annotations. However, it doesn't disclose potential side effects (though none likely) or authorization requirements.
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 two sentences, concise and front-loaded. It directly states the main outcome (returns connection status and URLs) and then explains the two scenarios. No wasted words, though the second sentence could be slightly clearer, but overall well-structured.
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 tool has no parameters, no output schema, and simple annotations, the description is fairly complete. It covers the main output states and mentions the presence of URLs. However, it doesn't specify the exact structure of the response (e.g., fields beyond authenticated and pending), which might be useful but not strictly necessary. Since the tool is simple, the description is adequate.
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?
The tool has zero parameters, and the schema description coverage is 100% (empty properties). The description adds value by explaining the meaning of the tool's output states and URLs, but since there are no parameters, parameter semantics are not directly applicable. Still, the description helps the agent understand what the tool will do without any inputs.
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 tool's purpose: it returns connection status and URLs. It also explains the two states: all providers connected vs missing credentials. The name 'connect' is somewhat vague, but the description clarifies it as a status check. While it doesn't explicitly differentiate from 'authenticate', the nature of the response (status vs initiating auth) is implied.
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 the tool checks connection status but doesn't explicitly state when to use it versus 'authenticate' or other tools. It does not mention when not to use it or provide alternative tool references. Given the sibling 'authenticate', the guidance is minimal but understandable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_add_reactionAInspect
Add a reaction to a message. emoji is either unicode (e.g. 👍) or name:id for custom guild emoji.
Bulk support: accepts channel_ids, message_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | ||
| account | No | ||
| channel_id | Yes | ||
| message_id | Yes | ||
| channel_ids | No | ||
| message_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful context beyond annotations by explaining emoji encoding (unicode vs name:id) and bulk execution support. However, it does not disclose behavior such as permission requirements, what happens on duplicate reactions, error handling, or whether bulk mode replaces or supplements the singular parameters. With all annotation hints false, more behavioral detail would be expected.
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 two sentences with no fluff. The main action is front-loaded, and the bulk support note is clearly separated. Every piece of text adds value, and the structure is easy to scan.
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 tool with 6 parameters, no output schema, and no enums, the description provides the core action and emoji format but leaves significant ambiguity around bulk execution semantics (e.g., how channel_ids/message_ids pair up, whether they are mutually exclusive with singular IDs) and account selection. It is minimally viable but not thorough for complex or bulk usage.
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 0%, so the description must compensate. It meaningfully explains the emoji parameter (unicode or name:id) and hints at the purpose of channel_ids/message_ids for bulk execution. Yet the remaining parameters (account, channel_id, message_id, and the relationship between singular and plural forms) are left entirely to the schema's bare names.
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 starts with 'Add a reaction to a message', a specific verb+resource combination that clearly distinguishes it from sibling message tools like discord_send_message, discord_delete_message, and discord_edit_message. It additionally explains emoji format, reinforcing the tool's specific behavior.
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?
Usage is implied by the action ('add a reaction'), but the description does not explicitly compare to alternatives or state when not to use this tool. The bulk support sentence gives some context for batched execution, but there is no exclusion or alternative guidance despite relevant sibling tools being present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_messageADestructiveInspect
Delete a message. Irreversible. Bot needs Manage Messages to delete messages authored by other users.
Bulk support: accepts channel_ids, message_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| channel_id | Yes | ||
| message_id | Yes | ||
| channel_ids | No | ||
| message_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint, readOnlyHint=false), the description explicitly states 'Irreversible' and adds the permission prerequisite for deleting others' messages. It also discloses the batch execution capability. These are valuable behavioral details not present in annotations, though rate limits or error handling are not mentioned.
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 extremely concise—two short paragraphs—with the core purpose first, followed by key caveats and bulk support. Every sentence contributes meaningful information without redundancy.
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 deletion tool with destructive implications and bulk support, the description covers the essential aspects: the operation, irreversibility, permission requirements, and batch capability. It omits details like error behavior or rate limits, but these are not critical for invocation. Given no output schema, the description is reasonably complete.
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 0%, so the description must compensate. It does explain the bulk parameters (channel_ids, message_ids) and implies the single-item counterparts, but it does not clarify the 'account' parameter or how the single vs. bulk modes interact. Some parameter meaning is added, but partial coverage remains.
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 'Delete' and the resource 'message', and distinguishes from sibling tools like discord_edit_message and discord_send_message by specifying deletion. The mention of bulk support adds specific scope, making the purpose unambiguous.
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 provides clear usage context: it states the permission requirement for deleting other users' messages (Manage Messages) and notes bulk support. It does not explicitly contrast with alternatives, but given the distinct operation, it is sufficient for an agent to know when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_messageAInspect
Edit a previously-sent message (must be authored by this bot).
Bulk support: accepts channel_ids, message_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| embeds | No | ||
| account | No | ||
| content | No | ||
| channel_id | Yes | ||
| message_id | Yes | ||
| channel_ids | No | ||
| message_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark readOnlyHint=false and destructiveHint=false, so mutation is implied. The description adds a crucial ownership requirement (bot-authored) and reveals bulk support via channel_ids/message_ids, which are not in annotations. It doesn't mention rate limits or partial failure semantics, but gives meaningful extra context beyond the structured fields.
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 two sentences, front-loaded with the primary purpose, then a concise note on bulk execution. Every word earns its place; no redundancy or filler.
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 7 parameters, no output schema, and sparse annotations, the description covers the essential purpose, ownership constraint, and bulk capability. However, it omits details on how content/embeds are applied (replace vs. append), error conditions, bulk failure behavior, and any auth/rate-limit notes. For a moderate-complexity tool, this is adequate but not fully complete.
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 0% across 7 parameters. The description mentions bulk arrays (channel_ids, message_ids) but fails to explain the primary content fields (content, embeds) which are core to an edit operation. With zero schema descriptions, the description should compensate by detailing parameter roles; it only partial addresses bulk parameters, leaving the main parameters ambiguous.
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 states 'Edit a previously-sent message' with a specific verb and resource, and includes a critical constraint ('must be authored by this bot'). This clearly distinguishes it from siblings like discord_send_message (create) and discord_delete_message (delete), making the purpose unmistakable.
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 provides a usage constraint (only bot-authored messages) but does not explicitly discuss alternatives or when not to use this tool. It implies modifying an existing message but lacks explicit exclusions like 'instead of resending use this' or 'if you want a new message, use discord_send_message'. The constraint adds some guidance but not full comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_channelARead-onlyIdempotentInspect
Get a channel's metadata (type, name, topic, parent, permissions).
Bulk support: accepts channel_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| channel_id | Yes | ||
| channel_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral context by disclosing bulk execution via channel_ids and specifying the metadata fields returned, without contradicting the annotations.
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?
Two short sentences, front-loaded with the core action and followed by a useful bulk-support note. No filler or redundant repetition of the tool name.
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 read tool with no output schema, it names the returned metadata fields and batch capability. However, it omits account parameter semantics, batch size/behavior, and error/not-found handling, leaving some practical 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 description coverage is 0%, so the description must compensate. It explains channel_ids as batch support, but leaves the account parameter unexplained and does not clarify whether channel_ids replaces or supplements the required channel_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?
Description uses a specific verb ('Get') with a clear resource ('a channel's metadata') and enumerates the exact fields returned (type, name, topic, parent, permissions). This clearly distinguishes it from sibling tools like discord_get_message or discord_list_channels.
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 bulk support note gives useful context for batched execution, but the description does not explicitly state when to use this tool versus alternatives like discord_list_channels, nor does it mention account selection or exclusions. Usage is implied rather than directly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_guildBRead-onlyIdempotentInspect
Get one guild's metadata. Falls back to the connection's default guild_id.
Bulk support: accepts guild_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| guild_id | No | ||
| guild_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the fallback behavior and bulk support, which is useful. However, it does not elaborate on what 'metadata' includes or any rate limits, but with annotations covering safety, this is acceptable.
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 extremely concise, with two sentences that are front-loaded with the primary purpose and then add two critical behavioral details (fallback and bulk support). No fluff, every word earns its place.
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?
The tool is relatively simple (read operation, no output schema), but it has 3 parameters and no schema descriptions. The description covers the fallback and bulk mode but does not explain the account parameter or return format. Given the simplicity, it is adequate but leaves gaps in parameter understanding.
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 0%, and there are 3 parameters with no descriptions in the schema. The description only mentions guild_ids for bulk support and implies guild_id for single, but does not explain account. With no schema details, the description should compensate but fails to define any parameter semantics beyond the bulk mention.
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 states the tool retrieves metadata for a single guild, which is a specific verb + resource. It differentiates from siblings by focusing on a single guild, unlike list_guilds. However, it doesn't fully clarify the difference from other get_* tools, though the resource is clear.
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 it is used when you need a single guild's metadata, and mentions fallback to default guild_id if not specified. It does not explicitly state when to use this over discord_get_guild_members or discord_list_guilds, but the single-guild focus is clear. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_meARead-onlyIdempotentInspect
Return the bot's own user profile (id, username, discriminator, avatar, etc).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds value by listing specific returned fields (id, username, discriminator, avatar, etc.), giving the agent a clear idea of the response shape. No contradictions.
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?
A single sentence that is direct and information-dense. It includes the verb, resource, and examples of fields, with no filler. Perfectly concise.
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 read-only getter with no output schema, the description is mostly sufficient, but it omits any explanation of the 'account' parameter and any potential prerequisites (e.g., bot authentication). Given the tool's simplicity and the annotations covering safety, a score of 3 is appropriate.
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?
The schema has one optional parameter 'account' (string) with no description. Schema description coverage is 0%, and the description does not mention this parameter at all. The agent has no guidance on what 'account' refers to, whether it's required for multi-bot setups, or its format. This is a significant gap.
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 tool returns the bot's own user profile with specific fields (id, username, discriminator, avatar). It distinguishes from sibling tools like discord_get_user, which would fetch other users' profiles.
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 when to use it (when you need the bot's own profile) and implicitly differentiates from discord_get_user, but it does not explicitly state 'use this instead of discord_get_user' or list exclusions. Context is sufficient for a simple getter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_messageARead-onlyIdempotentInspect
Fetch a single message by id.
Bulk support: accepts channel_ids, message_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| channel_id | Yes | ||
| message_id | Yes | ||
| channel_ids | No | ||
| message_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive. The description adds behavioral context about bulk support and the requirement for IDs, which goes beyond the annotations. No contradiction observed.
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?
Two punchy sentences, front-loaded with the primary action, followed by the bulk extension. No filler or redundancy.
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?
Covers the primary function and bulk option, but lacks details on return format (especially for bulk), error handling, or account selection. With no output schema, the description still leaves some ambiguity for a complete picture.
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 0%, so the description must carry the burden. It explains the purpose of channel_ids and message_ids via 'bulk support', but leaves 'account' and the exact relationship between the arrays unclear. The required single-ID params are obvious from the name.
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?
Clearly states it fetches a single message by ID, with an explicit verb and resource. The bulk support line further distinguishes it from list/delete/edit operations, solidifying its purpose.
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?
Provides a clear context: use this to fetch a specific message by ID, with an optional batched mode. It does not explicitly contrast with sibling tools like discord_list_messages, but the core use case is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_userARead-onlyIdempotentInspect
Public profile of any Discord user by id.
Bulk support: accepts user_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| user_id | Yes | ||
| user_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds value by specifying 'public profile' (which implies no private data) and 'bulk support' (batched execution). This goes beyond the annotations, though it doesn't disclose error handling or authentication requirements.
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?
Two sentences, front-loaded with the core purpose, and the second sentence immediately adds the bulk-support detail. No redundancy or filler.
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 read-only tool, the description is serviceable but not fully complete. It lacks details on how user_id and user_ids interact, and since there is no output schema, it doesn't describe the return format (e.g., single object vs. array). The 'account' parameter is unaddressed.
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 has no parameter descriptions, and schema coverage is 0%. The description explains 'user_id' as the ID and 'user_ids' for batch, but it doesn't mention the 'account' parameter at all. This partial compensation still leaves ambiguity about the account parameter and the relationship between user_id and user_ids.
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 'Public profile of any Discord user by id,' using a specific verb (get/public profile) and resource (Discord user). It distinguishes itself from sibling tools like discord_get_guild or discord_get_channel by focusing on users, and even differentiates from discord_get_me via 'any' user.
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?
It provides clear context: use when you need a public profile of a user by ID, with bulk option. However, it doesn't explicitly mention alternatives or exclusions (e.g., 'for the current user use discord_get_me'), but the phrase 'any Discord user' conveys the scope well enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_accountsARead-onlyIdempotentInspect
List Discord bot connections linked to this install — id, label, default guild_id.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint true and destructiveHint false, and the description is consistent with them. It adds useful context by specifying the returned fields and the 'linked to this install' scope, though it does not discuss optional filtering or auth requirements.
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 front-loaded sentence with verb, object, and output summary. No filler or redundant restatement of the tool name.
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?
The tool is simple and the description covers purpose and output fields, but with no output schema and no parameter documentation, the missing semantics for 'account' leaves an important gap. Adequate for a basic list tool but not fully complete.
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 0% and the single optional 'account' parameter is not explained anywhere in the description. The description mentions output fields but provides no meaning for the only input parameter.
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 uses specific verb 'List' with a clear resource ('Discord bot connections linked to this install') and enumerates returned fields (id, label, default guild_id). It is immediately distinguishable from sibling list tools such as discord_list_channels and discord_list_guilds.
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 scope 'linked to this install' provides clear context for when this account-listing tool applies, and the resource name separates it from other list tools. It does not explicitly name alternatives or exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_channelsARead-onlyIdempotentInspect
List channels in a guild. Falls back to the connection's default guild_id.
Bulk support: accepts guild_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | ||
| guild_id | No | ||
| guild_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is well covered. The description adds useful context about fallback behavior and bulk support, which goes beyond annotations. However, it doesn't describe return format or pagination, so the added value is moderate, scoring 3.
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 short and front-loaded with the main purpose, then adds necessary detail about fallback and bulk support. Every sentence earns its place, with no redundancy. It could be slightly more structured for readability, but it's efficient and concise, so a 4.
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 tool has only 3 parameters, no required fields, no output schema, and simple list operation, the description provides adequate context for basic usage: how to invoke with default or specific guild, and bulk option. However, it lacks details about return structure (list of channels) and potential error handling due to no output schema, so not fully complete, scoring 3.
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 0%, so the description must compensate for parameter meaning. The description mentions the purpose of guild_id (optional, falls back to default) and guild_ids (bulk support), but does not explain account parameter at all. It adds some value but not complete, so a 3.
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 tool lists channels in a guild and mentions fallback to default guild_id, which distinguishes it from other list tools like discord_list_guilds or discord_list_messages. It is specific about the resource (channels) and the scope (guild), earning a 4; however, it doesn't explicitly contrast with sibling tools, so not a 5.
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 indicates that when guild_id is not provided, it uses the default guild from the connection, providing clear usage context. It also mentions bulk support with guild_ids, which signals when to use this tool for batched operations. No explicit when-not-to-use or alternatives, but enough guidance to use correctly, so a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_guild_membersARead-onlyIdempotentInspect
List members of a guild. Requires the bot to have the Server Members intent enabled in the developer portal — may return 403 otherwise.
Bulk support: accepts guild_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| limit | No | ||
| account | No | ||
| guild_id | No | ||
| guild_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is known. The description adds that a 403 may occur without the intent and that bulk execution is supported. This is valuable behavioral context beyond the annotations, though pagination behavior is not mentioned.
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?
Two sentences, front-loaded with purpose and requirement, then bulk support. No filler or redundant phrasing. Efficient and well-structured.
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?
With 5 parameters, 0% schema coverage, and no output schema, the description is incomplete. It lacks pagination guidance, response format expectations, and parameter semantics for after/limit/account/guild_id. While it covers prerequisites and bulk, it is not enough for confident tool invocation.
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 0%, so the description must compensate. It only explains guild_ids for batch execution. Parameters like after (pagination cursor), limit (likely max count), account (which account), and guild_id (single guild) are not explained. This leaves the agent guessing how to construct calls correctly.
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 'List members of a guild' with a specific verb and resource. It distinguishes from sibling tools like discord_list_guilds and discord_get_guild by focusing on members. The prerequisite about Server Members intent adds context without obscuring the core purpose.
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 provides a clear prerequisite (Server Members intent) and notes the potential 403 error. The mention of bulk support via guild_ids gives a usage pattern. It does not explicitly contrast with alternatives, but none exist among siblings for listing members, so this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_guildsBRead-onlyIdempotentInspect
List the servers (guilds) the bot is a member of.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| limit | No | ||
| before | No | ||
| account | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a read-only, idempotent, non-destructive operation. The description adds the key scope constraint 'the bot is a member of', which is useful. However, it does not mention pagination, ordering, or any other behavioral details beyond what annotations cover.
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?
A single sentence that is direct and free of fluff. It names the resource and scope efficiently.
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?
The tool has four undocumented parameters, no output schema, and the description only covers the basic purpose. It fails to provide adequate context for selecting or using the tool, especially regarding parameter semantics and expected return values.
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 0% and the description provides no explanation for any of the four parameters (after, limit, before, account). The tool's behavior is not enough to infer their meaning. This is a significant gap.
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?
Clearly states the verb 'List' and the resource 'servers (guilds)' with the scope 'the bot is a member of'. This distinguishes it from sibling tools like discord_get_guild, which fetches a specific guild, and discord_list_channels.
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. The description does not mention that this is the way to enumerate all guilds or how it compares to discord_get_guild. Users must infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_messagesARead-onlyIdempotentInspect
Read recent messages from a channel (newest first). Pagination via before / after / around (message ids). Requires Message Content intent for non-bot message bodies in some cases.
Bulk support: accepts channel_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| limit | No | ||
| around | No | ||
| before | No | ||
| account | No | ||
| channel_id | Yes | ||
| channel_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value beyond these by disclosing the Message Content intent requirement (with 'in some cases' caveat), the newest-first ordering, and pagination mechanics. It does not contradict annotations.
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 two sentences, front-loaded with the core purpose in the first sentence. It efficiently packs pagination, ordering, intent requirement, and bulk support with minimal waste, making it an exemplar of concise structure.
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 7 parameters and no output schema, the description covers key behaviors (pagination, bulk, intent) but misses important details: it does not explain how `limit` and `account` work, nor does it clarify the exact return format or how pagination params interact. For a tool with this complexity, more detail 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 0%, so the description must compensate. It explains `before`/`after`/`around` as message IDs for pagination and mentions `channel_ids` for bulk execution. However, it omits `limit` (though default shown) and `account` (likely for multi-account selection), leaving gaps in parameter understanding.
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 'Read recent messages from a channel (newest first)'—a specific verb and resource. It differentiates from siblings like discord_get_message by emphasizing 'recent' and 'newest first', and mentions bulk support via channel_ids, which is distinct from other message tools.
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 provides clear context for when to use the tool (reading recent messages, pagination) and mentions the prerequisite of Message Content intent. However, it does not explicitly contrast with alternatives like discord_get_message, so it lacks an explicit exclusion statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_send_dmAInspect
Open a DM channel with a user and send them a message. The bot and the user must share a guild.
Bulk support: accepts user_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| embeds | No | ||
| account | No | ||
| content | No | ||
| user_id | Yes | ||
| user_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the schema and annotations, the description discloses that the bot/user must share a guild and that user_ids enables batched execution. These are meaningful operational constraints. It does not detail edge cases like duplicate sends, DM-disabled users, or account selection, which keeps it from being a 5.
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 compact, front-loaded with the primary action, and contains no filler. The prerequisite and bulk-support note are both directly relevant; every sentence earns its place.
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 tool with 5 parameters, no parameter docs, and no output schema, this description supplies enough for basic use: what it does, a key prerequisite, and batch mode. However, it omits clarification of account selection, message-only/embed-only behavior, the interaction of user_id and user_ids, and post-send expectations/errors.
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 0%, so the description needed to explain all parameters but only clarifies user_ids as the batch option. The required user_id is inferable from the name and 'DM with a user', but content, embeds, and account receive no semantic explanation, and the relationship between user_id and user_ids is left unclear.
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 tool's action ('Open a DM channel with a user and send them a message') and specifies the target resource (a user DM). It also distinguishes itself from the sibling discord_send_message by emphasizing DM context, and it mentions the important guild-sharing prerequisite.
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 text gives useful usage context: it should be used for direct-message sending, only when the bot and user share a guild, and it supports batch execution via user_ids. It does not explicitly name alternative tools or say 'when not to use this,' so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_send_messageAInspect
Post a message to a channel. Provide content (text up to 2000 chars), embeds (rich JSON), or both. reply_to makes it a reply.
Bulk support: accepts channel_ids for batched execution.
| Name | Required | Description | Default |
|---|---|---|---|
| embeds | No | ||
| account | No | ||
| content | No | ||
| reply_to | No | ||
| channel_id | Yes | ||
| channel_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (all false), the description adds constraints like 2000-char limit, embeds as rich JSON, reply_to, and channel_ids for batch. However, it does not disclose auth requirements, rate limits, or error behavior.
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 two concise sentences, front-loaded with the core action and efficient in communicating both standard and bulk usage without unnecessary detail.
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?
The tool has 6 parameters, no output schema, and minimal annotations. The description covers the main use case and bulk option but leaves the 'account' parameter unexplained and lacks guidance on error handling or failure scenarios. Adequate but with clear 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?
With 0% schema description coverage, the description explains content, embeds, reply_to, and channel_ids, but omits the 'account' parameter entirely. It adds meaning for most params but not all.
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 'Post a message to a channel' with a specific verb and resource, and lists key parameters. It distinguishes from siblings like discord_send_dm by targeting channels, and from edit/delete message tools.
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 for channel messaging and mentions bulk support, but does not explicitly state when to use this instead of alternatives like discord_send_dm, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplaceAInspect
The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/ link that opens without login.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| action | No | search | |
| mcp_id | No | ||
| message | No | ||
| tool_id | No | ||
| arguments | No | {} | |
| immediate | No | ||
| tier_slug | No | ||
| prompt_body | No | ||
| prompt_slug | No | ||
| prompt_tool | No | ||
| prompt_vars | No | {} | |
| conversation | No | [] | |
| prompt_title | No | ||
| request_name | No | ||
| cancel_reason | No | ||
| cancel_comment | No | ||
| prompt_targets | No | ||
| report_context | No | ||
| prompt_category | No | ||
| request_details | No | ||
| prompt_description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the minimal annotations (readOnlyHint=false, etc.) by disclosing edge cases: 'invoke works even when the MCP is NOT installed', returns connect/checkout links for credentials/payment, and explains that install makes MCPs permanent. It also states permission requirements for writes. No contradictions with annotations; instead, it enriches them.
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 dense paragraph of ~700 words. While every sentence adds value, the lack of bullet points or section breaks harms readability. Front-loading is poor; the most useful summary (action flow) is buried mid-paragraph. For a complex tool, length is justified, but structure is lacking.
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 tool's complexity (23 parameters, 14 actions, no output schema), the description is remarkably complete. It covers core flows, credential/payment edge cases, permissions, and even the prompt library sub-feature. It also explains key distinctions like installed_in_toolkit vs installed_in_workspace, which the schema lacks. No significant informational gaps remain.
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?
With 23 parameters and 0% schema description coverage, the description carries the full burden. It indirectly explains many parameters (action, mcp_id, tool_id, arguments, prompt_* fields, cancel_reason, etc.) via the action flow and purpose. However, it does not explicitly define common parameters like limit, query, immediate, or tier_slug, leaving the agent to infer them. It partially compensates but is not exhaustive.
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 tool's role: 'The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them.' It enumerates distinct actions (search, describe, invoke, install, etc.) and explains their roles. This effectively distinguishes it from sibling tools like discord_* and report_bug by positioning it as the universal MCP catalog and execution interface.
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 provides explicit when-to-use guidance: 'prefer invoke for a single/occasional use' over install, names list_tools for current callable tools, and explains request_mcp as the fallback when 'nothing fits.' It also clarifies that search/describe flag installed status and that writes require owner/admin. This is exemplary usage guidance with direct alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_bugAIdempotentInspect
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | ||
| message | Yes | ||
| conversation | No | [] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the tool is a safe, idempotent operation. The description adds the specific behavioral requirement to include the conversation array for reproduction, which is useful. However, it does not describe what happens after submission (e.g., no return value, no confirmation) or any side effects beyond the annotation hints. Given the annotations, this is adequate but not rich.
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 two sentences, front-loaded with the action and purpose, then the key usage instruction. Every sentence adds value with zero fluff, making it concise and well-structured.
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?
The tool has three parameters and no output schema. With 0% schema coverage, the description should explain all parameters, but it only explains the 'conversation' parameter. The meaning of 'message' is obvious from the context, but 'context' is ambiguous (though it has a default empty string). For a feedback tool, the description is mostly complete in explaining the purpose and the important parameter, but it could clarify the intended use of 'context' and what happens after submission. Given the low complexity, this is adequate but could be more thorough.
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 0%, but the description names one parameter ('conversation array') and explains its purpose. It does not explain 'message' (the only required parameter) or 'context' explicitly, though their meanings are evident from names and defaults. The description compensates slightly for the low coverage but does not fully clarify all parameters, so a score of 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?
The description clearly states the tool's purpose: 'Report a bug, missing feature, or send feedback.' It uses a specific verb (report/send) and resource (bug/feature/feedback), and distinctly describes its function, which is unique among siblings (all other tools are Discord or authentication related). Thus it fully distinguishes itself.
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 says to include the conversation array for reproduction, giving one clear usage guidance. However, it does not explicitly state when to use this tool versus alternatives (such as when to send feedback versus using a support channel), and no exclusions or alternative references are provided. The context implies usage but lacks explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_versionARead-onlyIdempotentInspect
Show the current MCP platform and adapter versions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: true, idempotentHint: true, and destructiveHint: false, so the description adds no extra behavioral context beyond the name. It is consistent with annotations but doesn't disclose output format, side effects, or any additional safety-relevant details.
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 sentence with no redundant words or filler. It is perfectly concise and front-loaded, earning a top score.
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 zero-parameter info tool with no output schema, the description adequately conveys what it does. It could mention the return format, but given the low complexity, it is sufficiently complete.
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?
The tool has zero parameters, so the schema already covers all required semantics. The description doesn't need to add parameter details, and the baseline for zero-parameter tools is 4.
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 uses a clear verb 'Show' and a specific object 'current MCP platform and adapter versions', which distinguishes it from the Discord-related siblings. However, it doesn't explicitly differentiate from 'toolkit_info', another potential info tool, so it misses full differentiation.
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 like 'toolkit_info' or when not to use it. The description simply states what it does without any contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toolkit_infoARead-onlyIdempotentInspect
Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotence, and non-destructive behavior, and the description does not contradict those. It adds useful context by specifying exactly what the returned state includes, such as connection status and the accounts connected to each MCP.
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 sentence that is front-loaded with the core purpose and then lists the specific contents of the result. Every phrase adds substantive information with no filler or repetition.
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 zero-parameter, read-only, non-destructive informational tool without an output schema, the description is sufficient and complete. It explains the current scope and the main return categories without requiring detailed pagination or response-format notes.
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?
The tool has zero parameters, so there is no parameter burden for the description to carry. The description fully clarifies what the no-argument call will return.
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 opens with the specific verb 'Returns' and names the exact resource as the current toolkit state. It enumerates concrete contents such as installed MCPs, connection status, connected accounts, and catalog-tool counts, which clearly distinguishes it from action-oriented sibling tools.
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 clearly frames this as the informational/status tool for inspecting the current toolkit snapshot. It does not explicitly name alternatives or exclusions, but the use case is obvious: get a zero-parameter overview of installed MCPs and their connections.
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. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Control your Discord community: send/read messages, manage channels and forums, and handle webhook…
Connect AI agents to 1000+ apps with managed authentication and tool-calling.
Connect a personal/Business WhatsApp account via QR pairing (multi-device, like WhatsApp Web). Send
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides full Discord REST API access through a bot token, enabling server management including channels, messages, members, roles, and more.3481MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Discord through the REST API and real-time events, supporting message management, user info, channel operations, and more with security controls.241MIT
- 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.5184MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to send and read messages in Discord channels, manage servers, channels, and roles via Discord's API.322MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
The discord_* tools are clearly separated by resource and action; get/list and channel/DM variants are unlikely to be confused. Slight ambiguity exists between authenticate/connect and the fact that marketplace bundles report-style actions alongside the standalone report_bug, but descriptions mostly resolve this.
The Discord-specific tools all follow a regular discord_verb_noun pattern, which is clean. The six non-Discord tools (authenticate, connect, marketplace, report_bug, show_version, toolkit_info) break that pattern, creating a mixed convention that is still readable.
21 tools is on the heavy side; the 15 Discord operations are reasonable, but the six platform/meta tools and the sprawling marketplace tool broaden the set beyond a pure Discord server. It is not excessively bloated, but it feels like two tool surfaces in one.
The message lifecycle is well covered: send, edit, delete, list, get, reply, and reactions. Minor gaps include reaction removal and administrative actions like create/update/delete channels or guilds, but the core communication workflows an agent needs are present.