Skip to main content
Glama
vovafes

discord-mcp

by vovafes

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v2.0.0

  • Disambiguation5/5

    Each tool targets a distinct resource and action: account, guild, channel, message, member, DM. Even similar-sounding operations like get_messages, search_messages, and get_pinned_messages have clear, non-overlapping purposes.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (list_guilds, get_channel_info, send_message, add_reaction). The verbs are predictably chosen: list for collections, get for details, send for output, etc.

    Tool Count4/5

    20 tools is slightly above the ideal 3-15 range, but the count is justified by the broad scope of Discord interactions covered. Each tool serves a distinct purpose and none feel redundant.

    Completeness4/5

    The set covers the core lifecycle of Discord messaging (read, send, edit, delete, pin, react) and server/member info. Minor gaps exist, such as no direct fetch by message ID, but the workflows are generally complete.

  • Average 3.5/5 across 20 of 20 tools scored. Lowest: 2.9/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 6 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden of behavioral disclosure. It fails to mention side effects (e.g., creating a message), permission requirements, rate limits, or response behavior. For a mutation tool, this is a significant gap.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that concisely states the core purpose. It is front-loaded and contains no fluff or redundant information, making it easy for an agent to parse quickly.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Despite having a well-schema'd parameter set, the description is too minimal to be complete. With no output schema and no annotations, it fails to explain return values, error conditions, or behavioral nuances like reply handling. An agent would lack sufficient context to correctly invoke and interpret the tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema descriptions cover all parameters (content, reply_to, channel_id) with clear explanations, so the baseline is 3. The description adds no extra meaning beyond the schema, but it also does not detract from the schema's clarity.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the main action ('send a message') and the target resource ('a channel'), which is specific. However, it does not distinguish from sibling tools like send_embed or send_dm, leaving some ambiguity about the exact message format.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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. There is no mention of exclusions or prerequisites, such as preferring send_embed for rich content or send_dm for direct messages. The description simply states the action without contextual hints.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full responsibility for behavioral disclosure. It implies a read-only operation but does not mention required permissions, return format, error behavior, or rate limits, leaving significant gaps.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single clear sentence with no unnecessary words. It is immediately understandable and well-structured.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple with one parameter, but there is no output schema and the description does not specify what 'detailed information' includes (e.g., name, icon, member count). It is minimally viable but leaves the agent to infer the return payload.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema covers 100% of the single parameter with a description ('Server ID'), so the description adds no additional semantics. Per the baseline for high schema coverage, this is adequate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Get') and resource ('detailed information about a Discord server'), making the core purpose clear. However, it does not explicitly distinguish itself from sibling tools like list_guilds or get_channel_info beyond the word 'detailed.'

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    There is no guidance on when to use this tool versus alternatives such as list_guilds or get_channel_info. The description simply states what it does without providing context for selecting it over siblings.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description bears the full burden of behavioral disclosure. It only states the basic action and does not mention ordering, read-only nature, pagination, or other behavioral traits, which is insufficient for a tool with no annotation support.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core action and resource, achieving excellent conciseness.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple retrieval tool with full schema coverage, the description is minimally adequate but lacks contextual completeness. It does not explain return values, behavior, or when to prefer this tool over siblings, and with no annotations to compensate, it leaves gaps.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, with all four parameters clearly documented in the schema, including limit and pagination fields. The description adds no parameter-specific meaning beyond what the schema provides, so the baseline of 3 applies.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('retrieve') and identifies the resource ('recent messages from a channel'), making the core purpose clear. However, it does not explicitly differentiate from sibling tools like search_messages or get_pinned_messages, so it misses the full mark.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool versus alternatives. With many sibling tools such as search_messages and get_pinned_messages, the absence of any differentiation or contextual advice leaves the agent uncertain about the appropriate use case.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must disclose behavioral traits. It only states the core function without mentioning side effects, reversibility, permissions, or error behavior. The description adds minimal value beyond the tool's name, and the lack of annotations increases the burden it fails to meet.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, efficient sentence with no fluff, front-loading the core action. However, it is under-specified in terms of context, but for conciseness it is well-formed and easy to parse.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is a mutation with no annotations and no output schema. The description is extremely brief and does not cover usage context, side effects, or edge cases. Although the schema covers parameters, the overall description is not complete enough for an agent to understand the full behavioral contract.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, so the schema already explains all parameters clearly (e.g., pin is 'true to pin, false to unpin'). The description adds no extra meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Pin or unpin') and the resource ('a message'), making it specific and distinguishable from sibling tools like get_pinned_messages or delete_message. The verb is explicit and the resource is unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, edge cases (e.g., message already pinned), or scenarios where unpinning might be appropriate. It is a bare statement without usage context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    There are no annotations, so the description carries the full burden of behavioral disclosure. 'Delete a message' adds no context about permanence, permissions, side effects, or irreversibility, essentially restating the tool name.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is three words long with no filler or redundant information. It is immediately readable and well-structured for a tool of this simplicity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    As a destructive operation with no annotations and no output schema, the description is incomplete. It does not mention irreversibility, possible errors, or return behavior, which an agent would need to fully understand the tool's impact.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% with descriptions for channel_id and message_id, so the baseline is 3. The description itself adds no extra meaning beyond the schema, which is acceptable given the schema's completeness.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Delete a message' uses a specific verb and resource, clearly stating what the tool does and distinguishing it from sibling tools like send_message, edit_message, or pin_message. The action is unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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. The description simply states the action without any context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the operation ('Get a user's profile') but does not explain whether it requires special permissions, what the profile includes, error cases (e.g., user not found), or if it is a safe read-only operation. This is a significant gap for a tool without annotation support.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence that efficiently communicates the core purpose. No fluff or redundant wording. It is appropriately concise for a simple lookup tool.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool has no output schema and no annotations, leaving the description to explain behavior and return values. However, it omits any detail about what the returned profile contains or any potential limitations (e.g., bot permissions, rate limits). For a two-parameter lookup, the description is minimally viable but not complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already provides 100% coverage with descriptions for user_id and guild_id. The description adds no extra semantic meaning beyond what the schema states, so a baseline score of 3 is appropriate given the high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb (Get) and identifies the resource (a user's profile) with a scope ('in a server'), which clearly distinguishes it from siblings like get_me (current user) and get_guild_info (server profile). Despite minimal detail, the action and target are unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, such as needing the user to be a member of the server, or when get_me or list_members would be more appropriate. The description only states what the tool does, not when to choose it.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden of disclosing behavioral traits. It only states the basic function and does not mention pagination, rate limits, permissions, or return format. This leaves significant behavioral aspects undisclosed.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with zero waste. It efficiently conveys the core purpose without extraneous information.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the lack of annotations, output schema, and any additional behavioral context, the description is not complete enough for an agent to fully understand the tool's capabilities and limitations. It does not address pagination behavior, response structure, or permissions, which are important for correct invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, with both 'guild_id' and 'limit' adequately described. The description adds no additional parameter semantics beyond the schema, so the baseline of 3 applies.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'List members in a server' clearly states the action (list), the resource (members), and the scope (in a server). This distinguishes it from sibling tools like list_channels and list_guilds, which operate on different resources.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It is a bare statement of function with no usage context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden. It does not disclose ordering, pagination, permission requirements, or return format. The only behavioral cue is the word 'Get,' which implies a read operation but is not explicit.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Single sentence, zero waste, front-loaded. Perfectly concise.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Tool is simple (one param, no output schema), but the description leaves unstated what the response contains beyond 'pinned messages.' Gaps are modest because this is a simple read operation, but an agent would benefit from knowing ordering or return structure.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% for the single channel_id parameter, and the description adds no extra meaning beyond the schema's 'Channel ID.' Baseline 3 applies because the schema handles the parameter.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states a specific verb+resource+scope ('Get all pinned messages in a channel'), which distinguishes it from sibling tools like pin_message or get_messages.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 vs alternatives; the description only repeats the purpose, without mentioning exclusions like 'use search_messages for filtering' or prerequisites.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries full responsibility for behavioral disclosure. The description merely states the action without mentioning potential side effects, required permissions, error conditions, or whether the reaction is partial or complete. This is similar to other minimally transparent mutation tools.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that is perfectly concise and front-loaded. It contains no redundant information and effectively communicates the core purpose.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's simplicity and the complete parameter schema, the description is mostly adequate. However, with no output schema and no mention of return values or failure behavior, an agent might be uncertain about the result of a successful call, leaving some gaps in completeness.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema provides descriptions for all three parameters (channel_id, message_id, emoji) with 100% coverage. The description adds no additional parameter meaning, so it relies entirely on the schema to define parameter semantics.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Add') and the resource ('an emoji reaction') with a specific target ('to a message'). This is a distinct operation compared to sibling tools like pin_message or send_message, 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.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    While the description does not explicitly state when to use this tool over alternatives, the tool's name and description make its usage obvious. No exclusions, prerequisites, or alternative tool references are mentioned, but the context is clear enough for an agent to infer 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.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden of disclosing behavioral traits. It only states the action and ownership restriction, without mentioning potential side effects, permissions needed, error conditions, or behavior when editing non-owned messages. This is minimal 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence that directly conveys the tool's purpose without any filler. It is concise and well-structured for quick comprehension.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple edit operation with full schema coverage, the description is adequate, but it lacks any mention of return value, error behavior, or edge cases (e.g., editing messages in other channels). No output schema exists, so this omission leaves some context missing.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema covers all three parameters with descriptive comments (channel_id, message_id, content), giving 100% schema coverage. The description adds no further parameter semantics, so it stays at the baseline of 3.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Edit'), the resource ('one of your own messages'), and adds a scope restriction ('your own'). This distinguishes it from sibling tools like send_message, delete_message, and pin_message, making the tool's purpose unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies when to use the tool (for editing your own messages) but does not explicitly contrast it with alternatives like delete_message or send_message. It provides no 'when not to use' or preferred alternatives, leaving the usage context largely implicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must carry the full burden. It introduces the qualifier 'open' but does not explain what 'open' means, how results are ordered, whether pagination is involved, or what fields each returned conversation contains. The description adds little beyond the basic action.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence that conveys the essential purpose without any unnecessary words. It is appropriately sized for a simple tool and every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a zero-parameter, no-output-schema tool, the description provides the basic action but lacks important context such as the return format, what qualifies as 'open', and any behavioral caveats. It is minimally viable but leaves the agent to guess at response details.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, and schema description coverage is 100% (vacuously). Per the baseline rule, the score is 4 because there are no parameter details to add. The description correctly does not attempt to explain non-existent parameters.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('List') and the resource ('open DM conversations'). It is specific enough to distinguish from sibling tools like list_guilds and list_channels, and there is no ambiguity about the tool's purpose.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    There is no guidance on when to use this tool versus alternatives. The description only states what it does, with no mention of scenarios, prerequisites, or exclusions. This leaves the agent without context for selecting it over other list tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden for behavioral disclosure. It only states the basic action and parameter method, but does not mention potential errors (e.g., user not found, DMs closed), rate limits, or side effects. This is a significant gap for a write operation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, clear sentence that front-loads the action and target. Every word earns its place; there is no wasted content.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple with full schema coverage, but the absence of annotations and any usage caveats leaves the description minimally adequate. For a mutation tool, it would benefit from noting prerequisites (e.g., mutual connection) or failure behaviors, but the current description is not misleading.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, so the baseline is 3. The description's 'by their ID' adds minimal value by reiterating the user_id parameter, but it does not add formatting, examples, or context beyond the schema descriptions. No credit for repeating what's already in the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Send a direct message') and the target ('to a user by their ID'). It distinguishes from siblings like send_message (which likely sends to a channel) by specifying 'direct message' and 'user ID'.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for sending DMs to users, and the 'by their ID' hints at the parameter. However, it does not explicitly name alternatives or state when not to use it (e.g., for channel messages use send_message). Context from sibling tools makes it inferable, but the guidance is not explicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure, yet it only states the action without addressing permissions, rate limits, return values, or error conditions. For a mutation tool like this, the lack of any additional behavioral context is a notable gap.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise sentence that front-loads the essential action and object. There is no fluff or redundancy, and every word contributes to the meaning.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool has seven parameters and no output schema, but the description only captures the basic purpose and leaves out usage context, output expectations, or prerequisites. The schema covers parameter details, yet the description is otherwise sparse for a tool of this complexity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema provides descriptions for all seven parameters, achieving 100% coverage, so the parameter semantics are already well-documented. The tool description itself adds no extra context about how parameters relate, but it doesn't need to since the schema handles this dimension.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly specifies the action ('Send'), the object ('a rich embed message'), and the destination ('to a channel'), making the tool's purpose unambiguous. The qualifier 'rich embed' distinguishes it from the sibling 'send_message', which handles plain text messages.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage through the term 'rich embed', which indicates this is for embed messages rather than standard text messages. However, it does not explicitly say when to use this tool versus 'send_message' or 'send_dm', nor does it mention any exclusions or prerequisites.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description provides no annotation context and only states that it 'gets information,' which suggests a read-only operation but does not disclose details such as required permissions, error behavior, or what is included in the returned information. It is not misleading, but it adds minimal behavioral insight beyond the verb.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that is direct and front-loaded, containing no filler. It earns its place without redundant detail.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool has only one parameter and no annotations, but no output schema is provided. The description fails to specify what 'information' is returned, such as channel name, topic, or member count, leaving the agent without enough context for the tool's full behavior.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already documents the channel_id parameter, and the description adds no additional meaning beyond 'specific channel.' With 100% schema description coverage, the baseline score of 3 applies.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Get') and resource ('information about a specific channel'), clearly distinguishing it from sibling tools like list_channels and get_guild_info. The term 'specific' signals it targets one channel by ID, 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.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies the tool is for retrieving metadata for a single channel but does not explicitly state when to use it over alternatives like list_channels or get_messages. No exclusions or prerequisite conditions are mentioned, leaving usage context implied rather than explicit.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must disclose behavioral traits. It states the action and its two modes but does not mention permissions, side effects, return values, or any constraints beyond the schema. The tool's creation behavior is implied but not elaborated.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with no redundant information, conveying the essential purpose and modes efficiently.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description covers the core purpose and modes but lacks details on return values, error conditions, or permissions. Given the tool's simplicity and complete schema, it 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.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, so the baseline is 3. The description's mention of 'from a message or standalone' reinforces the optional message_id semantics but does not add new parameter details beyond what the schema already provides.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's function with a specific verb ('Create') and resource ('thread'), and distinguishes two usage modes ('from a message' or 'standalone'). It is immediately distinguishable from sibling tools focused on messaging, channels, and users.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context for when the tool is appropriate (creating a thread, with two variants). While it does not explicitly name alternatives, no sibling tool offers thread creation, so the usage context is clear without exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden. It states 'Get information,' implying a read-only operation, but does not explicitly confirm non-mutating behavior, authentication requirements, rate limits, or any potential side effects. This lack of disclosure is a gap for a tool with no annotation support.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that is front-loaded with the verb and resource, containing no filler or redundant information. Every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's low complexity (no parameters), the description is adequate for basic understanding, but it does not specify what 'information' includes (e.g., username, ID, avatar). Without an output schema or annotations, the agent may not know what to expect in the response, leaving a moderate completeness gap.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has zero parameters, so there are no parameter semantics to document. The baseline for zero parameters is 4, and the description correctly avoids adding unnecessary parameter details.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('get') and clearly identifies the resource ('information about the connected Discord account'). This distinguishes it from sibling tools like get_user_info, which likely target other users, 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.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The phrase 'connected Discord account' implies the tool is for the current account, but there is no explicit guidance on when to use this versus get_user_info or other siblings. No exclusions or alternatives are mentioned, so usage is only implied.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden. It states the read-only action plainly but does not disclose any additional behavior such as permissions, sorting, or whether private channels are included. For a simple read operation this is adequate but not enriched.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Single concise sentence with no waste, front-loaded with the action.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple list tool with one parameter and no output schema, the description is sufficient. It names the operation and scope, though it could benefit from a note about response structure or permissions, but given low complexity, it is reasonably complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema fully describes guild_id as 'Server ID', and the description's mention of 'Discord server' aligns with it. Baseline 3 applies since schema coverage is 100% and the description adds no extra parameter details.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb 'list' and names the resource 'channels' with scope 'all channels in a Discord server', clearly distinguishing it from sibling tools like get_channel_info which targets a single channel.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for retrieving all channels but does not explicitly contrast with sibling tools like get_channel_info or provide when-not-to-use guidance. It offers no 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.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden. It discloses the channel limitation (up to 20 channels) but leaves ambiguity around what 'recent' means and whether the tool is read-only. The behavior is partially transparent but lacks critical specifics.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence that directly states the tool's purpose and key limitation. Every word earns its place, with zero waste.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    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 parameter, no output schema), the description covers the essential purpose and limitation. However, it does not clarify the return format or time scope, leaving a small but notable gap.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema fully describes the only parameter (limit) with its default value and purpose. The description adds no additional meaning, so the baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool finds recent messages that mention the user, with a specific scope ('scans up to 20 channels across all servers'). This distinguishes it from sibling tools like get_messages or search_messages, which serve different purposes.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implicitly communicates when to use the tool: when the user needs to see their mentions. It does not explicitly mention alternatives or exclusion conditions, but the context is clear enough for a simple tool.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the burden of behavior disclosure. 'List all' implies a read-only operation, which is transparent enough for a simple list tool. It doesn't add rate limit or pagination specifics, but they are less critical here.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with no unnecessary words. Every word contributes to the meaning.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a zero-parameter, no-output-schema tool, the description sufficiently explains what the tool returns (a list of servers). It doesn't specify fields or ordering, but that's acceptable for a simple listing tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, so the baseline is 4. The description adds nothing about parameters because there are none, which is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'List' and the resource 'Discord servers' with the scope 'the account is in', distinguishing it from siblings like get_guild_info and list_channels.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description makes it clear this tool is for listing all servers, but it doesn't explicitly mention alternatives or when not to use it. However, the context is unambiguous—if you need the full list, this is the tool.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the burden of disclosure. It explicitly mentions the 500-message scan limit, which is a key behavioral trait not otherwise captured. The rest of the behavior (returning matches) is implied by 'search,' and the read-only nature is obvious from the context.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with zero filler. It efficiently conveys the essential purpose and a key limitation.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple search tool with 3 well-described parameters and no output schema, the description is largely complete. It identifies the channel, keyword, and scan depth. It doesn't describe the return format, but that's not critical for a search tool where matching messages are expected.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100%, so the baseline is 3. The description adds meaningful context by revealing that the search is limited to 500 recent messages, a behavioral constraint not present in the parameter descriptions. This supplements the limit parameter's semantics.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool searches for messages containing a keyword within a channel, using a specific verb ('search') and resource ('messages'). It also includes a scope limitation ('up to 500 recent messages') that distinguishes it from sibling tools like get_messages.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description conveys clear context: use this when you need to find messages by keyword in a channel. It doesn't explicitly mention alternatives or exclusions, but the purpose is obvious enough to differentiate from listing messages. The 500-message scan limit also implies a constraint on usage.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

discord-mcp MCP server

Copy to your README.md:

Score Badge

discord-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vovafes/discord-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server