Skip to main content
Glama
AnswerDotAI

cordslite-mcp

Official
by AnswerDotAI

cordslite-mcp

Read-only Discord access for Claude Desktop. The extension serves cordslite through an MCP server built with mcpmini, packed as an MCPB bundle. Claude can list the servers a bot has joined, map their channels, read and search messages, follow threads, and view image and text attachments. It cannot post, edit, or delete anything.

Install

  1. Create a bot in the Discord Developer Portal: create an application, add a bot under "Bot", and copy its token. Under "OAuth2", generate an invite URL with the bot scope and the "Read Messages/View Channels" and "Read Message History" permissions, then open it to invite the bot to your server.

  2. Open cordslite-mcp.mcpb in Claude Desktop. It asks for the bot token, and optionally a default server id and your own account token. The account token unlocks the three DM tools. Discord's terms forbid automating a user account, so leave it empty unless you accept that; the token is the Authorization header the Discord web app sends, visible in the browser's developer tools. Claude Desktop installs Python and the dependencies itself through uv.

Related MCP server: Discord MCP

Tools

  • list_guilds: the servers the bot has joined, with their ids.

  • guild_tree: a map of a server: categories, channels with their ids and topics, and members.

  • guild_channels: the channels of a server, with ids, types, parent categories, and topics.

  • channel_messages: the latest messages in a channel or thread, oldest first.

  • guild_search: search a server's messages across all channels and threads, with author, channel, content type, and date filters.

  • channel_search: search one channel's or thread's messages.

  • message_context: the messages around one message.

  • find_member: the user id of a server member, by username or nickname.

  • fetch_attachment: an attachment's contents. Images come back as images, text files as text. Other types, and files above 8 MB, come back as metadata only.

  • list_dms: the account's DMs and group DMs with their channel ids. Needs the user token.

  • dm_messages: the latest messages in a DM or group DM, oldest first. Needs the user token.

  • dm_search: search a DM or group DM. Needs the user token.

Message lines carry the timestamp, author, url, content, and any attachments as [attachment: name (type, size) url].

Development

src/cordslite_mcp.py holds the tools. Its module docstring is the guidance the server sends to the model, and each function's docments become the tool schema.

uv sync
DISCORD_BOT_TOKEN=... uv run mcpmini src/cordslite_mcp.py
npx @anthropic-ai/mcpb validate manifest.json
npx @anthropic-ai/mcpb pack

mcpb pack writes cordslite-mcp.mcpb in the project directory.

Available Tools

12 tools
channel_messagesB

The latest messages in a channel or thread, oldest first

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoOnly messages after this message id
limitNoMessages to return, at most 100
beforeNoOnly messages before this message id
channel_idYesChannel or thread id

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose useful behavior: the results are the latest messages, ordered oldest first, for either a channel or thread. It does not mention pagination semantics, output shape, or access requirements, leaving some transparency gaps.

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, economical sentence with the key information front-loaded: resource scope, recency, and ordering. It is easy to parse and contains no filler, though it could carry slightly more detail without losing 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 flat four-parameter list tool, the description plus schema is minimally sufficient to make a call: channel_id is requiredainer and limit/before/after are explained. Since there is no output schema, the return shape is left implicit, and no auth, rate limits, or pagination behavior are mentioned. This is adequate 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?

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds helpful framing around 'latest' and 'oldest first', which clarifies the meaning of before/after/limit, but it does not add significant parameter-level detail beyond the schema.

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 identifies a concrete resource ('channel or thread') and a clear result ('latest messages'), and even adds ordering ('oldest first'). It is distinct from siblings like dm_messages or channel_search, though it lacks an explicit verb like 'list' or 'fetch', so it is 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.

Usage Guidelines3/5

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

There is no explicit 'use this instead of X' guidance. However, 'latest messages in a channel or thread' implies this is the listing tool for recent messages, which differentiates it from channel_search and message_context. The usage context is inferable, but not spelled out.

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

dm_messagesA

The latest messages in a DM or group DM, oldest first; needs the user token

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoOnly messages after this message id
limitNoMessages to return, at most 100
beforeNoOnly messages before this message id
channel_idYesDM channel id, from `list_dms`

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. It usefully discloses the ordering (oldest first) and authentication requirement (user token), but it does not mention pagination behavior, return format, or whether the operation is read-only. 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.

