Skip to main content
Glama
lars-hagen

Slack User MCP Server

by lars-hagen

Slack ユーザー MCP サーバー

鍛冶屋のバッジ

Slack API 用の MCP サーバー。Claude がユーザーとして Slack ワークスペースと対話できるようにします。

ツール

  1. slack_list_channels

    • ワークスペース内のパブリックチャンネルを一覧表示する

    • オプション入力:

      • limit (数値、デフォルト:100、最大:200):返されるチャンネルの最大数

      • cursor (文字列): 次のページのページ区切りカーソル

    • 戻り値: IDと情報を含むチャンネルのリスト

  2. slack_post_message

    • Slackチャンネルに新しいメッセージを投稿する

    • 必要な入力:

      • channel_id (文字列): 投稿先のチャンネルのID

      • text (文字列): 投稿するメッセージテキスト

    • 戻り値: メッセージ投稿の確認とタイムスタンプ

  3. slack_reply_to_thread

    • 特定のメッセージスレッドに返信する

    • 必要な入力:

      • channel_id (文字列): スレッドを含むチャネル

      • thread_ts (文字列): 親メッセージのタイムスタンプ

      • text (文字列):返信テキスト

    • 戻り値: 返信確認とタイムスタンプ

  4. slack_add_reaction

    • メッセージに絵文字リアクションを追加する

    • 必要な入力:

      • channel_id (文字列): メッセージを含むチャネル

      • timestamp (文字列): 反応するメッセージのタイムスタンプ

      • reaction (文字列):コロンなしの絵文字名

    • 返品:反応確認

  5. slack_get_channel_history

    • チャンネルから最近のメッセージを取得する

    • 必要な入力:

      • channel_id (文字列): チャンネルID

    • オプション入力:

      • limit (数値、デフォルト:10):取得するメッセージの数

    • 戻り値: メッセージとその内容およびメタデータのリスト

  6. slack_get_thread_replies

    • メッセージスレッド内のすべての返信を取得する

    • 必要な入力:

      • channel_id (文字列): スレッドを含むチャネル

      • thread_ts (文字列): 親メッセージのタイムスタンプ

    • 戻り値: コンテンツとメタデータを含む返信のリスト

  7. slack_get_users

    • 基本的なプロフィール情報を持つワークスペースユーザーのリストを取得します

    • オプション入力:

      • cursor (文字列): 次のページのページ区切りカーソル

      • limit (数値、デフォルト:100、最大:200):返されるユーザーの最大数

    • 戻り値: 基本プロフィールを持つユーザーのリスト

  8. slack_get_user_profile

    • 特定のユーザーの詳細なプロフィール情報を取得する

    • 必要な入力:

      • user_id (文字列): ユーザーのID

    • 返されるもの: 詳細なユーザープロフィール情報

Related MCP server: Slack MCP Server

設定

  1. Slack アプリを作成する:

    • Slackアプリページにアクセスしてください

    • 「新しいアプリを作成」をクリックします

    • 「最初から」を選択

    • アプリに名前を付けてワークスペースを選択します

  2. ユーザー トークン スコープを構成する:「OAuth と権限」に移動し、次のスコープを追加します。

    • channels:history - パブリックチャンネルのメッセージやその他のコンテンツを表示する

    • channels:read - 基本的なチャンネル情報を表示する

    • chat:write - 自分としてメッセージを送信する

    • reactions:write - メッセージに絵文字反応を追加する

    • users:read - ユーザーとその基本情報を表示する

  3. ワークスペースにアプリをインストールします:

    • 「ワークスペースにインストール」をクリックしてアプリを承認します

    • xoxp-で始まる「ユーザーOAuthトークン」を保存します。

  4. このガイダンスに従ってチームID( Tで始まる)を取得してください

Claude Desktopでの使用

claude_desktop_config.jsonに以下を追加します。

ローカルインストール

まずサーバーをインストールして構築します。

git clone https://github.com/lars-hagen/slack-user-mcp.git
cd slack-user-mcp
npm install
npm run build

次に、Claude Desktop を構成します。

