Skip to main content
Glama
farsght

slack-user-mcp-server

by farsght

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool targets a distinct Slack operation: searching messages, listing channels, fetching channel history, posting messages, looking up users, getting user details, testing auth, and fetching thread replies. There is no overlap that would confuse an agent.

    Naming Consistency5/5

    All tool names follow the consistent pattern 'slack_<verb>_<noun>', with clear verbs like search, list, get, post, lookup, and auth_test. This provides a predictable and readable naming convention.

    Tool Count5/5

    With 8 tools, the server is well-scoped for its purpose. It covers the essential Slack operations without unnecessary bloat or missing critical functions.

    Completeness4/5

    The tool set covers core workflows: searching, reading history, posting messages, handling threads, and user operations. Minor gaps exist, such as message editing/deleting or adding reactions, but these are not critical for typical Slack automation and can be worked around.

  • Average 4.1/5 across 8 of 8 tools scored. Lowest: 3.2/5.

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

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is failing
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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?

    Annotations already cover read-only and idempotent behavior, but the description claims 'all replies' while the schema includes a limit parameter with default 100 and maximum 200. This is misleading and no disclosure is made about truncation or pagination behavior, so the description adds value that conflicts with actual 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 compact and front-loaded with the main purpose, followed by a simple Args list. It is efficient but slightly incomplete because it lists only two parameters while the schema defines three, and the return description is minimal.

    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 moderate complexity and the presence of strong annotations and a complete schema, the description provides adequate basic information. However, it lacks mention of the limit parameter's effect, returns a vague 'list of messages' without field details, and fails to provide usage context. These gaps make it only minimally 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% for all three parameters, and the description merely repeats channel and thread_ts without adding syntax or format details. The optional limit parameter is omitted from the description, so no additional semantic benefit is provided beyond 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 states 'Fetch all replies in a Slack thread' with a clear verb and resource, and it is unambiguous among sibling tools like channel history or search. The inclusion of required parameters channel and thread_ts reinforces the specific 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?

    No guidance is provided about when to use this tool versus alternatives such as slack_get_channel_history or slack_search_messages. The thread-specific context is implied but not explicitly contrasted, so an agent may not know which tool is best for a given scenario.

    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?

    Annotations already declare the tool safe (readOnlyHint=true, destructiveHint=false, idempotentHint=true). The description adds that it returns a user profile with id, name, email, title, timezone, and status, which is useful but not extensive beyond what annotations already imply.

    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 succinct and well-structured: a one-sentence purpose, followed by a labeled Args section and a Returns section. Every sentence contributes value without redundancy.

    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 one-parameter read tool, the description covers purpose, parameter, and return shape. It lacks an explicit comparison to slack_lookup_user, but overall it provides sufficient context given the simple nature and strong annotations.

    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 description merely repeats the same parameter info ('user_id (string): Slack user ID (e.g. U012AB3CD)'). No additional semantic meaning is provided 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 clearly states the verb and resource: 'Get detailed profile information for a specific Slack user by their user ID.' It is specific enough to differentiate from searching messages or channels, though it does not explicitly distinguish itself from the sibling 'slack_lookup_user'.

    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?

    Usage context is implied: the tool should be used when you have a Slack user ID and need detailed profile info. However, no explicit guidance is given on when to prefer this over alternatives like slack_lookup_user, and no exclusions are mentioned.

    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?

    Annotations already declare readOnlyHint and idempotentHint, so the description adds the detail about using the user token and limiting access to channels the user is a member of. This is valuable behavioral context beyond what annotations provide.

    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 opens with a clear purpose sentence, then lists parameters in a structured format, and closes with a return value line. It is concise, front-loaded, and contains no fluff.

    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, strong annotations, and complete schema, the description covers purpose, parameters, and return value. It lacks details on pagination or edge cases but is adequate for typical use.

    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 includes descriptions, defaults, and ranges for all parameters. The description repeats many of these (e.g., channel examples, limit range) but adds no significant new meaning, so baseline 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 'Fetch recent messages from a Slack channel, DM, or group message' with a specific verb and resource. It distinguishes this tool from siblings like slack_post_message (send) and slack_search_messages (search) by focusing on retrieving history.

    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 useful context: it uses the user token and works for any channel the user is a member of, which helps decide when to use it. It does not explicitly name alternatives or exclusions, but the usage context is clear.

    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?

    Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds valuable context: the return format (list of channels with id, name, topic, purpose, member count) and pagination behavior via cursor. It also clarifies the filtering capability. This exceeds the baseline given the strong annotations.

    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 well-structured: a clear opening sentence, a formatted Args section, and a Returns line. While the Args section duplicates some schema information, it doesn't feel bloated. It front-loads the purpose and keeps parameter details in a readable list. Minor redundancy with the schema prevents a top score.

    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 no output schema, the description is nearly complete. It explains what is returned, covers all parameters, and notes the 'access' scope. It doesn't mention edge cases like partial results (though openWorldHint may cover this), but the core behavior is well explained. Slightly more context on pagination would elevate it.

    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 enhances the schema by enumerating valid values for 'types' (public_channel, private_channel, mpim, im) and clarifying the 'cursor' param as 'from a previous response'. These details add meaningful semantics beyond the schema descriptions.

    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 resource ('Slack channels') with a clear scope ('you have access to'). It distinguishes itself from sibling tools like slack_search_messages and slack_get_channel_history by focusing on channel enumeration, and it mentions a filtering option (channels you've joined). This is unambiguous and differentiates from alternatives.

    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 to use this tool (listing accessible channels) and notes a specific filter (only joined channels). However, it does not explicitly mention when not to use it or name alternative tools, so it stops short of a 5. The usage is clear enough from the description and sibling list.

    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?

    The annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds the return format (list of users with id, name, email, title, status), which is valuable since there is no output schema. However, it does not disclose behavior like rate limits, pagination, or match semantics, so it doesn't fully exceed the annotation baseline.

    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 compact and well-structured, with a lead sentence followed by Args and Returns sections. No redundancy or fluff, though the Args section mirrors the schema.

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

    Completeness5/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 one parameter and no output schema, this description adequately covers purpose, parameter, and return fields. It is self-contained and sufficient for an agent to invoke correctly.

    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_description_coverage is 100% and the description's Args section repeats the schema exactly. No additional parameter meaning or usage details are provided, 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 'Search for Slack users by name or email address', providing a specific verb and resource. This distinguishes it from sibling tools like slack_get_user_info, which likely retrieves a single user by ID rather than searching.

    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 conveys the intended use case (finding users by name/email) but does not explicitly mention alternatives or exclusions. It lacks a direct comparison to slack_get_user_info for known user IDs, so it earns a 4 rather than 5.

    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?

    The description adds behavioral context beyond annotations: it specifies that messages are sent as the user (not a bot), supports Slack mrkdwn formatting, can post as a thread reply, and returns a confirmation with timestamp and channel. This complements the annotations (readOnly=false, idempotent=false) without contradicting them.

    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 concise and well-structured with Args and Returns sections. Every sentence contributes useful information: purpose, parameters, and return value, with no redundancy or padding.

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

    Completeness5/5

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

    For a simple 3-parameter tool with full schema coverage and informative annotations, the description covers purpose, parameter semantics, and return value. It provides sufficient context for an AI agent to select and invoke the tool correctly without missing critical 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?

    The input schema already has complete descriptions for all three parameters (100% coverage). The description adds minor examples (e.g., channel ID format) and clarifies the thread behavior, but it largely mirrors the schema, providing only marginal added value beyond the structured data.

    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 ('Post') and resource ('Slack channel or DM'), and explicitly states it posts as the user account. This clearly distinguishes it from sibling tools that are all read/search oriented.

    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 the tool's purpose clear, and given that all sibling tools are read-only, it is obvious this is the tool for sending messages. However, it does not explicitly mention alternatives or provide when-not-to-use guidance, so it doesn't fully meet the 'explicit alternatives' bar.

    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?

    Annotations already declare readOnlyHint and idempotentHint. The description adds valuable context: it uses your user token, includes channels/DMs/group messages, and supports rich search modifiers. This goes beyond the annotations without contradicting them.

    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 well-structured with sections for modifiers, args, returns, and examples. It is slightly lengthy but every section earns its place given the complexity of Slack search syntax and pagination.

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

    Completeness5/5

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

    The description includes the return format (text, author, channel, timestamp, permalink), pagination via the page parameter, and multiple practical examples. Since there is no output schema, this fully bridges the gap and gives the agent complete expectations.

    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 covers 100% of parameters, so baseline is 3. The description adds extra meaning by explaining Slack search modifiers, providing example queries, and confirming defaults for sort, count, and page. This helps the agent construct effective queries beyond the raw 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 it 'searches messages across your entire Slack workspace' using the Slack search API, with specific verb, resource, and scope. This distinguishes it from sibling tools like slack_get_channel_history or slack_get_thread, which operate on a single channel or thread.

    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 on when to use this tool: when you need to search across channels, DMs, and group messages using your user token. It notes that it searches 'everything you have access to,' which implies the broad use case, but it does not explicitly name alternatives or state when not to use it.

    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?

    Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is well-covered. The description adds value by explicitly stating it returns user ID, username, team name, and team ID, and that it verifies the connection—useful context beyond the annotations.

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

    Conciseness5/5

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

    The description is extremely concise: two short sentences, front-loaded with the primary purpose, and no fluff. Every sentence earns its place.

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

    Completeness5/5

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

    For a simple no-parameter auth test tool, the description fully covers the behavior, return values, and use case. Annotations provide safety context, and the description fills in return details that would otherwise be absent. No output schema exists, but the description covers that need.

    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?

    With zero parameters and 100% schema coverage, the schema already tells the agent nothing is required. The description reinforces this with 'Takes no arguments', so the agent can confidently infer no inputs are needed. This meets the baseline for zero-parameter tools.

    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 specific verbs ('check', 'verify') and clearly identifies the resource (the Slack identity associated with the token). It distinguishes this tool from siblings like slack_lookup_user and slack_get_user_info by focusing on the authenticated user's own identity, not arbitrary 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 clearly implies the primary use case: verifying connection and retrieving self-identity. It notes that it takes no arguments and lists return values, giving enough context. However, it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.

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

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

slack-user-mcp-server MCP server

Copy to your README.md:

Score Badge

slack-user-mcp-server 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/farsght/slack-user-mcp-server'

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