Conciseness5/5

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

A single sentence efficiently conveys the core purpose, ordering, and authentication requirement with no wasted words. The most important information is front-loaded.

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 low complexity and full schema coverage, the description is mostly complete for an agent to invoke the tool correctly. It lacks an output schema, so return fields are not described, but for a simple message-listing tool the provided context is sufficient.

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 parameters are already well documented in the schema. The description adds no extra parameter-level meaning beyond what the schema provides, 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.

Purpose4/5

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

The description identifies the resource (messages), scope (DM or group DM), and ordering (oldest first), which makes the tool's purpose clear. It distinguishes from guild-focused siblings like channel_messages by specifying DMs, though it lacks an explicit verb like 'gets' or 'lists'.

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 clearly states when to use it: to get the latest messages in a DM/group DM. It also adds the important prerequisite that a user token is needed. However, it does not explicitly mention alternatives or when not to use it, such as pointing to channel_messages for guild channels.

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

fetch_attachmentB

An attachment's contents: an image as an image, a text file as text, anything else as its metadata

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesAttachment url, from a message's `[attachment: ...]` marker

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose the key behavioral trait: the return form is conditional on the attachment type. However, 'as its metadata' is undefined, and there is no disclosure of error cases, response encoding, or what happens when the attachment is unavailable.

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 roughly 21 words with the key behavioral distinction (type-dependent return form) front-loaded before the alternate behaviors. Every clause maps to a distinct case, and there is no filler or redundancy.

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 single-parameter tool with no output schema, the description covers the typical invocation path: supply an attachment URL, get a type-appropriate representation. It is incomplete in that the 'anything else' fallback is vague, and error behavior is not hinted. Given the tool is simple and the sibling list provides no alternative attachment tool, the coverage is adequate but not polished.

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%, and the schema already explains that the url is the attachment link from a message's `[attachment: ...]` marker. The tool description adds nothing about the parameter beyond what the schema provides, so the baseline score 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?

Describes the tool as returning an attachment's contents, and differentiates the return form by type (image as image, text as text, anything else as metadata). This clearly separates it from sibling tools, which center on guilds, channels, messages, and DMs. The only weakness is that the action verb 'fetch' appears only in the tool name.

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 gives no explicit when-to-use or when-not-to-use guidance and never mentions alternatives or exclusions. The only contextual clue, that the URL comes from a message's `[attachment: ...]` marker, is provided in the schema parameter description rather than the tool description.

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

find_memberA

The user id of the first server member matching name, for author_id searches

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesUsername or nickname
guild_idNoServer id; the configured default server if omitted

TDQS

A3.5/5.0
Behavior3/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 does convey the core behavior: find the first matching server member and return their user id. But it omits no-match behavior, matching semantics like exact vs partial or case sensitivity, and how 'first' is ordered, and it never confirms the operation is read-only.

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 compact sentence that leads with the returned value, then states the search criterion and intended use. No filler or redundant restatement of the tool name is present.

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 two-parameter lookup, the description plus schema covers the input and the returned value well. However, there is no output schema or annotation, and important context such as no-match behavior, ordering, and authorization is missing, leaving the description 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 description coverage is 100%, so the schema already explains `name` as username/nickname and `guild_id` as server id with a default-server fallback. The description adds the context that the match is the first server member and that the output feeds author_id searches, but it does not significantly extend parameter-level meaning.

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 identifies the tool as returning the user id of the first server member matching `name`, and it connects the result to `author_id` searches. This is a specific lookup action distinct from sibling tools that search guilds, channels, or DMs, though it does not explicitly contrast with them.

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 'for `author_id` searches' gives an implied use case, so an agent can infer when this tool is relevant. However, it does not state when not to use it or explicitly compare it to alternative sibling tools, leaving the guidance only implicit.

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

guild_channelsB