{
  "mcpServers": {
    "slack": {
      "command": "npm",
      "args": [
        "run",
        "--prefix",
        "/path/to/slack-user-mcp",
        "start"
      ],
      "env": {
        "SLACK_TOKEN": "xoxp-your-user-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

NPX

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-slack-user"
      ],
      "env": {
        "SLACK_TOKEN": "xoxp-your-user-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

ドッカー

{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SLACK_TOKEN",
        "-e",
        "SLACK_TEAM_ID",
        "mcp/slack-user"
      ],
      "env": {
        "SLACK_TOKEN": "xoxp-your-user-token",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}

Smithery経由でインストール

Smithery経由で Claude Desktop 用の Slack ユーザー サーバーを自動的にインストールするには:

npx -y @smithery/cli install @lars-hagen/slack-user-mcp2 --client claude

トラブルシューティング

権限エラーが発生した場合は、次の点を確認してください。

  1. 必要なスコープがすべてSlackアプリに追加されます

  2. アプリがワークスペースに正しくインストールされている

  3. トークンとワークスペースIDが構成に正しくコピーされました

  4. アプリはアクセスする必要があるチャンネルに追加されました

  5. ボットトークンではなく、ユーザーOAuthトークン(xoxp-で始まる)を使用しています

建てる

Dockerビルド:

docker build -t mcp/slack-user -f src/slack/Dockerfile .

ライセンス

このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。

Available Tools

8 tools
slack_add_reactionB

Add a reaction emoji to a message

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesThe ID of the channel containing the message
timestampYesThe timestamp of the message to react to
reactionYesThe name of the emoji reaction (without ::)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; the description does not disclose whether adding a duplicate reaction is idempotent, whether it modifies the original message, or any rate limits. Minimal behavioral 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?

Single focused sentence with no fluff. Efficiently 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?

Adequate for a simple action, but lacks usage guidance and behavioral details that would fully inform agent decision-making. No output schema to compensate.

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 parameter descriptions; the tool description adds no additional meaning beyond what the schema already provides. 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 'Add a reaction emoji to a message' clearly states the action and resource, distinguishing it from sibling tools like slack_post_message or slack_get_channel_history.

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 on when to use this tool vs alternatives, no prerequisites mentioned (e.g., must have a valid timestamp), and no exclusion criteria.

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

slack_get_channel_historyC

Get recent messages from a channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesThe ID of the channel
limitNoNumber of messages to retrieve (default 10)

TDQS

C2.9/5.0
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 of behavioral disclosure. It states the action ('Get recent messages') but doesn't mention critical details like whether this requires specific permissions, rate limits, pagination behavior, or what 'recent' means (e.g., time-based or count-based). This leaves significant gaps for a tool that likely interacts with an external API.

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, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy 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?

Given the complexity of a Slack API tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like authentication needs, error handling, or return format (e.g., message objects with timestamps). For a tool that retrieves data from an external service, more context is needed to ensure proper usage.

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 has 100% description coverage, with clear documentation for 'channel_id' and 'limit' (including a default value). The description adds no additional meaning beyond the schema, such as explaining channel ID formats or limit constraints. With high schema coverage, 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 clearly states the verb ('Get') and resource ('recent messages from a channel'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'slack_get_thread_replies' or 'slack_list_channels', which also retrieve Slack data, so it misses full differentiation.

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

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. For example, it doesn't clarify if this is for general channel history versus thread-specific replies (handled by 'slack_get_thread_replies') or user-focused data (handled by 'slack_get_user_profile'). No exclusions or prerequisites are mentioned.

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

slack_get_thread_repliesB

Get all replies in a message thread

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesThe ID of the channel containing the thread
thread_tsYesThe timestamp of the parent message in the format '1234567890.123456'. Timestamps in the format without the period can be converted by adding the period such that 6 numbers come after it.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description adds minimal behavioral context. It does not disclose rate limits, authentication needs, error handling, or what happens if the thread does not exist. The only behavioral detail is the parameter description for thread_ts format, which pertains to parameter semantics, not overall tool behavior.

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 with no unnecessary words. It is concise and front-loaded. However, it may be slightly too brief for a tool with no annotations, as it omits additional context that could be included without becoming verbose.

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 output schema and annotations, the description does not adequately explain return format (e.g., an array of messages), whether replies are nested, or pagination behavior. The tool's complexity (2 required params) and the absence of structured metadata demand more context than provided.

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 descriptive parameter details, so baseline is 3. The tool description adds no additional meaning beyond the schema; it simply states the tool's function without elaborating on parameters. Thus, it does not provide extra value beyond what the schema already conveys.

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 'Get all replies in a message thread' clearly states the verb (get) and resource (replies in a thread). It effectively distinguishes this tool from siblings like slack_reply_to_thread (which creates replies) and slack_get_channel_history (which retrieves messages but not specifically thread replies).

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. It does not specify appropriate scenarios, prerequisites, or cases where another tool would be more suitable, leaving the agent without context for tool selection.

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

slack_get_user_profileB

Get detailed profile information for a specific user

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesThe ID of the user

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided. The description does not disclose if the operation is read-only, rate limits, or any side effects. For a read tool, this is minimal but insufficient.

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?

One sentence, no fluff, front-loaded with verb and resource. Very 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?

Given low complexity (1 param) and no output schema, the description is minimally adequate. However, it lacks detail on what 'detailed profile information' includes.

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 a clear description for user_id. The description adds no extra meaning beyond the schema, meeting the baseline.

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 'Get' and resource 'detailed profile information for a specific user'. It distinguishes from sibling tools like slack_get_users (list all users) and others.

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 like slack_get_users. No context about prerequisites or limitations.

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

slack_get_usersB

Get a list of all users in the workspace with their basic profile information

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoPagination cursor for next page of results
limitNoMaximum number of users to return (default 100, max 200)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It does not disclose pagination behavior, rate limits, or whether deactivated users are included. The schema hints at pagination via cursor, but the description adds no extra 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, clear sentence with no redundant or unnecessary information. It is efficiently front-loaded with the core action and resource.

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 list tool with two parameters and no output schema, the description is minimally adequate but lacks details like pagination behavior, what 'basic profile information' includes, or any example usage. It could be improved.

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 parameters having descriptions in the schema. The tool description adds no additional meaning beyond the schema, so 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 verb 'get' and the resource 'list of all users', with the addition of 'basic profile information' specifying scope. It distinguishes from sibling tools like slack_get_user_profile which retrieves a single user.

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. For example, it could mention that for a single user's full profile, use slack_get_user_profile, or that the result is paginated.

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

slack_list_channelsB

List public channels in the workspace with pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of channels to return (default 100, max 200)
cursorNoPagination cursor for next page of results

TDQS

B3.3/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 full burden of behavioral disclosure. It helpfully mentions pagination behavior, which is valuable context not in the schema. However, it doesn't disclose important traits like rate limits, authentication requirements, whether this requires specific permissions, or what the response format looks like (especially critical with no output schema).

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 perfectly concise - a single sentence that communicates the core functionality and key behavioral trait (pagination) with zero wasted words. It's front-loaded with the essential information and earns its place 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 read-only listing tool with 2 well-documented parameters, the description is minimally adequate. However, with no annotations and no output schema, it should ideally provide more context about response format, error conditions, or typical use cases. The pagination mention helps, but doesn't fully compensate for the missing structured information.

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 input schema already fully documents both parameters (limit and cursor). The description adds no additional parameter semantics beyond what's in the schema - it mentions pagination generally but doesn't explain parameter interactions or usage patterns. This meets the baseline for high schema coverage.

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 verb ('List') and resource ('public channels in the workspace'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'slack_get_users' or 'slack_get_channel_history' which also retrieve Slack data, leaving some ambiguity about when this specific listing tool is preferred.

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 doesn't mention whether this is for initial discovery, filtering criteria, or how it relates to sibling tools like 'slack_get_channel_history' or 'slack_get_users'. The agent must infer usage context from the tool name alone.

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

slack_post_messageB

Post a new message to a Slack channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesThe ID of the channel to post to
textYesThe message text to post

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; the description only states the action. It does not disclose required permissions (scopes), whether the message is plain text or supports markdown, or any side effects like rate limits.

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, direct sentence with no wasted words. It is sufficiently concise but could benefit from a slightly structured format.

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 tool with 2 parameters and no output schema, the description is minimal. It lacks information about the return value (e.g., message ID) and error cases, but is acceptable for basic usage.

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 both parameters. The description adds no extra meaning beyond what the schema provides, so 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 (Post), resource (new message), and target (Slack channel). It distinguishes from siblings like slack_reply_to_thread and slack_add_reaction.

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 on when to use this tool versus alternatives (e.g., reply vs post, or when formatting is supported). The description lacks context about prerequisites or use cases.

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

slack_reply_to_threadB

Reply to a specific message thread in Slack

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesThe ID of the channel containing the thread
thread_tsYesThe timestamp of the parent message in the format '1234567890.123456'. Timestamps in the format without the period can be converted by adding the period such that 6 numbers come after it.
textYesThe reply text

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only mentions the action 'reply' but does not disclose any traits like rate limits, formatting constraints, required permissions, or what happens on invalid thread_ts.

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?

Single sentence, no fluff. It is appropriately sized for a simple action, though could be more informative.

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 3 required params, no output schema, and no annotations, the description is adequate but lacks details on return value or error scenarios. It covers the basic purpose but 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%; the description adds no additional meaning beyond what the schema already provides. 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 clearly states the verb 'reply', the resource 'specific message thread', and the platform 'Slack'. It is specific and distinguishes from siblings like slack_post_message (for new messages) and slack_get_thread_replies (for reading).

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 on when to use this tool versus alternatives like slack_post_message. No mentions of prerequisites, best practices, or when not to use.

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. 8 tool updatesv1.0.0
    • First observedslack_add_reaction
    • First observedslack_get_channel_history
    • First observedslack_get_thread_replies
    • First observedslack_get_user_profile
    • First observedslack_get_users
    • First observedslack_list_channels
    • First observedslack_post_message
    • First observedslack_reply_to_thread

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific Slack operations: adding reactions, retrieving channel history, fetching thread replies, getting user profiles, listing users, listing channels, posting messages, and replying to threads. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tool names follow a consistent 'slack_verb_noun' pattern using snake_case, such as slack_post_message and slack_get_user_profile. This uniformity makes the tool set predictable and easy to navigate.

Tool Count5/5

With 8 tools, the server is well-scoped for a Slack integration, covering essential messaging, user management, and channel operations. Each tool serves a clear purpose without redundancy, making the count appropriate for the domain.

Completeness4/5

The tool set provides strong coverage for core Slack workflows, including message posting, reactions, threading, and user/channel listing. Minor gaps exist, such as updating or deleting messages, but agents can likely work around these with the available tools.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Slack workspaces through comprehensive integration capabilities. Supports channel management, messaging, thread replies, reactions, and message history retrieval through natural language commands.
    61 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with Slack workspaces through comprehensive channel management, messaging, direct messages, search functionality, and user management capabilities.
    30
    9 npm
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Slack workspaces through natural language, supporting channel management, message operations, user profiles, reactions, and threaded conversations.
    -