The channels of a server, one per line, with ids, types (0 text, 2 voice, 4 category), parent categories, and topics

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idNoServer id; the configured default server if omitted

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the output format (one per line, with ids, types, parent categories, topics), which is useful. However, it doesn't mention whether this is a read-only operation, any rate limits, or what happens if the guild_id is invalid. The description adds some behavioral context but not comprehensive.

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 sentence that packs in the output format and key fields. It is concise and front-loaded with the main purpose. It could be slightly more structured, but it earns its place with no wasted words.

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 list tool with one optional parameter, the description is mostly complete. It tells the agent what the output looks like and what the parameter means. However, it doesn't clarify whether the output is plain text or JSON, and it doesn't mention any filtering or sorting options. Given the lack of annotations and output schema, a bit more context would help, but it's adequate for a simple 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?

Schema description coverage is 100% for the single parameter, so the schema already documents guild_id. The description adds context that the default server is used if omitted, which is already in the schema's default field. The description doesn't add much beyond the schema, but the schema is sufficient. Baseline 3 is appropriate.

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 states a specific verb ('The channels of a server') and resource (channels), and specifies the output format (one per line with ids, types, parent categories, topics). It is clear what the tool returns, though it doesn't explicitly name a sibling to distinguish from, so it loses a point.

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: call this to list channels of a server. It doesn't explicitly say when to use this vs alternatives like guild_tree or channel_messages, but the context of sibling tools and the description's focus on channel listing makes the intended use reasonably clear. No exclusions or alternatives are mentioned.

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

guild_treeB

A map of a server: categories, channels with their ids and topics, and members

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idNoServer id; the configured default server if omitted
include_membersNoInclude the member list?

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden. It usefully states what the returned map contains, and 'map' implies a read-only retrieval, but it does not explicitly state read-only semantics, response shape, or caveats such as result size or member detail depth.

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 one compact sentence with no filler. It front-loads the core idea ('A map of a server') and then lists the included elements 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?

For a tool with two optional parameters and no output schema, the description gives a high-level picture of the return contents. However, it omits output structure, usage guidance, and any performance or size caveats, leaving it minimally sufficient rather than 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% and both parameters have descriptions in the schema, so the baseline is 3. The tool description does not add parameter-specific detail beyond clarifying the overall result content.

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 identifies the resource ('a server') and the returned content ('categories, channels with their ids and topics, and members'). It is clear about what the tool provides, but it is phrased as a noun phrase rather than an explicit action verb, and it does not differentiate itself from sibling tools like guild_channels or find_member.

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 getting a structural overview of a server, but it provides no explicit when-to-use guidance, no exclusions, and no named alternatives. The intended use is inferable rather than stated.

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

list_dmsA

The account's open DMs and group DMs with their channel ids; needs the user token

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoDMs to return, most recent activity first

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden. It discloses an auth prerequisite ('needs the user token') and a scoping detail (open DMs and group DMs only), but it does not characterize the response beyond channel IDs or mention ordering/pagination behavior beyond what the limit schema already covers.

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?

A single sentence that front-loads the resource, return value, and auth requirement with no filler or repetition. Every clause earns its place.

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 low-complexity tool with one optional parameter and no output schema, this is nearly complete: it tells the agent what will be returned and that a user token is required. It could specify the full response object shape, but the channel-ID detail is sufficient for downstream use with dm_messages.

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 only parameter, limit, is fully described in the schema (default 50, most recent activity first), so the description adds no extra meaning beyond clarifying that the returned DMs carry channel IDs. Baseline 3 applies because schema coverage is 100%.

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 identifies the resource (the account's open DMs and group DMs) and the key output (channel IDs), which makes it distinct from list_guilds. It does not explicitly contrast itself with dm_messages or dm_search, so it stops short of full sibling differentiation.

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 this is the entry point for retrieving a user's DM channel IDs and notes the token requirement, but it does not state when to choose it over dm_messages/dm_search or mention exclusions. The context is usable but not explicitly prescriptive.

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

list_guildsB

The servers the bot has joined, with their ids

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
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 only the data scope and that IDs are included, but does not disclose return shape, ordering, or whether all guild data is returned, leaving notable gaps for an unannotated tool.

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 entire description is one compact phrase with no wasted words and the key idea appears first. It is appropriately sized for a zero-parameter tool, though a more explicit verb like 'Returns...' would make it marginally stronger.

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 zero-parameter listing tool, the description is minimally viable: it names the returned entity and a key field (IDs). However, without an output schema, it does not fully specify the return format, and the lack of any guidance relative to sibling guild tools leaves the context incomplete.

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 no parameter documentation is needed in the description; there is no semantic burden to carry. The baseline for zero-parameter tools 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 clearly identifies the resource (joined servers and their IDs, which is the tool's scope. It is specific enough to identify list_guilds as a listing operation over guilds, though it lacks an explicit verb and does not contrast with the sibling guild_* tools.

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 gives minimal context ('servers the bot has joined') but provides no guidance on when to choose this over siblings like guild_search, guild_tree, or guild_channels. No exclusions or alternative conditions are mentioned.

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

message_contextB

The messages around one message, oldest first

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMessages to return, centred on the message
channel_idYesChannel or thread id of the message
message_idYesMessage id

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It adds value beyond the schema by stating the oldest-first ordering and the contextual 'around one message' nature. However, it does not disclose whether the anchor message itself is included, how edge cases are handled, or that this is a read-only operation, leaving notable 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 eight-word sentence with zero fluff. It front-loads the core concept and every word contributes to meaning. This is an appropriately sized description for a simple retrieval tool.

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 is adequate for a simple read operation, and the schema covers all parameters fully. However, there is no output schema and no mention of the return shape, edge cases (e.g., insufficient messages before/after), or whether the anchor message is included. Given the absence of annotations, a bit more behavioral context would make this more 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 description coverage is 100%, so the baseline of 3 applies. The description does not add meaning beyond the schema: 'around one message' loosely maps to message_id, but the schema already documents message_id and limit's centering behavior adequately. No additional parameter nuance is provided.

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 identifies the resource (messages around a specific message) and the ordering behavior (oldest first), which distinguishes it from siblings like channel_messages or channel_search. However, it lacks an explicit verb such as 'Retrieve' or 'List', so it reads as a noun-phrase description rather than a full purpose statement.

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 given on when to use this tool over channel_messages, channel_search, or other siblings. The description does not mention prerequisites, alternatives, or exclusions, so an agent must infer usage entirely from the name and brief phrasing.

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.

  1. 12 tool updatesv0.1.0
    • First observedchannel_messages
    • First observedchannel_search
    • First observeddm_messages
    • First observeddm_search
    • First observedfetch_attachment
    • First observedfind_member
    • First observedguild_channels
    • First observedguild_search
    • First observedguild_tree
    • First observedlist_dms
    • First observedlist_guilds
    • First observedmessage_context

TDQS

A3.5/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target clearly distinct actions: listing servers, mapping a server, reading messages, searching, fetching attachments, and resolving members. The only mild overlap is between guild_tree and guild_channels, since both describe a server's structure, but their output purposes differ enough to avoid serious confusion.

Naming Consistency3/5

The naming is readable and mostly thematic, with search tools consistently suffixed as *_search and list tools prefixed as list_*. However, it mixes styles: verb_noun (find_member, fetch_attachment), noun_noun (channel_messages, message_context, guild_tree), and noun_verb (guild_search). The pattern is not chaotic, but it is not consistently applied.

Tool Count5/5

Twelve tools is a reasonable size for a Discord-focused server. Each tool covers a distinct need such as discovery, navigation, message retrieval, search, member lookup, attachment access, and DM support, without feeling padded or redundant.

Completeness4/5

The toolset provides strong read-side coverage of Discord: guilds, channels, categories, threads, messages, DMs, members, attachments, and search. The main gap is that it is entirely read-only, so sending messages or modifying Discord resources is not possible, but for a search/retrieval-oriented MCP server this is likely acceptable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A read-only Discord MCP server that allows AI agents to list channels, read messages, and get attachment images from a Discord server for summarization and reporting.
    88 npm
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Local, read-only MCP server that connects to Discord via REST API, allowing listing guilds, channels, and messages with strict access controls and no write operations.
    5
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables reading and acting on Discord through your own running desktop client, including messages, direct messages, group chats, threads, forum posts, search, and write operations like sending, editing, reacting, and managing threads.
    88 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables safe, least-privilege reads and audits of Discord guilds and allowlisted direct conversations, with reviewed administrative actions through an operator-owned bot.
    116 npm
    1
    AGPL 3.0