Skip to main content
Glama
karbassi

slack-mcp

by karbassi

Slack MCP

Your entire Slack workspace — available to any AI.

Python License

A Model Context Protocol server that gives LLMs full access to Slack. Messages, channels, files, canvases, lists, search, reactions — all of it.

253 tools · 37 API families · Every Slack feature


Quick Start

1. Create a Slack App

  1. Go to api.slack.com/apps > Create New App > From a manifest

  2. Paste the contents of manifest.json

  3. Install to your workspace

  4. Copy the User OAuth Token (xoxp-...) from OAuth & Permissions

2. Add to your AI client

claude mcp add slack -- uvx --from git+https://github.com/karbassi/slack-mcp.git slack-mcp

Then set SLACK_XOXP_TOKEN in your shell environment.

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
      "env": {
        "SLACK_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
      "env": {
        "SLACK_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
      "env": {
        "SLACK_XOXP_TOKEN": "xoxp-..."
      }
    }
  }
}

Add to your VS Code settings.json:

{
  "mcp": {
    "servers": {
      "slack": {
        "command": "uvx",
        "args": ["--from", "git+https://github.com/karbassi/slack-mcp.git", "slack-mcp"],
        "env": {
          "SLACK_XOXP_TOKEN": "xoxp-..."
        }
      }
    }
  }
}
{
  "mcpServers": {
    "slack": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "--directory", "/path/to/slack-mcp", "slack-mcp"]
    }
  }
}

Related MCP server: Slack MCP Server

What Can It Do?

"Catch me up on #engineering from today" "Reply to Sarah's thread saying we'll ship it Monday" "Search for anything about the Q3 roadmap" "Create a channel called #project-atlas and invite the design team"

Domain

Tools

Highlights

Conversations

31

History, threads, replies, create, archive, invite, mark read, team connections, suggestions

Undocumented

38

Drafts, saved items, emoji management, granular search, sidebar, threads, activity inbox, DMs, AI unread summary + digests, Today view, Connect invites

Files

19

Upload, share, edit, list, remote files, shares, recently deleted, favorites

Chat

13

Send, reply, schedule, update, delete, ephemeral, stream

Users

15

Profile, presence, lookup, list, profile extras/sections, custom statuses

Lists

15

Create, edit items, manage access, my assigned items, templates, records

Legacy

11

Slash commands, file editing, bot listing

Team

9

Info, preferences, access logs, billing

Apps

9

Manifests, connections, authorizations, activities

Workflows

8

Featured workflows, step completion, workflow/trigger listing

Usergroups

7

Create, update, manage members

Canvases

7

Create, edit, sections, access control, templates

Calls

6

Start, end, manage participants

+ 24 more

Calendar, DND, reminders, bookmarks, reactions, pins, stars, views, search, auth, bots, emoji, ...

Plus resolve_names (bulk ID→name resolution) and cache_clear (bust the response cache on demand) utility tools.

Beyond the Official API

68 undocumented and legacy endpoints — the same internal APIs that Slack's own apps use. Requires session tokens (xoxc+xoxd).

Endpoint

What it provides

client.boot

Full workspace bootstrap — channels, users, prefs, feature flags

client.counts

Unread counts per channel/DM/thread plus mention counts

client.userBoot

User-specific bootstrap data scoped to the authenticated user

threads.getView

Thread inbox — the list of threads with read/unread state

subscriptions.thread.getView

My threads with unread reply counts — "catch me up on my threads"

subscriptions.thread.mark

Mark individual threads as read or unread

client.dms

Open DMs and group DMs (ims + mpims)

activity.feed

Activity inbox — mentions, reactions, replies, reminders, invites

drafts.list

List all unsent message drafts

drafts.create

Create a message draft with Block Kit text

drafts.update

Edit an existing draft

drafts.delete

Delete a draft

saved.list

List saved-for-later items

saved.get

Fetch specific saved-for-later items by id

saved.add

Save a message for later with optional due date

saved.delete

Remove a saved-for-later item

lists.getMyItems

Slack List tasks and approvals assigned to me

emoji.add

Add a custom emoji from a URL

emoji.remove

Remove a custom emoji

emoji.adminList

Emoji with rich metadata — uploader, date, usage stats

search.modules.messages

Granular message search

search.modules.files

File-specific search

search.modules.channels

Server-side channel search by name or topic

search.modules.people

Fuzzy people search by name, title, department

search.modules.dms

Search within DMs only

conversations.view

Channel view with read state and personal config

conversations.listPrefs

Per-channel notification and mute preferences

users.channelSections.list

Sidebar organization — custom sections, favorites

users.priority.list

Contacts ranked by interaction frequency

experiments.getByUser

A/B test experiment assignments

api.features

Workspace feature flags

aiApps.list

AI applications configured in the workspace

ai.alpha.summarize.unreadsSnapshot

AI summary of unread messages — "summarize what I missed"

ai.alpha.digest.list

Slack's AI recaps/digests of activity across channels

subscriptions.thread.get

Subscription/read state for a single thread

today.items.list

Today view items (suggested to-dos, highlights)

connectInvites.list

Pending Slack Connect channel and DM invites

conversations.teamConnections

Slack Connect connections for a channel

conversations.suggestions

Suggested channels for the user

conversations.bulkReacjiTriggers

Per-channel reacji (auto-reaction) triggers

lists.templates

Available Slack List templates

lists.records.list

Records/items within a given Slack List

calendar.getInstalledCalendars

Connected calendars (gcal, ocal)

calendar.user.status

The user's current calendar status

canvases.getCannedTemplates

Available canvas templates

emoji.collections.list

Installed and available emoji packs

files.getShares

Where a file is shared (channels, tabs, viewer count)

files.recentlyDeleted

Recently deleted files

files.favorites.list

Favorited files

functions.workflows.list

Workflows and their triggers

workflows.triggers.list

Triggers, filterable by app

users.profile.getExtras

Profile extras — shared channels, onboarding state

users.profile.getSections

Custom profile sections

users.customStatus.list

Saved and scheduled custom statuses

search.inline

Inline/quick search scoped to a channel or user

search.save

Save a search

enterpriseSearch.getConnectors

Configured enterprise search connectors

Endpoint

What it provides

chat.command

Execute slash commands programmatically

commands.list

List all slash commands including custom ones

files.edit

Edit a file's title, content, or filetype in-place

files.share

Share a file to a channel

bots.list

List all bot users in the workspace

team.prefs.get

Team-level preferences — retention, permissions, domains

users.prefs.get

All user preferences — notifications, sidebar, theme

users.prefs.set

Set any individual user preference

users.admin.invite

Invite users by email (Enterprise Grid)

users.admin.setInactive

Deactivate a user account (Enterprise Grid)

channels.delete

Dead method — included for completeness

WARNING

Undocumented endpoints can break without notice. They use session tokens (xoxc+xoxd) which expire and must be re-grabbed from browser cookies.

Authentication

Variable

Required

Description

SLACK_XOXP_TOKEN

Yes

User OAuth token from your Slack app

SLACK_XOXC_TOKEN

No

Browser session token for undocumented endpoints

SLACK_XOXD_TOKEN

No

Browser session cookie (paired with xoxc)

TIP

Thexoxp token covers all Slack Web API tools. Utility tools like resolve_names and cache_clear work without additional auth. For undocumented endpoints (unread counts, workspace boot, file editing), you also need xoxc+xoxd — grab them from your browser cookies while logged into slack.com.

Caching

Responses are cached automatically to reduce API calls:

  • Stable data (users, teams, bots, emoji) — 1 hour TTL

  • Dynamic data (channel lists, members, bookmarks) — 5 minute TTL

  • Old threads (conversations_replies with ts > 1 hour old) — 1 hour TTL

  • Bounded history (conversations_history with old date range) — 1 hour TTL

  • Resolved names (user/bot → 1 hour, channel → 5 minutes)

Cache is stored at the platform-native location (~/Library/Caches/slack-mcp on macOS, ~/.cache/slack-mcp on Linux). Set XDG_CACHE_HOME to override.

Use the cache_clear tool to bust the cache when you need fresh data.

Name Resolution

All tool responses automatically resolve user, channel, DM, and bot IDs to display names via a resolved_names field — no extra tool calls needed. Resolved names are disk-cached to avoid redundant API lookups.

Response Compaction

15 high-volume tools automatically strip bloat from Slack API responses — blocks (duplicates text), attachments (link unfurls), thumbnails (22 per file), and metadata noise. Measured reductions:

Endpoint

Before

After

Reduction

conversations.history

465 KB

113 KB

76%

files.list

127 KB

26 KB

80%

conversations.list

59 KB

17 KB

71%

reactions.list

353 KB

167 KB

53%

Compaction is on by default. Pass detailed=True to any compactable tool to get the full Slack API response.

Development

git clone https://github.com/karbassi/slack-mcp.git
cd slack-mcp
uv sync
uv run pre-commit install            # ruff + ty on every commit
mise run check                       # test + lint + security scan
mise run test:integration            # requires tokens in .env
NOTE

~68 integration tests are skipped because they require a bot token (xoxb), Slack Connect, interactive triggers (e.g. views.open), or would be destructive (e.g. auth.revoke). Adding bot token support is a future goal.

License

MIT

Available Tools

224 tools
ai_apps_listB

List AI apps in the workspace (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only notes 'undocumented session endpoint', which implies potential instability or session requirements, but lacks details on read-only nature, pagination, or error behavior.

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

Conciseness4/5

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

The description is a single sentence, clear and front-loaded. It could include more context without being verbose, but earns high marks for brevity.

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 output schema exists, return values are covered. However, the description lacks clarity on the scope of 'AI apps', any limitations, or authentication requirements, making it just adequate.

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?

No parameters exist (0 params), so the description does not need to add parameter meaning. Baseline score is 4 for zero parameters.

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

Purpose5/5

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

The description states a specific action ('List') and resource ('AI apps') in a workspace. No sibling tool mentions AI apps, so it clearly distinguishes its 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 on when to use this tool vs alternatives. The note 'undocumented session endpoint' hints at instability but does not provide when-not-to-use or alternative tools.

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

api_featuresA

Get workspace feature flags (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only hints at instability ('undocumented session endpoint') but does not detail auth needs, side effects, rate limits, or other behavioral traits.

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 purpose. Every word earns its place; no 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?

The tool has low complexity (no parameters) and includes an output schema, so return values need not be explained. The description's caveat ('undocumented') adds necessary caution. Adequately complete for the tool's simplicity.

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?

No parameters exist (0), and schema coverage is 100%. Baseline score is 4 as per rules. The description adds the undocumented endpoint qualifier, providing useful context beyond the empty schema.

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

Purpose5/5

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

The description clearly states the tool retrieves workspace feature flags, using a specific verb and resource. It distinguishes itself from sibling tools by noting it's an undocumented session endpoint, which is unique among the listed siblings.

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. The description only mentions it's undocumented, which implies caution but does not provide explicit when-to-use or when-not-to-use context.

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

api_testC

Check API calling code. Helps test your calling code.

ParametersJSON Schema
NameRequiredDescriptionDefault
fooNoExample property to return in the response (echoed back as ``args.foo``).
errorNoError response to return. If set, the call responds with an error of this value.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are present. The description only says 'test your calling code' without disclosing that it echoes a parameter or returns an error, nor whether it has side effects. The minimal description fails to compensate for missing 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 concise with two sentences and no extraneous information. However, it could be more informative within the same length, so it earns a 4 rather than 5.

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

Completeness2/5

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

Despite the presence of an output schema, the description does not explain the tool's behavior fully, such as default behavior when no parameters are set. For a testing tool among many operational tools, more context is needed.

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 the schema already describing the parameters clearly (echo foo, return error). The description adds no additional meaning, 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.

Purpose3/5

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

The description 'Check API calling code. Helps test your calling code' is vague and does not specify what exactly is checked or tested. It distinguishes from siblings as a test tool but lacks specificity about actions like echoing parameters or returning errors.

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 vs alternatives. Among many sibling tools, there is no mention of use cases or exclusions, leaving the agent without context for selection.

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

apps_activities_listB

Get logs for a specified workflow app.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of log entries to return.
app_idYesThe app whose activity logs to return.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
sourceNoOrigin of logs: ``slack`` or ``developer``.
team_idNoWorkspace to scope logs to (org-wide tokens).
min_log_levelNoMinimum severity: ``trace``, ``debug``, ``info``, ``warn``, ``error``, or ``fatal``.
component_typeNo``events_api``, ``workflows``, ``functions``, or ``tables``.
log_event_typeNoFilter to a specific event type.
sort_directionNo``asc`` or ``desc``.
max_date_createdNoLatest creation time, epoch microseconds.
min_date_createdNoEarliest creation time, epoch microseconds.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/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. It only says 'Get logs' implying a read operation, but does not disclose pagination behavior, rate limits, data scope (e.g., per-app filtering beyond the required app_id), or whether logs are real-time or historical.

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, efficient and to the point, with no wasted words. It clearly communicates the core action, though it might benefit from slightly more context.

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

Completeness2/5

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

Despite high schema coverage and an output schema, the description omits high-level context such as the purpose of filtering parameters (e.g., source, date range) and the nature of returned logs. A tool with 11 parameters deserves a description that summarizes key capabilities beyond the bare minimum.

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 is 3. The description adds no extra meaning; it simply states the tool's purpose without elaborating on any parameters.

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

Purpose5/5

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

The description clearly states the tool retrieves logs for a specified workflow app, with a specific verb ('Get') and resource ('logs'), and distinguishes it from sibling tools like 'ai_apps_list' (which lists apps) and apps_manifest_* (which manage app manifests).

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 alternative logging or app-related tools. There is no mention of prerequisites, use cases, or comparisons with siblings.

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

apps_connections_openA

Generate a temporary Socket Mode WebSocket URL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It mentions the URL is 'temporary' but does not elaborate on expiration, how to use the URL, or any side effects. This lack of behavioral detail is a significant gap.

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

Conciseness5/5

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

The description is a single sentence that is concise and front-loaded. Every word is necessary and contributes to understanding the tool's function.

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 tool with no parameters and an output schema. It explains the core function but could benefit from mentioning when to use Socket Mode vs other connection methods. Still, it is minimally complete.

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?

There are no parameters, so the schema coverage is 100%. The description adds no parameter-specific info, which is acceptable since none are needed. Baseline for zero parameters is 4.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Generate a temporary Socket Mode WebSocket URL.' It uses a specific verb ('generate') and resource ('Socket Mode WebSocket URL'), and distinguishes it from sibling tools like rtm_connect and rtm_start, which handle different connection types.

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, nor any prerequisites or contextual usage advice. The description simply states what it does without helping the agent decide when to invoke it.

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

apps_event_authorizations_listA

Get a list of authorizations for the given event context.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of authorizations to return.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
event_contextYesThe ``event_context`` value from the event payload to look up authorizations for.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'Get' (implying read-only) but does not elaborate on safety, permissions, rate limits, or any side effects. This is insufficient given the absence of 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 a single, front-loaded sentence that states the essential information without any fluff. Every word is necessary for understanding the tool's function.

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 a well-documented schema and an output schema, the description is sufficiently complete. It could mention pagination implications briefly, but overall it covers the core purpose.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents each parameter. The description adds no extra meaning beyond what the schema provides, meeting the baseline of 3.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'authorizations', and it specifies the context 'for the given event context', making the tool's purpose unambiguous. It effectively distinguishes from siblings as no other tool targets event authorizations.

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 when needing authorizations for an event context but provides no explicit guidance on when not to use it or alternatives. Given the specificity of the tool, this is minimally adequate.

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

apps_manifest_createB

Create an app from an app manifest.

ParametersJSON Schema
NameRequiredDescriptionDefault
manifestYesThe app manifest, as a JSON-encoded string, describing the app to create.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as permissions needed, side effects, or whether the tool overwrites existing apps. It only states the basic action.

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

Conciseness4/5

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

The description is a single sentence that directly states the purpose, making it concise and front-loaded. However, it could include a bit more context without becoming verbose.

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 that the tool has one parameter with full schema coverage and an output schema, the description is minimally adequate but lacks helpful context about the manifest format or expected 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 description coverage is 100% for the single parameter 'manifest'. The description adds no extra meaning beyond the schema, so it meets the baseline but does not enhance understanding.

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 'Create an app from an app manifest' uses a specific verb ('Create') and resource ('app') and clearly distinguishes this tool from siblings like apps_manifest_update, apps_manifest_delete, and apps_manifest_validate.

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 vs alternatives, no prerequisites, and no context about valid manifest requirements.

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

apps_manifest_deleteA

Permanently deletes an app created through app manifests.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesID of the app to delete (e.g. ``A0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It discloses permanence but omits required permissions, side effects (e.g., on installed instances), rate limits, or any other behavioral traits beyond the action itself.

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?

Extremely concise single sentence with no wasted words. Front-loaded with the key 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?

Given low complexity (1 param) and presence of output schema, the description is minimally adequate. However, it lacks context on when to use (e.g., prerequisites, conditions) and could be 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 coverage is 100%, and the parameter description in the schema is clear. The tool description adds no additional context about the parameter or its format 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?

Description clearly states the action (permanently deletes) and the resource (app created through app manifests). It distinguishes from sibling tools like apps_manifest_create (create) and apps_manifest_update (update) by specifying deletion.

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?

Implicitly suggests usage when deleting an app manifest, but lacks explicit guidance on when to use vs. alternatives like apps_uninstall. No exclusions or prerequisites mentioned.

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

apps_manifest_exportB

Export an app manifest from an existing app.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesID of the app whose manifest to export (e.g. ``A0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/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. It does not disclose whether the operation is read-only, what the output format looks like, or any potential side effects. This is insufficient for a comprehensive understanding.

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 concise sentence with no wasted words. It is front-loaded but could be slightly more informative without becoming verbose.

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 is simple with one parameter and an output schema exists, the description is minimally adequate but lacks additional context about the manifest or usage. It does not fully leverage the opportunity to provide completeness.

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

Parameters3/5

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

Schema coverage is 100% for the single app_id parameter, so the baseline is 3. The description does not add any additional meaning beyond what is already in the schema.

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

Purpose5/5

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

The description clearly states the verb 'export' and the resource 'app manifest' from an existing app. It is specific and distinguishes well from sibling tools like create, delete, update, and validate.

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 or when not to use it. There is no mention of prerequisites or context, which is a significant gap given the many related manifest tools.

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

apps_manifest_updateA

Update an app from an app manifest.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesID of the app to update (e.g. ``A0123``).
manifestYesThe updated app manifest, as a JSON-encoded string.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It only states 'Update,' which is a write operation, but fails to disclose side effects, idempotency, or error states. It is minimally adequate but lacks depth.

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, focused sentence with no unnecessary words. It is front-loaded and efficient.

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

Completeness3/5

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

Given the tool's simplicity (2 params, output schema exists), the description covers the basic action. However, it omits context about JSON validation or error handling, making 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 coverage is 100%, so the schema already documents both parameters (app_id and manifest). The description adds no additional meaning or constraints beyond what the schema provides.

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 'Update an app from an app manifest,' using a specific verb and resource. It distinguishes from sibling tools like apps_manifest_create and apps_manifest_delete. However, it lacks detail on what exactly is updated (the manifest itself) and does not explicitly contrast with apps_manifest_validate.

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

Usage Guidelines3/5

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

The description implies usage for updating an app's manifest, but provides no explicit guidance on when to use vs alternatives (e.g., when to validate first with apps_manifest_validate). No prerequisites or context are given.

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

apps_manifest_validateB

Validate an app manifest.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idNoID of an existing app to validate the manifest against (e.g. ``A0123``).
manifestYesThe app manifest, as a JSON-encoded string, to validate.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations; the description does not disclose behavioral aspects such as whether it is read-only, what validation rules apply, or if it requires connectivity.

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

Conciseness5/5

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

Single sentence with no waste; efficient and to the point.

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

Completeness2/5

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

Despite an output schema existing, the description lacks context about validation results, errors, or expected manifest structure. Incomplete for a validation 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 coverage is 100%; description adds no additional meaning beyond the schema definitions. Baseline 3.

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

Purpose5/5

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

The description 'Validate an app manifest' uses a specific verb ('validate') and distinct resource, clearly differentiating from sibling tools like create, update, delete, and export.

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 validation (e.g., before create/update) or when not to. Alternatives are not mentioned.

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

apps_uninstallB

Uninstall your app from a workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_idYesYour app's client ID.
client_secretYesYour app's client secret.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations present, so description must disclose behaviors. It implies destruction but does not clarify required permissions, side effects, or idempotency. Lacks depth.

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

Conciseness5/5

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

Single sentence, no fluff, directly states the purpose. Efficient and front-loaded.

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?

Output schema exists, so return values are covered elsewhere. However, description lacks usage context (e.g., authentication, ownership). Minimally sufficient for a simple tool 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 coverage is 100%, so baseline 3. Description does not add any meaning beyond the schema; it merely restates the existence of client_id and client_secret.

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?

Description clearly states the tool uninstalls an app from a workspace, using specific verb 'Uninstall' and resource 'your app'. It distinguishes from sibling tools like apps_manifest_delete.

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 or context provided. Just a bare statement of action.

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

assistant_search_contextA

Search messages, files, channels, and users to provide context to an AI assistant.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo``score`` (relevance) or ``timestamp`` (recency).
afterNoOnly results after this UNIX timestamp.
limitNoResults per page (max 20).
queryYesThe search query or user prompt, e.g. ``"What is project gizmo?"``.
beforeNoOnly results before this UNIX timestamp.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
sort_dirNoSort direction — ``asc`` or ``desc``.
action_tokenNoRequired when calling with a bot token; not needed for user tokens.
include_botsNoInclude messages from bots in results.
channel_typesNoComma-separated: ``public_channel``, ``private_channel``, ``mpim``, ``im``.
content_typesNoComma-separated: ``messages``, ``files``, ``channels``, ``users``.
context_channel_idNoChannel to bias results toward.
include_context_messagesNoReturn surrounding messages for each match.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description lacks disclosure of behavioral traits such as pagination behavior, authentication requirements, rate limits, or what the response contains. The description is too brief to inform about side effects or guarantees.

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

Conciseness5/5

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

The description is a single sentence of 14 words, front-loading the verb and key resources. No extraneous information, every word adds value.

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 high parameter count (13) and lack of annotations, the description is minimal. However, there is an output schema (not shown) which compensates for missing return value explanation. Still, more context on parameter usage would improve completeness.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters have descriptions in the input schema. The description does not add additional meaning beyond the schema, meeting the baseline of 3.

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

Purpose5/5

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

The description clearly states the verb 'Search' and the resources 'messages, files, channels, and users', with the specific purpose 'to provide context to an AI assistant'. It distinguishes from sibling search tools like search_all and search_messages by focusing on assistant context.

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

Usage Guidelines3/5

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

The description implies usage for AI assistant context but does not explicitly state when to use this tool versus alternatives like search_all or assistant_search_info. No when-not or exclusion criteria are provided.

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

assistant_search_infoB

Get search capabilities for the team.

Returns whether AI/semantic search is available (is_ai_search_enabled).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 must fully convey behavioral traits. It implies a read-only operation but does not explicitly state it is idempotent, non-destructive, or safe.

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, consisting of two short sentences that convey purpose and return value without any waste.

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

Completeness4/5

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

For a tool with no parameters and a simple boolean return, the description provides essential information. However, it could note typical usage or relationship to siblings for better completeness.

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?

There are no parameters, so the description correctly implies no input is needed. Schema coverage is 100%, and the description adds no additional parameter meaning, which 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 it retrieves search capabilities (specifically AI/semantic search availability) and returns a boolean. However, it does not differentiate from sibling tools like assistant_search_context.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description lacks context on appropriate use cases or exclusions.

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

assistant_threads_set_statusA

Set the status for an AI assistant thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesStatus text to display, e.g. ``"is thinking..."``. Empty string clears the status.
thread_tsYesTimestamp of the parent assistant thread (e.g. ``1700000000.000100``).
channel_idYesID of the channel containing the assistant thread (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, and the description only says 'Set the status' without revealing side effects, authorization needs, or idempotency. The input schema mentions clearing with empty string, but the description adds no behavioral context beyond mutation.

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

Conciseness5/5

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

The description is a single sentence of 10 words, entirely front-loaded, with no filler. Every word earns its place.

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

Completeness3/5

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

The tool is simple with only three parameters, but the lack of behavioral details (e.g., what happens to previous status) and no reference to the output schema leaves some gaps. Adequate for its complexity, but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter is already well-described. The description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Set the status for an AI assistant thread' clearly states the verb (set), resource (status), and scope (AI assistant thread), distinguishing it from sibling tools like set_title or set_suggested_prompts.

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 implies usage when needing to change the status of an assistant thread, but does not explicitly state when not to use it or mention alternatives. Still, the context is clear.

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

assistant_threads_set_suggested_promptsC

Set suggested prompts for an AI assistant thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoOptional heading shown above the suggested prompts.
promptsNoList of prompt objects, each with ``title`` and ``message`` keys.
thread_tsYesTimestamp of the parent assistant thread (e.g. ``1700000000.000100``).
channel_idYesID of the channel containing the assistant thread (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden. It does not disclose behavioral traits such as whether the operation overwrites or appends, whether it is idempotent, or any authorization requirements. The minimal description leaves crucial behavior unspecified.

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, making it efficient. However, it could be more informative without adding length.

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

Completeness2/5

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

Given the lack of annotations and the presence of an output schema, the description fails to provide essential context such as prerequisites (e.g., the thread must exist), error conditions, or what the operation returns. The tool has multiple parameters and sibling tools, but the description does not compensate for these 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?

The input schema has 100% coverage with descriptions for all four parameters. The tool description adds no additional meaning beyond what the schema already provides, achieving the baseline score.

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 action ('Set') and the resource ('suggested prompts for an AI assistant thread'), distinguishing it from sibling tools like assistant_threads_set_status and assistant_threads_set_title. However, it does not explicitly specify that the action replaces all existing prompts.

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 (e.g., when to use set_title vs set_suggested_prompts). No usage context or exclusions are mentioned.

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

assistant_threads_set_titleB

Set the title for an AI assistant thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle text to set for the thread.
thread_tsYesTimestamp of the parent assistant thread (e.g. ``1700000000.000100``).
channel_idYesID of the channel containing the assistant thread (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as whether this is a destructive operation, permissions required, or side effects. It merely states the action.

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

Conciseness5/5

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

Single, front-loaded sentence with no unnecessary words. Efficiently conveys the 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?

For a simple setter tool with 3 required parameters and an output schema (not shown), the description lacks details on return values, errors, or success indicators. It is adequate but not comprehensive.

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 all parameters. The tool description adds no additional meaning beyond what the schema already provides, 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?

Description clearly states the verb 'set' and the resource 'title for an AI assistant thread', distinguishing it from sibling tools like assistant_threads_set_status.

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 or any prerequisites. The description is too minimal to inform decision-making.

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

auth_revokeC

Revoke a token.

ParametersJSON Schema
NameRequiredDescriptionDefault
testNoWhen ``True``, validate the request but do not actually revoke the token.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It only says 'Revoke a token,' implying destructive action, but does not disclose side effects, authentication needs, or the test parameter's effect.

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

Conciseness3/5

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

The description is extremely concise (3 words) but omits important information about parameters and side effects. It is not optimally structured; a slightly longer description would improve usability.

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 that there is an output schema and a test parameter, the description is incomplete. It does not explain the return value or the behavior when 'test' is true.

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% coverage with a clear description for the 'test' parameter. The tool description adds no additional meaning beyond the schema, so a baseline 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 action (revoke) and resource (token), but it does not differentiate from sibling tools like tooling_tokens_rotate. It is specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description lacks any usage context.

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

auth_teams_listB

List the workspaces a token can access.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of workspaces to return per page (default ``100``).
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page.
include_iconNoWhen ``True``, include the workspace icon URLs in each team object.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as pagination behavior, rate limits, or authentication requirements. It only states the action without adding any transparency beyond the tool name.

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

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary words. It is front-loaded and efficient.

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

Completeness3/5

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

The tool has 3 parameters and an output schema. The description is brief but does not explain implicit context like pagination (though cursor parameter hints at it). It is minimally adequate but lacks completeness for a full understanding.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema fully describes the parameters (limit, cursor, include_icon). The description adds no additional meaning beyond what the schema provides, meeting the baseline for high coverage.

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

Purpose5/5

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

The description 'List the workspaces a token can access' uses a specific verb ('List') and resource ('workspaces'), clearly distinguishing it from sibling tools like auth_test or auth_revoke. It conveys the exact action and context.

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 (e.g., conversations_list, users_list). There are no prerequisites, exclusions, or context for its appropriate use.

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

auth_testA

Check authentication and get identity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether the tool is read-only, destructive, or requires specific permissions. For an authentication check, more transparency about side effects or safety would be beneficial.

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

Conciseness5/5

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

The description is a single sentence that directly conveys the purpose without any unnecessary words or repetition. It is front-loaded and efficient.

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 simplicity of the tool (no parameters, no annotations) and the presence of an output schema, the description provides adequate context for understanding its basic function. However, it could marginally benefit from mentioning any permissions or typical use cases.

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 no parameters, and the input schema covers them fully. According to guidelines, a baseline score of 4 is appropriate when no parameters exist, as the description need not compensate for missing parameter information.

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 'Check authentication and get identity' uses specific verbs and resources, clearly indicating the tool's function. It distinguishes itself from siblings like auth_revoke and auth_teams_list by focusing on authentication status and identity retrieval.

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 usage guidelines are provided. The description does not specify when to use this tool versus alternatives like session_test or api_test, nor does it mention any prerequisites or exclusions.

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

blocks_validateC

Validate an array of Block Kit blocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
blocksYesThe Block Kit blocks to validate.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether validation is read-only, what errors are returned, or side effects. The term 'validate' is vague without further detail.

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 concise sentence that is front-loaded and easy to parse, though it could include more detail without significant bloat.

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

Completeness2/5

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

Despite an output schema existing, the description is too minimal for a validation tool. It lacks details on validation scope, error handling, or expected input constraints, leaving the agent underinformed.

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 adds no extra meaning beyond the schema field description. Baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the tool validates Block Kit blocks, using a specific verb-resource pair. It distinguishes from similar sibling tools like apps_manifest_validate by specifying 'Block Kit blocks' rather than manifests.

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 or when to consider alternatives. With many sibling tools, explicit context for selection is missing.

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

bookmarks_addC

Add a bookmark to a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNoURL for the bookmark, required when ``type`` is ``link``.
typeYesType of the bookmark, e.g. ``link``.
emojiNoEmoji tag to apply to the bookmark (e.g. ``:books:``).
titleYesTitle (display name) for the bookmark.
entity_idNoID of the entity being bookmarked (used for non-link bookmark types).
parent_idNoID of this bookmark's parent, used to nest it under a bookmark folder.
channel_idYesID of the channel to add the bookmark to (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

The description provides no behavioral context beyond the literal meaning. It does not disclose permissions needed, side effects (e.g., duplicate handling), or constraints. Since annotations are absent, the description carries the full burden but fails to add value.

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, concise sentence. It is not verbose, but it could be more informative without losing conciseness.

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 tool has 7 parameters and potentially complex behavior (different bookmark types, nesting), the description is too minimal. It does not explain the purpose of optional parameters or variations in behavior, relying entirely on schema descriptions.

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 well-documented in the schema. The description does not add any additional meaning beyond what the schema already provides.

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 action ('Add') and the resource ('bookmark to a channel'). It differentiates from siblings like bookmarks_edit or bookmarks_remove by implying creation, but could be more explicit about being a create operation.

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 vs alternatives, nor any prerequisites or context. The description only states the basic action without any situational advice.

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

bookmarks_editB

Edit a bookmark in a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
linkNoNew URL for the bookmark.
emojiNoNew emoji tag for the bookmark (e.g. ``:books:``).
titleNoNew title (display name) for the bookmark.
channel_idYesID of the channel containing the bookmark (e.g. ``C0123``).
bookmark_idYesID of the bookmark to edit (e.g. ``Bk0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the burden of disclosing behavioral traits. It only indicates mutation ('edit'), but lacks details on side effects, permissions, rate limits, or reversibility. This is insufficient for an agent to fully understand the tool's 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 extremely concise at 5 words. It is front-loaded and efficient, but barely provides any information beyond the name. It earns points for being concise but loses some for under-specification.

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 tool has 5 parameters (2 required) and no annotations, the description is too minimal. It does not explain the editing process, prerequisites, or return value, even though an output schema exists. The description is incomplete for an agent to confidently use the tool.

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

Parameters3/5

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

The input schema has 100% description coverage, so the schema already documents all parameters. The description adds no extra meaning about the parameters, which is acceptable given the high schema coverage. 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 'Edit a bookmark in a channel' clearly states the action (edit) and the resource (bookmark in a channel). It distinguishes itself from sibling tools like bookmarks_add, bookmarks_list, and bookmarks_remove by specifying the edit operation.

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, no prerequisites, and no conditions for when not to use it. It only states the basic function, leaving the agent to infer usage from context.

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

bookmarks_listC

List bookmarks for a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesID of the channel whose bookmarks to list (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, and the description fails to disclose behavioral traits such as required permissions, pagination, default ordering, or error handling. The tool is a read operation, but transparency about what is returned or any constraints is absent.

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 very concise (one sentence) and front-loaded with the core action. While it lacks additional context, it is efficient and avoids unnecessary 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?

Given the simple single-parameter input and presence of an output schema, the description minimally covers the tool's purpose. However, it omits usage context, behavioral details, and edge cases, making it adequate but incomplete.

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 one parameter fully documented. The description adds no new meaning beyond the schema's description of channel_id. Baseline score 3 applies; no extra value contributed.

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 "List bookmarks for a channel" clearly states the action (list) and resource (bookmarks), and specifies the scope. The sibling tools include add/edit/remove, so the purpose is distinct, but the description does not explicitly differentiate beyond the name and basic action.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, limitations, or compare with other bookmark-related siblings.

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

bookmarks_removeB

Remove a bookmark from a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesID of the channel containing the bookmark (e.g. ``C0123``).
bookmark_idYesID of the bookmark to remove (e.g. ``Bk0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'remove', which implies destruction, but lacks details on irreversibility, authorization needs, or side effects. Minimal transparency.

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?

Extremely concise (5 words), single sentence. No wasted words, front-loaded with verb and object.

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 delete tool, the description is adequate but lacks mention of return format or that the bookmark must exist. With an output schema present, the absence of return details is partially mitigated, but still minimal.

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 are well-described in the schema. The description adds no additional context, meeting but not exceeding 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 action ('remove') and the resource ('bookmark from a channel'), directly distinguishing it from sibling tools like bookmarks_add and bookmarks_edit.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool instead of alternatives (e.g., bookmarks_edit) or any prerequisites. The description only implies usage for bookmark removal without contextual advice.

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

bots_infoB

Get info for a bot user.

ParametersJSON Schema
NameRequiredDescriptionDefault
botNoID of the bot to get info for (e.g. ``B0123``).
team_idNoID of the workspace to scope the lookup to, required for org-level tokens (e.g. ``T0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It only says 'Get info', lacking details on authentication requirements, error handling, or what happens if the bot is not found.

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

Conciseness5/5

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

The description is a single sentence with no waste, front-loading the purpose.

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

Completeness3/5

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

Given the tool's simplicity and the presence of an output schema, the description is adequate but lacks additional context such as common use cases or limitations.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema, which already describes the parameters adequately.

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 'Get info for a bot user' clearly states the verb and resource, but does not differentiate from sibling tools like 'bots_list' which also deals with bot users.

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 such as 'bots_list' or 'users_info'. No prerequisites or exclusions mentioned.

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

bots_listB

List all bots in a workspace (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return per page.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 must fully convey behavior. It only notes 'legacy undocumented', lacking details on safety, permissions, or side effects. The read-only nature is implied but not explicitly stated.

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

Conciseness5/5

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

The description is a single sentence with no unnecessary words. It is front-loaded and efficiently communicates the tool's 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?

While the tool is simple with an output schema, the description lacks context about workspace scope, pagination behavior, and the implications of 'legacy undocumented'. It is adequate but not fully complete.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions, so the tool description adds no additional parameter information. 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 'List' and the resource 'bots in a workspace', distinguishing it from sibling tools like 'bots_info'. The qualifier 'legacy undocumented' adds useful context.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or provide sibling differentiation beyond the description.

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

cache_clearA

Clear the Slack MCP cache so subsequent calls fetch fresh data from the API.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly explains the behavior: clearing the cache causes subsequent calls to fetch fresh data. This is transparent for a cache-clear operation.

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

Conciseness5/5

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

The description is a single sentence that conveys the purpose and effect without any wasted words. It is perfectly concise and 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?

For a tool with no parameters and a clear action, the description is sufficient. It does not mention the output schema, but that is available structurally. The description is complete enough for an agent to use the tool correctly.

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?

There are no parameters, and the input schema is fully covered. The description adds no parameter information, but none is needed. Baseline for zero parameters with full schema coverage is 4.

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

Purpose5/5

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

The description clearly states the tool's purpose: clearing the Slack MCP cache to fetch fresh data. The verb 'clear' and resource 'cache' are specific, and the tool is distinct from all sibling tools, which are API operations.

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

Usage Guidelines3/5

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

The description implies when to use (when fresh data is needed) but provides no explicit guidance on when not to use or alternatives. For a simple cache clear, this is adequate but not exemplary.

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

calls_addC

Register a new call.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoDisplay name for the Call.
usersNoParticipants to register; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url.
join_urlYesURL required for a client to join the Call (e.g. ``https://example.com/calls/1234``).
created_byNoID of the user who created the Call; required when called with a bot token (e.g. ``U0123``).
date_startNoUnix timestamp of when the Call started (e.g. ``1562002086``).
external_unique_idYesUnique ID for the Call supplied by the third-party Call provider.
external_display_idNoHuman-readable ID supplied by the third-party Call provider, displayed to users.
desktop_app_join_urlNoAlternate join URL used by Slack clients that have the provider's desktop app installed.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description only says 'Register a new call', which implies creation but does not disclose side effects, permissions, idempotency, or constraints. For a creation tool, more behavioral context is needed.

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?

Extremely concise single sentence with no redundancy. However, it may be overly minimal, sacrificing helpful context for brevity.

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

Completeness2/5

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

Despite full schema and output schema, the description lacks context about what 'register' entails, such as whether it creates a persistent record, if it triggers notifications, or what the return value represents. The brevity leaves ambiguity for a non-trivial action.

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 documents each parameter's role. The description adds no additional semantic value beyond the schema, meeting the baseline for high 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 specifies the verb 'Register' and the resource 'new call', clearly indicating the action and object. It distinguishes from siblings like calls_update and calls_end by implying creation vs modification or termination.

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., calls_update, calls_participants_add). Given multiple call-related siblings, the lack of context for tool selection is a significant gap.

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

calls_endC

End a call.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``).
durationNoCall duration in seconds.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations, the description must disclose behavioral traits. It only says 'End a call.' without mentioning side effects, authorization requirements, state requirements (e.g., call must be active), or results. This is insufficient for a mutation tool.

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

Conciseness3/5

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

Extremely concise (two words), but this brevity sacrifices clarity and completeness. It is front-loaded but could be slightly expanded to provide more context without losing conciseness.

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 tool's complexity and the presence of an output schema, the description is incomplete. It lacks explanation of behavior, prerequisites, and return values. The output schema partially compensates, but the description still fails to provide essential context.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema. The schema already describes the id and duration parameters adequately.

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 'End a call.' clearly states the action and resource, distinguishing it from sibling tools like calls_add, calls_info, and calls_update. However, it lacks explicit detail like 'active call' but is still specific enough.

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, such as when a call is active or if other conditions are needed. No exclusions or prerequisites mentioned.

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

calls_infoB

Get information about a call.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose behavioral traits like required authentication, error handling, rate limits, or what happens with invalid IDs. The description is too minimal to inform the agent's decision.

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

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary words. It is front-loaded and efficient.

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 that output schema exists, the description could have been slightly more forgiving, but it still lacks context about return values or the scope of information. The tool is simple, but the description is too sparse to be 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?

The schema description coverage is 100%, with the 'id' parameter fully documented. The tool description adds no additional meaning to the parameter beyond what the schema provides, earning the baseline score of 3.

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

Purpose5/5

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

The description clearly states the tool gets information about a call, with a specific verb and resource. It differentiates from sibling tools like calls_add, calls_end, and calls_update.

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, such as calls_info vs calls_add or calls_update. No context on prerequisites or typical use cases is given.

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

calls_participants_addC

Register new participants added to a call.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``).
usersYesUsers added to the Call; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It mentions 'register new participants' but does not indicate idempotency, error conditions, permission requirements, or side effects. This is insufficient for a mutation tool.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words, front-loading the action. However, it is perhaps too concise, omitting useful detail.

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

Completeness2/5

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

Given the tool's simplicity (2 required params, no nested objects, output schema exists), the description is minimally complete. But it lacks context about success/error outcomes and integration with sibling tools, making it barely adequate.

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 detailed parameter descriptions for 'id' and 'users'. The tool description adds no extra meaning beyond 'Register new participants', so 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 clearly states the verb 'register' and resource 'new participants added to a call', which distinguishes it from sibling tools like calls_participants_remove. However, it could be more precise about what 'register' entails (e.g., adding to participant list).

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 guidelines are provided on when to use this tool versus alternatives, such as prerequisites (call must exist) or when not to use it (e.g., if call has ended). The description lacks context for proper agent decision-making.

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

calls_participants_removeC

Register participants removed from a call.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``).
usersYesUsers removed from the Call; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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. It fails to disclose side effects (e.g., whether removal is reversible, permissions required, error handling for non-existent users).

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 concise sentence with no unnecessary words. It is front-loaded but could be slightly improved by using 'Remove' instead of 'Register' for clarity.

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?

Although an output schema exists, the description does not explain what the tool returns (e.g., success response, list of removed participants). It also lacks context on error conditions or any irreversible nature of the action, which is important for a mutation 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 coverage is 100%, so the input schema already describes both parameters thoroughly. The description adds no additional meaning beyond what the schema provides, making it adequate but not additive.

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 action ('Register participants removed') and the resource (a call). It implicitly distinguishes from the sibling 'calls_participants_add'. However, the verb 'register' is slightly misleading as the tool performs removal, not just logging.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., calls_participants_add). No prerequisites or conditions (e.g., call must exist, users must be participants) are mentioned.

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

calls_updateC

Update information about a call.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``).
titleNoDisplay name for the Call.
join_urlNoURL required for a client to join the Call (e.g. ``https://example.com/calls/1234567890``).
desktop_app_join_urlNoAlternate URL used by Slack clients with the Call provider's desktop app installed.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'update information' but omits whether updates are partial, idempotent, or require certain permissions. Destructive nature is not clarified.

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 very concise at one sentence, which is efficient. However, it could include more useful details without being 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?

While an output schema exists, the description still lacks essential context for a mutation tool, such as which fields can be updated, the effect of omitted fields, or required call existence.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes all parameters. The description adds no extra meaning beyond 'update information', earning a baseline score.

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 that the tool updates call information, which is a specific verb-resource combination. However, it does not differentiate from siblings like calls_add (create) or calls_end (end), missing a chance to improve clarity.

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 such as calls_add or calls_end. There is no mention of prerequisites, context, or exclusion conditions.

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

canvases_access_deleteC

Remove access to a canvas for specified entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idsNoUser IDs whose access to the canvas should be removed (e.g. ``["U0123"]``).
canvas_idYesEncoded ID of the canvas to remove access from (e.g. ``F0123ABC456``).
channel_idsNoChannel IDs whose access to the canvas should be removed (e.g. ``["C0123"]``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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. It only states the basic action without disclosing side effects, idempotency, error conditions, or required permissions. For a mutation tool, this is insufficient.

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, front-loaded sentence. It is concise but could include slightly more detail 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 that an output schema exists, the description does not need to explain return values. However, it omits important context such as what happens if no entities are specified or if entities lack access, and it does not clarify usage with the required canvas_id alone.

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 baseline is 3. The description does not add any semantic information beyond what the schema already provides for each parameter.

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 action (remove access) and the target (canvas). It distinguishes from siblings like canvases_access_set and canvases_delete, though could explicitly mention entities such as users and channels.

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 canvases_access_set. The description does not mention when not to use it or provide any use case context.

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

canvases_access_setC

Set access level to a canvas for specified entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idsNoUser IDs to grant the access level to (e.g. ``["U0123"]``).
canvas_idYesEncoded ID of the canvas to set access on (e.g. ``F0123ABC456``).
channel_idsNoChannel IDs to grant the access level to (e.g. ``["C0123"]``).
access_levelYesAccess level granted to the entities — ``read``, ``write``, or ``owner``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states the action ('Set access level') without detailing behavioral traits such as destructive effects (e.g., overwriting existing permissions), authorization requirements, or rate limits. For a permission-setting tool, this is 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 of 10 words, no filler. Efficient and front-loaded.

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?

Output schema exists, so return values are covered. However, the description fails to provide critical context for a permission-setting tool: whether setting access overwrites or appends, what happens with conflicting levels, or required permissions. This is a significant gap.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all 4 parameters. The tool description does not add meaning beyond schema; it merely restates 'specified entities'. 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 uses a specific verb ('Set access level') and identifies the resource ('canvas'). It distinguishes from sibling tools like 'canvases_access_delete' but refers to 'specified entities' vaguely. Schema clarifies entities are users and channels.

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 (e.g., 'canvases_access_delete'). No mention of prerequisites or context. Usage is implied but not explained.

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

canvases_createC

Create a canvas.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoTitle of the newly created canvas.
document_contentNoStructured content; an object with ``type`` of ``markdown`` and a ``markdown`` body field.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

The description offers no behavioral details beyond the fact of creation. There is no mention of side effects, permissions, rate limits, or the nature of the created object, leaving the agent without critical context.

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

Conciseness2/5

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

The description is excessively brief (three words), bordering on under-specification. While concise, it sacrifices valuable context that could be included without verbosity.

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

Completeness2/5

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

Despite having an output schema and fully documented parameters, the description fails to clarify the distinction from sibling tools like 'conversations_canvases_create'. This omission hinders the agent's ability to choose the correct tool.

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

Parameters3/5

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

The input schema has 100% coverage, so the baseline is 3. The description adds no additional meaning to the parameters, but the schema itself is sufficient for basic understanding.

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 'Create a canvas' clearly states the verb and resource, making the tool's purpose unambiguous. However, it does not differentiate from sibling create tools like 'conversations_canvases_create' or 'slack_lists_create', which limits its utility for selection.

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, nor are there any exclusions or prerequisites. The agent must infer usage solely from the tool name.

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

canvases_deleteB

Delete a canvas.

ParametersJSON Schema
NameRequiredDescriptionDefault
canvas_idYesEncoded ID of the canvas to delete (e.g. ``F0123ABC456``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior1/5

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

No annotations exist, and the description merely restates the tool name without disclosing behavioral traits such as destructiveness, permission requirements, or side effects.

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 with one sentence, front-loading the action with no wasted words.

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

Completeness2/5

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

Despite having an output schema, the description fails to provide context on what happens after deletion or error scenarios, leaving gaps given the lack of 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% for the single parameter 'canvas_id', so the description adds no extra meaning 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 'Delete a canvas' uses a specific verb and resource, clearly distinguishing it from sibling tools like 'canvases_create' and 'canvases_edit'.

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 (e.g., when to delete vs. archive).

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

canvases_editC

Edit a canvas.

ParametersJSON Schema
NameRequiredDescriptionDefault
changesYesOrdered edit operations, each with an operation (insert/replace/delete), document_content, section_id.
canvas_idYesEncoded ID of the canvas to edit (e.g. ``F0123ABC456``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.1/5.0
Behavior1/5

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

No behavioral traits are disclosed beyond the single word 'Edit.' Given that annotations are absent, the description carries the full burden for a mutation tool, but it provides no information on side effects, permissions, idempotency, or typical outcomes.

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

Conciseness2/5

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

The description is extremely concise (three words) but at the expense of necessary information. It fails to earn its place by omitting critical context, making it underspecified rather than efficiently concise.

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

Completeness1/5

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

Despite having an output schema, the description is severely incomplete. It does not explain the nature of the edit operations, expected behavior, or any constraints. The complexity of the 'changes' parameter array is completely unaddressed.

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 is 3. The description adds no additional meaning beyond what the input schema already provides for canvas_id and changes.

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

Purpose3/5

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

The description states 'Edit a canvas.' which is a clear verb+resource pairing, but it is too generic to distinguish from sibling tools like canvases_create, canvases_delete, or canvases_sections_lookup. No specific details on what kind of edits (e.g., content, metadata) are included.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or 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.

canvases_sections_lookupB

Find sections matching criteria in a canvas.

ParametersJSON Schema
NameRequiredDescriptionDefault
criteriaYesFilter for which sections to return, e.g. a ``contains_text`` substring and/or ``section_types``.
canvas_idYesEncoded ID of the canvas to search within (e.g. ``F0123ABC456``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits like read-only nature, pagination, error conditions, or what happens if no sections match. The agent lacks insight into side effects or constraints.

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

Conciseness4/5

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

The description is a single, efficient sentence. It is front-loaded and to the point. However, it could include slightly more context without sacrificing 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?

Given the presence of an output schema and two simple parameters, the description is minimally adequate. However, it lacks context on usage scenarios, limitations, and distinguishing features from similar tools. Additional behavioral details would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described. The description adds no additional meaning beyond the schema; for example, 'criteria' already has a detailed description in the schema. 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 'Find sections matching criteria in a canvas' uses a specific verb ('Find') and clearly identifies the resource ('sections in a canvas'). It distinguishes from sibling tools like canvases_create or canvases_delete, which deal with canvas-level operations.

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, such as when to use search_all or other search tools. There are no exclusions or context about prerequisites.

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

channels_deleteB

Delete a channel (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the channel to delete (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/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 but only states 'Delete a channel (legacy undocumented).' It does not disclose destructive nature, irreversibility, permission requirements, or side effects beyond the basic action.

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

Conciseness3/5

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

The description is a single short sentence, which is concise, but it omits important details. It front-loads the purpose but is too sparse for full utility.

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

Completeness2/5

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

Despite having an output schema (not shown), the description lacks context on prerequisites (e.g., ownership/permissions), post-deletion behavior, or legacy status implications. For a one-param destructive tool, it is incomplete.

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 'channel' parameter is documented with an example). The description adds no extra parameter meaning beyond what the schema provides, 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 'Delete a channel (legacy undocumented)' uses a specific verb ('Delete') and resource ('channel'), clearly distinguishing it from sibling tools like conversations_archive or bookmarks_remove.

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 versus alternatives (e.g., conversations_archive) or when not to use it. The phrase 'legacy undocumented' hints at deprecation but does not provide explicit usage context.

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

chat_append_streamB

Append text to an AI assistant streaming message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tsYesTimestamp of the streaming message to append to (e.g. ``1700000000.000100``).
channelYesID of the channel containing the stream (e.g. ``C0123``).
markdown_textYesMarkdown-formatted text chunk to append (max 12,000 characters).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

Does not disclose behavioral traits beyond the basic action. No mention of rate limits, authentication, or what happens if the stream is not active. With no annotations, the description bears full burden but adds minimal 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 sentence, no wasted words, front-loaded with the core action. Efficiently states 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?

For a simple tool, description is adequate but lacks context about the streaming lifecycle. Could mention relationship with chat_start_stream and chat_stop_stream.

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 covers 100% of parameters with descriptions. The description rephrases schema content but adds no 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 the verb 'Append' and the resource 'AI assistant streaming message', distinguishing it from siblings like chat_post_message and chat_start_stream.

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 such as chat_post_message or chat_start_stream. No mention of prerequisites like needing an active stream.

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

chat_commandC

Execute a slash command (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoArguments passed to the slash command.
channelYesID of the channel in which to run the command (e.g. ``C0123``).
commandYesThe slash command to execute, including the leading slash (e.g. ``/remind``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are absent, so the description must disclose behavioral traits. It only mentions 'legacy undocumented', hinting at potential instability but does not detail destructive actions, authentication needs, or 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 sentence, efficiently conveying the core purpose. It is appropriately brief but sacrifices detail.

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

Completeness2/5

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

Given the existence of an output schema and no nested objects, the description should still cover usage context and behavioral notes. It is incomplete in these areas.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning to parameters beyond what the schema provides.

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 action (execute) and resource (slash command). The phrase 'legacy undocumented' provides context but does not explicitly distinguish from siblings, though the tool's function is distinct.

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 such as chat_post_message or commands_list. The description lacks context for appropriate usage.

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

chat_deleteB

Delete a message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tsYesTimestamp of the message to delete (e.g. ``1700000000.000100``).
as_userNoDelete as the authenticated user rather than as the bot (legacy; ignored for workspace apps).
channelYesID of the channel containing the message to delete (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It states deletion but does not mention permanence, permissions required, or any restrictions (e.g., message age limits). The description is too brief to be transparent.

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

Conciseness3/5

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

The description is very short (3 words), which is concise but borderline under-specified. It lacks any structure or additional context that would help an agent.

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 (3 params, output schema exists), the description is incomplete. It does not explain return values, error conditions, or usage restrictions. The output schema may cover returns, but behavioral and usage context is missing.

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

Parameters3/5

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

Schema coverage is 100% and parameter descriptions are clear. The tool description adds no additional 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 'Delete a message' clearly states the verb (delete) and resource (a message). It distinguishes from sibling tools like chat_delete_scheduled_message (which deletes scheduled messages) and chat_post_message (which posts).

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., chat_delete_scheduled_message for scheduled messages). No mention of prerequisites or consequences.

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

chat_delete_scheduled_messageC

Delete a pending scheduled message from the queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_userNoDelete as the authenticated user rather than as the bot (legacy; ignored for workspace apps).
channelYesID of the channel the scheduled message targets (e.g. ``C0123``).
scheduled_message_idYesID of the scheduled message to delete (from ``chat.scheduleMessage`` or the list tool).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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. It states the action but does not disclose behavioral traits such as whether the deletion is irreversible, required permissions, or potential errors. For a destructive operation, this is insufficient.

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 extremely concise at one sentence with no wasted words. It is front-loaded. However, it could benefit from additional details 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 tool's destructive nature and the presence of many sibling tools, the description does not provide enough context about return values, error handling, or how it fits with related operations like chat_scheduled_messages_list. The presence of an output schema is noted but not described.

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 parameters are already documented in the schema. The description adds no extra meaning beyond what the schema provides, resulting in a baseline score of 3.

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 'Delete a pending scheduled message from the queue,' specifying the action and resource. It distinguishes from siblings like chat_delete (which deletes sent messages) by mentioning 'scheduled message,' though it could be more explicit about the distinction.

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 like chat_delete or chat_schedule_message. No prerequisites or context about when a scheduled message can be deleted are mentioned.

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

chat_me_messageB

Send a /me message to a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMessage text displayed as an action (e.g. "waves hello").
channelYesID of the channel to post the /me message in (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description only restates the basic action. It fails to disclose important behavioral traits such as required permissions, rate limits, side effects, or any state modifications beyond posting a message.

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, front-loaded sentence that immediately conveys the tool's purpose. It is appropriately concise, though it could be slightly expanded to include more context without losing brevity.

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 low complexity (2 simple params) and presence of an output schema, the description is adequate but lacks context about what a '/me message' is or how it differs from regular messages. It meets the minimum viable standard.

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

Parameters3/5

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

The input schema covers 100% of parameters with clear descriptions (channel ID and action text). The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Send a /me message to a channel,' specifying the action, resource type, and target. It distinguishes itself from sibling tools like chat_post_message or chat_command by explicitly naming the '/me' message subtype.

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 does not explicitly state when to use this tool over alternatives. While the name implies its specific purpose, there is no guidance on when not to use it or comparisons to siblings like chat_post_message or chat_command.

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

chat_post_ephemeralA

Send an ephemeral message to a user in a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoMessage text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn.
userYesID of the user who will see the ephemeral message (e.g. ``U0123``).
blocksNoBlock Kit block array defining the message layout.
as_userNoPost as the authenticated user rather than as the bot (legacy; ignored for workspace apps).
channelYesID of the channel to post the ephemeral message in (e.g. ``C0123``).
thread_tsNoParent message timestamp to post the ephemeral reply inside a thread (e.g. ``1700000000.000100``).
attachmentsNoLegacy attachment array. Prefer ``blocks`` for new messages.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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. It discloses the core behavioral trait ('ephemeral'), but fails to mention other important traits like thread support (thread_ts parameter), block support, or authentication requirements. The description adds minimal value beyond the 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 a single sentence that efficiently conveys the core functionality. Every word earns its place, with no redundancy or filler. It is front-loaded with the key 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?

Given the 7 parameters and output schema, the description is adequate but does not fully cover context like channel membership requirements or the fact that only the specified user sees the message. The presence of output schema reduces the burden, but more completeness would help the agent.

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 is 3. The description adds no additional meaning beyond the schema definitions for parameters. It simply restates the tool's purpose without enhancing understanding of parameters.

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

Purpose5/5

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

The description clearly states the action ('Send'), the resource ('ephemeral message'), and the target ('to a user in a channel'). This distinguishes it from siblings like chat_post_message (regular message) and chat_me_message (me message), providing specific verb+resource 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 (e.g., chat_post_message for non-ephemeral, chat_schedule_message for delayed). It lacks explicit context cuing or exclusions, leaving the agent to infer usage from the name alone.

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

chat_post_messageC

Send a message to a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoMessage text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn.
parseNoHow to handle message text: ``full`` (linkify everything) or ``none`` (pass text as-is).
blocksNoBlock Kit block array defining the message layout.
mrkdwnNoRender Slack mrkdwn formatting in ``text`` (default True).
as_userNoPost as the authenticated user rather than as the bot (legacy; ignored for workspace apps).
channelYesID of the channel to post to (e.g. ``C0123``), or a DM ID (``D0123``) or user ID for a DM.
icon_urlNoURL of an image to use as the bot's icon. Requires ``username``.
metadataNoStructured metadata object attached to the message (``event_type`` + ``event_payload``).
usernameNoOverride the bot's display name for this message.
thread_tsNoTimestamp of the parent message to reply to, forming a thread (e.g. ``1700000000.000100``).
icon_emojiNoEmoji to use as the bot icon, overrides the app default (e.g. ``:robot_face:``); needs ``username``.
link_namesNoFind and link channel names and usernames in ``text`` (e.g. ``#general`` → hyperlink).
attachmentsNoLegacy attachment array. Prefer ``blocks`` for new messages.
unfurl_linksNoAutomatically unfurl URL links in the message.
unfurl_mediaNoAutomatically unfurl media URLs (images, video) in the message.
reply_broadcastNoAlso post the threaded reply to the channel when ``thread_ts`` is set.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

The description only states the action without disclosing side effects (e.g., message creation, notifications), required scopes (e.g., chat:write), or error handling. With no annotations, the description should provide more behavioral context, but it does not.

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 concise sentence with no extraneous words. However, for a tool with many parameters, a slightly longer description could add value without losing conciseness.

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 (16 parameters, output schema exists), the minimal description is insufficient. It lacks typical usage examples, auth requirements, and mention of output schema, making it incomplete for effective agent invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond the schema's parameter descriptions. Baseline 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 'Send a message to a channel' clearly states the verb (send) and resource (message to a channel), distinguishing it from siblings like chat_delete or chat_update. However, it could specify the platform (Slack) and does not explicitly differentiate from chat_post_ephemeral.

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 like chat_post_ephemeral, chat_schedule_message, or chat_stream. Missing prerequisites or context for selection.

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

chat_scheduled_messages_listA

List scheduled messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of scheduled messages to return per page (default 100).
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
latestNoOnly include messages scheduled at or before this Unix epoch timestamp.
oldestNoOnly include messages scheduled at or after this Unix epoch timestamp.
channelNoFilter to scheduled messages for this channel ID (e.g. ``C0123``). Omit to list across all channels.
team_idNoEncoded team ID to scope the list to (for org-wide tokens).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Lacking annotations, the description provides minimal behavioral insight. It doesn't mention pagination (cursor), time filtering (latest, oldest), or scope (team_id), which are critical for understanding 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.

Conciseness5/5

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

The description is a single, efficient sentence with no extraneous information. Every word serves a 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?

While the tool is simple, the description lacks context on pagination, default behavior, and return structure. The output schema exists, but the description could be more complete given the six optional parameters.

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 all parameters have clear descriptions. The tool description adds no additional semantics beyond the schema, leading to a baseline score.

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

Purpose5/5

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

The description 'List scheduled messages' clearly states the action (list) and resource (scheduled messages). It distinguishes from sibling tools like chat_schedule_message and chat_delete_scheduled_message.

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?

No explicit guidance on when to use this tool versus alternatives. The sibling tool names imply it's for listing, but no context on filtering or scope is provided beyond what parameters suggest.

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

chat_schedule_messageC

Schedule a message to be sent to a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoMessage text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn.
blocksNoBlock Kit block array defining the message layout.
as_userNoSchedule as the authenticated user rather than as the bot (legacy; ignored for workspace apps).
channelYesID of the channel to send the scheduled message to (e.g. ``C0123``).
post_atYesUnix epoch timestamp (seconds) at which to deliver the message (e.g. ``1700010000``).
metadataNoStructured metadata object attached to the message (``event_type`` + ``event_payload``).
thread_tsNoTimestamp of the parent message to schedule a thread reply to (e.g. ``1700000000.000100``).
attachmentsNoLegacy attachment array. Prefer ``blocks`` for new messages.
unfurl_linksNoAutomatically unfurl URL links when the message is delivered.
unfurl_mediaNoAutomatically unfurl media URLs (images, video) when the message is delivered.
reply_broadcastNoAlso post the threaded reply to the channel when ``thread_ts`` is set.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only says 'schedule a message', which implies a future action, but it does not disclose important traits such as permission requirements, limitations on scheduling (e.g., maximum delay), behavior if post_at is in the past, or whether the scheduled message can be edited or returns an ID.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks substance. It meets the minimum viable length but fails to provide enough context for an agent to understand the tool's purpose or usage effectively.

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 tool has 11 parameters and multiple sibling tools for scheduling (e.g., chat_delete_scheduled_message, chat_scheduled_messages_list), the description is too brief. It does not explain what the tool returns (though an output schema exists), nor does it provide context about message scheduling workflows or constraints.

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 for all 11 parameters, so the baseline is 3. The description adds no additional semantic meaning beyond the schema; it does not explain parameter relationships or usage patterns.

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 'schedule' and the resource 'a message to be sent to a channel'. It implies delayed delivery, distinguishing from immediate posting tools like chat_post_message, but does not explicitly differentiate from siblings such as chat_delete_scheduled_message or chat_scheduled_messages_list.

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 instance, it does not mention that this tool is for scheduling and not for immediate sending, nor does it reference related tools like chat_delete_scheduled_message for cancellation or chat_scheduled_messages_list for viewing scheduled messages.

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

chat_start_streamC

Start an AI assistant streaming message.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the channel to start the stream in (e.g. ``C0123``).
thread_tsYesTimestamp of the parent thread to attach the stream to (e.g. ``1700000000.000100``).
markdown_textNoInitial markdown-formatted text for the stream (max 12,000 characters).
recipient_team_idNoTeam the receiving user belongs to (e.g. ``T0123``).
recipient_user_idNoUser to receive the streaming text; required when streaming to a channel (e.g. ``U0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations present, the description must fully disclose behavioral traits, but it only states 'Start an AI assistant streaming message.' It fails to describe idempotency, side effects, permission requirements, or the nature of the streaming session. This is a critical omission for a tool that initiates a stateful interaction.

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

Conciseness2/5

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

The description is extremely concise but at the expense of completeness. It is a single phrase that does not earn its place because it lacks vital information. The structure is not front-loaded with key details; it reads more like a title than a description.

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

Completeness1/5

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

Given the presence of sibling tools like chat_append_stream and chat_stop_stream, the description should explain how this tool initiates a stream, what the output schema provides, and how to use the stream lifecycle. The brief text is wholly inadequate for an agent to understand the tool's role and proper invocation.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter is well-documented in the input schema. The description adds no additional meaning beyond the schema, so it meets the baseline of 3 without penalty or bonus.

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 'Start' and the resource 'AI assistant streaming message', which distinguishes it from related siblings like chat_append_stream and chat_stop_stream that handle continuing or ending a stream. However, it does not explicitly contrast with these siblings, and 'streaming message' could be clearer, so it falls short of a perfect score.

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 such as chat_post_message or chat_append_stream. The description does not mention prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone.

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

chat_stop_streamC

Stop an AI assistant streaming message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tsYesTimestamp of the streaming message to stop (e.g. ``1700000000.000100``).
channelYesID of the channel containing the stream (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full burden for behavioral disclosure. 'Stop' implies mutation, but no details are given about side effects (e.g., whether the stream is terminated immediately, if undelivered content is lost) or necessary permissions. This is insufficient for a mutating 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 description is a single, focused sentence with no wasted words. However, it could improve by including key context without sacrificing conciseness, so a slight deduction from a top score.

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

Completeness2/5

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

Despite having an output schema and simple parameters, the description omits important context such as success behavior, error conditions, or the requirement that a stream must be active. This lack of completeness hinders effective tool 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?

The input schema has 100% coverage with descriptions for both 'ts' and 'channel'. The tool description adds no additional meaning beyond what the schema already provides, so it meets the baseline of 3.

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 'Stop' and the resource 'AI assistant streaming message', making the tool's purpose clear. However, it does not differentiate from sibling tools like chat_start_stream or chat_append_stream beyond the name, preventing a top score.

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 (e.g., chat_delete or chat_update). There is no mention of prerequisites, such as an active stream being required, nor any conditions where the tool should not be used.

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

chat_unfurlC

Provide custom unfurl behavior for URLs in messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
tsYesTimestamp of the message containing the URLs (e.g. ``1700000000.000100``).
channelYesID of the channel containing the message with URLs to unfurl (e.g. ``C0123``).
unfurlsYesMap of URLs to their unfurl attachment or Block Kit objects (e.g. ``{"https://example.com": {...}}``).
user_auth_urlNoURL to redirect the user to for authentication when ``user_auth_required`` is True.
user_auth_blocksNoBlock Kit blocks shown to the user in an auth prompt when ``user_auth_required`` is True.
user_auth_messageNoPlain-text message shown to the user in an auth prompt when ``user_auth_required`` is True.
user_auth_requiredNoPrompt the user to authenticate before unfurling the URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must convey behavioral traits. It only says 'Provide custom unfurl behavior' without disclosing that unfurling is a mutation (removing existing previews), potential auth requirements, or side effects like rate limits. This omission burdens the agent.

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, front-loaded sentence that efficiently conveys the core function. It is concise and easily parsed, though its brevity may sacrifice necessary detail.

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

Completeness2/5

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

Given the tool's complexity (7 params, nested objects, output schema) and a large set of siblings, the description is inadequate. It fails to explain the unfurling workflow, when to use auth-related parameters, or what the output contains. The output schema exists but the description doesn't leverage it.

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?

All 7 parameters are documented in the schema (100% coverage), so the description is not required to elaborate. The description adds no extra meaning beyond the schema; it does not mention any parameter purpose or constraints. Baseline 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 tool's purpose: providing custom unfurl behavior for URLs in messages. It identifies a specific verb ('Provide') and resource ('URLs in messages'), and while sibling tools like chat_post_message exist, none directly compete with unfurling, making it reasonably distinct.

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 offers no guidance on when to use this tool versus alternatives, nor does it specify prerequisites (e.g., app permissions, message ownership). It merely states what it does without contextualizing its usage relative to the many sibling chat tools.

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

chat_updateC

Update a message.

ParametersJSON Schema
NameRequiredDescriptionDefault
tsYesTimestamp of the message to update (e.g. ``1700000000.000100``).
textNoNew message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn.
parseNoHow to handle message text: ``full`` (linkify everything) or ``none`` (pass text as-is).
blocksNoUpdated Block Kit block array replacing the existing layout.
as_userNoUpdate as the authenticated user rather than as the bot (legacy; ignored for workspace apps).
channelYesID of the channel containing the message to update (e.g. ``C0123``).
metadataNoUpdated structured metadata object (``event_type`` + ``event_payload``).
link_namesNoFind and link channel names and usernames in the updated ``text``.
attachmentsNoUpdated legacy attachment array. Prefer ``blocks`` for new messages.
reply_broadcastNoBroadcast the updated threaded reply to the channel.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior1/5

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

No annotations provided. The description 'Update a message' gives no behavioral details: no mention of permissions needed (e.g., scopes), whether the update is irreversible, rate limits, or what the response looks like. The rich input schema hints at behavior but the description itself adds zero transparency.

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

Conciseness2/5

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

Extremely concise (3 words), but this is under-specification rather than efficient conciseness. The description omits critical context and should include more detail while remaining compact.

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?

With 10 parameters, no annotations, and an output schema present, the description fails to guide the agent on successful invocation. It does not explain that the tool modifies an existing message, nor does it mention the required channel and ts parameters or what the output contains.

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 baseline is 3. The description does not add extra meaning beyond what the schema already provides for parameters. No parameter reference in description.

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 'Update a message' clearly indicates the verb (update) and resource (message). While it doesn't explicitly differentiate from siblings like chat_delete or chat_post_message, the action is specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., chat_delete for removing messages, chat_post_message for new ones). Does not state prerequisites like requiring an existing message.

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

client_bootB

Boot the Slack client (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/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 disclosure. It only mentions it's an 'undocumented session endpoint,' hinting at internal nature, but does not explain side effects, whether it initializes state, or any authentication requirements.

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

Conciseness5/5

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

Single, concise sentence with no extraneous words. It conveys the essential purpose 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?

Given the tool has zero parameters and an output schema, the description is adequate but minimal. It lacks context about the boot process, typical use cases, or expected behavior, which would help an agent understand the tool's role.

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?

No parameters are defined in the schema, so the description need not add parameter information. The baseline 4 applies as the schema coverage is 100% and there are no parameters to document.

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 'Boot the Slack client' with a clear verb and resource, and notes it's an 'undocumented session endpoint,' which provides context. However, it does not explicitly distinguish it from sibling tools like 'client_user_boot' or other client-related 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?

No guidance on when to use this tool versus alternatives. No mention of prerequisites, required permissions, or situations where it should or should not be used.

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

client_countsC

Get unread counts and thread info (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_wide_awareNoInclude counts across all workspaces in an Enterprise org.
thread_count_by_last_readNoCount unread threads relative to the last-read marker.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It mentions only 'undocumented session endpoint', offering little beyond what the tool name implies, and fails to describe authentication needs, rate limits, side effects, or other behavioral traits.

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 conveys the core purpose without unnecessary words. It is concise, though it could be slightly expanded to include behavioral context 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?

Given that an output schema exists, the description does not need to detail return values. However, it minimalistically covers purpose, leaving gaps in behavioral and usage context. It is adequate for a simple tool with well-documented parameters, but not thorough.

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 clear descriptions in the schema. The tool description adds no additional meaning beyond what the schema already provides, so baseline score 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 tool retrieves 'unread counts and thread info', providing a specific verb and resource. It distinguishes itself as an 'undocumented session endpoint', hinting at its specialized nature among siblings, but does not explicitly differentiate from similar tools like 'conversations_history' or 'search_messages'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description lacks any context about prerequisites, scenarios, or exclusions, leaving the agent to infer usage from the name and schema alone.

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

client_user_bootB

Boot the Slack client for a specific user (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist. The description adds minimal behavioral insight beyond naming the operation and labeling it as 'undocumented'. It fails to disclose side effects, required permissions, or whether the tool is destructive or 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 one sentence, front-loads the core action, and provides a useful qualifier in parentheses. Every word is essential; no filler.

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

Completeness2/5

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

Despite having no parameters and an output schema, the description omits what 'boot' entails, the expected response format, and any risks or termination behavior. The 'undocumented' note hints at instability but does not complete the contextual picture.

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?

With zero parameters, baseline is 4, but the description implies user specificity without explaining how the user is identified (likely via authentication). This ambiguity causes a deduction; the description should clarify that it operates on the authenticated user or requires some implicit context.

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

Purpose5/5

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

The description clearly states the tool's action: 'Boot the Slack client for a specific user'. It distinguishes itself from the sibling 'client_boot' by specifying user-level targeting and noting the endpoint is undocumented.

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 explicit guidance on when to use this tool versus alternatives like 'client_boot' or other session-related tools. It does not mention prerequisites, when-not-to-use, or contextual preferences.

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

commands_listA

List available slash commands (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It mentions 'legacy undocumented', indicating potential instability or lack of support, but lacks details on auth, rate limits, or side effects.

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 is concise and front-loaded with the core purpose, adding essential context ('legacy undocumented') without waste.

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

Completeness4/5

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

Given no parameters and an output schema exists, the description covers the purpose and a key note. Could mention pagination or format, but output schema covers return structure.

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?

No parameters exist, so schema coverage is 100%. Description adds no parameter semantics, but baseline for zero parameters is 4.

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

Purpose5/5

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

The description clearly states the tool lists available slash commands, noting they are legacy and undocumented, which is specific and distinct from sibling tools.

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 (when you need to list slash commands) but does not provide explicit when-to-use, when-not-to-use, or alternatives, which among many siblings could be helpful.

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

conversations_accept_shared_inviteC

Accept an invitation to a Slack Connect channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoEncoded team ID accepting the invite (for org-wide tokens).
invite_idNoID of the invite to accept. Required unless ``channel_id`` is given.
channel_idNoID of the channel the invite is for, if already known.
is_privateNoCreate the accepted channel as private.
channel_nameYesName for the channel once accepted.
free_trial_acceptedNoAccept a paid-feature free trial as part of accepting the invite.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the basic action with no details about side effects, required permissions, rate limits, or what happens after acceptance. This is insufficient.

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, front-loaded sentence that is concise. It earns its place but could be enriched with more context without losing conciseness.

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 tool has 6 parameters and an output schema, the description is too minimal. It does not explain the process, prerequisites, or expected outcomes, leaving the agent without enough context to use the tool 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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond the schema, warranting a baseline score of 3.

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 action ('Accept an invitation to a Slack Connect channel') with a specific verb and resource. However, it does not differentiate from sibling tools like conversations_approve_shared_invite, missing the chance to clarify when to use this vs. similar 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?

No usage guidance is provided. The description does not mention when to use this tool, prerequisites, or when not to use it. Sibling tools are not referenced for comparison.

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

conversations_approve_shared_inviteC

Approve an invitation to a Slack Connect channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
invite_idYesID of the shared-channel invite to approve.
target_teamNoEncoded team ID the invite is directed to (for org-wide approvals).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility. It only states the basic action without disclosing side effects, required permissions, or what happens after approval (e.g., does it send a notification?). The minimal description adds little beyond the tool's name.

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 is concise and front-loaded. It effectively communicates the core action, though slightly more context (e.g., a brief note on parameters) could fit without losing conciseness.

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

Completeness2/5

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

The tool has an output schema and full parameter coverage, but the description is too brief given the complexity of Slack Connect workflows and the many sibling tools. It fails to explain how this tool fits into the broader process (e.g., relationship to 'conversations_list_connect_invites' or 'conversations_request_shared_invite_approve').

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 both parameters adequately. The description adds no additional meaning beyond what the schema provides, meeting the baseline but not exceeding it.

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 action ('Approve an invitation') and the resource ('a Slack Connect channel'). However, it does not differentiate from sibling tools like 'conversations_accept_shared_invite' or 'conversations_request_shared_invite_approve', which may have overlapping or nuanced purposes.

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. Given the many sibling tools related to Slack Connect invites (e.g., 'conversations_accept_shared_invite', 'conversations_decline_shared_invite'), the description should clarify the appropriate context, such as prerequisites or the distinction between approving and accepting.

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

conversations_archiveC

Archive a conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the conversation to archive (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

The description does not disclose behavioral traits like reversibility (though 'conversations_unarchive' exists), required permissions, or effects on participants. With no annotations provided, the agent lacks critical context for safe invocation.

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 extremely concise with a single sentence. While it is efficient, the lack of structure or elaboration reduces its effectiveness.

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 tool's simplicity with one parameter and an output schema, the description is too minimal. It fails to explain side effects, return values, or behavioral context, leaving agents underinformed.

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

Parameters3/5

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

The schema covers 100% of parameter descriptions, so the baseline is 3. The description adds a usage example but no additional meaning beyond what the schema already states.

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 'archive' and resource 'conversation', making the action explicit. However, it does not differentiate from similar sibling tools like 'conversations_close' or 'conversations_unarchive', lacking context on what archiving specifically entails.

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 such as 'conversations_unarchive' or 'conversations_close'. There is no mention of prerequisites, use cases, or conditions for proper usage.

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

conversations_canvases_createC

Create a canvas in a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesID of the channel the canvas belongs to (e.g. C0123).
document_contentNoCanvas body as a structured document object (e.g. a markdown document).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description carries the full burden of behavioral disclosure. It only states the action without detailing side effects, required permissions, or error conditions, making it insufficient for a mutation tool.

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

Conciseness3/5

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

The description is a single sentence, which is concise but at the cost of omitting important details. It is front-loaded but lacks the structure to efficiently convey necessary information.

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 existence of an output schema, return value details are not required. However, the description lacks contextual information such as relationship to siblings, prerequisites, or behavior in edge cases, making it minimally adequate.

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 fully describes both parameters (100% coverage). The description adds no additional meaning beyond what the schema provides, resulting in a baseline score of 3.

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 'Create a canvas in a channel' which is a specific verb and resource. It is clear in its primary action, but does not differentiate from the sibling tool 'canvases_create' which may have a similar 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 on when to use this tool versus alternatives, nor are any prerequisites or exclusions mentioned. The agent must infer usage context.

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

conversations_closeB

Close a direct message or multi-party direct message.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the DM or multi-party DM to close (e.g. D0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so description bears full responsibility. It does not explain what 'close' entails (e.g., whether it is reversible, permissions required, or side effects on messages). Lacks 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?

The description is a single sentence of 10 words, perfectly concise with no redundant information. Efficiently communicates the tool's purpose.

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

Completeness3/5

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

Given the tool's simplicity (1 param, output schema exists), the description is minimally adequate but lacks behavioral details and usage context that would help an agent choose 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 already describes the 'channel' parameter with an example (D0123). The description adds no additional meaning beyond the schema, 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 the action ('close') and the resource ('direct message or multi-party direct message'), distinguishing it from sibling tools like conversations_archive or conversations_open. It is specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., conversations_archive, conversations_leave). No prerequisites or context provided for closing a conversation.

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

conversations_createC

Create a new channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesChannel name (lowercase, no spaces or periods, max 80 chars).
team_idNoEncoded team ID to create the channel in (for org-wide tokens).
is_privateNoCreate a private channel instead of a public one.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states the action without mentioning side effects, permissions, error conditions (e.g., naming conflicts), or idempotency. The agent has no indication of what happens upon success or failure.

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, very concise and front-loaded. However, it could include more context without being verbose. It effectively states the core purpose but lacks structure for additional details.

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 tool has 3 parameters and an output schema, the description does not provide enough context for safe invocation. It omits behavioral aspects, error scenarios, and return value expectations, leaving the agent underinformed.

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 parameters. The description adds no additional meaning beyond the schema, meeting the baseline but not exceeding it.

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 'Create' and the resource 'channel', accurately reflecting the tool's function. It distinguishes from siblings like 'conversations_archive' or 'conversations_close', but does not elaborate on the type of channel (public/private) which is handled by the schema.

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 such as 'conversations_open' (which may create a channel if not existing). No prerequisites or context for usage are mentioned.

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

conversations_decline_shared_inviteB

Decline an invitation to a Slack Connect channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
invite_idYesID of the shared-channel invite to decline.
target_teamNoEncoded team ID the invite is directed to (for org-wide tokens).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/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. It only states the basic action ('Decline an invitation') without disclosing behavioral traits like permission requirements, side effects (e.g., invitation becomes invalid), or whether it can be undone. For a mutation tool, this is insufficient.

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?

A single, short sentence with no wasted words. It is very concise, but the extreme brevity sacrifices completeness for conciseness. Still, it front-loads the purpose clearly.

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 simple action and presence of an output schema, the description is minimally adequate. However, it lacks context about the Slack Connect invitation flow, prerequisites (e.g., must be the invitee), or error conditions. For a tool with many sibling operations, more context would improve completeness.

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

Parameters3/5

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

The input schema already describes both parameters with 100% coverage. The description adds no additional context about how parameters relate to the action (e.g., how to obtain invite_id). Baseline 3 is appropriate since schema covers meaning, but no extra value from description.

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 ('Decline an invitation') and the resource ('Slack Connect channel'). The verb-resource pair is specific and directly matches the tool name, distinguishing it from siblings like accept or approve.

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 such as conversations_accept_shared_invite or conversations_approve_shared_invite. The description does not mention prerequisites or context for using decline over other operations.

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

conversations_external_invite_permissions_setC

Set external invite permissions for a Slack Connect channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesPermission to apply — ``upgrade`` to allow external write access or ``downgrade`` to restrict it.
channelYesID of the Slack Connect channel (e.g. ``C0123``).
target_teamYesEncoded team ID of the target team to change permissions for (e.g. ``T0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

The description only states it 'sets permissions' without detailing behavioral traits like whether changes are reversible, if notifications are sent, or the effect on existing access. Schema parameter descriptions partially compensate by explaining upgrade/downgrade, but overall transparency is minimal.

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 front-loaded but could benefit from a bit more context without sacrificing conciseness.

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 setting permissions in a Slack Connect channel, the description lacks important context: it does not explain the effect of upgrade vs. downgrade, the required channel state, or how it relates to sibling tools. The existence of an output schema does not compensate for missing high-level context.

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

Parameters3/5

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

The input schema covers 100% of parameters with clear descriptions. The tool description adds no additional meaning beyond what the schema already 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 clearly states the tool sets external invite permissions for a Slack Connect channel, using a specific verb and resource. It distinguishes from sibling tools like conversations_invite_shared or conversations_accept_shared_invite, though it could be more specific about what 'permissions' entails.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., channel must already be a shared Slack Connect channel), required user permissions, or scenarios where this tool should or should not be used.

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

conversations_historyC

Fetch a conversation's history.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of messages to return per page (default 100).
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
latestNoOnly include messages at or before this timestamp (e.g. 1700000000.000100). Defaults to now.
oldestNoOnly include messages at or after this timestamp.
channelYesID of the conversation to read (e.g. C0123).
detailedNoReturn the full, uncompacted Slack response when True.
inclusiveNoInclude messages with ``latest`` or ``oldest`` timestamps in the results.
include_all_metadataNoInclude all message metadata in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden for behavioral disclosure. It only says 'Fetch', implying a read operation, but does not explicitly state it is non-destructive, whether pagination is involved, or how errors (e.g., missing channel) are handled. The schema exists but the description adds no behavioral context beyond the verb.

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

Conciseness4/5

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

The description is extremely concise (4 words) and front-loaded with the action and object. However, it lacks structure such as bullet points or paragraphs to organize information. It is efficient but could benefit from a brief elaboration. Still, every word earns its place.

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

Completeness2/5

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

Despite having 8 parameters (1 required) and an output schema, the description is minimal. It does not explain what 'history' entails (e.g., pagination, time filtering, threading). For a complex tool with many siblings and parameters, the description should provide more context to ensure correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter already has a clear description in the schema. The tool description adds no additional parameter information. According to the rubric, baseline is 3 when schema coverage is high, as the structured data does the job.

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 'Fetch a conversation's history' clearly states the action (fetch) and resource (conversation's history). It distinguishes from siblings like conversations_info (general info) and conversations_replies (thread replies) by implying a chronological list of messages. However, it lacks explicit scope (e.g., 'all messages in a channel') which would elevate clarity.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. Given the large number of sibling tools (e.g., conversations_info, conversations_list), the description should indicate that this is for retrieving message history, not metadata or members. Without such context, agents may misuse the tool.

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

conversations_infoC

Retrieve information about a conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the conversation to look up (e.g. C0123).
include_localeNoInclude the channel's locale in the response.
include_num_membersNoInclude the channel's member count in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

The description implies a read-only operation but provides no details about permissions, side effects, or limitations. With no annotations, the description should disclose more behavioral traits.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but too minimal. It does not provide structured information or context.

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 presence of an output schema, the description need not explain return values. However, it lacks context about filtering, scope, or relationship to other info tools, making it minimally adequate.

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 is 3. The description adds no additional meaning beyond what the schema already provides for parameters.

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 'Retrieve' and resource 'information about a conversation', providing a straightforward purpose. However, it does not differentiate from sibling tools like conversations_history or conversations_members, which also retrieve information.

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 guidelines on when to use this tool versus alternatives. Given the large number of sibling tools for conversations, this omission leaves the agent without context for selection.

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

conversations_inviteB

Invite users to a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoContinue inviting valid users even if some IDs fail, rather than failing the whole call.
usersYesComma-separated list of user IDs to invite (e.g. ``U0123,U0456``), up to 1000.
channelYesID of the channel to invite users into (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided so the description must carry the full burden. It does not disclose behavioral traits such as permission requirements, error handling, side effects, or rate limits. For a mutation tool, this is insufficient.

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 without unnecessary words. It is concise but could include more useful information 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 annotations and the presence of an output schema, the description should provide broader context. It does not cover error conditions, return value hints, or behavioral expectations.

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 for all 3 parameters. The tool description adds no additional meaning beyond the schema, so baseline score 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 'Invite users to a channel' clearly states the action (invite) and the resource (users to a channel). It distinguishes from siblings like conversations_kick (remove) or conversations_join (self-join).

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 provides no guidance on when to use this tool vs alternatives, nor any prerequisites or exclusions. Usage context is implied but not explicit.

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

conversations_invite_sharedC

Send a shared channel invite.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailsNoEmail addresses to invite. Provide ``emails`` or ``user_ids``.
channelYesID of the channel to share (e.g. C0123).
user_idsNoUser IDs to invite. Provide ``emails`` or ``user_ids``.
external_limitedNoInvite the external party as a limited (single-channel) guest.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 context. It does not disclose side effects (e.g., sending emails, creating memberships), permissions required, or limitations (e.g., only works for shared channels). The minimal description fails to convey behavioral traits beyond the basic action.

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

Conciseness4/5

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

The description is a single concise sentence that front-loads the purpose. It is appropriately sized with no wasted words, though it could be slightly expanded for clarity without losing conciseness.

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 presence of sibling tools like conversations_invite and conversations_accept_shared_invite, the description is insufficiently complete. It does not clarify the 'shared' context (e.g., inviting external users to a multi-workspace channel) or differentiate from similar operations. An output schema exists but does not compensate for missing contextual guidance.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents each parameter. The tool description adds no additional semantic value beyond the schema. Baseline 3 is appropriate as the description does not compensate for any gaps.

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 'Send a shared channel invite' uses a specific verb and resource, clearly indicating the action. However, it does not clarify what distinguishes a 'shared' invite from a regular one, which is important given sibling tools like conversations_invite.

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 such as conversations_invite or conversations_accept_shared_invite. The description lacks prerequisites or context for invocation.

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

conversations_joinC

Join an existing conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the channel to join (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior1/5

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

No behavioral information is provided. The description does not disclose permissions, side effects, or output details. With no annotations, this is a significant gap.

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

Conciseness4/5

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

The description is concise and front-loaded, but overly brief. It wastes no words but could include more context without losing efficiency.

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 output schema exists and one parameter, the description lacks completeness regarding behavioral context and edge cases, which is important for a tool with many siblings.

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 the description adds no extra meaning beyond the schema's parameter description. Baseline score 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 'Join an existing conversation' clearly states the action and resource. It distinguishes from siblings like conversations_leave, conversations_kick, and conversations_invite, though it could be more distinct from conversations_open.

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 or when not to use this tool. No mention of prerequisites or context, leaving the agent to infer usage from the name alone.

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

conversations_kickC

Remove a user from a conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesID of the user to remove (e.g. U0123).
channelYesID of the channel to remove the user from (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior1/5

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

With no annotations, the description carries full burden but only states the basic action. It fails to disclose any behavioral traits such as permission requirements, immediate effects, or side effects like notifications or conversation state changes.

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 extremely concise (5 words) and to the point. It sacrifices detail for brevity, but every word is necessary.

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

Completeness3/5

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

Given the tool's low complexity (2 parameters, simple action) and the presence of an output schema (though not provided), the description arguably covers the essential purpose. However, it lacks explicit mention of return behavior or error conditions.

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

Parameters3/5

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

The input schema covers both parameters with clear descriptions. The description adds no additional meaning beyond the schema, resulting in the baseline score for high 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 action ('Remove a user from a conversation') with a specific verb and resource. It implicitly distinguishes from related tools like conversations_invite or conversations_leave, but could explicitly differentiate.

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 such as conversations_leave or conversations_invite. No prerequisites, context, or exclusions provided.

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

conversations_leaveB

Leave a conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the conversation to leave (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behaviors. It only states the action without explaining consequences (e.g., message reception, ability to rejoin, permissions needed). This is insufficient for a mutation tool.

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

Conciseness5/5

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

A single sentence of three words is extremely concise and front-loaded. Every word is necessary, and no extraneous information is present.

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

Completeness2/5

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

Despite having a well-described parameter and an output schema (per context), the description lacks behavioral context and usage guidance. For a simple tool, more completeness is expected, especially regarding what leaving entails.

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

Parameters3/5

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

The schema already describes the single parameter 'channel' with type and example. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate given 100% schema coverage.

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

Purpose5/5

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

The description 'Leave a conversation' uses a specific verb and resource, clearly indicating the action of exiting a conversation. It distinguishes itself from sibling tools like conversations_kick (remove others) and conversations_archive (archive).

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 such as conversations_kick, conversations_close, or conversations_archive. The description does not mention any preconditions or exclusions.

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

conversations_listC

List all channels.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of channels to return per page (default 100).
typesNoComma-separated conversation types to include, e.g. ``public_channel,private_channel,mpim,im``.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
team_idNoEncoded team ID to list channels for (for org-wide tokens).
detailedNoReturn the full, uncompacted Slack response when True.
exclude_archivedNoOmit archived channels from the results.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose behavioral traits such as pagination, filtering capabilities, or the fact that it lists more than just channels. The description 'List all channels' is inaccurate as it can include DMs and group DMs. This misleads the agent.

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

Conciseness2/5

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

The description is extremely concise (4 words) but lacks structure and clarity. It is too vague and does not earn its place as it omits critical information.

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

Completeness2/5

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

Given the tool has 6 parameters and no output schema, the description is insufficient. It does not explain the output format, pagination behavior, or the effect of parameters like 'types' and 'exclude_archived'. The tool is complex, and the description is incomplete.

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 for all 6 parameters. The description adds no additional meaning beyond the schema, so 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?

Description says 'List all channels' which is a specific verb+resource, but it's slightly misleading because the tool can list various conversation types (public, private, DMs) as indicated by the 'types' parameter. It does distinguish from siblings like conversations_history and conversations_info, but not precisely.

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 conversations_list_connect_invites or other list tools. The context of usage is not provided.

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

conversations_list_connect_invitesC

List shared channel invites.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoMaximum number of invites to return (default 100).
cursorNoPagination cursor from ``response_metadata.next_cursor`` in a prior response.
team_idNoEncoded team ID to list invites for (for org-wide tokens).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 but provides only the basic function. No mention of read-only nature, auth requirements, rate limits, or return format.

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 concise sentence that front-loads the key action. However, it could include more context without sacrificing brevity.

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 presence of an output schema and 100% parameter documentation, the description adequately states the core function. But it lacks clarification on scope differences from sibling invite-listing tools.

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 parameters. The tool description adds no further meaning beyond what the schema provides.

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 'List shared channel invites.' clearly states the verb and resource. However, it does not distinguish from sibling tool 'conversations_request_shared_invite_list', which also lists invites but likely for a different context.

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 'conversations_request_shared_invite_list'. No exclusions or prerequisites mentioned.

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

conversations_list_prefsC

Get per-channel notification and mute prefs (undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full burden. It only states 'undocumented', hinting at instability but not disclosing behavioral traits like read-only nature, authentication needs, or default behavior given no parameters. The lack of parameter documentation is a significant gap.

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

Conciseness5/5

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

Extremely concise: a single sentence with no unnecessary words. It conveys the core function without extraneous information.

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

Completeness2/5

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

Despite simplicity and presence of output schema, the description fails to explain the lack of parameters. The agent is left wondering how channel context is provided. The 'undocumented' label warns of unreliability, but the missing channel parameter makes the definition incomplete for correct invocation.

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

Parameters3/5

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

Schema has zero parameters and 100% coverage, so baseline is 4. However, the description mentions 'per-channel', implying a channel parameter that does not exist, causing confusion. The description adds context but is inconsistent with 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 tool retrieves per-channel notification and mute preferences. The verb 'Get' and resource 'per-channel notification and mute prefs' are specific. However, the indication that the tool is undocumented is useful but does not directly aid purpose clarity. The empty input schema contradicts the 'per-channel' implication, slightly reducing clarity.

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 conversations_info or users_prefs_get. No conditions or prerequisites are mentioned. The description is purely functional without usage context.

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

conversations_markB

Set the read cursor in a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
tsYesTimestamp of the most recently seen message (e.g. 1700000000.000100); everything up to it is marked read.
channelYesID of the channel to mark (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior1/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 only states the action without revealing side effects, permissions needed, idempotency, or whether it is a destructive operation. This is insufficient for a tool that modifies state.

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

Conciseness5/5

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

The description is a single concise sentence that is front-loaded with the key action. Every word is necessary, and there is no superfluous content.

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

Completeness3/5

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

Given the simple tool with two well-described parameters and an output schema (not detailed here but present), the description is minimally adequate. However, it lacks behavioral context and usage guidance, which are important for a state-modifying operation. A score of 3 reflects sufficient but not thorough completeness.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters (channel and ts). The description adds no additional semantic value beyond what the schema already provides, so it meets the baseline of 3.

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

Purpose5/5

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

The description 'Set the read cursor in a channel.' uses a specific verb (set) and resource (read cursor) with clear context (in a channel). It effectively distinguishes from sibling conversation tools like conversations_history or conversations_info by focusing on the marking action.

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, such as when to mark a channel versus marking a thread (subscriptions_thread_mark). It lacks explicit context, prerequisites, or exclusions.

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

conversations_membersC

Retrieve members of a conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of member IDs to return per page (default 100).
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
channelYesID of the conversation to list members for (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 behavioral traits like pagination, read-only nature, or rate limits. Parameters like cursor and limit imply pagination but are not mentioned in the description.

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 very concise (one sentence). However, it could include a brief mention of pagination or return format without being verbose.

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?

An output schema exists, so return values don't need explanation. However, given the pagination parameters, a note about listing members in pages would improve completeness. The description is minimally adequate.

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 each parameter is already well-described in the schema. The description adds no extra meaning beyond what the schema provides.

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 action ('Retrieve') and resource ('members of a conversation'), but lacks differentiation from sibling tools like conversations_info or conversations_list. It doesn't specify what kind of members are returned (e.g., user IDs).

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 such as conversations_info or conversations_list. The description does not provide context for selection.

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

conversations_openA

Open or resume a direct message or multi-party DM.

ParametersJSON Schema
NameRequiredDescriptionDefault
usersNoComma-separated user IDs to open a DM/MPIM with (e.g. ``U0123,U0456``).
channelNoID of an existing DM/MPIM to resume. Provide ``channel`` or ``users``.
return_imNoReturn the full IM/MPIM channel object rather than just its ID.
prevent_creationNoFor 1:1 DMs, don't create a new conversation if one doesn't already exist.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided; description only mentions opening/resuming without details on side effects, permissions, or limitations.

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

Conciseness5/5

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

Single sentence with no wasted words, front-loading 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 given the presence of output schema and detailed parameter descriptions, but could provide more context on when to use channel vs users.

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%; description adds no additional meaning beyond 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?

Description clearly states the action (open or resume) and resource (direct message or multi-party DM). Distinguishes from sibling tools like conversations_create and conversations_join.

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?

Implies usage for DMs/MPIMs but lacks explicit guidance on when to use vs alternatives or prerequisites.

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

conversations_renameC

Rename a conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew channel name (lowercase, no spaces or periods, max 80 chars).
channelYesID of the channel to rename (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 does not mention any behavioral traits like whether the rename is reversible, requires specific permissions (e.g., admin or owner), or what effects it has on channel members. The description is too sparse to inform the agent about side effects or requirements.

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, which is concise and front-loaded. However, it could benefit from additional structure or bullet points to highlight key aspects. It earns its place but is slightly too minimal for a tool with many siblings.

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 presence of an output schema (which explains return values), the description does not need to cover that. However, the tool has numerous sibling tools and lacks annotations. The description fails to provide context about when renaming is appropriate, error conditions, or relationship to other conversation mutations. This leaves significant gaps for the agent.

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

Parameters3/5

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

The input schema provides full descriptions for both parameters (channel and name), covering constraints like lowercase and max length. The description adds no additional meaning beyond the schema. With 100% 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 action 'Rename' and the resource 'conversation'. However, it does not differentiate from sibling tools like conversations_set_topic or conversations_set_purpose, which are similar 'set' operations. A score of 4 is appropriate because it's clear but lacks sibling distinction.

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 offers no guidance on when to use this tool versus alternatives. It does not specify prerequisites, such as permissions, or mention that this tool should be used specifically for renaming rather than setting a topic or purpose. This is a significant gap.

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

conversations_repliesC

Retrieve a thread of messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
tsYesTimestamp of the thread's parent message (e.g. 1700000000.000100).
limitNoMaximum number of messages to return per page (default 100).
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
latestNoOnly include messages at or before this timestamp. Defaults to now.
oldestNoOnly include messages at or after this timestamp.
channelYesID of the conversation containing the thread (e.g. C0123).
detailedNoReturn the full, uncompacted Slack response when True.
inclusiveNoInclude messages with ``latest`` or ``oldest`` timestamps in the results.
include_all_metadataNoInclude all message metadata in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It fails to mention that the tool is read-only, paginated, or any other traits beyond retrieving a thread. The input schema hints at pagination via 'cursor' and 'limit', but the description does not acknowledge this.

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

Conciseness3/5

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

The description is a single 5-word sentence, which is too terse. While concise, it omits important details that would help the agent without adding verbosity. It could be expanded to include at least one additional sentence clarifying scope or pagination.

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 tool has 9 parameters including pagination and required fields, the description is insufficient. It does not explain the relationship to sibling tools like 'conversations_history' or mention that it retrieves replies to a specific parent message. An output schema exists, but the description still lacks essential context.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters are already described in the schema. The description adds no extra meaning or context for parameters like 'channel', 'ts', 'cursor', etc. Baseline 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 'Retrieve' and resource 'thread of messages', indicating its purpose. However, among sibling tools like 'conversations_history' which also retrieves messages, it doesn't explicitly differentiate itself beyond mentioning 'thread', which is implicit.

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 offers no guidance on when to use this tool versus alternatives like 'conversations_history' or other thread-related tools. It does not specify prerequisites, exclusions, or typical use cases, leaving the agent to infer context.

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

conversations_request_shared_invite_approveC

Approve a shared channel invite request.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoOptional message object (``{"text": ..., "is_override": ...}``) to attach to the approval.
invite_idYesID of the shared-invite request to approve.
channel_idNoID of the channel to override the requested invite destination.
is_external_limitedNoRestrict the invited team to post-only (limited) access.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It gives no information about side effects, permissions needed, notifications, or any behavioral implications beyond the bare action.

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?

Extremely concise single sentence, front-loading the purpose. Could expand slightly without losing conciseness.

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 tool complexity (4 parameters) and the presence of closely related sibling tools (e.g., conversations_approve_shared_invite), the description lacks context on what distinguishes this tool and what the output contains, even though an output schema exists.

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 clear parameter descriptions. The tool description adds no additional parameter meaning beyond the schema, so 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?

Description clearly states the action ('Approve') and resource ('a shared channel invite request'). However, with sibling tools like 'conversations_approve_shared_invite' also performing approval, no differentiation is provided.

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, no prerequisites, and no context about when to approve vs decline. The description is bare.

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

conversations_request_shared_invite_denyB

Deny a shared channel invite request.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoOptional message explaining why the request was denied.
invite_idYesID of the shared-invite request to deny.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It only states the action without explaining consequences, required permissions, or error states. Minimal transparency.

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, concise sentence with no extraneous information. Every word is necessary.

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 presence of an output schema, return values are accounted for. However, missing behavioral context like permissions, error handling, and side effects makes it incomplete for a production 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 already describes both parameters with 100% coverage. The description does not add any additional meaning or usage hints 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 action ('Deny') and the resource ('shared channel invite request'). It is specific and distinguishable from sibling tools like 'approve' or 'list', though it does not differentiate from the similar 'decline' tool.

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 like conversations_decline_shared_invite or conversations_approve_shared_invite. No prerequisites or context provided.

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

conversations_request_shared_invite_listB

List shared channel invite requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of requests to return per page.
cursorNoPagination cursor from ``response_metadata.next_cursor`` in a prior response.
user_idNoOnly return requests made by this user ID.
invite_idsNoRestrict results to these specific invite request IDs.
include_deniedNoInclude denied requests in the results.
include_expiredNoInclude expired requests in the results.
include_approvedNoInclude already-approved requests in the results.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided. Description does not disclose any behavioral traits (e.g., permissions, rate limits, return format). Minimal beyond the action 'list'.

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

Conciseness5/5

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

Single sentence, no superfluous words. Efficiently conveys the tool's purpose.

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 7 optional parameters with schema descriptions and an output schema, the description is concise but sufficient. Could optionally mention pagination or outcomes, but minimal.

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 each parameter. Description adds no additional semantic value beyond what schema provides, meeting 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?

Description clearly states 'List shared channel invite requests.' Verb (list) + resource (shared channel invite requests) is specific and distinguishes from siblings like approve/deny/accept.

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. With many shared invite siblings, explicit usage context is missing.

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

conversations_set_purposeB

Set the purpose for a conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the conversation to update (e.g. C0123).
purposeYesNew purpose text (max 250 chars).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output 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 must disclose behavioral traits. It only says 'Set' (implying mutation) but fails to mention permissions required, idempotency, character limits besides what's in schema, or any side effects. Does not explain whether setting purpose overwrites or appends.

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

Conciseness5/5

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

Single sentence, no fluff, directly communicates the tool's function. Appropriate length for a simple set operation.

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 update tool, the description provides the minimal necessary information. However, the presence of an output schema (not shown) suggests more detail could be given about the return value. The description is adequate but not comprehensive.

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, so each parameter is already documented ('channel': ID of conversation, 'purpose': new text with max length). The description adds no extra semantic value beyond the schema. 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 clearly states the action ('Set') and the resource ('purpose for a conversation'). It distinguishes from sibling tools like conversations_set_topic, as purpose and topic are distinct concepts. However, it could be more specific about what 'conversation' refers to (e.g., channel, DM, group).

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 such as conversations_set_topic or conversations_rename. No mention of prerequisites, when not to use, or typical scenarios. The description is purely declarative without usage context.

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

conversations_set_topicC

Set the topic for a conversation.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesNew topic text (max 250 chars).
channelYesID of the conversation to update (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. However, it simply states the action without revealing any side effects, authentication requirements, idempotency, or error conditions. This is critically insufficient for a mutation tool.

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

Conciseness3/5

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

The description is extremely concise at six words, but this brevity sacrifices necessary detail. While it is front-loaded, it does not earn its place as it essentially restates the tool's name. A moderate score reflects the trade-off between conciseness and informativeness.

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 tool's simplicity (two required parameters, no nested objects, and an output schema), the description is still incomplete. It omits crucial context such as success/failure behavior, rate limits, or required permissions. The presence of an output schema does not absolve the need for basic contextual 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 documents both parameters (channel and topic) with clear descriptions. The description adds no additional meaning beyond what the schema provides, which is acceptable given the 100% schema coverage. 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 action ('Set') and the resource ('topic for a conversation'), making the tool's purpose unambiguous. However, it does not differentiate from a sibling tool 'conversations_set_purpose', which could cause confusion without additional context.

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 usage guidance is provided. The description does not specify when to use this tool over alternatives, nor does it mention any prerequisites or limitations. The agent is left to infer usage 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.

conversations_unarchiveA

Reverse a conversation archive.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the archived conversation to restore (e.g. C0123).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description must carry burden. It discloses the core behavior (unarchive) but does not mention authorization requirements, side effects, or reversibility. Adequate for a simple action but lacks depth.

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?

Extremely concise: one sentence of three words. No unnecessary information, front-loaded with the core action.

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

Completeness4/5

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

Given the tool has one parameter and an output schema, the description is nearly complete. It could be slightly improved by using 'unarchive' instead of 'reverse' for clarity, but it is sufficient for this 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%, and the parameter description in the schema is clear ('ID of the archived conversation to restore'). The tool description adds no additional parameter context 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?

Description states 'Reverse a conversation archive,' clearly indicating the tool unarchives a conversation. It distinguishes from sibling 'conversations_archive' by using 'reverse,' specifying the opposite action.

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?

No explicit guidance on when to use or when not to use. Usage is implied by the tool's purpose, but no alternatives or conditions are mentioned.

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

conversations_viewB

Get channel view with read state. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the channel to view (e.g. ``C0123``).
detailedNoReturn the full, uncompacted response instead of the compacted summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not disclose behavioral traits such as whether the tool mutates read state, requires authentication, or has side effects. 'Read state' is ambiguous and could imply marking messages as read, which is not clarified.

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?

Two sentences, no fluff. Information is front-loaded with action and key advice. Every sentence serves a purpose.

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

Completeness3/5

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

Given output schema exists, return values are covered. However, description lacks explanation of 'read state' and the difference between compacted and full responses. For a simple tool, it is minimally adequate 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 coverage is 100% with detailed parameter descriptions. Description adds minor value by noting detailed=True yields full response, but largely repeats schema content. Baseline is 3 due to high coverage, and no significant additional meaning is added.

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?

Description clearly states it retrieves a channel view with read state, using specific verb and resource. Distinguishes from many sibling conversation tools like conversations_info or conversations_history by mentioning read state, but could be more explicit about what 'view' entails compared to similar 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?

Only guidance is to set detailed=True for full response, which addresses parameter usage but not when to use this tool versus alternatives like conversations_info or conversations_history. No exclusions or context-specific advice provided.

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

dialog_openC

Open a dialog with a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
dialogYesDialog definition for the modal, including ``title``, ``callback_id``, and ``elements``.
trigger_idYesTrigger ID from a user interaction authorizing the dialog; expires after 3 seconds.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as destructive nature, authentication requirements, or response semantics.

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

Conciseness3/5

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

The description is very concise (one sentence) but may be under-specified. It front-loads the action but lacks necessary detail.

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

Completeness2/5

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

Given the complexity, the description does not adequately cover prerequisites or expected outcomes, despite the presence of an output schema.

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 clear parameter descriptions. The overall description adds no additional meaning 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 action ('Open') and resource ('a dialog with a user'), but it does not differentiate from sibling tools like 'views_open' or 'conversations_open', which have similar purposes.

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, nor are any prerequisites or context given.

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

dnd_end_dndA

End the current user's Do Not Disturb session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, and the description does not disclose any behavioral traits beyond the basic action. It does not mention side effects, permissions, or error states, which would be helpful for a complete understanding.

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, direct sentence with no unnecessary words. It is front-loaded and well-structured.

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 (zero parameters, no output schema shown), the description is adequate. However, it could be slightly more complete by mentioning what happens if DND is already off, but it is mostly complete for a trivial action.

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 tool has no parameters, and the input schema is fully covered. The description does not add any additional meaning beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the action: 'End the current user's Do Not Disturb session.' It uses a specific verb and resource, and it is distinct from sibling tools like dnd_end_snooze and dnd_info, which have different purposes.

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

Usage Guidelines3/5

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

The description implies the usage context but does not explicitly state when to use this tool versus alternatives. It lacks guidance on prerequisites or when not to use it, though the sibling tools provide some context.

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

dnd_end_snoozeB

End the current user's snooze mode.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits. It only states the action without mentioning side effects, reversibility, or preconditions. The lack of details leaves an agent guessing about consequences.

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

Conciseness5/5

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

The description is a single sentence that immediately conveys the purpose. No extraneous words; every part is relevant.

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 simplicity of the tool and lack of annotations, the description is too sparse. It does not explain when the snooze mode was set, how to check current state, or any related context, limiting the agent's understanding.

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 tool has zero parameters and schema coverage is 100%, so the description adds no parameter information. Per guidelines, baseline 3 is appropriate despite no param info.

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 ('End') and the resource ('the current user's snooze mode'). The verb-resource combination is specific and distinguishes this tool from siblings like dnd_end_dnd and dnd_set_snooze.

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 such as dnd_end_dnd or dnd_set_snooze. An agent receives no context for selecting between these similar tools.

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

dnd_infoA

Retrieve a user's current Do Not Disturb status.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoID of the user to fetch status for; defaults to the authenticated user (e.g. ``U0123``).
team_idNoEncoded team ID to fetch the status from, required for org-wide tokens (e.g. ``T0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It only states 'retrieve' without disclosing permissions, error behavior, or rate limits. For a simple read tool, the description adds minimal behavioral context beyond the verb.

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

Conciseness5/5

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

One sentence of 9 words with zero wasted information. Ideal conciseness for a simple retrieval tool.

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 low tool complexity and presence of output schema, the description covers the essential purpose. It could mention defaulting to the authenticated user, but that is already in the parameter description. Overall sufficient for an agent to understand 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 each parameter described in the schema. The description adds no additional meaning beyond what the schema provides, so baseline score of 3 applies.

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

Purpose5/5

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

The description uses a specific verb 'Retrieve' and resource 'Do Not Disturb status', clearly distinguishing from sibling tools like dnd_end_dnd (mutation) and dnd_team_info (team-level).

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

Usage Guidelines3/5

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

The description implies usage for retrieving a single user's DND status but does not explicitly state when to use this tool versus alternatives or exclude any cases.

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

dnd_set_snoozeB

Turn on Do Not Disturb mode for the current user.

ParametersJSON Schema
NameRequiredDescriptionDefault
num_minutesYesNumber of minutes, starting now, to snooze notifications for (e.g. ``60``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 but omits key behavioral details: that DND is temporary (snooze), what happens if already in DND, or if permissions are needed. The parameter 'num_minutes' hints at duration, but the description does not explicitly state the snooze 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?

Single sentence with no wasted words, but could be slightly expanded to include usage guidance without becoming verbose. Efficient for a simple 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?

Given the presence of sibling tools like dnd_info and dnd_end_dnd, the description lacks relational context. It also does not reference the output schema, though it exists. Adequate but misses opportunities to be more helpful.

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 the parameter. The description adds 'Turn on Do Not Disturb mode' but does not add extra meaning beyond the schema. 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 the verb 'Turn on' and the resource 'Do Not Disturb mode for the current user', distinguishing it from siblings like dnd_end_snooze and dnd_info.

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 dnd_info (to check status) or dnd_end_snooze (to stop snooze). 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.

dnd_team_infoC

Retrieve the Do Not Disturb status for users on a team.

ParametersJSON Schema
NameRequiredDescriptionDefault
usersYesComma-separated list of user IDs to fetch Do Not Disturb status for (e.g. ``U0123,U0456``).
team_idNoEncoded team ID the users belong to, required for org-wide tokens (e.g. ``T0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description only states 'Retrieve', implying read-only, but does not explicitly explain side effects, authentication needs, or return behavior. Lacks detail beyond the core action.

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 effectively conveys the tool's purpose without unnecessary words. Appropriate length 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?

Given that an output schema exists, return values are covered. However, the description does not mention the ability to handle multiple users or team scope, which is relevant for selection. Adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond the schema. Baseline 3 is appropriate as schema handles explanation.

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 specifies the verb 'Retrieve' and resource 'Do Not Disturb status for users on a team', clearly indicating what the tool does. It implicitly distinguishes from dnd_info (single user) and team_info (team details) through context, though not explicitly.

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 dnd_info or team_info. The description does not mention prerequisites, permissions, or scenarios where this tool is preferred.

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

drafts_createA

Create a message draft (undocumented session endpoint).

Text is automatically wrapped in Block Kit rich_text format.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesDraft message body text.
file_idsNoIDs of already-uploaded files to attach to the draft (e.g. ``F0123``).
broadcastNoAlso send the threaded reply to the channel when posted (requires ``thread_ts``).
thread_tsNoTimestamp of the parent thread to draft a reply to (e.g. ``1700000000.000100``).
channel_idYesID of the channel the draft is addressed to (e.g. ``C0123``).
date_scheduledNoUnix epoch timestamp (seconds) to schedule the draft for sending.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/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. It discloses automatic text wrapping but omits authentication requirements, side effects, error handling, and the significance of 'undocumented'. More behavioral context would be helpful.

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?

Extremely concise with two sentences. First sentence states purpose, second adds a key behavioral detail. No fluff 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?

Despite having an output schema, the description lacks context on draft lifecycle, session-specific behavior, and error conditions. The 'undocumented' nature is mentioned but not elaborated.

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 description adds value beyond schema by explaining automatic text formatting for the 'text' parameter. For other parameters, the schema already provides adequate 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?

Clearly states the tool creates a message draft, distinguishing it from sibling tools like drafts_update or drafts_list. The additional detail about automatic Block Kit rich_text wrapping provides specific functional insight.

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 name and sibling tools imply use for creating drafts, but no explicit guidance on when to use versus chat_post_message or other alternatives. The 'undocumented session endpoint' note hints at non-standard usage but lacks clear directives.

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

drafts_deleteA

Delete a draft (undocumented session endpoint).

If client_last_updated_ts is omitted, the latest timestamp is fetched automatically from drafts.list to avoid conflict errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
draft_idYesID of the draft to delete.
client_last_updated_tsNoThe draft's last-updated timestamp (7-decimal-place Slack draft ts).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

Since no annotations are provided, the description bears full responsibility for behavioral disclosure. It adds transparency by stating it's an 'undocumented session endpoint' and describes automatic timestamp fetching to avoid conflicts. However, it does not mention permanence of deletion, required permissions, or what the boolean output schema indicates.

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 sentences with no unnecessary words. The first sentence states the purpose, and the second explains the key parameter nuance. It is front-loaded and efficient.

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 small number of parameters (2), high schema coverage (100%), and presence of an output schema (bool), the description covers the essential behavioral aspects. It notes the undocumented nature and auto-fetching. Minor gaps: no mention of failure conditions or irreversibility, but fairly complete for a simple delete tool.

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

Parameters4/5

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

With 100% schema coverage, baseline is 3. The description adds value by explaining the automatic behavior when client_last_updated_ts is omitted, providing context that the schema alone does not convey.

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 ('Delete a draft') and identifies it as an undocumented session endpoint. This verb+resource specification is unambiguous and distinguishes it from sibling tools like drafts_create, drafts_list, and drafts_update.

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 explains when to omit the optional timestamp parameter (to avoid conflict errors) and that it will be auto-fetched. However, it does not explicitly state when to use this tool versus other delete tools (e.g., chat_delete, files_delete) or any prerequisites.

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

drafts_listB

List all unsent message drafts (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of drafts to return.
is_activeNoOnly return drafts that are currently active (unsent).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

The description only mentions it's an undocumented session endpoint, hinting at internal use. It does not disclose whether the operation is read-only, whether authentication is required, pagination behavior, or any side effects. With no annotations, the description carries the full burden and is insufficient.

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, concise and to the point. It is not verbose, but could be structured with additional lines for clarity. However, it remains efficient without 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?

Given the output schema exists, the description doesn't need to explain return values. However, it lacks high-level context such as session scope, pagination details, or error conditions. For a 2-parameter tool with output schema, it is barely adequate.

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 (limit, is_active) already well-documented in the input schema. The description adds no extra meaning beyond what the schema provides, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool lists unsent message drafts, with a specific verb and resource. It distinguishes from sibling tools like drafts_create or drafts_delete by focusing on listing. The phrase 'undocumented session endpoint' adds specific context.

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 drafts_create or other list tools. No when-to-use or when-not-to-use information is given.

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

drafts_updateB

Update an existing draft (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesUpdated draft message body text.
draft_idYesID of the draft to update.
file_idsNoIDs of already-uploaded files to attach to the draft (e.g. ``F0123``).
broadcastNoAlso send the threaded reply to the channel when posted (requires ``thread_ts``).
thread_tsNoTimestamp of the parent thread to draft a reply to (e.g. ``1700000000.000100``).
channel_idYesID of the channel the draft is addressed to (e.g. ``C0123``).
client_last_updated_tsYesThe draft's last-updated timestamp (7-decimal-place Slack draft ts).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations are absent. The description only notes it is an undocumented session endpoint, but does not disclose permissions, side effects, or whether the update is partial or full replacement. No behavioral traits beyond the operation type.

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 wasted words. While not structured, it is concise and front-loaded with the core action.

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 presence of an output schema and complete parameter descriptions, the description is minimally adequate. However, it lacks context on expected behavior like whether the draft is replaced atomically or incrementally.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well-documented in the schema. The description adds no extra semantic value beyond the parameter descriptions already present.

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 'Update an existing draft', specifying the verb and resource. It distinguishes from sibling tools like drafts_create, drafts_delete, and drafts_list.

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. For example, it doesn't mention that updates require the draft to exist or that it should be used instead of recreating.

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

emoji_addB

Add a custom emoji from a URL (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new emoji, without colons (e.g. ``party_parrot``).
image_urlYesURL of the image to download and upload as the emoji.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only mentions it is an undocumented session endpoint, but lacks details on permissions, side effects, or result format.

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, well-structured sentence with front-loaded purpose. 16 words, no 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?

Tool is simple with 2 parameters and output schema exists, but description lacks behavioral context like session requirements or result behavior. Adequate but with noticeable 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 covers 100% of parameters with descriptions. The tool description does not add extra meaning beyond the schema, 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?

Description explicitly states the tool adds a custom emoji from a URL, using specific verb 'Add' and resource 'custom emoji'. It distinguishes from sibling tools like emoji_list and emoji_remove.

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. Sibling tools exist for listing and removing emojis, but no exclusion criteria or context provided.

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

emoji_admin_listB

List custom emoji with metadata (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number of results to return.
countNoNumber of emoji to return per page.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It mentions 'undocumented session endpoint', hinting at potential instability or authentication requirements, but does not specify behaviors like rate limits, authorization needs, or whether the operation is read-only or destructive.

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

Conciseness5/5

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

The description is a single sentence that conveys the core purpose and a key contextual note ('undocumented session endpoint'). Every word serves a purpose, and it is front-loaded with the 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?

Given the tool has an output schema (not shown), the description does not need to explain return values. However, it lacks guidance on usage context, such as when to use this tool instead of other emoji-related tools. The mention of an undocumented endpoint adds some context, but overall it is minimal.

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% coverage, with both 'page' and 'count' described in the schema. The description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('List') and the resource ('custom emoji with metadata'), distinguishing it from the sibling 'emoji_list' tool. The addition of 'undocumented session endpoint' adds specificity, though it doesn't elaborate on what 'metadata' includes.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like 'emoji_list'. The mention of 'undocumented session endpoint' implies internal use, but there is no clear scenario description or exclusions.

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

emoji_listB

List custom emoji for a team.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_categoriesNoInclude the standard emoji categories in the response when ``True``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It only states the basic action without disclosing behaviors like idempotency, safety, pagination, or 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.

Conciseness5/5

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

Single sentence, front-loaded with verb and resource, no wasted words. Efficient and to the point.

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 (one optional parameter, output schema exists), the description is sufficient. It clearly states it lists custom emoji, though it could mention that the return includes standard emoji categories if the parameter is set.

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, and the description provides the context of 'custom emoji.' However, the tool description does not further explain the parameter's purpose beyond what the schema already states.

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

Purpose5/5

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

The description 'List custom emoji for a team' uses a specific verb ('list') and resource ('custom emoji') with clear scope. It distinguishes from siblings like emoji_add, emoji_remove, and emoji_admin_list.

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 such as emoji_admin_list. The description does not mention context, prerequisites, or exclusions.

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

emoji_removeB

Remove a custom emoji (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the emoji to remove, without colons (e.g. ``party_parrot``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It mentions 'undocumented session endpoint' hinting at instability, but does not disclose whether authentication is required, what happens on failure, or if the operation is destructive.

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

Conciseness3/5

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

The description is a single short sentence, concise but lacking necessary detail for a mutation tool. It is not verbose but misses important contextual information.

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

Completeness2/5

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

With one required parameter and output schema present, the description should provide context on usage implications, but it is minimal. The 'undocumented' note adds some context but does not address error handling or behavior, leaving the agent underinformed.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes the 'name' parameter in detail. The description adds nothing beyond the schema, meeting the baseline for coverage.

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

Purpose5/5

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

The description states 'Remove a custom emoji' which clearly indicates the action and resource. It distinguishes from sibling tools like emoji_add (adds) and emoji_list (lists) without ambiguity.

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. The description does not mention prerequisites, limitations, or when not to use it, leaving the agent to infer usage solely from the name.

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

entity_present_detailsC

Present details about an entity in a flexpane.

ParametersJSON Schema
NameRequiredDescriptionDefault
errorNoError object with status and messaging details, if the entity can't be presented.
metadataNoFlexpane metadata keyed by entity ID, each describing the entity to present.
trigger_idYesReference to the user action that initiated the request.
user_auth_urlNoCustom URL where the user can authenticate.
user_auth_requiredNoWhether the user must authenticate before details can be shown.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It describes the high-level action but fails to disclose behavioral traits such as that it triggers a UI change, may require authentication, or how error handling works. The description is too minimal to inform the agent about side effects or operational requirements.

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

Conciseness2/5

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

The description is extremely concise (8 words) but at the cost of omitting critical information. It is under-specified, not efficiently concise. It could include a few more sentences to convey usage and behavior 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 tool has 5 parameters including authentication and error handling, and despite an output schema, the description lacks explanation of the tool's effect (opening a flexpane) and the role of parameters like 'error' or 'user_auth_required'. The description is incomplete for the complexity involved.

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 parameters. The tool description adds no additional meaning or context beyond what is in the schema, so it meets the baseline of 3 with no improvement.

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 action (present) and the resource (entity details in a flexpane). It is sufficiently specific for a tool name that implies a UI action. However, it lacks differentiation from sibling tools, though none are obviously similar.

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, no context on prerequisites or when not to use it. This is a complete gap.

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

experiments_get_by_userA

Get A/B experiment assignments for current user (undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

The description notes the tool is 'undocumented', implying instability or lack of official support, but does not disclose other behavioral traits such as authentication needs, side effects, or rate limits. With no annotations, more transparency is needed.

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, no fluff, clear and to the point. Every word earns its place.

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

Completeness3/5

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

Given the zero-parameter schema and existing output schema, the description is minimally adequate but lacks details on error handling, return format, or any prerequisites. It is functional but not rich.

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?

No parameters exist, so the schema is fully covered. The description adds nothing about parameters, but the baseline is 4 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 clearly states the action ('Get'), the resource ('A/B experiment assignments'), and the subject ('current user'). It is specific and distinguishes from many sibling tools focused on different resources.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, nor any mention of prerequisites or limitations. The agent receives no decision support.

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

files_comments_deleteC

Delete an existing comment on a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the comment to delete.
fileYesID of the file the comment belongs to (e.g. ``F0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations, the description must disclose behavioral traits. It only states the deletion action, omitting critical information like irreversibility, side effects, or authorization needs.

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

Conciseness3/5

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

The description is very short (one sentence) without fluff, but it could be more structured or provide key details in a compact form. It is not excessively long, but also not optimally 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?

For a simple deletion tool with an output schema, the description minimally covers the basic action. However, given the destructive nature, more context (e.g., permissions, error conditions) would improve completeness.

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

Parameters3/5

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

The schema already fully describes both parameters with 100% coverage. The description adds no extra meaning beyond what the schema provides, so baseline score 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 action ('delete') and the resource ('existing comment on a file'), distinguishing it from sibling file tools that deal with files themselves or other aspects.

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 like editing or removing file comments via other endpoints. Prerequisites, such as required permissions or context, are also absent.

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

files_complete_upload_externalC

Complete an upload external process.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYesFile objects to finalize, each with an ``id`` from ``files.getUploadURLExternal`` and optional ``title``.
thread_tsNoTimestamp of the parent message to share the files into as a thread reply (e.g. ``1700000000.00``).
channel_idNoID of the channel to share the uploaded files into (e.g. ``C0123``).
initial_commentNoMessage text to post alongside the shared files.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose critical behavioral details such as whether the operation is idempotent, what happens if called without prior upload initiation, or any side effects. This is insufficient for a mutation tool.

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

Conciseness4/5

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

The description is a single, concise sentence without extraneous words. However, it sacrifices informativeness for brevity; a slightly longer description could improve clarity without being verbose.

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 has 4 parameters, an output schema, and is part of a multi-step upload process, the description lacks context about the workflow (e.g., prerequisite files_get_upload_url_external) and does not mention the output. The schema provides parameter details, but the tool's role is underspecified.

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 clear parameter descriptions in the schema (e.g., files parameter explains it uses id from files.getUploadURLExternal). The tool description adds no additional parameter meaning beyond the schema, 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.

Purpose3/5

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

The description states the tool completes an upload external process, which indicates a finalization step. However, it is vague—does not specify what 'external process' entails or how it relates to the upload workflow, and it doesn't differentiate from sibling tools like files_get_upload_url_external.

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 usage guidance is provided. The description does not mention that this tool should be used after files_get_upload_url_external, nor does it specify when not to use it or alternatives.

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

files_deleteC

Delete a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesID of the file to delete (e.g. ``F0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It does not mention whether the deletion is permanent, requires specific permissions, or triggers side effects like removing shared links. This is a significant gap.

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

Conciseness4/5

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

The description is extremely concise at three words, with no wasted text. However, it may be overly terse; adding a brief note on scope or permanence would improve without sacrificing conciseness.

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

Completeness3/5

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

For a simple delete operation with an output schema, the description is partially complete. It lacks critical context about reversibility, ownership requirements, and access token scopes. The presence of an output schema mitigates the need to describe return values.

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 fully describes the single parameter with an example format, achieving 100% coverage. The description adds no additional meaning beyond 'delete a file,' so it meets the baseline but does not exceed.

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 'Delete a file.' clearly states the action and resource, distinguishing it from sibling tools like files_edit and files_upload. However, it does not specify the scope (e.g., any file or only owned files), which would enhance clarity.

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 such as files_remote_remove or files_revoke_public_url. The agent receives no context about prerequisites or exclusions.

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

files_editC

Edit a file (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesID of the file to edit (e.g. ``F0123``).
titleNoNew title for the file.
contentNoNew body content of the file.
filetypeNoNew file type (Slack-internal file type identifier, e.g. ``text``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

The description does not disclose behavioral traits such as permissions required, destructive nature, or behavior when optional fields are set to null. With no annotations provided, the description carries full burden but fails to deliver.

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

Conciseness3/5

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

The description is very short (one sentence), which is front-loaded but lacks sufficient detail. It is concise but at the expense of completeness.

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 tool has 4 parameters and is an edit action, the description provides minimal context. An output schema exists but is not described. More detail on usage scenarios and effects is needed.

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 already in the schema (e.g., 'New title for the file'). The description adds no additional meaning beyond what the schema provides, resulting in a baseline score of 3.

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 'Edit a file' which clearly indicates a verb and resource, and it is distinct from sibling tools like files_upload or files_delete. However, it does not elaborate on what aspects can be edited, and 'legacy undocumented' adds ambiguity.

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 other file-related tools such as files_upload_v2 or files_remote_update. The description lacks context for selection criteria.

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

files_get_upload_url_externalC

Get an upload URL for an external file.

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthYesSize of the file in bytes.
alt_txtNoDescription of the image for screen-reader accessibility.
filenameYesName of the file being uploaded (e.g. ``report.pdf``).
snippet_typeNoSyntax type of a snippet being uploaded (e.g. ``python``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description must fully convey behavioral traits. It does not disclose that the URL is temporary, any authentication requirements, or what happens if the upload is not completed. The tool's side effects (e.g., pending upload state) are omitted.

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

Conciseness3/5

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

The description is concise (one sentence) and front-loaded, but it lacks important context. Every word should earn its place; here, the brevity results in missing crucial workflow information. It is neither overly verbose nor sufficiently informative.

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 tool's complexity (4 parameters, required subsequent steps, output schema exists), the description is incomplete. It does not mention the workflow involving files_complete_upload_external, nor does it explain the output schema contents. The agent lacks necessary context to use the tool 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?

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it does not explain why parameters like 'length' are important or how they affect the generated URL. No extra value 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 states the tool returns an upload URL for an external file. It specifies the verb 'Get' and the resource 'upload URL for an external file'. However, it does not differentiate from sibling tools like files_upload or files_complete_upload_external, which could cause confusion.

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. The description fails to mention that after obtaining the URL, the agent must upload the file and then call files_complete_upload_external to finalize. There is no indication of prerequisites or when not to use this tool.

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

files_infoB

Get information about a file. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesID of the file to get info about (e.g. ``F0123``).
pageNoPage number of comments to return (deprecated pagination).
countNoNumber of comments to return per page (deprecated pagination).
limitNoMaximum number of comments to return per page.
cursorNoPagination cursor from a prior response's ``response_metadata.next_cursor``.
detailedNoReturn the full Slack response instead of the compacted summary when ``True``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description must cover behavioral traits. It mentions the detailed parameter for full response but doesn't disclose read-only nature, rate limits, or error conditions. The default behavior (compacted summary) is implied but not explicit.

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

Conciseness5/5

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

Two concise sentences with no wasted words. The key point (detailed parameter) is front-loaded in the second sentence.

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

Completeness2/5

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

Despite having an output schema and 100% schema coverage, the description omits important context: multiple pagination parameters (some deprecated) and their interaction, the fact that it's a read operation, and the nature of the 'compacted summary'. Six parameters warrant more explanation.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds limited value. It clarifies the detailed parameter behavior ('full response') beyond the schema's 'return the full Slack response instead of the compacted summary'. No other parameters are elaborated beyond schema.

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

Purpose5/5

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

The description clearly states the verb 'Get information' and the resource 'a file'. This distinguishes it from sibling files_* tools like files_delete or files_list, which have different actions.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs. alternatives like files_list or files_remote_info. With many sibling file tools, an agent would benefit from context about when to fetch individual file info versus listing files.

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

files_listB

List files for a team, channel, or user. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number of results to return.
userNoFilter files to those created by this user (e.g. ``U0123``).
countNoNumber of files to return per page.
ts_toNoFilter files created before this Unix timestamp.
typesNoComma-separated file types to filter by (e.g. ``images,pdfs``; also ``all``, ``snippets``, ``gdocs``).
channelNoFilter files to those shared in this channel (e.g. ``C0123``).
team_idNoID of the workspace to list files for, required for org-wide tokens (e.g. ``T0123``).
ts_fromNoFilter files created after this Unix timestamp.
detailedNoReturn the full Slack response instead of the compacted summary when ``True``.
show_files_hidden_by_limitNoInclude files hidden due to the free-plan message/file limit when ``True``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It fails to mention that the tool is read-only, requires authentication, or returns paginated results (implied by page/count params but not stated). The 'detailed' parameter is mentioned but not explained in terms of impact on response structure.

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 very concise (two sentences) and front-loaded with the main purpose. However, it sacrifices useful detail; a slightly longer description could include pagination or filtering hints without being verbose.

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 10 parameters, no required ones, and presence of an output schema, the description adequately states the basic purpose but does not address pagination, filtering strategies, or when to use this tool over similar siblings like search_files. It is minimally adequate.

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 baseline is 3. The description adds minimal value beyond the schema: only the 'detailed=True' tip is provided. The filtering parameters (user, channel, types, etc.) are already documented in the schema.

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

Purpose5/5

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

The description uses a specific verb ('List') and identifies the resource ('files') with clear scoping ('for a team, channel, or user'). It differentiates from sibling tools like files_info (single file) and files_upload (create). The mention of 'detailed=True' adds specificity.

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 vs alternatives like search_files or conversations_history. It lacks context for selection criteria, such as when filtering by user or channel is appropriate. The only hint is on response detail level.

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

files_remote_addB

Add a remote file.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the file shown in Slack.
filetypeNoFile type identifier (e.g. ``doc``, ``pdf``).
external_idYesUnique identifier for the file in your app's storage (e.g. ``123abc``).
external_urlYesURL where the remote file can be accessed (e.g. ``https://example.com/files/123``).
preview_imageNoImage to use as the file's preview thumbnail.
indexable_file_contentsNoPlain-text contents of the file used to make it searchable in Slack.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/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 that this is a write/mutation operation, any auth requirements, or side effects. It is too brief to be informative.

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 is concise and efficient, but it is so brief that it lacks structure. Still, no waste.

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

Completeness2/5

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

Despite having an output schema, the description is too minimal given 6 parameters and many sibling tools. It does not guide an agent on how to construct the call or when to use it.

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

Parameters3/5

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

Schema coverage is 100% so the schema already documents all 6 parameters. The description adds no additional parameter meaning beyond what the schema provides, 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 'Add a remote file.' is a specific verb+resource that clearly distinguishes from siblings like files_upload (local upload), files_remote_info, files_remote_list, etc.

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 files_upload or files_remote_share. With many file-related siblings, an agent lacks decision criteria.

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

files_remote_infoC

Get information about a remote file.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoID of the file as assigned by Slack (e.g. ``F0123``).
external_idNoIdentifier of the remote file in your app's storage (e.g. ``123abc``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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. It only states the action and resource, omitting details like whether the tool is read-only, required authentication, or behavior on missing files.

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 very concise at one sentence. While it could include more detail, it has no wasted words.

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

Completeness2/5

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

Despite an output schema existing, the description is too minimal. It fails to explain that either 'file' or 'external_id' is needed, or how the tool behaves with both provided. Missing context for a simple but ambiguous interface.

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 baseline is 3. The description adds no extra meaning about the parameters, such as which to use or mutual exclusivity.

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 action (Get) and the resource (remote file). It distinguishes from sibling tools like files_remote_add and files_remote_list by focusing on information retrieval. However, it lacks specificity about what information is returned.

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. The description does not mention prerequisites, such as needing to add a remote file first, nor does it compare with other remote file tools.

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

files_remote_listC

List remote files.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of files to return per page.
ts_toNoFilter files created before this Unix timestamp.
cursorNoPagination cursor for the next page, from a prior response's ``response_metadata.next_cursor``.
channelNoFilter to remote files shared in this channel (e.g. ``C0123``).
ts_fromNoFilter files created after this Unix timestamp.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior1/5

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

No behavioral traits disclosed. With no annotations, the description should indicate pagination, filtering, or other behaviors, but it only states the basic function.

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 concise with one sentence front-loading the core purpose. While minimal, it is efficient and to the point.

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

Completeness1/5

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

Despite having 5 parameters and an output schema, the description provides no context about pagination, filtering, or response structure, making it incomplete.

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 parameters are already documented. The description adds no additional meaning beyond what is in the schema, so 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?

The description 'List remote files' clearly states the verb (list) and resource (remote files), distinguishing it from siblings like files_list which lists regular files. However, it could be more specific about filtering capabilities.

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

Usage Guidelines1/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 files_list, files_info, or other file tools. The description does not mention context or exclusions.

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

files_remote_removeC

Remove a remote file.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoID of the file as assigned by Slack (e.g. ``F0123``).
external_idNoIdentifier of the remote file in your app's storage (e.g. ``123abc``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior1/5

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

Without any annotations, the description must fully disclose behavior, but it only states the action. It offers no details on authentication, idempotency, error handling, or side effects, leaving the agent with insufficient behavioral understanding.

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

Conciseness3/5

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

The description is very short and front-loaded, but it sacrifices necessary detail for brevity. While concise, it lacks essential usage guidance and behavioral context, making it only average in value.

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 no annotations and an output schema not shown (but indicated), the description is too minimal. It does not explain return values, effects, or prerequisites, leaving gaps for a complete understanding of the tool's behavior.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for both parameters, explaining their types and examples. The tool description adds no additional meaning beyond what the schema already provides, meeting the baseline as schema coverage is high.

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 'Remove a remote file.' is clear, with a specific verb and resource. It distinctly separates this tool from its siblings like files_remote_add, files_remote_info, etc., as the only one focused on removal.

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 like files_delete or other remote file tools. The description lacks any context about prerequisites or scenarios where this tool is appropriate.

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

files_remote_shareB

Share a remote file into a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoID of the file as assigned by Slack (e.g. ``F0123``).
channelsYesComma-separated list of channel IDs to share the file into (e.g. ``C0123,C0456``).
external_idNoIdentifier of the remote file in your app's storage (e.g. ``123abc``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 fails to disclose important behavioral details: permissions needed, requirement for either file or external_id, or effects of sharing. Only states the basic action.

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

Conciseness4/5

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

Single sentence, zero wasted words. Could be slightly more structured but remains efficient and easy to parse.

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?

Description covers the core function adequately given the presence of an output schema. However, it omits the mutual exclusivity of file and external_id, which is important for correct 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% so parameters are well-documented in the schema. The description adds no additional parameter meaning beyond the schema's own descriptions. 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?

Description clearly states the action ('share'), the resource ('remote file'), and the target ('into a channel'). It effectively distinguishes from sibling tools like files_remote_add (which adds without sharing) and files_upload (for local files).

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 such as files_remote_add or files_upload. Lacks prerequisites or context about when sharing is appropriate.

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

files_remote_updateC

Update a remote file.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoID of the file as assigned by Slack (e.g. ``F0123``).
titleNoTitle of the file shown in Slack.
filetypeNoFile type identifier (e.g. ``doc``, ``pdf``).
external_idNoIdentifier of the remote file in your app's storage (e.g. ``123abc``).
external_urlNoURL where the remote file can be accessed (e.g. ``https://example.com/files/123``).
preview_imageNoImage to use as the file's preview thumbnail.
indexable_file_contentsNoPlain-text contents of the file used to make it searchable in Slack.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'Update a remote file,' omitting details on permissions, success/failure conditions, idempotency, or side effects. This is insufficient for safe invocation.

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, concise sentence with no unnecessary words. It is front-loaded and efficient, though it could include slightly more context without losing conciseness.

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 tool has 7 optional parameters and an output schema (not shown), the description is too minimal. It does not explain what 'update' entails, how partial updates work, or what the output represents. More context is needed for effective 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 description coverage is 100% (all 7 parameters have descriptions). The tool description adds no additional meaning beyond 'Update a remote file.' Since the schema already documents parameters, the description does not need to elaborate, but it also does not enhance understanding.

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 'Update a remote file.' clearly states the verb and resource, distinguishing it from sibling tools like files_remote_add and files_remote_remove. However, it lacks specifics about which attributes can be updated, which the input schema provides but the description could summarize.

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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like files_remote_add (creating) or files_remote_info (reading). There is no mention of prerequisites or exclusions.

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

files_revoke_public_urlB

Revoke public/external sharing access for a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesID of the file to revoke public sharing for (e.g. ``F0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output 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 full weight for behavioral disclosure. It only says 'revoke' but does not specify required permissions, side effects (e.g., breaking existing shared links), error behavior if the file has no public sharing, or whether the operation is reversible.

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, focused sentence with no unnecessary words. It is concise and front-loaded, efficiently communicating the core purpose.

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

Completeness3/5

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

Given the tool's simplicity (1 parameter, output schema present), the description is minimally complete but lacks context about return values, authentication needs, or what happens if the file does not have public sharing. The output schema existence helps but the description does not reference it.

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 the parameter description in the schema is clear (file ID with example). The tool description does not add extra meaning beyond the schema, so 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 clearly states the action (revoke) and the resource (public/external sharing access for a file). It is specific and distinguishes itself from the inverse tool 'files_shared_public_url' by implying the opposite operation, though not explicitly naming it.

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 similar tools like 'files_delete' or 'files_edit'. There is no mention of prerequisites, conditions, or alternatives, leaving the agent without context for appropriate invocation.

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

files_shared_public_urlB

Enable a file for public/external sharing.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesID of the file to enable public sharing for (e.g. ``F0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the action, omitting side effects (e.g., generating a public URL, visibility changes), required permissions, or whether the operation is reversible. Minimal disclosure.

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

Conciseness5/5

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

The description is a single sentence of 5 words, with no redundancy. Every word serves a purpose, making it highly concise and front-loaded.

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?

Despite the presence of an output schema (reducing the need to explain return values), the description is too minimal. It lacks context about when to apply this tool in a workflow, such as after file upload, and does not differentiate from the many file-related siblings.

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 the parameter 'file' is well-documented in the schema with an example. The description adds no additional meaning beyond the schema, meeting the baseline expectation.

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 ('enable') and the resource ('a file for public/external sharing'). It is specific and distinct from sibling tools, especially the reverse operation 'files_revoke_public_url'.

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, prerequisites (e.g., file must exist, permissions), or when not to use it. The description is purely functional and lacks contextual cues.

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

files_share_legacyB

Share a file to a channel (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesID of the file to share (e.g. ``F0123``).
channelYesID of the channel to share the file into (e.g. ``C0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

Without annotations, the description carries the burden. It only indicates the tool is 'legacy undocumented', hinting at instability, but fails to disclose permissions, side effects, or whether it overrides existing shares.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the core purpose and legacy status. No unnecessary 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?

The description is minimal but acknowledges its undocumented status. Given the output schema exists, return values do not need explanation. However, more context about preconditions or error behavior would improve completeness for a legacy 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% with clear parameter descriptions. The tool description adds no extra semantic value beyond the schema, but the baseline is met.

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 action (share), object (file), and destination (channel). The 'legacy undocumented' tag distinguishes it from other file manipulation tools, though it does not explicitly compare to newer alternatives.

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. The 'legacy undocumented' hint implies it is not preferred, but no explicit when-to-use or when-not-to-use information is provided.

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

files_uploadC

Upload a file (legacy).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoTitle of the file shown in Slack.
contentNoFile contents as a string; using this creates an editable text/snippet file instead of a binary upload.
channelsNoComma-separated list of channel IDs to share the file into (e.g. ``C0123,C0456``).
filenameNoName of the file (e.g. ``report.pdf``).
filetypeNoFile type identifier (e.g. ``python``, ``pdf``).
thread_tsNoTimestamp of the parent message to share the file into as a thread reply (e.g. ``1700000000.00``).
initial_commentNoMessage text to post alongside the file.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only says 'Upload a file', with no details on what happens (e.g., returns file object, side effects, authentication needs). This is minimal.

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?

Extremely concise at one short sentence. No wasted words, but could add a bit more context without losing conciseness (e.g., mention usage context).

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 7 parameters and no annotations, the description is very incomplete. It doesn't mention output, prerequisites, file size limits, or that it's legacy. Inadequate for complex 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 has 100% coverage with descriptions for all 7 parameters. The description adds no additional meaning beyond schema, so 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 clearly states 'Upload a file (legacy)', specifying the verb and resource. The '(legacy)' tag distinguishes it from newer versions like files_upload_v2, making purpose clear.

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. The 'legacy' tag implies preference for newer versions, but explicit when-to-use or when-not-to-use is absent.

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

files_upload_v2B

Upload file content (v2).

Runs Slack's recommended upload flow (get upload URL, upload, complete) via the slack_sdk helper. Takes the file contents directly — it does not read from the host filesystem.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoTitle of the file shown in Slack.
channelNoID of the channel to share the uploaded file into (e.g. ``C0123``).
contentYesFile contents to upload as a string.
filenameNoName of the file (e.g. ``notes.txt``).
thread_tsNoTimestamp of the parent message to share the file into as a thread reply (e.g. ``1700000000.0001``).
snippet_typeNoSyntax type of a snippet being uploaded (e.g. ``python``).
initial_commentNoMessage text to post alongside the file.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral transparency. It discloses the multi-step flow and that it does not read from the host filesystem, but lacks details on authentication requirements, size limits, rate limits, or potential side effects.

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?

Two sentences with clear front-loading of the main action. Every sentence adds value, though the second sentence could be more impactful if placed first.

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 (7 parameters, output schema exists), the description lacks context on when to choose this over siblings, prerequisites (e.g., authentication scope), and behavior details like file size limits. Output schema partially compensates, but overall incomplete.

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 the description adds minimal value beyond the schema. The description's note about taking file contents directly aligns with the 'content' parameter but doesn't provide new context for other parameters.

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 tool uploads file content and runs Slack's recommended upload flow. It distinguishes from reading from the filesystem, but does not explicitly differentiate from siblings like files_upload (v1) beyond the version number.

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?

Provides implicit guidance by stating it takes file contents directly, implying use when content is a string. However, no explicit when-to-use or when-not-to-use compared to siblings like files_upload or files_get_upload_url_external.

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

functions_complete_errorA

Signal that a function failed to complete.

ParametersJSON Schema
NameRequiredDescriptionDefault
errorYesHuman-readable error message describing why the function failed.
function_execution_idYesID of the function execution to fail, from the ``function_executed`` event.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It merely states 'Signal' without revealing any side effects, required permissions, or consequences (e.g., whether it terminates execution or records the error). This is insufficient for a mutation-like 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 description is extremely concise at one sentence, front-loading the core purpose. While efficient, it lacks some necessary detail, preventing a perfect 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?

Given the simplicity (2 parameters, no nested objects) and the presence of an output schema, the description combined with schema specifications provides sufficient completeness to use the tool correctly. Minor omissions in behavioral context are acceptable.

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%, providing adequate descriptions for both parameters. The description adds no extra meaning or context for the parameters, meeting the baseline expectation.

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 'Signal that a function failed to complete' clearly states the tool's purpose using a specific verb ('Signal') and resource ('function failed'). It effectively distinguishes this tool from its sibling 'functions_complete_success' by explicitly indicating failure.

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 when a function fails, but offers no explicit guidance on when to use this tool versus alternatives like 'functions_complete_success'. No context for preferred scenarios, prerequisites, or exclusions is provided.

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

functions_complete_successB

Signal the successful completion of a function.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputsYesMapping of output names to values, matching the output parameters declared in the function definition.
function_execution_idYesID of the function execution to complete, from the ``function_executed`` event.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. However, it only states the action without describing side effects, required permissions, or what happens after signaling completion. The agent is left unaware of potential consequences or return values.

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, efficiently communicating the core purpose. It is front-loaded and contains no extraneous information. However, it might be too brief, lacking necessary detail for a tool with two parameters and an output schema.

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 that there is an output schema, the description does not need to detail return values. However, it does not mention error handling, prerequisites, or the relationship to the sibling tool 'functions_complete_error'. For a simple signaling tool, it is minimally adequate but could provide more context.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning to the 'function_execution_id' or 'outputs' parameters beyond what the schema provides. It does not explain how to structure outputs or where the ID comes from.

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 exactly what the tool does: 'Signal the successful completion of a function.' It uses a specific verb ('Signal') and resource ('completion of a function'), and its purpose is clearly distinct from the sibling tool 'functions_complete_error', which would signal an error.

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

Usage Guidelines3/5

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

The description implies when to use this tool (when a function completes successfully), but it does not explicitly mention when not to use it or provide alternatives. There is no guidance on prerequisites or context, leaving the agent to infer usage from the tool name and sibling.

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

messages_listA

Batch-fetch full message objects by channel and timestamp (undocumented session endpoint).

Resolves both top-level messages and thread replies in one call — useful for hydrating saved/bookmarked items without one conversations.history call each. Set detailed=True for the full, uncompacted response.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNoReturn the full, uncompacted response instead of the compacted summary.
message_idsYesGroups of messages to fetch, each ``{"channel": "C0123", "timestamps": ["1700000000.000100", ...]}``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided; description mentions it is an 'undocumented session endpoint,' which warns about stability. It explains compacted vs. uncompacted responses and batch capability but does not disclose permissions or side effects.

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?

Four concise sentences, front-loaded with main purpose. No wasted words; each sentence adds meaningful information.

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?

Given the presence of an output schema, description fully covers behavior: batch fetch, thread resolution, compact vs. full response, and the undocumented nature. Complete for a fetch 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 coverage is 100%, so baseline is 3. Description adds minimal value beyond schema; it restates the structure of message_ids and the effect of detailed, which is already in the schema.

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

Purpose5/5

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

Description clearly states 'Batch-fetch full message objects by channel and timestamp' and distinguishes from conversations.history, which is a sibling tool. It specifies both purpose and scope.

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?

Provides a clear use case: hydrating saved/bookmarked items more efficiently than one conversations.history call each. Does not explicitly list when not to use, but context is sufficient.

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

migration_exchangeC

Exchange a legacy ID for a new ID, or vice versa.

ParametersJSON Schema
NameRequiredDescriptionDefault
usersYesComma-separated list of user IDs (up to 400) to translate (e.g. ``U0123,U0456``).
to_oldNoSet to ``True`` to map global IDs back to their local (legacy) workspace IDs.
team_idNoSpecify a team ID to scope the lookup, required for Enterprise Grid org tokens.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states the core function without revealing whether the operation is destructive, idempotent, or has rate limits. It does not mention error handling or side effects, leaving the agent uninformed about safety.

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 concise at one sentence, front-loading the core action. However, it sacrifices necessary detail for brevity, making it slightly too terse for optimal utility.

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

Completeness2/5

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

The tool has an output schema, which helps, but the description fails to explain essential context like the type of IDs involved, required permissions, or example usage. The description is insufficient for an agent to reliably invoke this tool without additional 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 schema covers all three parameters with descriptions (100% coverage), so the baseline is 3. The tool description does not add additional meaning beyond what the schema provides. It adequately explains the parameters but does not enhance understanding.

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 'exchange' and the resources 'legacy ID' and 'new ID', indicating a bidirectional mapping. It distinguishes itself from other exchange tools like oauth_v2_exchange by focusing on legacy IDs, but it does not explicitly specify the type of ID (e.g., user IDs) or the domain context.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. No context is provided about prerequisites, such as required token scopes or scenarios where this exchange is needed. The sibling list includes similar exchange functions, but the description does not differentiate usage.

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

oauth_accessB

Exchange a temporary OAuth verifier code for an access token (V1).

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe OAuth verifier code received via the OAuth callback.
client_idYesYour app's client ID.
redirect_uriNoMust match the value used to request the code.
client_secretYesYour app's client secret.
single_channelNoRequest a single-channel installation token.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and the description only states the basic action. Does not disclose behavioral traits like code invalidation, rate limits, or authentication requirements.

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

Conciseness5/5

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

Single sentence, 12 words, no wasted text. Directly communicates the core purpose.

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 OAuth flows, the description lacks essential context like preconditions (e.g., having initiated an OAuth flow), error conditions, and the significance of the access token. The presence of an output schema partially compensates, but overall 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?

Schema coverage is 100% with good parameter descriptions. The description adds value by specifying 'V1', which provides protocol context 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?

Description clearly states the verb 'exchange' and the resources 'temporary OAuth verifier code' and 'access token', with 'V1' distinguishing it from sibling tools like oauth_v2_access.

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 (e.g., OAuth V2 tools). Lacks context on preconditions or flow step.

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

oauth_v2_accessB

Exchange a temporary OAuth verifier code for an access token (V2).

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe OAuth callback code (omit when refreshing).
client_idYesYour app's client ID.
grant_typeNo``authorization_code`` (default) or ``refresh_token``.
redirect_uriNoMust match the value used to request the code.
client_secretYesYour app's client secret.
code_verifierNoThe PKCE code verifier, when the authorization request used PKCE.
refresh_tokenNoThe refresh token, when ``grant_type=refresh_token``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/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 for behavioral disclosure. It only states the basic exchange action but omits critical traits: that this operation mutates state (acquires/revokes tokens), requires handling of secrets (client_secret), may fail due to expired codes, and can also perform token refresh (implied by schema but not mentioned). The description does not compensate for the lack of 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 a single, terse sentence with no fluff. However, it could be slightly more informative without losing conciseness by mentioning key use case variants (e.g., 'or refresh token'). Still, it earns a high score for front-loading the core action.

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

Completeness2/5

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

Despite having an output schema (not shown), the description does not hint at the response (e.g., returns access_token, scope, etc.). It also omits critical variant usage like PKCE or refresh token flows, which are significant for correct invocation. For a tool with 7 parameters and complex OAuth semantics, this description is insufficiently complete.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter already has a description. The tool description adds no additional semantic context beyond 'exchange a code'. It does not explain the relationship between parameters (e.g., code vs. refresh_token are mutually exclusive) or provide examples. The baseline score of 3 is appropriate as the schema carries the burden.

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 'Exchange' and clearly identifies the resource ('temporary OAuth verifier code for an access token') and version ('V2'). This distinguishes it from sibling tools like oauth_access (V1) and oauth_v2_user_access (different token type).

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 oauth_v2_user_access or oauth_access. It does not mention typical triggers (e.g., after receiving a callback code) or when not to use it (e.g., for refresh token flows, which are also handled by this tool via the grant_type parameter).

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

oauth_v2_exchangeA

Exchange a legacy access token for a new expiring access token.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesThe legacy (non-expiring) access token to exchange.
client_idYesYour app's client ID.
client_secretYesYour app's client secret.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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 full burden. It only states 'exchange', which suggests mutation, but does not disclose what happens to the legacy token, whether it requires certain permissions, or any side effects. This is 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?

The description is a single front-loaded sentence with no wasted words. It efficiently conveys the core action.

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 token exchange tool with an output schema (not shown), the description is adequate but minimal. It does not explain what is returned, any scope requirements, or how the new token behaves. Given the lack of annotations, more context would be beneficial.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it merely restates the action without elaborating on parameters.

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

Purpose5/5

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

The description uses a specific verb 'Exchange' and clearly identifies the resource 'legacy access token' and the result 'new expiring access token'. It distinguishes from sibling tools like oauth_v2_access and oauth_v2_user_access which deal with different token operations.

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

Usage Guidelines3/5

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

The description implies when to use (when you have a legacy token to exchange) but provides no explicit guidance on when not to use, prerequisites, or alternatives. It lacks any context about comparing with related tools.

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

oauth_v2_user_accessB

Exchange a temporary OAuth verifier code for a user access token (V2).

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoThe OAuth callback code (omit when refreshing).
client_idYesYour app's client ID.
grant_typeNo``authorization_code`` (default) or ``refresh_token``.
redirect_uriNoMust match the value used to request the code.
client_secretNoYour app's client secret (omit for public PKCE clients).
code_verifierNoPKCE verifier matching the original challenge.
refresh_tokenNoThe refresh token, when ``grant_type=refresh_token``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It states 'Exchange', implying a side effect (token creation), but does not mention token revocation, expiration, or permission requirements. The schema shows optional parameters for PKCE and refresh, but the description adds no behavioral context beyond the basic action.

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

Conciseness4/5

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

The description is a single 13-word sentence, efficient and focused. It front-loads the key purpose. However, it lacks structure such as separate sections or bullet points that could improve readability for a complex OAuth tool.

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

Completeness2/5

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

Given the complexity of OAuth with 7 parameters and an existing output schema (not provided), the description is too minimal. It does not explain the two-legged flow (authorization_code vs refresh_token), PKCE requirements, or error handling. The output schema exists but is not described, leaving gaps for an AI agent to safely invoke the tool.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter documented. The description adds no additional meaning to parameters beyond what the schema provides, so the baseline 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 tool exchanges an OAuth verifier code for a user access token, specifying version V2. It differentiates from sibling tools like oauth_access and oauth_v2_exchange by explicitly mentioning 'user access token', but does not explicitly contrast with similar OAuth token exchange tools.

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

Usage Guidelines3/5

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

The description implies usage for exchanging an OAuth code but provides no guidance on when to use this tool versus alternatives like refresh_token flow or other OAuth endpoints. No explicit when-to-use or when-not-to-use information is given.

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

openid_connect_tokenC

Exchange a temporary OAuth code for an access token for Sign in with Slack.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoThe temporary authorization code returned via the OAuth redirect.
client_idYesIssued client ID for your Slack app.
grant_typeNoThe grant type: ``authorization_code`` (default) or ``refresh_token``.
redirect_uriNoRedirect URI used in the initial authorization request; must match exactly.
client_secretYesIssued client secret for your Slack app.
code_verifierNoThe PKCE code verifier, when the authorization request used PKCE.
refresh_tokenNoThe refresh token, used when ``grant_type`` is ``refresh_token``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It states the basic exchange but omits critical details: the need for client_id and client_secret (though schema shows required), PKCE support, the grant type options, or what happens on error. No mention of rate limits, security considerations, or the token's response format.

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

Conciseness5/5

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

The description is a single, concise sentence of 15 words. Every word is necessary to convey the core function. There is no redundant information. It is efficiently front-loaded.

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 tool's complexity (7 parameters, part of an OAuth flow) and the existence of an output schema, the description lacks completeness. It does not explain the tool's role in the broader OAuth flow (e.g., that the code must be obtained via a prior authorization redirect to the app's redirect URI). An AI agent without additional context may misuse the tool or confuse it with similar token-exchange tools.

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 for all 7 parameters, each with clear descriptions. The tool description adds no additional semantic value beyond the schema; it merely states the overall action. Baseline score of 3 is appropriate as the schema does the heavy lifting.

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 tool exchanges a temporary OAuth code for an access token, specifically for Sign in with Slack. The verb 'Exchange' and resource 'temporary OAuth code for an access token' are specific, and the mention of 'Sign in with Slack' distinguishes it from generic OAuth token tools. However, it does not explicitly differentiate from sibling tools like oauth_v2_access or openid_connect_user_info.

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 oauth_v2_access or openid_connect_user_info. It does not mention prerequisites (e.g., needing a code from a prior authorization request) or context (e.g., that this is part of the OpenID Connect flow). No when/when-not advice is given.

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

openid_connect_user_infoA

Get the identity of a user who authorized Sign in with Slack.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided; description only says 'get identity'. Does not disclose whether this is a read-only operation, authentication requirements, rate limits, or what fields are returned. Minimal behavioral info beyond the purpose.

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

Conciseness5/5

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

Single sentence, no filler. Efficiently conveys the core purpose without excess.

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 parameterless tool with an output schema, but lacks context about when to call, how it relates to OAuth flow, and what 'identity' includes (e.g., user ID, email, etc.).

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?

No parameters defined, input schema is empty (coverage 100%). Description does not add parameter info, but there is nothing to explain. Baseline of 4 is appropriate given zero parameters.

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

Purpose5/5

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

Clearly states it retrieves the identity of a user who authorized 'Sign in with Slack'. Verb+resource is specific and well defined, and it is distinct from sibling 'openid_connect_token' which deals with token exchange.

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 'openid_connect_token' or other identity-related tools (e.g., 'users_info', 'users_identity'). Does not mention prerequisites (e.g., prior authorization) or context.

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

pins_addA

Pin an item to a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the channel to pin the item in (e.g. ``C0123``).
timestampYesTimestamp of the message to pin (e.g. ``1700000000.000100``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It does not explicitly state that it pins a message (timestamp implies that), nor does it mention auth needs or side effects. Schema clarifies but description is vague.

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?

Extremely concise single sentence with no waste. Front-loaded and direct.

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 (2 params, both described in schema), the description is adequate but could be slightly more explicit about the nature of the item (message).

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 baseline is 3. The description adds no additional meaning beyond what schema already provides.

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

Purpose5/5

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

The description 'Pin an item to a channel.' clearly states the action (pin) and the target (item to channel), distinguishing it from sibling tools like pins_list and pins_remove.

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 or context provided. The description is too brief.

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

pins_listA

List items pinned to a channel. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the channel whose pinned items to list (e.g. ``C0123``).
detailedNoReturn the full unmodified Slack response instead of a compacted summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description discloses the main behavior and the 'detailed' parameter effect, but lacks details on pagination, rate limits, or error conditions.

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?

Two sentences, no fluff, front-loaded with the main purpose. Every word adds value.

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 existence of an output schema, the description covers the essential purpose and parameter hint. Minor omissions like error handling are acceptable for a simple list 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 coverage is 100%, so baseline is 3. The description adds a concise hint about the 'detailed' parameter but does not significantly extend beyond the schema definitions.

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 ('items pinned to a channel'), clearly distinguishing it from sibling tools like 'pins_add' and 'pins_remove'.

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

Usage Guidelines3/5

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

The description implies usage for listing pinned items but provides no explicit guidance on when to use this tool versus alternatives like 'conversations_history' or other list tools.

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

pins_removeB

Unpin an item from a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesID of the channel containing the pinned item (e.g. ``C0123``).
timestampYesTimestamp of the pinned message to remove (e.g. ``1700000000.000100``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Minimal description; no annotations provided. Does not disclose effects like irreversibility or permissions needed.

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?

One concise sentence without wasted words, but could include more detail.

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?

Simple tool with 2 params and output schema; description is adequate but lacks behavioral context for completeness.

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

Parameters3/5

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

Schema covers 100% of parameters with descriptions; tool description adds no extra meaning beyond 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?

Description clearly states the action 'Unpin an item from a channel.' distinguishing it from siblings like pins_add and pins_list.

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 or prerequisites. Lacks context about required item being pinned.

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

reactions_addC

Add a reaction to an item.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesReaction (emoji) name, without surrounding colons (e.g. ``thumbsup``).
channelYesChannel where the target message was posted (e.g. ``C0123``).
timestampYesTimestamp of the message to react to (e.g. ``1700000000.000100``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior1/5

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

No annotations provided, and the description does not disclose any behavioral traits like whether the reaction overwrites existing ones, rate limits, or permissions needed. It only restates the basic action.

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

Conciseness3/5

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

Single sentence is concise, but it is under-specified and lacks key context. For a simple tool it is acceptable, but not optimally informative.

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

Completeness2/5

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

Despite having an output schema, the description does not explain what happens after the reaction is added (e.g., success, error cases). It is minimal and does not cover important details for a mutation 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%, so the schema already describes all three parameters thoroughly. The description adds no additional parameter meaning 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?

Description states 'Add a reaction to an item,' which clearly identifies the action and resource. It distinguishes from sibling tools like reactions_remove and reactions_get. However, 'item' is vague; could specify 'message' for precision.

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 such as reactions_remove or reactions_list. The description lacks context on prerequisites or scenarios.

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

reactions_getB

Get reactions for an item. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile to get reactions for (e.g. ``F0123``).
fullNoReturn the complete reaction list, not a truncated one.
channelNoChannel of the target message (e.g. ``C0123``). Required when getting reactions for a message.
detailedNoReturn the full Slack response instead of a compacted summary.
timestampNoTimestamp of the message (e.g. ``1700000000.000100``). Used together with ``channel``.
file_commentNoFile comment to get reactions for (e.g. ``Fc0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/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 states 'get reactions' implying a read operation, but does not confirm idempotency, conditional parameter requirements (e.g., channel+timestamp for a message), or what happens if conflicting identifiers are provided. This is insufficient for safe invocation.

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?

Two concise sentences with no superfluous words. The key instruction (detailed parameter) is front-loaded. Every sentence earns its place.

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

Completeness3/5

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

Given rich schema descriptions and an output schema, the description is adequate but not complete. It lacks contextual guidance on usage scenarios (e.g., getting reactions for a message vs. file) and how to choose parameters. The sibling tools hint at broader functionality, but the description does not address when to use this tool over reactions_list.

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 baseline is 3. The description adds marginal value by highlighting the detailed parameter with 'Set detailed=True for full response,' which is slightly more actionable than the schema's own description. It does not clarify other parameters or their interplay.

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

Purpose4/5

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

The description uses the specific verb 'Get reactions for an item,' which clearly indicates the action and resource. It distinguishes from siblings like reactions_add and reactions_remove, but could be more precise about what constitutes an item (message, file, etc.). The schema details item types, but the description itself is somewhat vague.

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 reactions_list or reactions_remove. It only mentions the detailed parameter, not when to provide channel/timestamp versus file, or any prerequisites. This leaves the agent without strategic direction.

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

reactions_listB

List reactions made by a user. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoReturn the complete reaction list for each item, not a truncated one.
pageNoPage number of results to return (deprecated; prefer ``limit`` with ``cursor``).
userNoUser whose reactions to list; defaults to the authenticated user (e.g. ``U0123``).
countNoNumber of items to return per page (deprecated; prefer ``limit`` with ``cursor``).
limitNoMaximum number of items to return per page.
cursorNoPagination cursor from the previous response's ``response_metadata.next_cursor`` (e.g. ``dXNlcjpV``).
team_idNoEncoded team ID to list reactions in, required for org-wide app tokens (e.g. ``T0123``).
detailedNoReturn the full Slack response instead of a compacted summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior1/5

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

No annotations are provided, so the description must fully disclose behavioral traits. However, it does not mention that the operation is read-only, whether authentication is required, rate limits, pagination behavior, or what the 'full response' entails in terms of side effects or data volume. The description is critically insufficient for an agent to understand the tool's impact.

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 with two sentences: the first states the purpose, and the second gives a key parameter tip. There is no wasted text, and the information is front-loaded. This is an optimal structure for quickly conveying the core function.

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

Completeness2/5

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

Despite having an output schema and well-documented parameters, the tool description lacks contextual completeness. It does not explain pagination behavior, default user filtering, org-wide token requirements (team_id), or the overall response structure. For a tool with 8 parameters and moderate complexity, the description is too sparse to fully inform an agent of the tool's capabilities and constraints.

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% coverage with detailed descriptions for all 8 parameters. The tool description adds minimal value by explicitly mentioning the 'detailed' parameter and its effect. Given the high baseline from schema coverage, a score of 3 is appropriate; the description does not provide significant additional semantic meaning beyond what is already in the schema.

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

Purpose5/5

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

The description states a specific verb and resource: 'List reactions made by a user.' This clearly identifies the operation as listing, distinguishing it from sibling tools like reactions_add (add), reactions_remove (remove), and reactions_get (get specific reaction). It leaves no ambiguity about what the tool does.

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 only provides a tip about the detailed parameter but gives no guidance on when to use this tool versus alternatives such as reactions_get or other list tools. There is no mention of prerequisites, typical use cases, or conditions for using pagination or the user parameter. The lack of explicit usage instructions weakens this dimension.

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

reactions_removeB

Remove a reaction from an item.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile to remove the reaction from (e.g. ``F0123``).
nameYesReaction (emoji) name to remove, without surrounding colons (e.g. ``thumbsup``).
channelNoChannel where the message to remove the reaction from was posted (e.g. ``C0123``).
timestampNoTimestamp of the message (e.g. ``1700000000.000100``). Used together with ``channel``.
file_commentNoFile comment to remove the reaction from (e.g. ``Fc0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the basic action, omitting important details like idempotency, permission requirements, error handling (e.g., what if reaction doesn't exist), or side effects.

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 extremely concise (one sentence) with no wasted words. However, it may be too terse, but for a simple tool, it is effectively concise.

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

Completeness2/5

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

Despite having an output schema (not shown) and full schema coverage, the description lacks crucial behavioral context. It does not explain prerequisites, behavior when reaction is missing, or permission needs, making it incomplete for an agent to use 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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional semantic value beyond the schema, 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 specifies the action (remove), the resource (reaction), and the context (from an item). It distinguishes from sibling tools like reactions_add, reactions_get, and reactions_list.

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. Sibling tools exist (e.g., reactions_add, reactions_get) but there is no mention of appropriate context, prerequisites, or 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.

reminders_addC

Create a reminder.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe content of the reminder (e.g. ``eat a banana``).
timeYesWhen to trigger — a Unix timestamp, seconds from now, or natural language (e.g. ``in 15 minutes``).
userNoUser who will receive the reminder; defaults to the authenticated user (e.g. ``U0123``).
team_idNoEncoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``).
recurrenceNoRecurring schedule, e.g. ``{"frequency": "weekly", "weekdays": ["monday"]}``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description offers no behavioral details beyond the basic action. It does not mention permissions, side effects, or constraints.

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

Conciseness2/5

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

The description is extremely brief (3 words) but lacks necessary context. It is not front-loaded with key information and feels under-specified.

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

Completeness2/5

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

Despite having an output schema and 5 parameters, the description does not explain input intricacies (e.g., time formats, default user behavior) or output expectations.

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%, providing baseline clarity. The description adds no additional meaning beyond the schema descriptions, but the schema itself is informative.

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 'Create a reminder' is a clear verb+resource. It directly states the action and object, distinguishing it from sibling tools like reminders_list, reminders_delete, etc.

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. The description provides no context about prerequisites, limitations, or comparison to other reminder-related tools.

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

reminders_completeB

Mark a reminder as complete.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoEncoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``).
reminderYesThe ID of the reminder to mark complete (e.g. ``Rm0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states the purpose without revealing whether the action is destructive, requires specific permissions, is reversible, or what happens if already completed. This is insufficient for safe tool invocation.

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 extremely concise at 5 words, front-loading the primary action. However, the brevity sacrifices important behavioral context that could be included without adding verbosity.

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 that the tool has a simple operation but lacks annotations and an output schema, the description fails to cover behavioral aspects like permissions, idempotency, or return values. It is not complete enough for an agent to use confidently.

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 for both parameters (team_id and reminder). The description adds no additional meaning beyond what the schema already 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.

Purpose5/5

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

The description 'Mark a reminder as complete' clearly states the action (mark complete) and the resource (reminder). It distinguishes from sibling tools like reminders_add, reminders_delete, reminders_info, and reminders_list by specifying a unique operation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when not to use it. The agent must infer usage solely from the purpose.

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

reminders_deleteB

Delete a reminder.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoEncoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``).
reminderYesThe ID of the reminder to delete (e.g. ``Rm0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only states the action but does not disclose idempotency, permission requirements, whether deletion is reversible, or what the response contains. This is insufficient for a mutation operation.

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

Conciseness5/5

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

A single, direct sentence communicates the tool's purpose with no extraneous words. It is front-loaded and earns its place by being immediately understandable.

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?

While the tool is simple and the schema covers parameters, the description omits important context like success/error responses, idempotency, or whether the deletion is permanent. Given that an output schema exists, the description could have elaborated less on return values but still missed behavioral details.

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 parameters are already well-documented. The description adds no additional meaning beyond what the schema provides, which meets the baseline but does not exceed it.

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

Purpose5/5

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

The description 'Delete a reminder.' uses a specific verb and resource, making the action unmistakable. It clearly distinguishes from sibling tools like reminders_add, reminders_complete, reminders_info, and reminders_list.

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 reminders_complete. No prerequisites or exclusions are mentioned, leaving the agent without context for appropriate usage.

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

reminders_infoA

Get info for a reminder.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoEncoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``).
reminderYesThe ID of the reminder to get info for (e.g. ``Rm0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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 implies a read-only operation, which is appropriate, but does not elaborate on any side effects, permissions, or limitations. The existence of an output schema partially mitigates the lack of return value details.

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

Conciseness5/5

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

The description is a single sentence, concise, and front-loaded without any wasted words. It efficiently conveys the core purpose.

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

Completeness3/5

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

Given the tool's simplicity, the description is minimally adequate. However, it adds no value beyond the tool name and the input schema. For a tool with output schema and well-documented parameters, a slightly more informative description (e.g., 'Retrieve details of a specific reminder by ID') would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already defines both parameters (team_id, reminder) with descriptions. The tool description adds no additional semantic meaning 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 'Get info for a reminder' clearly states the action (Get) and the resource (info for a reminder), distinguishing it from sibling tools like reminders_add, reminders_complete, reminders_delete, and reminders_list.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusion criteria, which is a significant gap given the presence of multiple reminder-related siblings.

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

reminders_listA

List all reminders created by or for a given user.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoEncoded team ID to list reminders for, required for org-wide app tokens (e.g. ``T0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided; description lacks disclosure of read-only nature, auth requirements, or pagination. Minimal behavioral context beyond listing.

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

Conciseness5/5

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

Single sentence, no unnecessary words, front-loaded with action and resource.

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?

Output schema exists, so return value explanation is not needed. Tool is simple with one optional param; description is adequate but could clarify 'given user' meaning.

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 covers 100% of parameters with descriptions; the tool description adds no additional meaning to the parameter.

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

Purpose5/5

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

The description uses specific verb 'list' and resource 'reminders' with clear scope 'by or for a given user', distinguishing it from other reminder tools like add, info, etc.

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 is implied for listing reminders, but no explicit guidance on when to use vs alternatives (e.g., reminders_info) or when to provide team_id.

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

resolve_namesA

Resolve user and channel IDs to display names in a single call.

Accepts lists of user IDs (e.g. U12345) and/or channel IDs (e.g. C12345) and returns a mapping of each ID to its display name. Lookups run concurrently for performance.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idsNoUser IDs to resolve to display names (e.g. ``["U0123"]``).
channel_idsNoChannel IDs to resolve to display names (e.g. ``["C0123"]``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so description must fully disclose behavior. It mentions concurrent lookups for performance, but does not state that the operation is read-only, how errors are handled (e.g., invalid IDs), or what happens if both parameters are null. Some behavioral context is given, but gaps remain.

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?

Two concise sentences: first states primary purpose, second adds details on input formats and concurrency. No unnecessary words, front-loaded with key information.

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?

Given the tool's simplicity (2 optional params, mapping output), and the presence of an output schema, the description covers the essential behavior (input types, concurrent execution). No critical context is missing for an agent to invoke it 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?

Schema coverage is 100% with descriptive field names and example values. The description restates the purpose of the parameters without adding significant new semantics 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?

Description clearly states the verb 'resolve' and resource 'user and channel IDs to display names'. It also highlights that it does so in a single call, distinguishing it from per-ID lookups among siblings like users_info or conversations_info.

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?

Implied usage for batch resolution of IDs, but no explicit guidance on when to use versus alternatives (e.g., users_info for a single user) or when not to use it. No exclusions or prerequisites mentioned.

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

rtm_connectC

Start a Real Time Messaging session.

ParametersJSON Schema
NameRequiredDescriptionDefault
presence_subNoOnly deliver presence events for users subscribed via a ``presence_sub`` event.
batch_presence_awareNoBatch presence deliveries, only for users subscribed via ``presence_sub`` events.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as authentication requirements, rate limits, or what happens when a session is started. The brief description leaves the agent uninformed about side effects or session lifecycle.

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

Conciseness3/5

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

The description is a single sentence, which is concise but may be too minimal. It could benefit from including key details 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 existence of an output schema (not provided) and fully described parameters, the description lacks completeness by not explaining when to use this tool versus 'rtm_start' or other related tools. It fails to provide sufficient context for a novice agent.

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 is 3. The description does not add any additional meaning beyond what is already in the schema's parameter descriptions.

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 action ('Start a Real Time Messaging session') and resource (RTM session). However, it does not differentiate from the similar sibling tool 'rtm_start', leaving ambiguity.

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 'rtm_start'. The description lacks context on prerequisites or typical use cases.

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

rtm_startA

Start a Real Time Messaging session (deprecated, use rtm.connect).

ParametersJSON Schema
NameRequiredDescriptionDefault
no_latestNoExclude latest timestamps for channels, groups, MPIMs, and IMs to reduce payload size.
mpim_awareNoReturn group-DM (multi-party IM) conversations in the returned data.
no_unreadsNoSkip unread counts for each channel to reduce payload size.
presence_subNoOnly deliver presence events for users subscribed via a ``presence_sub`` event.
simple_latestNoReturn only the latest message timestamp per channel, omitting the full message object.
include_localeNoInclude locale information for users and IMs in the returned data.
batch_presence_awareNoBatch presence deliveries, only for users subscribed via ``presence_sub`` events.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.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 bears full responsibility for behavioral disclosure. However, it only mentions deprecation and an alternative, with no details on what 'starting a session' entails, potential side effects, or response behavior. This is insufficient for a tool with 7 parameters.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the core purpose and deprecation warning. Every part is essential, and there is no wasted text.

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?

While the output schema exists and parameters are fully described, the description lacks context about when it might still be appropriate to use this deprecated tool (e.g., for legacy systems). It is adequate but not comprehensive for agents needing to make informed decisions.

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 for all 7 parameters, so the baseline is 3. The description adds no additional parameter information, so no uplift 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 clearly states the tool starts a Real Time Messaging session, using a specific verb and resource. It also explicitly marks it as deprecated and directs to the alternative rtm_connect, which distinguishes it from siblings.

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

Usage Guidelines5/5

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

The description explicitly states that this tool is deprecated and that users should use rtm.connect instead. This provides clear guidance on when not to use this tool and what alternative to use.

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

saved_addB

Save a message for later (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
tsYesTimestamp of the item to save (e.g. ``1700000000.000100``).
item_idYesID of the item's container, e.g. the channel ID for a message (``C0123``).
date_dueNoUnix epoch timestamp (seconds) for an optional reminder/due date.
item_typeYesType of item to save, e.g. ``message``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only notes that the endpoint is undocumented and session-based, but does not disclose other traits like idempotency, overwrite behavior, or authentication requirements.

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

Conciseness5/5

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

The description is a single sentence that directly states the tool's purpose without any unnecessary words or repetition. It is 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?

Given the presence of an output schema and 100% parameter coverage, the description provides adequate context for a simple save operation. However, it lacks guidance on when to use this tool relative to siblings and could benefit from more details about the undocumented nature.

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 is 3. The description does not add any additional meaning beyond what the schema already provides for the parameters. It does not clarify possible values for item_type beyond the schema's example.

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 'save' and the resource 'message' with the purpose 'for later'. It distinguishes itself from sibling tools like saved_delete and saved_list, which perform different actions on saved items. The mention of 'undocumented session endpoint' adds context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or exclusions. Given the large list of sibling tools, explicit usage guidelines are missing.

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

saved_deleteB

Remove a saved-for-later item (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
tsYesTimestamp of the saved item to remove (e.g. ``1700000000.000100``).
item_idYesID of the item's container, e.g. the channel ID for a message (``C0123``).
item_typeYesType of saved item to remove, e.g. ``message``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. Description indicates 'Remove' (mutation) and 'undocumented session endpoint' (potentially unstable), but does not disclose side effects, idempotency, or authentication requirements beyond implying a session.

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?

Very concise single sentence that front-loads the purpose. However, it could be slightly more structured while remaining brief.

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 that an output schema exists, the description minimally covers the objective. However, for a deletion tool, more context (e.g., confirmation, permanence) would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's field descriptions, which are already clear (e.g., timestamp, container ID, type).

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 'Remove a saved-for-later item' clearly states the verb and resource, and the parenthetical '(undocumented session endpoint)' adds useful nuance. It distinguishes from siblings like 'saved_add' and 'saved_list'.

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., saved_list or saved_delete). The description only mentions it's undocumented, which is not actionable for usage decisions.

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

saved_listB

List saved-for-later items. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of saved items to return.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
detailedNoReturn the full, uncompacted response instead of the compacted summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output 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 must disclose all behavioral traits. It only mentions that the tool lists items and that 'detailed' affects response fullness. It fails to disclose pagination behavior (cursor parameter), scope (user-specific vs global), or read-only nature. The description adds minimal value beyond the schema descriptions.

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 sentences) and front-loaded with the core purpose. Every word serves a purpose, with no redundancy or filler.

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 that an output schema exists (though not shown), the description does not need to explain return values. However, it could mention pagination or default behavior for a complete picture. The description is adequate for a simple list tool but lacks depth about scope and output structure beyond the 'detailed' flag.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description's mention of 'detailed=True' adds a vague phrase 'full response' but does not clarify the exact format difference. It ignores 'limit' and 'cursor', which are already described in the schema. The description does not significantly enhance understanding of the parameters.

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 the resource 'saved-for-later items', making the tool's purpose immediately clear. However, it does not specify the scope (e.g., current user's items), which could be inferred but not explicit. This distinguishes it from sibling tools like saved_add and saved_delete, but not from other listing tools that might have similar context.

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 one usage hint ('Set detailed=True for full response'), but no guidance on when to use this tool versus alternatives like messages_list or conversations_history. There is no mention of prerequisites, exclusions, or context-specific scenarios, leaving the agent without clear decision criteria.

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

search_allC

Search for messages and files.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number to return.
sortNoSort by ``score`` (relevance, default) or ``timestamp`` (recency).
countNoResults per page (default 20, max 100).
queryYesSearch text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``before:2024-01-31``.
team_idNoEncoded team ID to scope the search to (for org-wide tokens).
detailedNoReturn the full, uncompacted Slack response when True.
sort_dirNoSort direction, ``asc`` or ``desc`` (default ``desc``).
highlightNoWrap matched terms in highlight markers in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as pagination, rate limits, authentication requirements, or the nature of the results. For an 8-parameter tool, this is insufficient.

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

Conciseness3/5

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

The description is a single sentence, which is concise but arguably too terse. It front-loads the purpose but lacks essential details, making it minimally adequate.

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

Completeness2/5

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

Despite having 8 parameters, a required query, and an output schema, the description provides no context about return values, pagination, or usage boundaries. It is incomplete for a tool of this complexity.

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

Parameters3/5

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

The input schema covers all 8 parameters with detailed descriptions (e.g., Slack modifiers for query, defaults for count). The description adds no additional meaning beyond what the schema provides, meeting 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 'Search for messages and files.' clearly states the verb (search) and the resources (messages and files), indicating a combined search. However, it does not differentiate from sibling tools like search_messages or search_files, which are more specific.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The sibling tools include search_messages and search_files, but the description does not mention when to use search_all over them.

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

search_filesC

Search for files matching a query.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number to return.
sortNoSort by ``score`` (relevance, default) or ``timestamp`` (recency).
countNoResults per page (default 20, max 100).
queryYesSearch text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``type:`` filters.
team_idNoEncoded team ID to scope the search to (for org-wide tokens).
detailedNoReturn the full, uncompacted Slack response when True.
sort_dirNoSort direction, ``asc`` or ``desc`` (default ``desc``).
highlightNoWrap matched terms in highlight markers in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description only states the basic function without disclosing behavioral traits such as whether it is read-only, pagination behavior, or authorization requirements. The input schema partially covers parameter behavior but not overall transparency.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. It is appropriately concise for the tool's simplicity.

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

Completeness2/5

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

Given the tool has 8 parameters and an output schema, the description is too sparse. It does not mention the search scope, behavior differences from similar tools, or that it supports Slack modifiers (already in schema). The output schema exists but the description lacks high-level context.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds no extra parameter meaning beyond what the schema already provides (e.g., query supports Slack modifiers is already in the schema description).

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 'Search for files matching a query,' which is a specific verb and resource. However, it does not differentiate from sibling tools like files_list, search_all, or search_messages, which also deal with file listing.

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. Sibling tools include files_list, search_all, and search_messages, but the description does not specify the intended context or exclusions.

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

search_messagesC

Search for messages matching a query.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number to return.
sortNoSort by ``score`` (relevance, default) or ``timestamp`` (recency).
countNoResults per page (default 20, max 100).
queryYesSearch text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``before:2024-01-31``.
cursorNoPagination cursor from ``response_metadata.next_cursor`` in a prior response (alternative to ``page``).
team_idNoEncoded team ID to scope the search to (for org-wide tokens).
detailedNoReturn the full, uncompacted Slack response when True.
sort_dirNoSort direction, ``asc`` or ``desc`` (default ``desc``).
highlightNoWrap matched terms in highlight markers in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. Only states 'Search for messages matching a query.' No disclosure of pagination, authentication, rate limits, or any behavioral traits beyond the minimal functionality.

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

Conciseness2/5

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

Extremely short (4 words) but fails to convey essential information. Lacks structure or front-loading of key points.

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

Completeness1/5

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

Despite having an output schema and 9 parameters with 0 annotations, the description provides no context about return values, usage scope, or how this tool fits into the broader search ecosystem.

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 baseline is 3. The description adds no additional meaning beyond what the schema already provides for each parameter.

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

Purpose3/5

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

Description states it searches messages, but is very generic. Sibling tools like search_modules_messages exist with similar purpose, and no differentiation is provided.

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 search vs alternatives like search_all or search_modules_messages. The description only says 'matching a query' without context.

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

search_modules_channelsB

Search channels by name or topic (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of results to return per page.
queryYesSearch query string matching channel names and topics.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided. The description adds minimal behavioral context beyond the input schema; it mentions 'undocumented session endpoint' but does not disclose rate limits, access restrictions, or stability implications.

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?

Description is a single, concise sentence with no unnecessary words. However, it could be slightly more structured to improve scannability.

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 presence of many sibling search tools and multiple parameters, the description lacks guidance on when to use this tool and does not explain its role relative to alternatives. The 'undocumented' nature is mentioned but not elaborated.

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 in the input schema. The tool description adds no additional meaning beyond what the schema already provides, meeting the baseline expectation.

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?

Description clearly states 'Search channels by name or topic', providing a specific verb and resource. It distinguishes this tool from many sibling search tools targeting other resources like messages or files.

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 such as conversations_list or other search_modules_* tools. The description lacks context for proper selection.

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

search_modules_dmsA

Search within direct messages only (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of results to return per page.
queryYesSearch query string matched against direct-message content.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully inform. It mentions 'undocumented session endpoint' but does not disclose other behavioral traits like required authentication, error handling, or read-only status. Minimal transparency.

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 very concise (one sentence) and front-loaded. Every word earns its place. Could be slightly more structured with additional context, but remains efficient.

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 existence of many sibling search tools, the description does not provide enough context to guide selection (e.g., why use this over search_messages?). It also omits details about pagination, rate limits, or session requirements. Output schema exists but is not referenced.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no parameter-specific information beyond the schema's own descriptions (e.g., query matched against DM content). No added value.

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?

Description clearly states 'Search within direct messages only', specifying a specific verb (search) and resource (direct messages). It distinguishes from sibling tools like search_messages and search_all by scoping to DMs.

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 implies when to use (searching DMs), but does not explicitly mention when not to use or name alternatives. However, the sibling names provide context, and the phrase 'undocumented session endpoint' hints at experimental use.

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

search_modules_filesC

Search files (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of results to return per page.
queryYesSearch query string matching file names and contents.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only notes the tool is 'undocumented session endpoint', hinting at instability but failing to state whether it is read-only, destructive, or its auth requirements. The behavior remains opaque.

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 a parenthetical, making it concise and front-loaded. However, it sacrifices completeness; while efficient, it omits crucial guidance, reducing its usefulness.

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 presence of an output schema, return values are not required, but the description fails to provide context on what 'files' means, search scope, or how to interpret results. The 'undocumented' label adds a warning but does not compensate for missing operational context, especially among many sibling tools.

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 parameters. The description adds no additional meaning beyond the schema, thus meeting the baseline of 3 without adding value.

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 'Search files' as the core action, which is a specific verb+resource pair. However, it does not differentiate from the sibling tool 'search_files', which likely has similar functionality, and the parenthetical '(undocumented session endpoint)' adds context about stability but not 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 on when to use this tool versus alternatives like 'search_files' or 'search_all'. There is no mention of prerequisites, suitable contexts, or exclusions, leaving the agent without decision support.

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

search_modules_messagesC

Search messages (undocumented). Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of results to return per page.
queryYesSearch query string, supporting Slack search operators (e.g. ``from:@user``).
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
detailedNoReturn the full, uncompacted response instead of the compacted summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

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

Annotations are absent, so description should cover behavioral traits. It only mentions the 'detailed' flag and notes the tool is 'undocumented'. No disclosure of auth needs, rate limits, or read-only nature.

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

Conciseness3/5

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

Very concise (two sentences), but one sentence is essentially a note about being undocumented, which could be better placed. Could include more context without losing conciseness.

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?

Missing differentiation from sibling 'search_messages' and no explanation of 'modules' in the tool name. Output schema exists but not described. Overall incomplete for a search tool with multiple siblings.

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 the description adds no significant value beyond what the schema already provides. The 'detailed' hint is redundant with schema description.

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

Purpose3/5

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

The description clearly states the action (search) and resource (messages), but it does not differentiate from the sibling tool 'search_messages'. The term 'undocumented' is odd but doesn't obscure 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 on when to use this tool vs. alternatives like 'search_messages' or 'search_all'. The only hint is about the 'detailed' parameter, but no context on when to prefer this tool.

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

search_modules_peopleA

Search people by name, title, or department (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of results to return per page.
queryYesSearch query string matching member names, titles, and departments.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

The description labels the endpoint as an 'undocumented session endpoint', alerting users that it may be unstable or internal, which adds important transparency beyond the schema. Although no annotations are present, this disclosure partly compensates by revealing the tool's nature.

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

Conciseness5/5

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

The description is a single sentence that immediately conveys the tool's purpose. It is front-loaded and contains no superfluous information, making it highly efficient.

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 that an output schema exists and parameter coverage is complete, the description covers basic functionality. However, it lacks information about authorization, pagination behavior, or potential limitations, which would be valuable for a tool with no 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?

The input schema already describes all three parameters with 100% coverage. The description reinforces them by listing 'name, title, or department', which matches the query parameter's description but does not add new semantic information beyond what the schema provides.

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

Purpose5/5

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

The description clearly states 'Search people by name, title, or department'. The tool name 'search_modules_people' paired with this description distinguishes it from sibling search tools like search_modules_channels or search_modules_dms. The verb 'Search' and resource 'people' are specific and unambiguous.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives such as search_modules_channels or search_all. It only describes what it does, leaving the agent to infer based on the tool name and the fields listed. No exclusions or when-not-to-use scenarios are mentioned.

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

session_testA

Check if session tokens (xoxc/xoxd) are valid.

Calls client.boot as a health check. Returns ok: true if tokens are valid, or a clear error message if they are missing, expired, or invalid.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations, but description transparently declares it calls client.boot and returns ok:true or error. Does not disclose side effects, but tool is read-only and simple.

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?

Two sentences, front-loaded with purpose. Every sentence adds value with no redundancy.

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?

Given no parameters and presence of output schema, description fully covers the tool's purpose, behavior, and return values.

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?

No parameters exist; schema coverage is 100%. Description provides no param info, but none is needed. Baseline score of 4 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?

Clearly states the tool checks if session tokens (xoxc/xoxd) are valid, uses client.boot as a health check, and specifies return behavior. Distinguishes from siblings like auth_test by specifying session tokens.

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?

Implies usage for token validation but lacks explicit guidance on when to use vs alternatives like auth_test. No when-not-to-use or prerequisites stated.

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

slack_lists_access_deleteC

Remove access to a list for specified entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesID of the list (a file ID) to remove access from (e.g. ``F0123``).
user_idsNoUser IDs to revoke access for (e.g. ``["U0123"]``).
channel_idsNoChannel IDs to revoke access for (e.g. ``["C0123"]``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior1/5

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

With no annotations, the description carries full burden. It only states the operation; no disclosure of behavioral traits such as required permissions, irreversibility, or side effects.

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

Conciseness2/5

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

The description is a single sentence but is under-specified. It omits important details like required parameters and entity types, making it not earn its brevity.

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?

For a tool with 3 parameters (1 required) and an output schema, the description fails to mention the required `list_id` or the return behavior. It lacks completeness for an agent to use it confidently.

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

Parameters2/5

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

Despite 100% schema coverage, the description adds no additional meaning beyond listing 'specified entities.' It does not elaborate on the parameters (list_id, user_ids, channel_ids) or their roles.

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 action 'Remove access' and the resource 'a list for specified entities.' It distinguishes from sibling tools like slack_lists_access_set. However, 'specified entities' is vague; the schema clarifies it means users and channels.

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., slack_lists_access_set for adding access). No mention of prerequisites or 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.

slack_lists_access_setB

Set access level to a list for specified entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesID of the list (a file ID) to set access on (e.g. ``F0123``).
user_idsNoUser IDs to grant access to (e.g. ``["U0123"]``).
channel_idsNoChannel IDs to grant access to (e.g. ``["C0123"]``).
access_levelYesAccess level to grant; one of ``read``, ``write``, or ``owner``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. It does not disclose idempotency, whether existing access is overridden, required permissions, or response behavior.

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?

Extremely concise: one sentence, front-loaded with the action and resource, no extraneous words.

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?

With 4 parameters, required fields, and an output schema, the description is too brief. It lacks mention that access can be granted to users and channels, and does not summarize the access levels or what the output contains.

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 baseline is 3. The description does not add any meaning beyond what the schema already provides (e.g., no mention that user_ids and channel_ids are optional, or that access_level can be read/write/owner).

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 ('Set'), the resource ('access level to a list'), and the target ('for specified entities'). It distinguishes from sibling tools like slack_lists_access_delete (delete access) and slack_lists_create (create list).

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 (e.g., slack_lists_access_delete, slack_lists_create). No prerequisites, exclusions, or use-case context.

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

slack_lists_createC

Create a new list.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName (title) of the list to create.
schemaNoColumn definitions for the list, each describing a field's key, name, and type.
description_blocksNoRich-text blocks describing the list.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden of disclosing behavioral traits. It only states the action without any indication of side effects, authentication needs, rate limits, or whether the operation is reversible. This is a significant gap for a mutating tool.

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

Conciseness3/5

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

The description is extremely concise at four words, but it may be overly minimal. It lacks any contextual information or structure. While it is brief, it does not earn its single sentence by providing value beyond the tool name.

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 tool's complexity (3 parameters, one required, and an output schema), the description is incomplete. It omits details about the output, any constraints on list creation (e.g., name uniqueness, limits), and how this tool fits into the broader list management workflow. The presence of an output schema does not compensate for the lack of behavioral context.

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 describes all parameters with 100% coverage. The description adds no additional meaning beyond what the schema provides. Baseline score of 3 is appropriate since the schema does the heavy lifting.

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 action and resource: 'Create a new list.' It is specific and matches the tool name. However, it does not explicitly differentiate from sibling tools like 'slack_lists_update' or 'slack_lists_items_create', so it misses the highest bar for distinction.

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 such as 'slack_lists_update' or 'slack_lists_items_create'. There is no mention of prerequisites, context, or exclusions, leaving the agent without crucial decision-making information.

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

slack_lists_download_getC

Get a list download.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesID of the download job previously started for the list.
list_idYesID of the list (a file ID) being downloaded (e.g. ``F0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/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. It offers no behavioral information such as whether this is a read operation, authentication requirements, rate limits, or the nature of the response. The existence of an output schema helps but the description itself is opaque.

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

Conciseness3/5

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

The description is extremely concise at 4 words, but it sacrifices clarity and completeness. While brevity is valued, the description fails to convey essential information, making it under-specified rather than efficiently concise.

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 tool has two required parameters and an output schema, the description is insufficient. It does not explain the prerequisite of starting a download job, the expected state of the job, or what the response contains. The output schema partly compensates, but the description lacks contextual ties.

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 both parameters having clear descriptions in the schema. The description does not add any additional meaning or context beyond what the schema already 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.

Purpose4/5

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

The description 'Get a list download' clearly identifies the action and resource, distinguishing it from the sibling tool 'slack_lists_download_start' which initiates the download. However, it lacks specificity about what 'get' entails (e.g., retrieving status, file content, or metadata).

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. It does not indicate that it should be used after starting a download job with 'slack_lists_download_start', nor does it mention any prerequisites or conditions.

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

slack_lists_download_startB

Start a list download.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesID of the list (a file ID) to download (e.g. ``F0123``).
include_archivedNoWhen ``True``, include archived items in the download.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 only states 'Start a list download.' without disclosing whether the operation is asynchronous, returns a job identifier, or any side effects. The existence of an output schema suggests a return value, but the description does not hint at this, leaving behavioral expectations unclear.

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, extremely concise and front-loaded. It uses minimal words to convey the core action. However, it may be too lacking in detail for completeness, but for conciseness alone it scores high as it wastes no space.

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 tool has two parameters and an output schema, the description is incomplete. It does not explain the download process, whether it is synchronous, or what the output represents. Without annotations, more context is needed to fully understand the tool's behavior and 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 provides descriptions for both parameters (list_id and include_archived) with 100% coverage. The tool description adds no additional meaning beyond what the schema already offers. Parameter semantics are adequate but not enhanced by the description.

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 tool name 'slack_lists_download_start' combined with the description 'Start a list download.' clearly indicates the action (start) and resource (list download). It distinguishes itself from the sibling 'slack_lists_download_get', which likely retrieves the result of a started download. The purpose is unambiguous and specific.

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_lists_download_get'. It does not mention prerequisites, such as requiring a valid list_id, or context for invoking a download. The agent is left without decision-support information.

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

slack_lists_items_createD

Create a new list item.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesID of the list (a file ID) to add the item to (e.g. ``F0123``).
initial_fieldsNoField values for the new item, each an object with a ``column_id`` and a typed value.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are present, so the description must carry the full burden of disclosing behavioral traits. It does not mention any side effects, such as whether items can be duplicated, if overwriting occurs, or if there are limits. The description provides no behavioral transparency.

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

Conciseness3/5

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

The description is a single short sentence, which is concise. However, it sacrifices substance—it lacks necessary detail. It is structurally minimal but not efficient in conveying tool purpose.

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 that an output schema exists and the tool has two parameters, the description is too sparse. It does not explain what 'list item' means, the return behavior, or any constraints. The description is incomplete for an agent to use effectively.

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 described in the input schema. The 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.

Purpose2/5

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

The description 'Create a new list item' is clear in reading but overly terse. It fails to distinguish this tool from siblings like 'slack_lists_items_delete' or 'slack_lists_items_update', offering no unique purpose or scope. A 2 reflects minimal clarity beyond the name.

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

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description gives no context about when to use this tool, prerequisites, or how it differs from similar tools. This is a complete absence of guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slack_lists_items_deleteA

Delete a list item.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesID of the list item (record) to delete.
list_idYesID of the list (a file ID) containing the item (e.g. ``F0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; the description only states 'delete'. For a deletion tool, the description does not disclose irreversibility, permissions, or side effects beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise with a single sentence, no fluff, and directly states the core function.

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 simple deletion operation, the description is sufficient. The existence of an output schema reduces the need to explain return values. However, it could mention that it deletes exactly one item.

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?

Input schema has 100% description coverage; both parameters are well-documented in the schema. The tool description adds no additional value beyond what is already in 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 'Delete a list item' clearly states the action and resource. It is distinct from the sibling 'slack_lists_items_delete_multiple' by implying single-item deletion, though not explicitly stated.

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?

No explicit guidance on when to use this tool vs alternatives. The context implies it's for deleting a single list item, but there is no mention of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slack_lists_items_delete_multipleB

Delete multiple list items.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesID of the list (a file ID) containing the items (e.g. ``F0123``).
item_idsYesIDs of the list items (records) to delete.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states 'Delete multiple list items.' It fails to disclose any behavioral traits such as required permissions, whether deletion is reversible, or what happens if some items fail to delete. The description carries the full burden here and is 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?

The description is a single, concise sentence with no redundant words. It conveys the core action 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?

Given that an output schema exists (though not provided in detail), the description does not need to explain return values. However, for a deletion tool, it lacks information about success/failure behavior, idempotency, or potential side effects. It is minimally adequate but could be 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 coverage is 100% with descriptions for list_id and item_ids. The description adds no additional meaning beyond what the schema provides, 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?

Description is 'Delete multiple list items.' which is a specific verb+resource pair. It clearly indicates multiple deletion, distinguishing it from sibling tools like slack_lists_items_delete (single deletion).

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. Although siblings exist (e.g., slack_lists_items_delete for single items), the description does not mention them or provide any context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slack_lists_items_infoB

Get info about a list item.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesID of the list item (record) to fetch.
list_idYesID of the list (a file ID) containing the item (e.g. ``F0123``).
include_is_subscribedNoWhen ``True``, include whether the caller is subscribed to the item.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description fails to disclose behavioral traits such as read-only nature, permissions, or side effects. It adds no context beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (one sentence) but lacks depth. Efficient yet underinformative for an info tool with siblings.

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 output schema exists, return values are covered. However, the description lacks context on when to use this tool over slack_lists_items_list, and does not mention its read-only nature.

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 baseline is 3. The description does not add any additional meaning beyond the schema's parameter 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 'Get info about a list item' uses a specific verb ('Get info') and resource ('list item'), clearly distinguishing it from sibling tools like slack_lists_items_create or slack_lists_items_list.

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 (e.g., slack_lists_items_list for listing items). The description does not provide context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slack_lists_items_listC

List items in a list.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return per page.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
list_idYesID of the list (a file ID) whose items to return (e.g. ``F0123``).
archivedNoWhen ``True``, return archived items instead of active ones.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description does not disclose that the tool is read-only, paginated, or that it can filter by archived status. The input schema provides parameter descriptions, but the overall behavior is unclear.

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?

Extremely concise single sentence. No fluff, but lacks important context. Efficient but under-specified.

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 paginated list tools and the presence of many sibling tools, the description is too minimal. Missing context about pagination, filtering, and output structure, despite having an output schema.

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 baseline is 3. The description adds no additional meaning beyond what the schema already provides for parameters like limit, cursor, list_id, archived.

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?

Description clearly states the action (list) and resource (items in a list). It distinguishes from sibling tools like slack_lists_items_create. However, it could be more specific about pagination or read-only nature.

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_lists_items_info (which returns a single item) or slack_lists_create. Does not mention typical use cases or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slack_lists_items_updateC

Update cells in a list item.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellsYesCells to update, each an object with ``row_id`` (the item/record), ``column_id``, and a typed value.
list_idYesID of the list (a file ID) containing the item (e.g. ``F0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not reveal behavioral traits such as whether updates are additive or replacing, required permissions, or side effects. For a mutation tool, this is insufficient.

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, clear sentence with no wasted words. However, its brevity sacrifices informative value, making it less effective than a slightly longer description that includes usage context.

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 presence of an output schema and comprehensive parameter descriptions, the description is minimally adequate. However, it does not clarify how cells should be structured or whether updates are incremental, leaving room for misinterpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% description coverage for both parameters, so the description adds no additional meaning. The baseline of 3 is appropriate as the schema already does the heavy lifting.

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 'Update cells in a list item' clearly conveys the action (update) and the target (cells in a list item). However, it does not distinguish from sibling tools like slack_lists_items_create or slack_lists_update, missing an opportunity to clarify scope.

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 (e.g., creating a new item or updating the list itself). The description lacks context about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slack_lists_updateC

Update a list.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name (title) for the list.
list_idYesID of the list (a file ID) to update (e.g. ``F0123``).
description_blocksNoNew rich-text blocks describing the list.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior1/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 any behavioral traits such as whether the update is idempotent, required permissions, or the effect of omitting optional fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise but at the cost of being under-informative. It is a single sentence that does not earn its place by adding value beyond the tool name.

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 presence of an output schema, the description need not explain return values, but it is still too minimal. It does not provide enough context for an agent to accurately select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no additional meaning beyond what the schema already provides. The schema adequately describes each parameter, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Update a list.' is essentially a tautology of the tool name 'slack_lists_update'. It does not specify what can be updated (e.g., name, description) nor distinguishes it from siblings like slack_lists_items_update or slack_lists_create.

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 usage guidelines are provided. There is no indication of when to use this tool versus alternatives, such as when to update list properties vs list items.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stars_addB

Save an item for later (star it).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile to add a star to (e.g. ``F0123``).
channelNoChannel, group, or DM to star, or the channel of a file/comment being starred (e.g. ``C0123``).
timestampNoTimestamp of the message to star; requires ``channel`` (e.g. ``1700000000.000100``).
file_commentNoFile comment to add a star to (e.g. ``Fc0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description does not disclose side effects (e.g., idempotency if already starred), authorization needs, rate limits, or what happens when no parameters are supplied.

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?

Extremely concise: a single sentence that front-loads the core action. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 4 optional params and an output schema, the description provides no context on how to use the parameters together, what a 'star' means, or the expected result. Incomplete for a tool with multiple optional inputs.

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 the parameter descriptions in 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 'save' and the resource 'item' with the Slack-specific term 'star', making the action obvious. It distinguishes from siblings like stars_remove and stars_list by its clear 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 on when to use this tool versus alternatives (e.g., stars_remove, stars_list), no prerequisites or context for 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.

stars_listA

List starred items for the calling user. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number of results to return (legacy paging).
countNoNumber of items to return per page (legacy paging).
limitNoMaximum number of items to return per page (cursor paging).
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
team_idNoEncoded team ID to list stars for; required if the token belongs to an org-level app (e.g. ``T0123``).
detailedNoWhen ``True``, return the full Slack response instead of a compacted summary.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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 full burden. It discloses that the tool lists starred items and that 'detailed=True' returns a full response, but it omits behavioral traits like pagination behavior, authentication requirements, or rate limits. The description is not misleading but is minimal.

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 sentences totaling 14 words. It front-loads the core action and adds a key parameter hint. Every sentence earns its place with no unnecessary 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 listing tool with two pagination methods (legacy and cursor), the description fails to mention how pagination works or which parameters to use. The output schema exists but is not shown here; however, the description should still guide the agent on pagination. The description is adequate for basic usage but incomplete for complex scenarios.

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% (all 6 parameters have descriptions). Baseline is 3. The description adds value by highlighting the 'detailed' parameter, but this is similar to the schema description. It does not compensate for the lack of parameter context elsewhere, so score remains at 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 tool lists starred items for the calling user, with a specific verb ('list') and resource ('starred items for the calling user'). It also introduces the 'detailed' parameter. The purpose is unmistakable and distinct from sibling tools like stars_add or stars_remove.

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 minimal usage guidance; it only mentions the 'detailed' parameter. There is no advice on when to use this tool versus alternatives (e.g., stars_add, saved_list) and no exclusions or prerequisites. The agent must infer context from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stars_removeC

Remove a star from an item.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile to remove a star from (e.g. ``F0123``).
channelNoChannel, group, or DM to unstar, or the channel of a file/comment being unstarred (e.g. ``C0123``).
timestampNoTimestamp of the message to unstar; requires ``channel`` (e.g. ``1700000000.000100``).
file_commentNoFile comment to remove a star from (e.g. ``Fc0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 must carry the full burden of behavioral disclosure. The description only states the action ('remove a star') without discussing idempotency, side effects, permissions, or return behavior. For a mutation tool, this is insufficient.

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, short sentence (6 words) with no extraneous information. It is appropriately concise for a simple operation, but could be slightly expanded to improve clarity without becoming wordy.

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 tool has 4 optional parameters and an output schema, the description lacks sufficient context for effective use. It does not explain the return format, when to provide which parameters, or how this tool fits into the broader star workflow (alongside 'stars_add' and 'stars_list'). The schema coverage is high, but the description still leaves gaps in usage understanding.

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 is 3 even with no additional parameter info in the description. The description does not add any meaning beyond what the schema already provides for the 4 parameters. No improvement or degradation.

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 'Remove a star from an item.' uses a specific verb ('remove') and identifies the resource ('star'), making the action clear. It implicitly distinguishes from sibling tools like 'stars_add' and 'stars_list' by focusing on removal. However, it lacks explicit differentiation or context about what constitutes an 'item' (file, message, comment).

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 'stars_add' or 'stars_list'. There is no mention of prerequisites, such as needing to know the star exists, or when not to use it. This forces the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subscriptions_thread_markB

Mark a thread as read or unread (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
readNoMark the thread as read (``True``) or unread (``False``).
channelYesID of the channel containing the thread (e.g. ``C0123``).
thread_tsYesTimestamp of the parent thread message (e.g. ``1700000000.000100``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description includes a useful note that this is an 'undocumented session endpoint,' hinting at potential instability or lack of official support. However, it does not disclose error behavior, idempotency, permission requirements, or side effects beyond marking state. With no annotations available, more detail would be beneficial.

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, concise sentence that front-loads the core action. It avoids unnecessary words but could include a brief statement about intended use cases or limitations without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple state-marking tool with a known output schema, the description covers the primary behavior. However, it lacks information on how the tool handles edge cases (e.g., thread already marked, invalid IDs) or what response to expect. The 'undocumented session endpoint' note adds important context but does not fully compensate for missing behavioral details.

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?

Input schema provides full descriptions for all three parameters, achieving 100% coverage. The tool description adds minimal semantic value beyond restating the action; it does not clarify usage context for parameters like channel or thread_ts, which are already well-described in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Mark a thread as read or unread') and the target resource (a thread), making it distinct from sibling tools like conversations_mark which operate on channels. The verb-resource combination is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as conversations_mark or chat_update. There is no mention of prerequisites, success conditions, or when it should be avoided. Users must infer 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.

team_access_logsC

Get the access logs for the current team.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number of results to return (legacy paging).
countNoNumber of items to return per page (legacy paging).
limitNoMaximum number of items to return per page (cursor paging).
beforeNoReturn logs from before this Unix timestamp (in seconds).
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
team_idNoEncoded team ID to get logs for; required if the token belongs to an org-level app (e.g. ``T0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should clarify behavioral traits. It merely states 'Get the access logs' without disclosing read-only nature, pagination behavior, authentication requirements, or rate limits. Significant gaps remain, scoring 2.

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 concise sentence with no redundancy. However, it could be improved by front-loading key details like pagination. Still, it's efficient, scoring 4.

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 tool's 6 parameters, pagination options, and output schema, the description is too brief. It doesn't explain what the logs contain (e.g., user, timestamp, IP) or how to interpret results. Incomplete for effective use, scoring 2.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are already described. The description adds no additional semantic value. 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 specifies the verb 'Get' and the resource 'access logs', with scope 'current team'. It clearly conveys the tool's function but does not distinguish from similar sibling tools like team_integration_logs, resulting in a score of 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool vs alternatives, no mention of prerequisites or context for optimal use. The description lacks any usage direction, scoring 2.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_billable_infoC

Get billable users information for the current team.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoA single user to retrieve billable information for, rather than the whole team (e.g. ``U0123``).
limitNoMaximum number of items to return per page.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
team_idNoEncoded team ID to get billable info for; required for org-level app tokens (e.g. ``T0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description does not disclose behavioral traits such as pagination, rate limits, authentication requirements, or the option to retrieve info for a single user. Given no annotations, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no fluff, but lacks important details. Conciseness comes at the cost of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description omits crucial context about pagination, single-user retrieval, and team_id usage for org-level apps. Incomplete for a tool with 4 parameters.

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 baseline is 3. Description adds no parameter semantics beyond what the schema already provides.

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?

Description clearly states 'Get billable users information for the current team' with a specific verb and resource. It distinguishes from sibling tools like team_billing_info and team_info, but could be more precise about the type of information returned.

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 siblings. There is no mention of alternatives or exclusions, 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.

team_billing_infoA

Read a workspace's billing plan information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/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 full burden. It indicates a read operation (non-destructive) but lacks details on authentication requirements, rate limits, error conditions, or required scopes. For a simple read with no parameters, this is acceptable but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of six words. It is extremely concise and front-loaded with the core purpose. Every word contributes meaning, with no redundancy or filler.

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 zero parameters and the existence of an output schema, the description minimally covers what is needed. It explains the tool's action and resource, and the output schema handles return value documentation. However, it could be improved by specifying that it reads the current workspace's billing info (implied but not explicit).

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 semantics to add. The schema coverage is 100% (vacuous). According to the rules, 0 parameters yields a baseline of 4. The description does not need to add anything about parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Read a workspace's billing plan information.' It specifies the action (read) and the resource (billing plan information) with a clear scope (workspace). This differentiates it from sibling tools like team_billable_info (which may focus on billable usage) and team_info (general info).

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?

No explicit guidance on when to use this tool versus alternatives such as team_billable_info or team_info. The description implies it is for reading billing plan information but does not provide criteria for selection or note any prerequisites, making it minimally adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_external_teams_disconnectB

Disconnect an external organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_teamYesEncoded team ID of the external organization to disconnect (e.g. ``T0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It indicates a destructive action ('disconnect') but does not explain consequences, permissions required, or reversibility. The minimal description leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence. While brief, it is efficiently front-loaded with the core purpose. However, it could include more detail 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?

Despite having a simple interface (one parameter) and an output schema, the description lacks context about return values, effects, and use cases. It is too sparse for a comprehensive understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage of the single parameter, including its description. The tool description adds no additional semantic value beyond what the schema already offers.

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 directly states the action ('disconnect') and the resource ('external organization'), making it clear what the tool does. It distinguishes itself from sibling tools like 'team_external_teams_list' which lists organizations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, such as an existing connection, or when not to use it. The description lacks any contextual usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_external_teams_listB

List external teams and their statuses.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return per page.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor``.
sort_fieldNoField to sort results by (e.g. ``team_name``, ``last_active_timestamp``).
sort_directionNoDirection to sort results, ``asc`` or ``desc``.
workspace_filterNoFilter results to specific workspaces by encoded team ID (e.g. ``["T0123"]``).
connection_status_filterNoFilter results by connection status (e.g. ``CONNECTED``, ``DISCONNECTED``).
slack_connect_pref_filterNoFilter results by Slack Connect preferences (e.g. ``["approved_orgs_only"]``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output 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 full burden but only states the action. It does not disclose read-only nature, authentication needs, rate limits, or pagination behavior beyond what the schema implies.

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, very concise and front-loaded. It contains no filler, but could include more detail 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?

Despite a simple purpose, the description does not explain what external teams are, how statuses are used, or how to interpret results. Given the number of filters and output schema, more context would help.

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 parameters are already well-documented. 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 tool lists external teams and their statuses. It uses a specific verb-resource pair and distinguishes from the sibling tool 'team_external_teams_disconnect'.

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. There is no mention of context, prerequisites, or exclusions, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_infoC

Get information about the current team.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoEncoded team ID to fetch info for; defaults to the authed user's team (e.g. ``T0123``).
domainNoWorkspace domain to look up info by, in place of ``team`` (e.g. ``acme`` for ``acme.slack.com``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/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 states 'get information' without mentioning that it is read-only, requires authentication, or any side effects. This is insufficient for an agent to understand 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 concise sentence, front-loaded and free of fluff. However, it omits important context that could be added without excessive length.

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, full schema coverage, and existing output schema, the description is nearly complete. However, it misrepresents the tool's scope by implying only 'current team' can be queried, when parameters allow fetching any team. This is a notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for both parameters. The tool description adds no additional meaning beyond the schema, such as clarifying that the parameters are mutually exclusive or priority rules. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get information about the current team,' which clearly indicates a retrieval action on a team resource. However, it inaccurately implies only the current team is accessible, while parameters allow fetching by team ID or domain. Also, it does not differentiate from similar siblings like team_profile_get or team_prefs_get.

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 like team_profile_get or team_prefs_get. There is no context on prerequisites, exclusions, or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_integration_logsC

Get the integration activity logs for the current team.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number of results to return.
userNoFilter logs to events performed by this user (e.g. ``U0123``).
countNoNumber of items to return per page.
app_idNoFilter logs to this app's events (e.g. ``A0123``).
team_idNoEncoded team ID to get logs for; required if the token belongs to an org-level app (e.g. ``T0123``).
service_idNoFilter logs to this service's events.
change_typeNoFilter logs by change type (e.g. ``added``, ``removed``, ``enabled``, ``disabled``, ``updated``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must convey behavioral traits. It does not mention pagination behavior, rate limits, data freshness, or whether changes are real-time. The tool has pagination parameters (page, count) but no description of how pagination works or defaults beyond what's in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise but lacks sufficient detail. It is front-loaded with the core action, but the brevity forces omission of important usage context and behavioral notes. It earns a middle score because it is not verbose but also not fully informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 7 parameters and an output schema, the description does not explain what 'integration activity logs' contain (e.g., events, timestamps, apps involved). It does not mention that 'team_id' is required for org-level tokens, and lacks guidance on pagination or filtering. The description is incomplete for a tool with this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for each parameter. It does not explain the purpose of 'team_id' for org-level apps beyond the schema comment, nor does it clarify the 'change_type' filter values.

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 the resource 'integration activity logs for the current team'. It distinguishes from the sibling 'team_access_logs' (access logs vs integration logs). However, the phrase 'current team' is slightly misleading because the 'team_id' parameter allows specifying a different team, so it's not strictly limited to the current team.

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 like 'team_access_logs'. There is no mention of required permissions, prerequisites, or context such as needing an org-level token to use 'team_id'. The description does not help the agent decide whether this is the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_preferences_listB

Retrieve a list of a workspace's team preferences.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output 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 brief description must bear full weight. It only states retrieval of a list, without noting authorization needs, rate limits, or any side effects. The verb 'retrieve' implies a read operation, but no explicit confirmation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that efficiently conveys the tool's purpose without extraneous 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?

Given the tool's simplicity (no parameters, output schema exists), the description is minimally adequate. However, it lacks edge-case behavior, permissions context, and differentiation from sibling tools, leaving gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters with 100% coverage, so baseline is 3. The description adds no additional parameter information, which is acceptable since there are none.

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 action ('retrieve') and the resource ('list of workspace team preferences'). However, it does not differentiate from similar sibling tools like 'team_prefs_get', which may also retrieve preferences, reducing clarity on the specific distinction.

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 versus alternatives such as 'team_prefs_get'. There is no mention of prerequisites, intended scenarios, or when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_prefs_getB

Get team preferences (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/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 for behavioral disclosure. It only states it is 'legacy undocumented' but does not mention read-only nature, authentication requirements, error scenarios, or any side effects. The tool likely reads preferences, but this is not confirmed.

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 extremely concise, consisting of a single phrase that conveys the essential purpose and legacy status. It could be slightly more informative without becoming verbose, but it is not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no parameters, an output schema exists, and no annotations. Despite simplicity, the description is incomplete: it does not explain the relationship to the sibling 'team_preferences_list', nor does it clarify the expected output or preconditions. The 'legacy undocumented' note is helpful but insufficient for full context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so there is nothing extra to describe. According to guidelines, 0 parameters give a baseline of 4. The description does not need to add parameter semantics, and it correctly omits any.

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 the resource 'team preferences', and adds context by labeling it as 'legacy undocumented'. However, it does not differentiate from the sibling tool 'team_preferences_list', which may have the same or similar 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 on when to use this tool versus alternatives. The 'legacy undocumented' hint implies it might not be the preferred choice, but the description does not explicitly state when not to use it or suggest a better alternative like 'team_preferences_list'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_profile_getB

Retrieve a team's profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
visibilityNoFilter profile fields by visibility; one of ``all``, ``visible``, or ``hidden``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 does not disclose any behavioral traits such as read-only nature, required permissions, or side effects. It simply states the action without additional 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, efficient sentence with no fluff. It is front-loaded and communicates the core purpose directly.

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?

While an output schema exists, the description lacks context about default behavior, required inputs, or when to use this tool. It is minimally adequate for a simple read operation but could be more helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, and the parameter description explicitly explains the filtering options. The tool description adds no extra meaning 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?

Description clearly states it retrieves a team's profile, with a specific verb and resource. However, it does not differentiate from similar sibling tools like `team_info`.

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. Siblings include `team_info`, `team_prefs_get`, etc., but no contextual hints are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

threads_get_viewC

Get thread view data (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault
current_tsNoTimestamp anchoring the thread view to page from (e.g. ``1700000000.000100``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It only labels the endpoint as undocumented, implying instability, but fails to describe read-only nature, error handling, or response structure beyond what the output schema might provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at one sentence but under-specified. It lacks structure and could be more informative without being longer, leading to a medium score.

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 tool has one optional parameter and an output schema, the description is insufficient. It does not explain what thread view data encompasses, how to interpret results, or any typical usage context, leaving significant 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%, so baseline is 3. The description adds no additional meaning to the 'current_ts' parameter beyond the schema's annotation, so no extra value 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 states the tool retrieves thread view data, with a specific verb 'Get' and resource 'thread view data'. It distinguishes itself from siblings by mentioning it's an undocumented session endpoint, which is unique among the listed 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?

No guidance on when to use this tool versus alternatives. The description does not mention any prerequisites, exclusions, or comparative context with other tools, leaving the agent without decision-making support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tooling_tokens_rotateC

Rotate app configuration tokens.

ParametersJSON Schema
NameRequiredDescriptionDefault
refresh_tokenYesThe ``xoxe`` refresh token issued alongside the old app configuration token.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 must fully disclose behavior. It only states 'rotate' without explaining side effects (e.g., old token invalidation), required permissions, or the response structure. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is concise, though slightly more context could be added without harming brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only one parameter and an output schema exists, but the description does not mention what the output contains or the token lifecycle. It is adequate but leaves some gaps for the agent.

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 the parameter is well-documented in the schema. The 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Rotate' and resource 'app configuration tokens', clearly indicating the action and target. It distinguishes from sibling auth tools by focusing on token rotation rather than revocation or access.

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 auth_revoke or oauth_v2_access. The description does not mention prerequisites or scenarios, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usergroups_createC

Create a User Group.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesA name for the User Group (must be unique among User Groups).
handleNoA mention handle (must be unique among channels, users, and User Groups).
team_idNoEncoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``).
channelsNoComma-separated string of default channel IDs for the User Group (e.g. ``C0123,C0456``).
descriptionNoA short description of the User Group.
include_countNoInclude the number of users in each User Group in the response.
enable_sectionNoWhether to enable a section for the User Group.
additional_channelsNoComma-separated additional default channel IDs to add beyond ``channels`` (e.g. ``C0789``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only states 'Create a User Group.' No information about side effects, error conditions, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only four words, which is too brief for a tool with 8 parameters and no annotations. It lacks essential details and is under-informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 params, output schema exists), the description is incomplete. It fails to explain the output, typical usage, or what happens on success/failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes all parameters. The description adds no extra meaning beyond the schema, resulting in baseline score for high 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 uses the verb 'Create' with the resource 'User Group', clearly indicating the action. It distinguishes from siblings like usergroups_enable or usergroups_list, which are different operations.

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, no prerequisites mentioned, and no context about required permissions or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usergroups_disableC

Disable an existing User Group.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoEncoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``).
usergroupYesThe encoded ID of the User Group to disable (e.g. ``S0123``).
include_countNoInclude the number of users in the User Group in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose behavioral traits such as reversibility, required permissions, or side effects. The minimal description fails to inform the agent about important behaviors.

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 with only six words, no waste. It efficiently communicates the core action.

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 tool has 3 parameters and an output schema, the description is too sparse. It does not explain the purpose within user group management or what happens after disabling. Completeness is lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all parameters with descriptions (100% coverage). The description adds no extra meaning beyond what the schema already provides, making the baseline score of 3 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 action ('Disable') and the resource ('User Group'), distinguishing it from siblings like usergroups_enable and usergroups_create. However, it does not elaborate on the effect of disabling, which could be more specific.

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 (e.g., delete or enable). The description lacks context on prerequisites or scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usergroups_enableC

Enable a User Group.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoEncoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``).
usergroupYesThe encoded ID of the User Group to enable (e.g. ``S0123``).
include_countNoInclude the number of users in the User Group in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose any behavioral traits such as side effects, required permissions, or what 'enabling' means. No annotations are provided to compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence) but underspecified. It earns its place but could include more detail 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 presence of an output schema and the simplicity of the operation, the description is still too minimal. It lacks context about the behavior and when to use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are documented. The description adds no additional semantic information beyond what the schema provides.

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 'Enable a User Group' clearly states the action (enable) and the resource (user group). It distinguishes from siblings like usergroups_disable, though it is brief.

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., usergroups_create, usergroups_disable) or any prerequisites for enabling a user group.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usergroups_listB

List all User Groups for a team.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoEncoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``).
include_countNoInclude the number of users in each User Group in the response.
include_usersNoInclude the list of users for each User Group in the response.
include_disabledNoInclude disabled User Groups in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only states the action. It does not mention auth requirements, pagination, rate limits, or response behavior (e.g., 'all' might imply no default limits). The schema's parameter descriptions are the only extra info, not the tool description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the essential purpose without extraneous words. Every word contributes to clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (4 optional params, output schema present), the description is minimally adequate. It tells what it does, but lacks context on expected output, usage scenarios, or limitations. For a simple tool with good schema coverage, this is acceptable 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 coverage is 100%, so baseline is 3. The description does not add any parameter meaning beyond what the schema already provides. The tool description adds no semantic value for parameters.

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?

Description clearly states the tool lists user groups for a team. It is specific about the resource (User Groups) and action (list all), but does not differentiate from sibling tools like usergroups_users_list or usergroups_create. Still, the core purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, when to choose this over other usergroups tools, or any contextual help for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usergroups_updateC

Update an existing User Group.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoA name for the User Group (must be unique among User Groups).
handleNoA mention handle (must be unique among channels, users, and User Groups).
team_idNoEncoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``).
channelsNoComma-separated string of default channel IDs for the User Group (e.g. ``C0123,C0456``).
usergroupYesThe encoded ID of the User Group to update (e.g. ``S0123``).
descriptionNoA short description of the User Group.
include_countNoInclude the number of users in the User Group in the response.
enable_sectionNoWhether to enable a section for the User Group.
additional_channelsNoComma-separated additional default channel IDs to add beyond ``channels`` (e.g. ``C0789``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It only says 'update', which implies mutation, but provides no details on safety (e.g., permissions, idempotency, side effects). This is insufficient.

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, concise sentence. It is front-loaded but may be too brief for a tool with 9 parameters; however, it is not 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?

Despite an output schema and 9 parameters, the description lacks important context: it does not clarify that only provided fields are updated, nor mention the required 'usergroup' field, uniqueness constraints, or differences from sibling tools.

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?

All 9 parameters have descriptions in the schema (100% coverage). The tool description adds no additional meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Update an existing User Group' clearly states the action (update) and the resource (User Group). It distinguishes from sibling tools like usergroups_create and usergroups_disable, but lacks specifics on which fields can be updated.

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., create for new groups, disable/enable for state toggling). The description does not provide context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usergroups_users_listC

List all users in a User Group.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoEncoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``).
usergroupYesThe encoded ID of the User Group to list users for (e.g. ``S0123``).
include_disabledNoInclude disabled User Group users in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It only says 'list all users' with no info on permissions, rate limits, error handling, or pagination. This is insufficient for an agent to understand the tool's full 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 wasted words, making it concise and front-loaded with the main action. However, it could benefit from a bit more context without becoming verbose.

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 existence of an output schema (mentioned but not shown), the description need not explain return values. However, it lacks context about usage, prerequisites, and behavioral details, making it only partially complete for a tool with 3 parameters and several siblings.

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 for all 3 parameters, so the schema already provides parameter meaning. The description adds no additional semantics beyond the schema, earning the baseline of 3.

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 tool lists users in a user group, distinguishing it from sibling tools like usergroups_list (which lists groups) and usergroups_users_update (which updates users). However, it doesn't specify whether it includes disabled users, which is handled by a parameter.

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, no prerequisites mentioned, and no exclusions. The agent has no help deciding between this and related tools like usergroups_list or usergroups_users_update.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usergroups_users_updateB

Update the list of users for a User Group.

ParametersJSON Schema
NameRequiredDescriptionDefault
usersYesComma-separated user IDs representing the entire list of users for the User Group (e.g. ``U0123,U0456``).
team_idNoEncoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``).
is_sharedNoWhether the User Group is shared across an org/Enterprise Grid.
usergroupYesThe encoded ID of the User Group to update (e.g. ``S0123``).
include_countNoInclude the number of users in the User Group in the response.
additional_channelsNoComma-separated channel IDs the User Group can add members to (e.g. ``C0123,C0456``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lacks behavioral details beyond 'update'. It does not clarify that the tool replaces the entire user list, nor does it disclose side effects, authorization needs, or what happens to users omitted from the list. With no annotations, the description should provide this context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks necessary detail. It front-loads the purpose but omits key behavioral and contextual information. It could include more in the same space.

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 tool has 6 parameters, no annotations, and is a mutation with an output schema, the description is incomplete. It fails to explain key behaviors like replacement semantics, required parameters, or usage context for parameters like team_id and is_shared.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions. It merely restates 'list of users', which is already captured in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update the list of users for a User Group', which specifies the verb (update) and resource (list of users for a User Group). It distinguishes from sibling tools like usergroups_update (which updates group properties) and usergroups_users_list (which lists users).

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 mention that the list is replaced wholesale, nor does it describe prerequisites or scenarios where other tools (e.g., usergroups_users_list) might be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_admin_inviteC

Invite a user to the workspace as admin (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address of the person to invite.
channelsNoComma-separated list of channel IDs to add the invitee to (e.g. ``C0123,C0456``).
real_nameNoFull name to assign to the invited user.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden. It only mentions 'legacy undocumented', hinting at potential instability, but fails to disclose permissions, side effects, authentication needs, or what happens upon success/failure.

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 very concise (one sentence) and front-loaded with the core purpose. Every word earns its place, though the 'legacy undocumented' tag could be better placed as a note.

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?

Even with an output schema present, the description lacks essential context for an admin-level operation, such as prerequisites, rate limits, or expected behavior. The legacy status warning is insufficient.

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 all parameters described. The description adds no additional meaning beyond the schema, so 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 clearly states the action ('Invite') and the resource ('user to workspace as admin'), with an additional note about legacy status. It distinguishes from sibling tools like users_admin_set_inactive.

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, no prerequisites, and no exclusion criteria. Only the implied context of inviting an admin, but without explicit when-not-to-use or comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_admin_set_inactiveB

Deactivate a user (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesID of the user to deactivate (e.g. ``U0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/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 full burden. It mentions 'legacy undocumented' hinting at instability but fails to disclose side effects, required permissions, or whether the action is reversible. Critical behavioral details for a destructive operation are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it is too brief to be informative. It lacks front-loading of key information and feels under-specified for an admin tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool performs an admin action with one required parameter and an output schema exists, the description is insufficient. It omits context about when to use this legacy tool over newer alternatives, and agents are left without enough information to invoke it 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?

Schema description coverage is 100%, so the schema already documents the 'user' parameter's purpose. The tool description adds no additional meaning beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Deactivate' and the resource 'user', clearly distinguishing it from sibling tools like 'users_admin_invite' or 'users_set_presence'. The phrase 'legacy undocumented' adds context about its status.

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, no prerequisites, and no exclusions mentioned. The description does not help an agent decide if this is the appropriate tool 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.

users_channel_sections_listA

Get sidebar sections and favorites (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits but only states the function. It does not mention whether the tool is read-only, authentication requirements, or any side effects, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It effectively communicates the tool's purpose in minimal text.

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 no parameters and an output schema, the description is mostly complete. However, the 'undocumented session endpoint' warning adds important context that could affect usage, but the description lacks details on return format or behavior beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100% (none needed). The description adds no parameter details, but the absence of parameters makes this acceptable. Baseline for no parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves sidebar sections and favorites, a specific verb and resource. It distinguishes from sibling tools by noting it's an undocumented session endpoint, which is unique among other user-related 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 provides no guidance on when to use this tool versus alternatives. It labels the endpoint as undocumented, which hints at potential instability but does not offer explicit usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_conversationsB

List conversations the calling user may access.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoBrowse conversations by a specific user ID rather than the calling user (e.g. ``U0123``).
limitNoMaximum number of items to return per page (1-1000, default 100).
typesNoComma-separated conversation types to include: ``public_channel``, ``private_channel``, ``mpim``, ``im``.
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page.
team_idNoEncoded team ID to list conversations in, required for org-wide app tokens (e.g. ``T0123``).
exclude_archivedNoSet to ``True`` to exclude archived channels from the list.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that results are restricted to conversations the calling user may access, which is useful. However, it omits other behavioral traits like pagination, ordering, or 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, efficient sentence. It is not verbose, but could be slightly more informative 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?

Given the presence of an output schema and 100% parameter coverage, the description is minimally adequate. It lacks details on pagination or filtering behavior, but the basics are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions.

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 ('List conversations') and specifies the scope ('the calling user'), which distinguishes it from sibling tools like conversations_list that may have broader scope. However, it does not explicitly differentiate from similar list 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?

No guidance is provided on when to use this tool vs alternatives. The description lacks any exclusions, prerequisites, or context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_delete_photoB

Delete the user profile photo.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only says 'Delete the user profile photo.' without elaborating on behavior such as whether the deletion is permanent, reverts to default, requires permissions, or affects visibility. No annotations are present to supplement this.

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 is concise and directly states the tool's purpose. No extraneous information is included, though it could be slightly more informative without losing conciseness.

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 absence of annotations and the potentially destructive nature of deletion, the description lacks details on side effects, confirmation, or scope. An output schema exists but is not described, leaving the agent uncertain about the response.

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?

There are no parameters, and the schema coverage is 100%. The description adds no additional meaning beyond the schema, which is expected. 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 action ('Delete') and the resource ('user profile photo'). It effectively distinguishes from sibling tools like 'users_set_photo' which handles setting the photo.

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 usage guidelines provided. The description does not specify when to use this tool (e.g., when a photo exists) or mention alternatives or prerequisites (like authentication or ownership).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_discoverable_contacts_lookupA

Look up a user by their email address for Slack Connect discovery.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe email address of the user to look up (e.g. ``user@example.com``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description lacks disclosure of behavioral traits such as read-only nature, permission requirements, or return value details. The description is minimal, leaving the agent to infer safety and behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the action and purpose. Every word adds value with no 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?

Given the simplicity of the tool (one parameter, lookup operation) and the existence of an output schema (though not shown), the description provides adequate context by specifying the Slack Connect discovery scope. It differentiates from the sibling and covers the essential purpose, though it could briefly mention expected output or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the sole parameter (`email`) with a clear description. The tool description adds no additional meaning beyond the schema, 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 the action ('Look up'), the resource ('a user by their email address'), and the specific context ('for Slack Connect discovery'). This distinguishes it from the sibling tool `users_lookup_by_email`, which likely performs a general lookup.

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 context ('for Slack Connect discovery') but does not explicitly state when to use this tool versus alternatives (e.g., `users_lookup_by_email`). No exclusions or alternative recommendations are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_get_presenceC

Get user presence information.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoID of the user to get presence info for; defaults to the authenticated user if omitted (e.g. ``U0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description does not disclose behavioral traits like authentication requirements, what 'presence' means (e.g., active, away), or error conditions. For a read operation, minimal disclosure is acceptable but not sufficient without 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 extremely concise with one sentence and zero waste. However, it could benefit from a bit more structure or context 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?

With an output schema present, the description does not need to explain return values. However, it lacks context about presence semantics and fails to differentiate from related tools. It is adequate for a simple getter 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 the default behavior. The description adds no additional meaning beyond what the schema provides, resulting in a baseline score of 3.

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 'Get user presence information' clearly states the verb and resource. It is specific about what information is retrieved, but it does not differentiate from sibling tools like 'users_info' or 'users_set_presence'.

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 such as 'users_info' (which returns more detailed user data) or 'users_set_presence' (which modifies presence). No context 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.

users_identityB

Get a user's identity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the burden of behavioral disclosure. It fails to mention that the tool is read-only, requires authentication, or what the output contains (e.g., user ID, name, email). The presence of an output schema is not disclosed in the description.

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, which is appropriately concise for a tool with no parameters. However, it could be slightly expanded to include key usage context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters) and the existence of an output schema, the description is minimally adequate. However, it lacks context to distinguish from sibling tools, making it less complete than it could be for an AI agent.

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?

There are zero parameters, so the description does not need to add parameter information. The schema covers 100% of parameters (none). Score is baseline 4 for no parameters.

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 'Get a user's identity.' clearly states it retrieves identity information using a verb and resource. However, it does not specify which user (likely the authenticated user), which could cause confusion with sibling tools like users_info.

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 like users_info. The description does not mention that it returns the identity of the current user without needing a user ID, which is a key differentiator.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_infoB

Get information about a user. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesID of the user to get info about (e.g. ``U0123``).
detailedNoSet to ``True`` to return the full, uncompacted Slack response.
include_localeNoSet to ``True`` to receive the locale for the user in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies a read-only operation, which is consistent. It mentions the detailed flag behavior but does not disclose any additional behavioral traits such as authentication requirements or response size. With no annotations, the description provides adequate but not comprehensive transparency.

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, well-structured sentence that front-loads the main action and provides a key usage tip. No unnecessary words.

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 presence of an output schema and simple parameters, the description is complete enough. It covers the essential usage hint. The tool is straightforward, so no additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds minimal extra value by noting that detailed=true returns the full response. It does not mention include_locale 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 it retrieves user information and mentions the detailed flag. While it doesn't explicitly differentiate from sibling tools like users_get_presence or users_profile_get, the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus other user-related tools. The only usage tip is about setting detailed=True, but no context on prerequisites or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_listC

List all users in a Slack team. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of users to return per page (0-1000, default 0 for no limit).
cursorNoPagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page.
team_idNoEncoded team ID to list users in, required if the token belongs to an org-wide app (e.g. ``T0123``).
detailedNoSet to ``True`` to return the full, uncompacted Slack response.
include_localeNoSet to ``True`` to receive the locale for users in the response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It only mentions the 'detailed' flag, omitting pagination behavior, team_id requirement for org-wide apps, or side effects. The return type is not described despite an output schema existing.

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?

Two sentences, front-loaded with action, no filler. Efficiently conveys the core purpose and a key option.

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?

For a tool with 5 parameters, no required params, and an output schema, the description is too sparse. It does not explain pagination (cursor, limit), the team_id parameter for org-wide apps, or the include_locale flag. An agent lacks context to use it 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?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it merely echoes the detailed parameter. No parameter format, defaults, or constraints explained beyond 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 'List all users in a Slack team', specifying the action and resource. The sibling tools include users_info and users_lookup_by_email, so the purpose is distinct, though not explicitly differentiated.

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 users_info for single users or users_conversations for user memberships. No mention of prerequisites, rate limits, or optimal usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_lookup_by_emailB

Find a user with an email address. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesAn email address belonging to a user in the workspace (e.g. ``user@example.com``).
detailedNoSet to ``True`` to return the full, uncompacted Slack response.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/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 full burden for behavioral disclosure. It does not explicitly state that the operation is read-only, mention rate limits, or describe any side effects, leaving the agent with incomplete safety understanding.

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?

Two concise sentences with no fluff; front-loaded key information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description doesn't need to explain return values. However, it lacks guidance on when to use this tool vs siblings and does not mention potential errors or constraints (e.g., email must be in workspace). Adequate but minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so schema already documents both parameters adequately. The description adds minimal extra value by explicitly mentioning the 'detailed' parameter, but does not elaborate 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?

Description clearly states verb 'Find' and resource 'user with an email address', distinguishing it from sibling tools like users_info (by user ID) and users_list (list all). Also mentions the 'detailed' parameter for full response.

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 such as users_info, users_list, or other user lookup tools. Does not specify prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_prefs_getB

Get user preferences (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits beyond the implied read operation. It fails to mention side effects, access requirements, or any limitations. For an undocumented legacy tool, more transparency is expected.

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 at just three words plus a parenthetical. It is front-loaded with the essential purpose and includes a key qualifier (legacy) in minimal space.

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 lack of parameters and presence of an output schema, the description is minimally adequate. However, it does not explain what user preferences are, why it's undocumented, or whether there is a newer alternative. The completeness is average.

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 zero parameters, so there is nothing to explain. The description does not elaborate on what preferences are returned, but since schema coverage is 100% (vacuously), the baseline is met. No added value beyond stating the resource name.

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 user preferences' clearly states the action (Get) and the resource (user preferences). The addition of 'legacy undocumented' provides specific context that distinguishes it from potential siblings like users_prefs_set or team_prefs_get.

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 mentions 'legacy undocumented' but does not explicitly state when to use this tool versus alternatives. It gives no guidance on whether this should be avoided or what to use instead, leaving the agent without clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_prefs_setC

Set a user preference (legacy undocumented).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the preference to set.
valueYesValue to assign to the preference.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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. It only says 'Set a user preference (legacy undocumented)', which hints at possible deprecation but lacks details on permissions, side effects, or reliability. The 'undocumented' label itself is a transparency cue, but it's minimal.

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 concise sentence, front-loading the action. Every word contributes, though it could include more context without sacrificing conciseness.

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 tool's simplicity, the description is incomplete. It does not explain what types of preferences exist, whether there are valid values, or how this relates to the 'users_prefs_get' tool. The output schema exists but is not referenced, and the 'legacy undocumented' label suggests missing 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 coverage is 100%, so baseline is 3. The description does not add any extra meaning beyond the schema's parameter descriptions ('Name of the preference to set' and 'Value to assign to the preference'). No examples or constraints are 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 states the tool sets a user preference, which is a specific verb-resource pair. However, it does not differentiate from sibling tools like users_prefs_get or users_profile_set, which also deal with user settings. The 'legacy undocumented' note provides some context but not enough to distinguish.

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 vs alternatives like users_profile_set or users_prefs_get. It only labels it as 'legacy undocumented', which hints at limited use but does not give explicit when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_priority_listA

Get contacts ranked by interaction frequency (undocumented session endpoint).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It mentions 'undocumented session endpoint,' implying instability or lack of guarantees, but does not elaborate on side effects, rate limits, or output size. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key action, no unnecessary words. Every word carries meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an output schema, the description is mostly complete. It could add context like 'sorted descending by frequency' or 'includes only direct contacts,' but current level suffices for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description adds nothing about parameters, but none are needed. The schema coverage is 100%, so no compensation required.

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 gets contacts ranked by interaction frequency, using a specific verb and resource. It distinguishes from sibling tools like users_list or users_discoverable_contacts_lookup by mentioning the ranking criterion.

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. No mention of prerequisites, context, or exclusions. The brief statement does not help an agent decide between this and similar contact-retrieval tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_profile_getB

Retrieve a user's profile information. Set detailed=True for full response.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoID of user to retrieve profile info for; defaults to the authenticated user if omitted (e.g. ``U0123``).
detailedNoSet to ``True`` to return the full, uncompacted Slack response.
include_labelsNoSet to ``True`` to include labels for each ID in custom profile fields.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states 'Retrieve', implying read-only, but lacks details on permissions, rate limits, or whether the returned profile is minimal or full. The output schema may cover some of this, but the description adds 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?

The description is two short sentences, front-loaded with the purpose, and contains no unnecessary words. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters and an output schema, the description is minimal but provides the essential hook for the detailed parameter. However, it does not explain the other parameters (include_labels) or the overall response structure, leaving the agent to rely entirely on the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description mentions 'detailed=True for full response', which paraphrases the schema but adds no new meaning beyond what the schema already provides for that parameter.

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 action ('Retrieve a user's profile information') and resource. It distinguishes from sibling tools like users_info by specifying 'profile information', though the difference is implied rather than explicit.

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 hints at using 'detailed=True' for full response, suggesting two modes, but does not explicitly state when to use this tool versus alternatives like users_info or users_list, nor any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_profile_setC

Set the profile information for a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of a single profile field to set (e.g. ``first_name``); use with ``value``.
userNoID of user to change; requires admin scope, defaults to the authenticated user (e.g. ``U0123``).
valueNoValue to set on a single profile field named by ``name``.
profileNoMap of profile fields to set, as key-value pairs (alternative to ``name``/``value``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, and the description fails to disclose any behavioral traits such as mutability, idempotency, or required permissions.

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 waste, but it omits essential details; thus it is concise but not fully informative.

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 tool has 4 parameters and is a mutation, the description is too sparse. It does not explain the two different setting methods or default behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action ('Set the profile information') but is vague about what constitutes profile information. It does not differentiate from sibling tools like users_profile_get or users_set_photo.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/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 or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_set_photoC

Set the user profile photo.

ParametersJSON Schema
NameRequiredDescriptionDefault
crop_wNoWidth/height of the square crop box, in pixels (the crop is always square).
crop_xNoX coordinate of the top-left corner of the crop box, in pixels.
crop_yNoY coordinate of the top-left corner of the crop box, in pixels.
image_base64YesThe image to set, as a base64-encoded string of the raw image bytes.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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 behavioral traits such as whether the photo is replaced, size constraints, authorization requirements, or error handling. For a mutation tool, this is insufficient.

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?

Description is a single concise sentence with no waste. However, it could benefit from a slightly more structured explanation of the operation.

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?

Output schema exists, so return values are covered. The tool is relatively simple, but missing context like 'sets the photo for the authenticated user' or that it replaces the existing photo.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning; baseline 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?

Description clearly states 'Set the user profile photo' with a specific verb and resource. It distinguishes from sibling 'users_delete_photo' and 'users_profile_set', but doesn't specify which user's photo is being set (implied authenticated 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 on when to use this tool versus alternatives like 'users_profile_set' or 'users_delete_photo'. No prerequisites or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

users_set_presenceC

Manually set user presence.

ParametersJSON Schema
NameRequiredDescriptionDefault
presenceYesPresence to set, either ``auto`` or ``away``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description bears full responsibility for behavioral disclosure. It only states 'Manually set user presence' without explaining effects (e.g., overrides automatic detection, what 'auto' vs 'away' means in practice). The parameter description only echoes the enum values without added context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (4 words) but lacks necessary detail. It is not wordy, but the brevity comes at the cost of completeness.

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 simplicity of the tool (1 parameter), the description should clarify that it sets presence for the authenticated user and overrides automatic detection. It does not mention what the output schema contains or any side effects. The description is incomplete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the parameter has a description), but the tool description adds no additional meaning beyond the schema. It does not explain the implications of 'auto' vs 'away' or any other semantic details.

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 'set' and the resource 'user presence', distinguishing it from the sibling tool 'users_get_presence' which reads presence. However, it does not specify which user's presence is being set (presumably the authenticated user), leaving some ambiguity.

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 like DND tools or automatic presence detection. There is no mention of prerequisites, context, or 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.

views_openD

Open a view for a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewYesA view payload object (of type ``modal``).
trigger_idYesExchange a trigger to post to the user (e.g. ``12345.98765.abcd2358fdea``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.7/5.0
Behavior1/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 disclosing behavioral traits. It fails to mention any side effects (e.g., the view is displayed immediately to the user), permissions required, error conditions, or response behavior. The description is essentially silent on the tool's behavior beyond the literal action of opening.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While the description is concise (one sentence), it is underspecified to the point of being unhelpful. True conciseness would convey the essential information in a compact form; this description is merely short but lacks substance. It front-loads nothing of value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool (nested view object, required trigger_id) and the existence of an output schema (not shown but indicated), the description is completely inadequate. It does not explain the return value, the expected structure of the view payload, or the typical usage flow. The tool's context is entirely absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers both parameters (view and trigger_id) with descriptions, so schema_description_coverage is 100%. The baseline is 3. The description adds no additional meaning beyond what the schema already provides, so it neither improves nor degrades the understanding of parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is extremely brief: 'Open a view for a user.' It conveys the basic verb and resource but fails to define what a 'view' is in this context (e.g., a modal surface) and does not distinguish it from sibling tools like views_publish, views_push, or views_update. The purpose is vague and leaves too much ambiguity for an AI agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool versus alternative views_* tools, nor does it specify prerequisites (like requiring a trigger_id from a user interaction), exclusions, or context. This omission leaves the agent without critical decision-making information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

views_publishB

Publish a static view for a user.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashNoA string representing view state, used to protect against race conditions when updating an existing view.
viewYesA view payload object (of type ``home``).
user_idYesID of the user you want to publish a view to (e.g. ``U0123``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only says 'Publish a static view' without disclosing side effects, permissions, or response. Minimal behavioral insight.

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 wasted words. Could benefit from additional context but remains efficient.

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 (nested object, hash for race conditions) and no annotations, the description is too brief. Lacks explanation of static view, hash purpose, and overall behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters, so baseline is 3. Description adds no extra meaning 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?

Description clearly states verb ('Publish'), resource ('static view'), and target ('for a user'). Differentiates from sibling tools like views_open, views_push, and views_update.

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, nor when not to use it. Brief description lacks context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

views_pushA

Push a view onto the stack of a root view.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewYesA view payload object (of type ``modal``) to push onto the existing view stack.
trigger_idYesExchange a trigger to post to the user (e.g. ``12345.98765.abcd2358fdea``).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes pushing onto a stack, which implies a non-destructive additive behavior. However, no annotations exist, and details like stack limits, ordering, or dismissal are omitted. Adequate but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no fluff. Front-loaded with the core action and resource. Every word is necessary.

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?

Sufficient for a simple stack operation given the presence of an output schema. However, lacks usage guidance and behavioral depth, making it only moderately 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% (both parameters described). The description does not add extra semantic value beyond the schema; it only restates 'view' and 'trigger_id' concepts. Baseline score 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?

Description clearly states the action ('Push a view'), the resource ('view'), and the target ('stack of a root view'). Differentiates from sibling tools like views_open, views_publish, views_update that handle views differently.

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 views_open or views_update. Lacks context about prerequisites or stacking behavior conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

views_updateC

Update an existing view.

ParametersJSON Schema
NameRequiredDescriptionDefault
hashNoA string that represents view state to protect against possible race conditions when updating the view.
viewYesA view payload object (of type ``modal``) with the updated contents.
view_idNoA unique identifier of the view to be updated, returned when the view was opened (e.g. ``VMHU10V25``).
external_idNoA unique identifier set by the developer when opening the view, identifying which view to update.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'Update an existing view' without explaining side effects, required permissions, error conditions, or the role of the hash parameter for race conditions. This is insufficient for safe usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While the description is extremely concise (one sentence), it is overly sparse for a tool with four parameters and no annotations. It lacks necessary context, making it ineffective despite its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, 1 required, nested objects, output schema), the single-sentence description is grossly incomplete. It fails to explain parameter relationships, the expected structure of the 'view' object, or how hash, view_id, and external_id interact.

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 each parameter is already well-documented in the schema. The description adds no additional meaning beyond what the schema provides, which is the baseline for a tool with full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Update an existing view' clearly states the action (update) and the resource (existing view). It effectively distinguishes from sibling tools like views_open, views_publish, and views_push, all of which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage 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. There is no mention of prerequisites, when not to use it, or any comparative context with other view-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows_step_completedB

Indicate a workflow step has been completed successfully.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputsNoKey-value object mapping output names from the step's configuration to their values.
workflow_step_execute_idYesContext identifier for the step execution, from the ``workflow_step_execute`` event.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It mentions 'indicate' but does not disclose side effects, idempotency, authorization needs, or what happens after completion.

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?

Extremely concise single sentence. Could benefit from a bit more context, but 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?

Adequate for a simple indication tool, but lacks context about prerequisites (e.g., step must be executing) and the output schema exists but is not referenced. Minimal but functional.

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 documented. The tool description adds no additional meaning beyond the schema, hence baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (indicate) and the resource (workflow step completion). It distinguishes from siblings like workflows_step_failed by specifying 'successfully'.

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., workflows_step_failed for failure, or workflows_update_step for modifications). The agent must infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows_step_failedC

Indicate a workflow step has failed.

ParametersJSON Schema
NameRequiredDescriptionDefault
errorYesA JSON-based object with a ``message`` property that should contain a human-readable error message.
workflow_step_execute_idYesContext identifier for the step execution, from the ``workflow_step_execute`` event.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/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. It gives no details about side effects (e.g., whether the workflow stops), required permissions, or what happens after indicating failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise but potentially too terse. It could be improved by adding a brief note on usage without adding verbosity.

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 that the tool has an output schema (documenting return values) and the parameter schema is complete, the description is minimally adequate for a simple indicator. However, it lacks behavioral context, making it incomplete for an agent to fully understand the tool's effects.

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 documents both parameters adequately. The description adds no extra meaning beyond the schema, which is acceptable per guidelines.

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 tool's purpose: to indicate a workflow step has failed. It uses a specific verb-resource combination. However, it does not explicitly differentiate from sibling tools like workflows_step_completed, but the name and context make it obvious.

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 such as workflows_step_completed or workflows_update_step. The description lacks context on prerequisites or scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflows_update_stepB

Update the configuration for a workflow step.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsNoKey-value map of inputs from the user's step configuration; each value has a ``value`` property.
outputsNoA list of output objects (each with ``name``, ``type``, and ``label``) used during step execution.
step_nameNoOptional override for the name shown to users in the Workflow Builder for this step.
step_image_urlNoOptional override for the image shown to users in the Workflow Builder for this step.
workflow_step_edit_idYesA context identifier from the ``view_submission`` payload, mapping to editing a step.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/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 but only says 'Update'. It does not disclose mutation behavior, authorization needs, reversibility, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, efficient for its 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?

Has output schema (implied) and full parameter descriptions, but lacks context on constraints like editing ID validity or step existence.

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 individual parameter descriptions, so baseline 3. The tool description adds no extra meaning 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 'Update' and the resource 'configuration for a workflow step'. It distinguishes from sibling tools like workflows_step_completed or workflows_step_failed which handle different actions.

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. No prerequisites, context, or exclusion criteria provided.

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. 164 tool updatesv3.0.0
    • Changedapi_test2 fields changed
      • addedInput schema / properties / error / description
        Added value: +"Error response to return. If set, the call responds with an error of this value."
      • addedInput schema / properties / foo / description
        Added value: +"Example property to return in the response (echoed back as ``args.foo``)."
    • Addedapps_activities_list
    • Changedapps_event_authorizations_list3 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / event_context / description
        Added value: +"The ``event_context`` value from the event payload to look up authorizations for."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of authorizations to return."
    • Changedapps_manifest_create1 field changed
      • addedInput schema / properties / manifest / description
        Added value: +"The app manifest, as a JSON-encoded string, describing the app to create."
    • Changedapps_manifest_delete1 field changed
      • addedInput schema / properties / app_id / description
        Added value: +"ID of the app to delete (e.g. ``A0123``)."
    • Changedapps_manifest_export1 field changed
      • addedInput schema / properties / app_id / description
        Added value: +"ID of the app whose manifest to export (e.g. ``A0123``)."
    • Changedapps_manifest_update2 fields changed
      • addedInput schema / properties / app_id / description
        Added value: +"ID of the app to update (e.g. ``A0123``)."
      • addedInput schema / properties / manifest / description
        Added value: +"The updated app manifest, as a JSON-encoded string."
    • Changedapps_manifest_validate2 fields changed
      • addedInput schema / properties / app_id / description
        Added value: +"ID of an existing app to validate the manifest against (e.g. ``A0123``)."
      • addedInput schema / properties / manifest / description
        Added value: +"The app manifest, as a JSON-encoded string, to validate."
    • Changedapps_uninstall2 fields changed
      • addedInput schema / properties / client_id / description
        Added value: +"Your app's client ID."
      • addedInput schema / properties / client_secret / description
        Added value: +"Your app's client secret."
    • Addedassistant_search_context
    • Addedassistant_search_info
    • Changedassistant_threads_set_status3 fields changed
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel containing the assistant thread (e.g. ``C0123``)."
      • addedInput schema / properties / status / description
        Added value: +"Status text to display, e.g. ``\"is thinking...\"``. Empty string clears the status."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent assistant thread (e.g. ``1700000000.000100``)."
    • Changedassistant_threads_set_suggested_prompts4 fields changed
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel containing the assistant thread (e.g. ``C0123``)."
      • addedInput schema / properties / prompts / description
        Added value: +"List of prompt objects, each with ``title`` and ``message`` keys."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent assistant thread (e.g. ``1700000000.000100``)."
      • addedInput schema / properties / title / description
        Added value: +"Optional heading shown above the suggested prompts."
    • Changedassistant_threads_set_title3 fields changed
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel containing the assistant thread (e.g. ``C0123``)."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent assistant thread (e.g. ``1700000000.000100``)."
      • addedInput schema / properties / title / description
        Added value: +"Title text to set for the thread."
    • Changedauth_revoke1 field changed
      • addedInput schema / properties / test / description
        Added value: +"When ``True``, validate the request but do not actually revoke the token."
    • Changedauth_teams_list3 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page."
      • addedInput schema / properties / include_icon / description
        Added value: +"When ``True``, include the workspace icon URLs in each team object."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of workspaces to return per page (default ``100``)."
    • Addedblocks_validate
    • Changedbookmarks_add7 fields changed
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel to add the bookmark to (e.g. ``C0123``)."
      • addedInput schema / properties / emoji / description
        Added value: +"Emoji tag to apply to the bookmark (e.g. ``:books:``)."
      • addedInput schema / properties / entity_id / description
        Added value: +"ID of the entity being bookmarked (used for non-link bookmark types)."
      • addedInput schema / properties / link / description
        Added value: +"URL for the bookmark, required when ``type`` is ``link``."
      • addedInput schema / properties / parent_id / description
        Added value: +"ID of this bookmark's parent, used to nest it under a bookmark folder."
      • addedInput schema / properties / title / description
        Added value: +"Title (display name) for the bookmark."
      • addedInput schema / properties / type / description
        Added value: +"Type of the bookmark, e.g. ``link``."
    • Changedbookmarks_edit5 fields changed
      • addedInput schema / properties / bookmark_id / description
        Added value: +"ID of the bookmark to edit (e.g. ``Bk0123``)."
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel containing the bookmark (e.g. ``C0123``)."
      • addedInput schema / properties / emoji / description
        Added value: +"New emoji tag for the bookmark (e.g. ``:books:``)."
      • addedInput schema / properties / link / description
        Added value: +"New URL for the bookmark."
      • addedInput schema / properties / title / description
        Added value: +"New title (display name) for the bookmark."
    • Changedbookmarks_list1 field changed
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel whose bookmarks to list (e.g. ``C0123``)."
    • Changedbookmarks_remove2 fields changed
      • addedInput schema / properties / bookmark_id / description
        Added value: +"ID of the bookmark to remove (e.g. ``Bk0123``)."
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel containing the bookmark (e.g. ``C0123``)."
    • Changedbots_info2 fields changed
      • addedInput schema / properties / bot / description
        Added value: +"ID of the bot to get info for (e.g. ``B0123``)."
      • addedInput schema / properties / team_id / description
        Added value: +"ID of the workspace to scope the lookup to, required for org-level tokens (e.g. ``T0123``)."
    • Changedbots_list2 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of items to return per page."
    • Changedcalls_add8 fields changed
      • addedInput schema / properties / created_by / description
        Added value: +"ID of the user who created the Call; required when called with a bot token (e.g. ``U0123``)."
      • addedInput schema / properties / date_start / description
        Added value: +"Unix timestamp of when the Call started (e.g. ``1562002086``)."
      • addedInput schema / properties / desktop_app_join_url / description
        Added value: +"Alternate join URL used by Slack clients that have the provider's desktop app installed."
      • addedInput schema / properties / external_display_id / description
        Added value: +"Human-readable ID supplied by the third-party Call provider, displayed to users."
      • addedInput schema / properties / external_unique_id / description
        Added value: +"Unique ID for the Call supplied by the third-party Call provider."
      • addedInput schema / properties / join_url / description
        Added value: +"URL required for a client to join the Call (e.g. ``https://example.com/calls/1234``)."
      • addedInput schema / properties / title / description
        Added value: +"Display name for the Call."
      • addedInput schema / properties / users / description
        Added value: +"Participants to register; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url."
    • Changedcalls_end2 fields changed
      • addedInput schema / properties / duration / description
        Added value: +"Call duration in seconds."
      • addedInput schema / properties / id / description
        Added value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)."
    • Changedcalls_info1 field changed
      • addedInput schema / properties / id / description
        Added value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)."
    • Changedcalls_participants_add2 fields changed
      • addedInput schema / properties / id / description
        Added value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)."
      • addedInput schema / properties / users / description
        Added value: +"Users added to the Call; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url."
    • Changedcalls_participants_remove2 fields changed
      • addedInput schema / properties / id / description
        Added value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)."
      • addedInput schema / properties / users / description
        Added value: +"Users removed from the Call; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url."
    • Changedcalls_update4 fields changed
      • addedInput schema / properties / desktop_app_join_url / description
        Added value: +"Alternate URL used by Slack clients with the Call provider's desktop app installed."
      • addedInput schema / properties / id / description
        Added value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)."
      • addedInput schema / properties / join_url / description
        Added value: +"URL required for a client to join the Call (e.g. ``https://example.com/calls/1234567890``)."
      • addedInput schema / properties / title / description
        Added value: +"Display name for the Call."
    • Changedcanvases_access_delete3 fields changed
      • addedInput schema / properties / canvas_id / description
        Added value: +"Encoded ID of the canvas to remove access from (e.g. ``F0123ABC456``)."
      • addedInput schema / properties / channel_ids / description
        Added value: +"Channel IDs whose access to the canvas should be removed (e.g. ``[\"C0123\"]``)."
      • addedInput schema / properties / user_ids / description
        Added value: +"User IDs whose access to the canvas should be removed (e.g. ``[\"U0123\"]``)."
    • Changedcanvases_access_set4 fields changed
      • addedInput schema / properties / access_level / description
        Added value: +"Access level granted to the entities — ``read``, ``write``, or ``owner``."
      • addedInput schema / properties / canvas_id / description
        Added value: +"Encoded ID of the canvas to set access on (e.g. ``F0123ABC456``)."
      • addedInput schema / properties / channel_ids / description
        Added value: +"Channel IDs to grant the access level to (e.g. ``[\"C0123\"]``)."
      • addedInput schema / properties / user_ids / description
        Added value: +"User IDs to grant the access level to (e.g. ``[\"U0123\"]``)."
    • Changedcanvases_create2 fields changed
      • addedInput schema / properties / document_content / description
        Added value: +"Structured content; an object with ``type`` of ``markdown`` and a ``markdown`` body field."
      • addedInput schema / properties / title / description
        Added value: +"Title of the newly created canvas."
    • Changedcanvases_delete1 field changed
      • addedInput schema / properties / canvas_id / description
        Added value: +"Encoded ID of the canvas to delete (e.g. ``F0123ABC456``)."
    • Changedcanvases_edit2 fields changed
      • addedInput schema / properties / canvas_id / description
        Added value: +"Encoded ID of the canvas to edit (e.g. ``F0123ABC456``)."
      • addedInput schema / properties / changes / description
        Added value: +"Ordered edit operations, each with an operation (insert/replace/delete), document_content, section_id."
    • Changedcanvases_sections_lookup2 fields changed
      • addedInput schema / properties / canvas_id / description
        Added value: +"Encoded ID of the canvas to search within (e.g. ``F0123ABC456``)."
      • addedInput schema / properties / criteria / description
        Added value: +"Filter for which sections to return, e.g. a ``contains_text`` substring and/or ``section_types``."
    • Changedchannels_delete1 field changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to delete (e.g. ``C0123``)."
    • Changedchat_append_stream5 fields changed
      • addedInput schema / properties / markdown_text
        Added value: +{
        +  "description": "Markdown-formatted text chunk to append (max 12,000 characters).",
        +  "type": "string"
        +}
      • removedInput schema / properties / text
        Removed value: -{
        -  "description": "Text chunk to append to the streaming message.",
        -  "type": "string"
        -}
      • removedInput schema / properties / thread_ts
        Removed value: -{
        -  "description": "Timestamp of the parent thread that owns the stream (e.g. ``1700000000.000100``).",
        -  "type": "string"
        -}
      • addedInput schema / properties / ts
        Added value: +{
        +  "description": "Timestamp of the streaming message to append to (e.g. ``1700000000.000100``).",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "channel",
        -  "thread_ts",
        -  "text"
        -]New value: +[
        +  "channel",
        +  "ts",
        +  "markdown_text"
        +]
    • Changedchat_command3 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel in which to run the command (e.g. ``C0123``)."
      • addedInput schema / properties / command / description
        Added value: +"The slash command to execute, including the leading slash (e.g. ``/remind``)."
      • addedInput schema / properties / text / description
        Added value: +"Arguments passed to the slash command."
    • Changedchat_start_stream3 fields changed
      • addedInput schema / properties / markdown_text
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Initial markdown-formatted text for the stream (max 12,000 characters)."
        +}
      • addedInput schema / properties / recipient_team_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Team the receiving user belongs to (e.g. ``T0123``)."
        +}
      • addedInput schema / properties / recipient_user_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "User to receive the streaming text; required when streaming to a channel (e.g. ``U0123``)."
        +}
    • Changedchat_stop_stream3 fields changed
      • removedInput schema / properties / thread_ts
        Removed value: -{
        -  "description": "Timestamp of the parent thread whose stream should be stopped (e.g. ``1700000000.000100``).",
        -  "type": "string"
        -}
      • addedInput schema / properties / ts
        Added value: +{
        +  "description": "Timestamp of the streaming message to stop (e.g. ``1700000000.000100``).",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "channel",
        -  "thread_ts"
        -]New value: +[
        +  "channel",
        +  "ts"
        +]
    • Removedchat_stream
    • Changedclient_counts2 fields changed
      • addedInput schema / properties / org_wide_aware / description
        Added value: +"Include counts across all workspaces in an Enterprise org."
      • addedInput schema / properties / thread_count_by_last_read / description
        Added value: +"Count unread threads relative to the last-read marker."
    • Changedconversations_external_invite_permissions_set3 fields changed
      • changedInput schema / properties / channel / description
        Previous value: -"ID of the Slack Connect channel (e.g. C0123)."New value: +"ID of the Slack Connect channel (e.g. ``C0123``)."
      • addedInput schema / properties / target_team
        Added value: +{
        +  "description": "Encoded team ID of the target team to change permissions for (e.g. ``T0123``).",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "channel",
        -  "action"
        -]New value: +[
        +  "channel",
        +  "action",
        +  "target_team"
        +]
    • Changedconversations_request_shared_invite_approve4 fields changed
      • changedInput schema / properties / channel_id / description
        Previous value: -"ID of the channel the request is for, if disambiguation is needed."New value: +"ID of the channel to override the requested invite destination."
      • removedInput schema / properties / is_approved
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "boolean"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Whether the request is approved. Set False to record a rejection."
        -}
      • addedInput schema / properties / is_external_limited
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Restrict the invited team to post-only (limited) access."
        +}
      • changedInput schema / properties / message / description
        Previous value: -"Optional message object to attach to the approval."New value: +"Optional message object (``{\"text\": ..., \"is_override\": ...}``) to attach to the approval."
    • Changedconversations_request_shared_invite_deny2 fields changed
      • changedInput schema / properties / message / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": true,
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / message / description
        Previous value: -"Optional message object explaining the denial."New value: +"Optional message explaining why the request was denied."
    • Changedconversations_view2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to view (e.g. ``C0123``)."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full, uncompacted response instead of the compacted summary."
    • Changeddialog_open2 fields changed
      • addedInput schema / properties / dialog / description
        Added value: +"Dialog definition for the modal, including ``title``, ``callback_id``, and ``elements``."
      • addedInput schema / properties / trigger_id / description
        Added value: +"Trigger ID from a user interaction authorizing the dialog; expires after 3 seconds."
    • Changeddnd_info2 fields changed
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to fetch the status from, required for org-wide tokens (e.g. ``T0123``)."
      • addedInput schema / properties / user / description
        Added value: +"ID of the user to fetch status for; defaults to the authenticated user (e.g. ``U0123``)."
    • Changeddnd_set_snooze1 field changed
      • addedInput schema / properties / num_minutes / description
        Added value: +"Number of minutes, starting now, to snooze notifications for (e.g. ``60``)."
    • Changeddnd_team_info2 fields changed
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID the users belong to, required for org-wide tokens (e.g. ``T0123``)."
      • addedInput schema / properties / users / description
        Added value: +"Comma-separated list of user IDs to fetch Do Not Disturb status for (e.g. ``U0123,U0456``)."
    • Changeddrafts_create6 fields changed
      • addedInput schema / properties / broadcast / description
        Added value: +"Also send the threaded reply to the channel when posted (requires ``thread_ts``)."
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel the draft is addressed to (e.g. ``C0123``)."
      • addedInput schema / properties / date_scheduled / description
        Added value: +"Unix epoch timestamp (seconds) to schedule the draft for sending."
      • addedInput schema / properties / file_ids / description
        Added value: +"IDs of already-uploaded files to attach to the draft (e.g. ``F0123``)."
      • addedInput schema / properties / text / description
        Added value: +"Draft message body text."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent thread to draft a reply to (e.g. ``1700000000.000100``)."
    • Changeddrafts_delete2 fields changed
      • addedInput schema / properties / client_last_updated_ts / description
        Added value: +"The draft's last-updated timestamp (7-decimal-place Slack draft ts)."
      • addedInput schema / properties / draft_id / description
        Added value: +"ID of the draft to delete."
    • Changeddrafts_list2 fields changed
      • addedInput schema / properties / is_active / description
        Added value: +"Only return drafts that are currently active (unsent)."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of drafts to return."
    • Changeddrafts_update7 fields changed
      • addedInput schema / properties / broadcast / description
        Added value: +"Also send the threaded reply to the channel when posted (requires ``thread_ts``)."
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel the draft is addressed to (e.g. ``C0123``)."
      • addedInput schema / properties / client_last_updated_ts / description
        Added value: +"The draft's last-updated timestamp (7-decimal-place Slack draft ts)."
      • addedInput schema / properties / draft_id / description
        Added value: +"ID of the draft to update."
      • addedInput schema / properties / file_ids / description
        Added value: +"IDs of already-uploaded files to attach to the draft (e.g. ``F0123``)."
      • addedInput schema / properties / text / description
        Added value: +"Updated draft message body text."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent thread to draft a reply to (e.g. ``1700000000.000100``)."
    • Changedemoji_add2 fields changed
      • addedInput schema / properties / image_url / description
        Added value: +"URL of the image to download and upload as the emoji."
      • addedInput schema / properties / name / description
        Added value: +"Name for the new emoji, without colons (e.g. ``party_parrot``)."
    • Changedemoji_admin_list2 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Number of emoji to return per page."
      • addedInput schema / properties / page / description
        Added value: +"1-based page number of results to return."
    • Changedemoji_list1 field changed
      • addedInput schema / properties / include_categories / description
        Added value: +"Include the standard emoji categories in the response when ``True``."
    • Changedemoji_remove1 field changed
      • addedInput schema / properties / name / description
        Added value: +"Name of the emoji to remove, without colons (e.g. ``party_parrot``)."
    • Changedentity_present_details9 fields changed
      • removedInput schema / properties / app_id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / entity_id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / entity_type
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / error
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Error object with status and messaging details, if the entity can't be presented."
        +}
      • addedInput schema / properties / metadata
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Flexpane metadata keyed by entity ID, each describing the entity to present."
        +}
      • addedInput schema / properties / trigger_id
        Added value: +{
        +  "description": "Reference to the user action that initiated the request.",
        +  "type": "string"
        +}
      • addedInput schema / properties / user_auth_required
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether the user must authenticate before details can be shown."
        +}
      • addedInput schema / properties / user_auth_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Custom URL where the user can authenticate."
        +}
      • changedInput schema / required
        Previous value: -[
        -  "app_id",
        -  "entity_id",
        -  "entity_type"
        -]New value: +[
        +  "trigger_id"
        +]
    • Changedfiles_comments_delete2 fields changed
      • addedInput schema / properties / file / description
        Added value: +"ID of the file the comment belongs to (e.g. ``F0123``)."
      • addedInput schema / properties / id / description
        Added value: +"ID of the comment to delete."
    • Changedfiles_complete_upload_external4 fields changed
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel to share the uploaded files into (e.g. ``C0123``)."
      • addedInput schema / properties / files / description
        Added value: +"File objects to finalize, each with an ``id`` from ``files.getUploadURLExternal`` and optional ``title``."
      • addedInput schema / properties / initial_comment / description
        Added value: +"Message text to post alongside the shared files."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent message to share the files into as a thread reply (e.g. ``1700000000.00``)."
    • Changedfiles_delete1 field changed
      • addedInput schema / properties / file / description
        Added value: +"ID of the file to delete (e.g. ``F0123``)."
    • Changedfiles_edit4 fields changed
      • addedInput schema / properties / content / description
        Added value: +"New body content of the file."
      • addedInput schema / properties / file / description
        Added value: +"ID of the file to edit (e.g. ``F0123``)."
      • addedInput schema / properties / filetype / description
        Added value: +"New file type (Slack-internal file type identifier, e.g. ``text``)."
      • addedInput schema / properties / title / description
        Added value: +"New title for the file."
    • Changedfiles_get_upload_url_external4 fields changed
      • addedInput schema / properties / alt_txt / description
        Added value: +"Description of the image for screen-reader accessibility."
      • addedInput schema / properties / filename / description
        Added value: +"Name of the file being uploaded (e.g. ``report.pdf``)."
      • addedInput schema / properties / length / description
        Added value: +"Size of the file in bytes."
      • addedInput schema / properties / snippet_type / description
        Added value: +"Syntax type of a snippet being uploaded (e.g. ``python``)."
    • Changedfiles_info6 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Number of comments to return per page (deprecated pagination)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a prior response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full Slack response instead of the compacted summary when ``True``."
      • addedInput schema / properties / file / description
        Added value: +"ID of the file to get info about (e.g. ``F0123``)."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of comments to return per page."
      • addedInput schema / properties / page / description
        Added value: +"Page number of comments to return (deprecated pagination)."
    • Changedfiles_list10 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"Filter files to those shared in this channel (e.g. ``C0123``)."
      • addedInput schema / properties / count / description
        Added value: +"Number of files to return per page."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full Slack response instead of the compacted summary when ``True``."
      • addedInput schema / properties / page / description
        Added value: +"Page number of results to return."
      • addedInput schema / properties / show_files_hidden_by_limit / description
        Added value: +"Include files hidden due to the free-plan message/file limit when ``True``."
      • addedInput schema / properties / team_id / description
        Added value: +"ID of the workspace to list files for, required for org-wide tokens (e.g. ``T0123``)."
      • addedInput schema / properties / ts_from / description
        Added value: +"Filter files created after this Unix timestamp."
      • addedInput schema / properties / ts_to / description
        Added value: +"Filter files created before this Unix timestamp."
      • addedInput schema / properties / types / description
        Added value: +"Comma-separated file types to filter by (e.g. ``images,pdfs``; also ``all``, ``snippets``, ``gdocs``)."
      • addedInput schema / properties / user / description
        Added value: +"Filter files to those created by this user (e.g. ``U0123``)."
    • Changedfiles_remote_add6 fields changed
      • addedInput schema / properties / external_id / description
        Added value: +"Unique identifier for the file in your app's storage (e.g. ``123abc``)."
      • addedInput schema / properties / external_url / description
        Added value: +"URL where the remote file can be accessed (e.g. ``https://example.com/files/123``)."
      • addedInput schema / properties / filetype / description
        Added value: +"File type identifier (e.g. ``doc``, ``pdf``)."
      • addedInput schema / properties / indexable_file_contents / description
        Added value: +"Plain-text contents of the file used to make it searchable in Slack."
      • addedInput schema / properties / preview_image / description
        Added value: +"Image to use as the file's preview thumbnail."
      • addedInput schema / properties / title / description
        Added value: +"Title of the file shown in Slack."
    • Changedfiles_remote_info2 fields changed
      • addedInput schema / properties / external_id / description
        Added value: +"Identifier of the remote file in your app's storage (e.g. ``123abc``)."
      • addedInput schema / properties / file / description
        Added value: +"ID of the file as assigned by Slack (e.g. ``F0123``)."
    • Changedfiles_remote_list5 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"Filter to remote files shared in this channel (e.g. ``C0123``)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor for the next page, from a prior response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of files to return per page."
      • addedInput schema / properties / ts_from / description
        Added value: +"Filter files created after this Unix timestamp."
      • addedInput schema / properties / ts_to / description
        Added value: +"Filter files created before this Unix timestamp."
    • Changedfiles_remote_remove2 fields changed
      • addedInput schema / properties / external_id / description
        Added value: +"Identifier of the remote file in your app's storage (e.g. ``123abc``)."
      • addedInput schema / properties / file / description
        Added value: +"ID of the file as assigned by Slack (e.g. ``F0123``)."
    • Changedfiles_remote_share3 fields changed
      • addedInput schema / properties / channels / description
        Added value: +"Comma-separated list of channel IDs to share the file into (e.g. ``C0123,C0456``)."
      • addedInput schema / properties / external_id / description
        Added value: +"Identifier of the remote file in your app's storage (e.g. ``123abc``)."
      • addedInput schema / properties / file / description
        Added value: +"ID of the file as assigned by Slack (e.g. ``F0123``)."
    • Changedfiles_remote_update7 fields changed
      • addedInput schema / properties / external_id / description
        Added value: +"Identifier of the remote file in your app's storage (e.g. ``123abc``)."
      • addedInput schema / properties / external_url / description
        Added value: +"URL where the remote file can be accessed (e.g. ``https://example.com/files/123``)."
      • addedInput schema / properties / file / description
        Added value: +"ID of the file as assigned by Slack (e.g. ``F0123``)."
      • addedInput schema / properties / filetype / description
        Added value: +"File type identifier (e.g. ``doc``, ``pdf``)."
      • addedInput schema / properties / indexable_file_contents / description
        Added value: +"Plain-text contents of the file used to make it searchable in Slack."
      • addedInput schema / properties / preview_image / description
        Added value: +"Image to use as the file's preview thumbnail."
      • addedInput schema / properties / title / description
        Added value: +"Title of the file shown in Slack."
    • Changedfiles_revoke_public_url1 field changed
      • addedInput schema / properties / file / description
        Added value: +"ID of the file to revoke public sharing for (e.g. ``F0123``)."
    • Changedfiles_share_legacy2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to share the file into (e.g. ``C0123``)."
      • addedInput schema / properties / file / description
        Added value: +"ID of the file to share (e.g. ``F0123``)."
    • Changedfiles_shared_public_url1 field changed
      • addedInput schema / properties / file / description
        Added value: +"ID of the file to enable public sharing for (e.g. ``F0123``)."
    • Changedfiles_upload7 fields changed
      • addedInput schema / properties / channels / description
        Added value: +"Comma-separated list of channel IDs to share the file into (e.g. ``C0123,C0456``)."
      • addedInput schema / properties / content / description
        Added value: +"File contents as a string; using this creates an editable text/snippet file instead of a binary upload."
      • addedInput schema / properties / filename / description
        Added value: +"Name of the file (e.g. ``report.pdf``)."
      • addedInput schema / properties / filetype / description
        Added value: +"File type identifier (e.g. ``python``, ``pdf``)."
      • addedInput schema / properties / initial_comment / description
        Added value: +"Message text to post alongside the file."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent message to share the file into as a thread reply (e.g. ``1700000000.00``)."
      • addedInput schema / properties / title / description
        Added value: +"Title of the file shown in Slack."
    • Changedfiles_upload_v214 fields changed
      • addedInput schema / properties / channel
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "ID of the channel to share the uploaded file into (e.g. ``C0123``)."
        +}
      • removedInput schema / properties / channel_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
      • removedInput schema / properties / content / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / content / default
        Removed value: -null
      • addedInput schema / properties / content / description
        Added value: +"File contents to upload as a string."
      • addedInput schema / properties / content / type
        Added value: +"string"
      • addedInput schema / properties / filename / description
        Added value: +"Name of the file (e.g. ``notes.txt``)."
      • removedInput schema / properties / filetype
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
      • addedInput schema / properties / initial_comment / description
        Added value: +"Message text to post alongside the file."
      • removedInput schema / properties / length
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
      • addedInput schema / properties / snippet_type / description
        Added value: +"Syntax type of a snippet being uploaded (e.g. ``python``)."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent message to share the file into as a thread reply (e.g. ``1700000000.0001``)."
      • addedInput schema / properties / title / description
        Added value: +"Title of the file shown in Slack."
      • addedInput schema / required
        Added value: +[
        +  "content"
        +]
    • Changedfunctions_complete_error2 fields changed
      • addedInput schema / properties / error / description
        Added value: +"Human-readable error message describing why the function failed."
      • addedInput schema / properties / function_execution_id / description
        Added value: +"ID of the function execution to fail, from the ``function_executed`` event."
    • Changedfunctions_complete_success7 fields changed
      • addedInput schema / properties / function_execution_id / description
        Added value: +"ID of the function execution to complete, from the ``function_executed`` event."
      • addedInput schema / properties / outputs / additionalProperties
        Added value: +true
      • removedInput schema / properties / outputs / anyOf
        Removed value: -[
        -  {
        -    "additionalProperties": true,
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / outputs / default
        Removed value: -null
      • addedInput schema / properties / outputs / description
        Added value: +"Mapping of output names to values, matching the output parameters declared in the function definition."
      • addedInput schema / properties / outputs / type
        Added value: +"object"
      • changedInput schema / required
        Previous value: -[
        -  "function_execution_id"
        -]New value: +[
        +  "function_execution_id",
        +  "outputs"
        +]
    • Addedmessages_list
    • Changedmigration_exchange3 fields changed
      • addedInput schema / properties / team_id / description
        Added value: +"Specify a team ID to scope the lookup, required for Enterprise Grid org tokens."
      • addedInput schema / properties / to_old / description
        Added value: +"Set to ``True`` to map global IDs back to their local (legacy) workspace IDs."
      • addedInput schema / properties / users / description
        Added value: +"Comma-separated list of user IDs (up to 400) to translate (e.g. ``U0123,U0456``)."
    • Changedoauth_access5 fields changed
      • addedInput schema / properties / client_id / description
        Added value: +"Your app's client ID."
      • addedInput schema / properties / client_secret / description
        Added value: +"Your app's client secret."
      • addedInput schema / properties / code / description
        Added value: +"The OAuth verifier code received via the OAuth callback."
      • addedInput schema / properties / redirect_uri / description
        Added value: +"Must match the value used to request the code."
      • addedInput schema / properties / single_channel / description
        Added value: +"Request a single-channel installation token."
    • Changedoauth_v2_access7 fields changed
      • addedInput schema / properties / client_id / description
        Added value: +"Your app's client ID."
      • addedInput schema / properties / client_secret / description
        Added value: +"Your app's client secret."
      • addedInput schema / properties / code / description
        Added value: +"The OAuth callback code (omit when refreshing)."
      • addedInput schema / properties / code_verifier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The PKCE code verifier, when the authorization request used PKCE."
        +}
      • addedInput schema / properties / grant_type / description
        Added value: +"``authorization_code`` (default) or ``refresh_token``."
      • addedInput schema / properties / redirect_uri / description
        Added value: +"Must match the value used to request the code."
      • addedInput schema / properties / refresh_token / description
        Added value: +"The refresh token, when ``grant_type=refresh_token``."
    • Changedoauth_v2_exchange3 fields changed
      • addedInput schema / properties / client_id / description
        Added value: +"Your app's client ID."
      • addedInput schema / properties / client_secret / description
        Added value: +"Your app's client secret."
      • addedInput schema / properties / token / description
        Added value: +"The legacy (non-expiring) access token to exchange."
    • Addedoauth_v2_user_access
    • Changedopenid_connect_token7 fields changed
      • addedInput schema / properties / client_id / description
        Added value: +"Issued client ID for your Slack app."
      • addedInput schema / properties / client_secret / description
        Added value: +"Issued client secret for your Slack app."
      • addedInput schema / properties / code / description
        Added value: +"The temporary authorization code returned via the OAuth redirect."
      • addedInput schema / properties / code_verifier
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The PKCE code verifier, when the authorization request used PKCE."
        +}
      • addedInput schema / properties / grant_type / description
        Added value: +"The grant type: ``authorization_code`` (default) or ``refresh_token``."
      • addedInput schema / properties / redirect_uri / description
        Added value: +"Redirect URI used in the initial authorization request; must match exactly."
      • addedInput schema / properties / refresh_token / description
        Added value: +"The refresh token, used when ``grant_type`` is ``refresh_token``."
    • Changedpins_add2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to pin the item in (e.g. ``C0123``)."
      • addedInput schema / properties / timestamp / description
        Added value: +"Timestamp of the message to pin (e.g. ``1700000000.000100``)."
    • Changedpins_list2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel whose pinned items to list (e.g. ``C0123``)."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full unmodified Slack response instead of a compacted summary."
    • Changedpins_remove2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel containing the pinned item (e.g. ``C0123``)."
      • addedInput schema / properties / timestamp / description
        Added value: +"Timestamp of the pinned message to remove (e.g. ``1700000000.000100``)."
    • Changedreactions_add3 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"Channel where the target message was posted (e.g. ``C0123``)."
      • addedInput schema / properties / name / description
        Added value: +"Reaction (emoji) name, without surrounding colons (e.g. ``thumbsup``)."
      • addedInput schema / properties / timestamp / description
        Added value: +"Timestamp of the message to react to (e.g. ``1700000000.000100``)."
    • Changedreactions_get6 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"Channel of the target message (e.g. ``C0123``). Required when getting reactions for a message."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full Slack response instead of a compacted summary."
      • addedInput schema / properties / file / description
        Added value: +"File to get reactions for (e.g. ``F0123``)."
      • addedInput schema / properties / file_comment / description
        Added value: +"File comment to get reactions for (e.g. ``Fc0123``)."
      • addedInput schema / properties / full / description
        Added value: +"Return the complete reaction list, not a truncated one."
      • addedInput schema / properties / timestamp / description
        Added value: +"Timestamp of the message (e.g. ``1700000000.000100``). Used together with ``channel``."
    • Changedreactions_list8 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Number of items to return per page (deprecated; prefer ``limit`` with ``cursor``)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from the previous response's ``response_metadata.next_cursor`` (e.g. ``dXNlcjpV``)."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full Slack response instead of a compacted summary."
      • addedInput schema / properties / full / description
        Added value: +"Return the complete reaction list for each item, not a truncated one."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of items to return per page."
      • addedInput schema / properties / page / description
        Added value: +"Page number of results to return (deprecated; prefer ``limit`` with ``cursor``)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to list reactions in, required for org-wide app tokens (e.g. ``T0123``)."
      • addedInput schema / properties / user / description
        Added value: +"User whose reactions to list; defaults to the authenticated user (e.g. ``U0123``)."
    • Changedreactions_remove5 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"Channel where the message to remove the reaction from was posted (e.g. ``C0123``)."
      • addedInput schema / properties / file / description
        Added value: +"File to remove the reaction from (e.g. ``F0123``)."
      • addedInput schema / properties / file_comment / description
        Added value: +"File comment to remove the reaction from (e.g. ``Fc0123``)."
      • addedInput schema / properties / name / description
        Added value: +"Reaction (emoji) name to remove, without surrounding colons (e.g. ``thumbsup``)."
      • addedInput schema / properties / timestamp / description
        Added value: +"Timestamp of the message (e.g. ``1700000000.000100``). Used together with ``channel``."
    • Changedreminders_add5 fields changed
      • addedInput schema / properties / recurrence / description
        Added value: +"Recurring schedule, e.g. ``{\"frequency\": \"weekly\", \"weekdays\": [\"monday\"]}``."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``)."
      • addedInput schema / properties / text / description
        Added value: +"The content of the reminder (e.g. ``eat a banana``)."
      • addedInput schema / properties / time / description
        Added value: +"When to trigger — a Unix timestamp, seconds from now, or natural language (e.g. ``in 15 minutes``)."
      • addedInput schema / properties / user / description
        Added value: +"User who will receive the reminder; defaults to the authenticated user (e.g. ``U0123``)."
    • Changedreminders_complete2 fields changed
      • addedInput schema / properties / reminder / description
        Added value: +"The ID of the reminder to mark complete (e.g. ``Rm0123``)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``)."
    • Changedreminders_delete2 fields changed
      • addedInput schema / properties / reminder / description
        Added value: +"The ID of the reminder to delete (e.g. ``Rm0123``)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``)."
    • Changedreminders_info2 fields changed
      • addedInput schema / properties / reminder / description
        Added value: +"The ID of the reminder to get info for (e.g. ``Rm0123``)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``)."
    • Changedreminders_list1 field changed
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to list reminders for, required for org-wide app tokens (e.g. ``T0123``)."
    • Changedresolve_names2 fields changed
      • addedInput schema / properties / channel_ids / description
        Added value: +"Channel IDs to resolve to display names (e.g. ``[\"C0123\"]``)."
      • addedInput schema / properties / user_ids / description
        Added value: +"User IDs to resolve to display names (e.g. ``[\"U0123\"]``)."
    • Changedrtm_connect2 fields changed
      • addedInput schema / properties / batch_presence_aware / description
        Added value: +"Batch presence deliveries, only for users subscribed via ``presence_sub`` events."
      • addedInput schema / properties / presence_sub / description
        Added value: +"Only deliver presence events for users subscribed via a ``presence_sub`` event."
    • Changedrtm_start7 fields changed
      • addedInput schema / properties / batch_presence_aware / description
        Added value: +"Batch presence deliveries, only for users subscribed via ``presence_sub`` events."
      • addedInput schema / properties / include_locale / description
        Added value: +"Include locale information for users and IMs in the returned data."
      • addedInput schema / properties / mpim_aware / description
        Added value: +"Return group-DM (multi-party IM) conversations in the returned data."
      • addedInput schema / properties / no_latest / description
        Added value: +"Exclude latest timestamps for channels, groups, MPIMs, and IMs to reduce payload size."
      • addedInput schema / properties / no_unreads / description
        Added value: +"Skip unread counts for each channel to reduce payload size."
      • addedInput schema / properties / presence_sub / description
        Added value: +"Only deliver presence events for users subscribed via a ``presence_sub`` event."
      • addedInput schema / properties / simple_latest / description
        Added value: +"Return only the latest message timestamp per channel, omitting the full message object."
    • Changedsaved_add4 fields changed
      • addedInput schema / properties / date_due / description
        Added value: +"Unix epoch timestamp (seconds) for an optional reminder/due date."
      • addedInput schema / properties / item_id / description
        Added value: +"ID of the item's container, e.g. the channel ID for a message (``C0123``)."
      • addedInput schema / properties / item_type / description
        Added value: +"Type of item to save, e.g. ``message``."
      • addedInput schema / properties / ts / description
        Added value: +"Timestamp of the item to save (e.g. ``1700000000.000100``)."
    • Changedsaved_delete3 fields changed
      • addedInput schema / properties / item_id / description
        Added value: +"ID of the item's container, e.g. the channel ID for a message (``C0123``)."
      • addedInput schema / properties / item_type / description
        Added value: +"Type of saved item to remove, e.g. ``message``."
      • addedInput schema / properties / ts / description
        Added value: +"Timestamp of the saved item to remove (e.g. ``1700000000.000100``)."
    • Changedsaved_list3 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full, uncompacted response instead of the compacted summary."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of saved items to return."
    • Changedsearch_modules_channels3 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Number of results to return per page."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / query / description
        Added value: +"Search query string matching channel names and topics."
    • Changedsearch_modules_dms3 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Number of results to return per page."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / query / description
        Added value: +"Search query string matched against direct-message content."
    • Changedsearch_modules_files3 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Number of results to return per page."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / query / description
        Added value: +"Search query string matching file names and contents."
    • Changedsearch_modules_messages4 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Number of results to return per page."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full, uncompacted response instead of the compacted summary."
      • addedInput schema / properties / query / description
        Added value: +"Search query string, supporting Slack search operators (e.g. ``from:@user``)."
    • Changedsearch_modules_people3 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Number of results to return per page."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / query / description
        Added value: +"Search query string matching member names, titles, and departments."
    • Changedslack_lists_access_delete3 fields changed
      • addedInput schema / properties / channel_ids / description
        Added value: +"Channel IDs to revoke access for (e.g. ``[\"C0123\"]``)."
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) to remove access from (e.g. ``F0123``)."
      • addedInput schema / properties / user_ids / description
        Added value: +"User IDs to revoke access for (e.g. ``[\"U0123\"]``)."
    • Changedslack_lists_access_set4 fields changed
      • addedInput schema / properties / access_level / description
        Added value: +"Access level to grant; one of ``read``, ``write``, or ``owner``."
      • addedInput schema / properties / channel_ids / description
        Added value: +"Channel IDs to grant access to (e.g. ``[\"C0123\"]``)."
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) to set access on (e.g. ``F0123``)."
      • addedInput schema / properties / user_ids / description
        Added value: +"User IDs to grant access to (e.g. ``[\"U0123\"]``)."
    • Changedslack_lists_create5 fields changed
      • removedInput schema / properties / columns
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "additionalProperties": {
        -          "type": "string"
        -        },
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
      • removedInput schema / properties / description
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
      • addedInput schema / properties / description_blocks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Rich-text blocks describing the list."
        +}
      • addedInput schema / properties / name / description
        Added value: +"Name (title) of the list to create."
      • addedInput schema / properties / schema
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Column definitions for the list, each describing a field's key, name, and type."
        +}
    • Changedslack_lists_download_get2 fields changed
      • addedInput schema / properties / job_id / description
        Added value: +"ID of the download job previously started for the list."
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) being downloaded (e.g. ``F0123``)."
    • Changedslack_lists_download_start2 fields changed
      • addedInput schema / properties / include_archived
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When ``True``, include archived items in the download."
        +}
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) to download (e.g. ``F0123``)."
    • Changedslack_lists_items_create3 fields changed
      • removedInput schema / properties / column_values
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": {
        -        "type": "string"
        -      },
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
      • addedInput schema / properties / initial_fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Field values for the new item, each an object with a ``column_id`` and a typed value."
        +}
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) to add the item to (e.g. ``F0123``)."
    • Changedslack_lists_items_delete2 fields changed
      • addedInput schema / properties / item_id / description
        Added value: +"ID of the list item (record) to delete."
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) containing the item (e.g. ``F0123``)."
    • Changedslack_lists_items_delete_multiple2 fields changed
      • addedInput schema / properties / item_ids / description
        Added value: +"IDs of the list items (records) to delete."
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) containing the items (e.g. ``F0123``)."
    • Changedslack_lists_items_info3 fields changed
      • addedInput schema / properties / include_is_subscribed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When ``True``, include whether the caller is subscribed to the item."
        +}
      • addedInput schema / properties / item_id / description
        Added value: +"ID of the list item (record) to fetch."
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) containing the item (e.g. ``F0123``)."
    • Changedslack_lists_items_list4 fields changed
      • addedInput schema / properties / archived
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "When ``True``, return archived items instead of active ones."
        +}
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of items to return per page."
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) whose items to return (e.g. ``F0123``)."
    • Changedslack_lists_items_update5 fields changed
      • addedInput schema / properties / cells
        Added value: +{
        +  "description": "Cells to update, each an object with ``row_id`` (the item/record), ``column_id``, and a typed value.",
        +  "items": {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / column_values
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "additionalProperties": {
        -        "type": "string"
        -      },
        -      "type": "object"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
      • removedInput schema / properties / item_id
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) containing the item (e.g. ``F0123``)."
      • changedInput schema / required
        Previous value: -[
        -  "item_id",
        -  "list_id"
        -]New value: +[
        +  "list_id",
        +  "cells"
        +]
    • Changedslack_lists_update4 fields changed
      • removedInput schema / properties / description
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null
        -}
      • addedInput schema / properties / description_blocks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "New rich-text blocks describing the list."
        +}
      • addedInput schema / properties / list_id / description
        Added value: +"ID of the list (a file ID) to update (e.g. ``F0123``)."
      • addedInput schema / properties / name / description
        Added value: +"New name (title) for the list."
    • Changedstars_add4 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"Channel, group, or DM to star, or the channel of a file/comment being starred (e.g. ``C0123``)."
      • addedInput schema / properties / file / description
        Added value: +"File to add a star to (e.g. ``F0123``)."
      • addedInput schema / properties / file_comment / description
        Added value: +"File comment to add a star to (e.g. ``Fc0123``)."
      • addedInput schema / properties / timestamp / description
        Added value: +"Timestamp of the message to star; requires ``channel`` (e.g. ``1700000000.000100``)."
    • Changedstars_list6 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Number of items to return per page (legacy paging)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / detailed / description
        Added value: +"When ``True``, return the full Slack response instead of a compacted summary."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of items to return per page (cursor paging)."
      • addedInput schema / properties / page / description
        Added value: +"Page number of results to return (legacy paging)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to list stars for; required if the token belongs to an org-level app (e.g. ``T0123``)."
    • Changedstars_remove4 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"Channel, group, or DM to unstar, or the channel of a file/comment being unstarred (e.g. ``C0123``)."
      • addedInput schema / properties / file / description
        Added value: +"File to remove a star from (e.g. ``F0123``)."
      • addedInput schema / properties / file_comment / description
        Added value: +"File comment to remove a star from (e.g. ``Fc0123``)."
      • addedInput schema / properties / timestamp / description
        Added value: +"Timestamp of the message to unstar; requires ``channel`` (e.g. ``1700000000.000100``)."
    • Changedsubscriptions_thread_mark3 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel containing the thread (e.g. ``C0123``)."
      • addedInput schema / properties / read / description
        Added value: +"Mark the thread as read (``True``) or unread (``False``)."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent thread message (e.g. ``1700000000.000100``)."
    • Changedteam_access_logs6 fields changed
      • addedInput schema / properties / before / description
        Added value: +"Return logs from before this Unix timestamp (in seconds)."
      • addedInput schema / properties / count / description
        Added value: +"Number of items to return per page (legacy paging)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of items to return per page (cursor paging)."
      • addedInput schema / properties / page / description
        Added value: +"Page number of results to return (legacy paging)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to get logs for; required if the token belongs to an org-level app (e.g. ``T0123``)."
    • Changedteam_billable_info4 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of items to return per page."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to get billable info for; required for org-level app tokens (e.g. ``T0123``)."
      • addedInput schema / properties / user / description
        Added value: +"A single user to retrieve billable information for, rather than the whole team (e.g. ``U0123``)."
    • Changedteam_external_teams_disconnect1 field changed
      • addedInput schema / properties / target_team / description
        Added value: +"Encoded team ID of the external organization to disconnect (e.g. ``T0123``)."
    • Changedteam_external_teams_list7 fields changed
      • addedInput schema / properties / connection_status_filter / description
        Added value: +"Filter results by connection status (e.g. ``CONNECTED``, ``DISCONNECTED``)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of items to return per page."
      • addedInput schema / properties / slack_connect_pref_filter / description
        Added value: +"Filter results by Slack Connect preferences (e.g. ``[\"approved_orgs_only\"]``)."
      • addedInput schema / properties / sort_direction / description
        Added value: +"Direction to sort results, ``asc`` or ``desc``."
      • addedInput schema / properties / sort_field / description
        Added value: +"Field to sort results by (e.g. ``team_name``, ``last_active_timestamp``)."
      • addedInput schema / properties / workspace_filter / description
        Added value: +"Filter results to specific workspaces by encoded team ID (e.g. ``[\"T0123\"]``)."
    • Changedteam_info2 fields changed
      • addedInput schema / properties / domain / description
        Added value: +"Workspace domain to look up info by, in place of ``team`` (e.g. ``acme`` for ``acme.slack.com``)."
      • addedInput schema / properties / team / description
        Added value: +"Encoded team ID to fetch info for; defaults to the authed user's team (e.g. ``T0123``)."
    • Changedteam_integration_logs7 fields changed
      • addedInput schema / properties / app_id / description
        Added value: +"Filter logs to this app's events (e.g. ``A0123``)."
      • addedInput schema / properties / change_type / description
        Added value: +"Filter logs by change type (e.g. ``added``, ``removed``, ``enabled``, ``disabled``, ``updated``)."
      • addedInput schema / properties / count / description
        Added value: +"Number of items to return per page."
      • addedInput schema / properties / page / description
        Added value: +"Page number of results to return."
      • addedInput schema / properties / service_id / description
        Added value: +"Filter logs to this service's events."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to get logs for; required if the token belongs to an org-level app (e.g. ``T0123``)."
      • addedInput schema / properties / user / description
        Added value: +"Filter logs to events performed by this user (e.g. ``U0123``)."
    • Changedteam_profile_get1 field changed
      • addedInput schema / properties / visibility / description
        Added value: +"Filter profile fields by visibility; one of ``all``, ``visible``, or ``hidden``."
    • Changedthreads_get_view1 field changed
      • addedInput schema / properties / current_ts / description
        Added value: +"Timestamp anchoring the thread view to page from (e.g. ``1700000000.000100``)."
    • Changedtooling_tokens_rotate5 fields changed
      • removedInput schema / properties / client_id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / client_secret
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / grant_type
        Removed value: -{
        -  "default": "refresh_token",
        -  "type": "string"
        -}
      • addedInput schema / properties / refresh_token / description
        Added value: +"The ``xoxe`` refresh token issued alongside the old app configuration token."
      • changedInput schema / required
        Previous value: -[
        -  "refresh_token",
        -  "client_id",
        -  "client_secret"
        -]New value: +[
        +  "refresh_token"
        +]
    • Changedusergroups_create8 fields changed
      • addedInput schema / properties / additional_channels
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated additional default channel IDs to add beyond ``channels`` (e.g. ``C0789``)."
        +}
      • addedInput schema / properties / channels / description
        Added value: +"Comma-separated string of default channel IDs for the User Group (e.g. ``C0123,C0456``)."
      • addedInput schema / properties / description / description
        Added value: +"A short description of the User Group."
      • addedInput schema / properties / enable_section
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to enable a section for the User Group."
        +}
      • addedInput schema / properties / handle / description
        Added value: +"A mention handle (must be unique among channels, users, and User Groups)."
      • addedInput schema / properties / include_count / description
        Added value: +"Include the number of users in each User Group in the response."
      • addedInput schema / properties / name / description
        Added value: +"A name for the User Group (must be unique among User Groups)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)."
    • Changedusergroups_disable3 fields changed
      • addedInput schema / properties / include_count / description
        Added value: +"Include the number of users in the User Group in the response."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)."
      • addedInput schema / properties / usergroup / description
        Added value: +"The encoded ID of the User Group to disable (e.g. ``S0123``)."
    • Changedusergroups_enable3 fields changed
      • addedInput schema / properties / include_count / description
        Added value: +"Include the number of users in the User Group in the response."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)."
      • addedInput schema / properties / usergroup / description
        Added value: +"The encoded ID of the User Group to enable (e.g. ``S0123``)."
    • Changedusergroups_list4 fields changed
      • addedInput schema / properties / include_count / description
        Added value: +"Include the number of users in each User Group in the response."
      • addedInput schema / properties / include_disabled / description
        Added value: +"Include disabled User Groups in the response."
      • addedInput schema / properties / include_users / description
        Added value: +"Include the list of users for each User Group in the response."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)."
    • Changedusergroups_update9 fields changed
      • addedInput schema / properties / additional_channels
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated additional default channel IDs to add beyond ``channels`` (e.g. ``C0789``)."
        +}
      • addedInput schema / properties / channels / description
        Added value: +"Comma-separated string of default channel IDs for the User Group (e.g. ``C0123,C0456``)."
      • addedInput schema / properties / description / description
        Added value: +"A short description of the User Group."
      • addedInput schema / properties / enable_section
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to enable a section for the User Group."
        +}
      • addedInput schema / properties / handle / description
        Added value: +"A mention handle (must be unique among channels, users, and User Groups)."
      • addedInput schema / properties / include_count / description
        Added value: +"Include the number of users in the User Group in the response."
      • addedInput schema / properties / name / description
        Added value: +"A name for the User Group (must be unique among User Groups)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)."
      • addedInput schema / properties / usergroup / description
        Added value: +"The encoded ID of the User Group to update (e.g. ``S0123``)."
    • Changedusergroups_users_list3 fields changed
      • addedInput schema / properties / include_disabled / description
        Added value: +"Include disabled User Group users in the response."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)."
      • addedInput schema / properties / usergroup / description
        Added value: +"The encoded ID of the User Group to list users for (e.g. ``S0123``)."
    • Changedusergroups_users_update6 fields changed
      • addedInput schema / properties / additional_channels
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Comma-separated channel IDs the User Group can add members to (e.g. ``C0123,C0456``)."
        +}
      • addedInput schema / properties / include_count / description
        Added value: +"Include the number of users in the User Group in the response."
      • addedInput schema / properties / is_shared
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether the User Group is shared across an org/Enterprise Grid."
        +}
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)."
      • addedInput schema / properties / usergroup / description
        Added value: +"The encoded ID of the User Group to update (e.g. ``S0123``)."
      • addedInput schema / properties / users / description
        Added value: +"Comma-separated user IDs representing the entire list of users for the User Group (e.g. ``U0123,U0456``)."
    • Changedusers_admin_invite3 fields changed
      • addedInput schema / properties / channels / description
        Added value: +"Comma-separated list of channel IDs to add the invitee to (e.g. ``C0123,C0456``)."
      • addedInput schema / properties / email / description
        Added value: +"Email address of the person to invite."
      • addedInput schema / properties / real_name / description
        Added value: +"Full name to assign to the invited user."
    • Changedusers_admin_set_inactive1 field changed
      • addedInput schema / properties / user / description
        Added value: +"ID of the user to deactivate (e.g. ``U0123``)."
    • Changedusers_conversations6 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page."
      • addedInput schema / properties / exclude_archived / description
        Added value: +"Set to ``True`` to exclude archived channels from the list."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of items to return per page (1-1000, default 100)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to list conversations in, required for org-wide app tokens (e.g. ``T0123``)."
      • addedInput schema / properties / types / description
        Added value: +"Comma-separated conversation types to include: ``public_channel``, ``private_channel``, ``mpim``, ``im``."
      • addedInput schema / properties / user / description
        Added value: +"Browse conversations by a specific user ID rather than the calling user (e.g. ``U0123``)."
    • Changedusers_discoverable_contacts_lookup1 field changed
      • addedInput schema / properties / email / description
        Added value: +"The email address of the user to look up (e.g. ``user@example.com``)."
    • Changedusers_get_presence5 fields changed
      • addedInput schema / properties / user / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / user / default
        Added value: +null
      • addedInput schema / properties / user / description
        Added value: +"ID of the user to get presence info for; defaults to the authenticated user if omitted (e.g. ``U0123``)."
      • removedInput schema / properties / user / type
        Removed value: -"string"
      • removedInput schema / required
        Removed value: -[
        -  "user"
        -]
    • Changedusers_info3 fields changed
      • addedInput schema / properties / detailed / description
        Added value: +"Set to ``True`` to return the full, uncompacted Slack response."
      • addedInput schema / properties / include_locale / description
        Added value: +"Set to ``True`` to receive the locale for the user in the response."
      • addedInput schema / properties / user / description
        Added value: +"ID of the user to get info about (e.g. ``U0123``)."
    • Changedusers_list5 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page."
      • addedInput schema / properties / detailed / description
        Added value: +"Set to ``True`` to return the full, uncompacted Slack response."
      • addedInput schema / properties / include_locale / description
        Added value: +"Set to ``True`` to receive the locale for users in the response."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of users to return per page (0-1000, default 0 for no limit)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to list users in, required if the token belongs to an org-wide app (e.g. ``T0123``)."
    • Changedusers_lookup_by_email2 fields changed
      • addedInput schema / properties / detailed / description
        Added value: +"Set to ``True`` to return the full, uncompacted Slack response."
      • addedInput schema / properties / email / description
        Added value: +"An email address belonging to a user in the workspace (e.g. ``user@example.com``)."
    • Changedusers_prefs_set2 fields changed
      • addedInput schema / properties / name / description
        Added value: +"Name of the preference to set."
      • addedInput schema / properties / value / description
        Added value: +"Value to assign to the preference."
    • Changedusers_profile_get3 fields changed
      • addedInput schema / properties / detailed / description
        Added value: +"Set to ``True`` to return the full, uncompacted Slack response."
      • addedInput schema / properties / include_labels / description
        Added value: +"Set to ``True`` to include labels for each ID in custom profile fields."
      • addedInput schema / properties / user / description
        Added value: +"ID of user to retrieve profile info for; defaults to the authenticated user if omitted (e.g. ``U0123``)."
    • Changedusers_profile_set4 fields changed
      • addedInput schema / properties / name / description
        Added value: +"Name of a single profile field to set (e.g. ``first_name``); use with ``value``."
      • addedInput schema / properties / profile / description
        Added value: +"Map of profile fields to set, as key-value pairs (alternative to ``name``/``value``)."
      • addedInput schema / properties / user / description
        Added value: +"ID of user to change; requires admin scope, defaults to the authenticated user (e.g. ``U0123``)."
      • addedInput schema / properties / value / description
        Added value: +"Value to set on a single profile field named by ``name``."
    • Changedusers_set_photo6 fields changed
      • addedInput schema / properties / crop_w / description
        Added value: +"Width/height of the square crop box, in pixels (the crop is always square)."
      • addedInput schema / properties / crop_x / description
        Added value: +"X coordinate of the top-left corner of the crop box, in pixels."
      • addedInput schema / properties / crop_y / description
        Added value: +"Y coordinate of the top-left corner of the crop box, in pixels."
      • removedInput schema / properties / image
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / image_base64
        Added value: +{
        +  "description": "The image to set, as a base64-encoded string of the raw image bytes.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "image"
        -]New value: +[
        +  "image_base64"
        +]
    • Changedusers_set_presence1 field changed
      • addedInput schema / properties / presence / description
        Added value: +"Presence to set, either ``auto`` or ``away``."
    • Changedviews_open2 fields changed
      • addedInput schema / properties / trigger_id / description
        Added value: +"Exchange a trigger to post to the user (e.g. ``12345.98765.abcd2358fdea``)."
      • addedInput schema / properties / view / description
        Added value: +"A view payload object (of type ``modal``)."
    • Changedviews_publish3 fields changed
      • addedInput schema / properties / hash / description
        Added value: +"A string representing view state, used to protect against race conditions when updating an existing view."
      • addedInput schema / properties / user_id / description
        Added value: +"ID of the user you want to publish a view to (e.g. ``U0123``)."
      • addedInput schema / properties / view / description
        Added value: +"A view payload object (of type ``home``)."
    • Changedviews_push2 fields changed
      • addedInput schema / properties / trigger_id / description
        Added value: +"Exchange a trigger to post to the user (e.g. ``12345.98765.abcd2358fdea``)."
      • addedInput schema / properties / view / description
        Added value: +"A view payload object (of type ``modal``) to push onto the existing view stack."
    • Changedviews_update4 fields changed
      • addedInput schema / properties / external_id / description
        Added value: +"A unique identifier set by the developer when opening the view, identifying which view to update."
      • addedInput schema / properties / hash / description
        Added value: +"A string that represents view state to protect against possible race conditions when updating the view."
      • addedInput schema / properties / view / description
        Added value: +"A view payload object (of type ``modal``) with the updated contents."
      • addedInput schema / properties / view_id / description
        Added value: +"A unique identifier of the view to be updated, returned when the view was opened (e.g. ``VMHU10V25``)."
    • Changedworkflows_featured_add4 fields changed
      • addedInput schema / properties / channel_id
        Added value: +{
        +  "description": "ID of the channel to feature the workflows in (e.g. ``C0123``).",
        +  "type": "string"
        +}
      • addedInput schema / properties / trigger_ids
        Added value: +{
        +  "description": "Workflow trigger IDs to feature, max 15 (e.g. ``[\"Ft0123\", \"Ft0456\"]``).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / workflow_ids
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "workflow_ids"
        -]New value: +[
        +  "channel_id",
        +  "trigger_ids"
        +]
    • Changedworkflows_featured_remove4 fields changed
      • addedInput schema / properties / channel_id
        Added value: +{
        +  "description": "ID of the channel to remove the featured workflows from (e.g. ``C0123``).",
        +  "type": "string"
        +}
      • addedInput schema / properties / trigger_ids
        Added value: +{
        +  "description": "Workflow trigger IDs to remove, max 15 (e.g. ``[\"Ft0123\"]``).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / workflow_ids
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "workflow_ids"
        -]New value: +[
        +  "channel_id",
        +  "trigger_ids"
        +]
    • Changedworkflows_featured_set4 fields changed
      • addedInput schema / properties / channel_id
        Added value: +{
        +  "description": "ID of the channel to set featured workflows in (e.g. ``C0123``).",
        +  "type": "string"
        +}
      • addedInput schema / properties / trigger_ids
        Added value: +{
        +  "description": "Workflow trigger IDs that replace the channel's featured set, max 15;\nan empty list clears all featured workflows (e.g. ``[\"Ft0123\"]``).",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / workflow_ids
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "workflow_ids"
        -]New value: +[
        +  "channel_id",
        +  "trigger_ids"
        +]
    • Changedworkflows_step_completed2 fields changed
      • addedInput schema / properties / outputs / description
        Added value: +"Key-value object mapping output names from the step's configuration to their values."
      • addedInput schema / properties / workflow_step_execute_id / description
        Added value: +"Context identifier for the step execution, from the ``workflow_step_execute`` event."
    • Changedworkflows_step_failed2 fields changed
      • addedInput schema / properties / error / description
        Added value: +"A JSON-based object with a ``message`` property that should contain a human-readable error message."
      • addedInput schema / properties / workflow_step_execute_id / description
        Added value: +"Context identifier for the step execution, from the ``workflow_step_execute`` event."
    • Changedworkflows_update_step5 fields changed
      • addedInput schema / properties / inputs / description
        Added value: +"Key-value map of inputs from the user's step configuration; each value has a ``value`` property."
      • addedInput schema / properties / outputs / description
        Added value: +"A list of output objects (each with ``name``, ``type``, and ``label``) used during step execution."
      • addedInput schema / properties / step_image_url / description
        Added value: +"Optional override for the image shown to users in the Workflow Builder for this step."
      • addedInput schema / properties / step_name / description
        Added value: +"Optional override for the name shown to users in the Workflow Builder for this step."
      • addedInput schema / properties / workflow_step_edit_id / description
        Added value: +"A context identifier from the ``view_submission`` payload, mapping to editing a step."
  2. 10 tool updatesv2.2.0
    • Changedcanvases_create1 field changed
      • changedInput schema / properties / document_content / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedcanvases_edit1 field changed
      • changedInput schema / properties / changes / items / additionalProperties
        Previous value: -{
        -  "type": "string"
        -}New value: +true
    • Changedcanvases_sections_lookup1 field changed
      • changedInput schema / properties / criteria / additionalProperties
        Previous value: -{
        -  "type": "string"
        -}New value: +true
    • Changedviews_open1 field changed
      • changedInput schema / properties / view / additionalProperties
        Previous value: -{
        -  "type": "string"
        -}New value: +true
    • Changedviews_publish1 field changed
      • changedInput schema / properties / view / additionalProperties
        Previous value: -{
        -  "type": "string"
        -}New value: +true
    • Changedviews_push1 field changed
      • changedInput schema / properties / view / additionalProperties
        Previous value: -{
        -  "type": "string"
        -}New value: +true
    • Changedviews_update1 field changed
      • changedInput schema / properties / view / additionalProperties
        Previous value: -{
        -  "type": "string"
        -}New value: +true
    • Changedworkflows_step_completed1 field changed
      • changedInput schema / properties / outputs / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedworkflows_step_failed1 field changed
      • changedInput schema / properties / error / additionalProperties
        Previous value: -{
        -  "type": "string"
        -}New value: +true
    • Changedworkflows_update_step2 fields changed
      • changedInput schema / properties / inputs / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {
        -      "type": "string"
        -    },
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / outputs / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "additionalProperties": {
        -        "type": "string"
        -      },
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  3. 50 tool updatesv2.1.0
    • Changedbookmarks_add1 field changed
      • addedInput schema / properties / title
        Added value: +{
        +  "type": "string"
        +}
    • Changedchat_append_stream3 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel containing the stream (e.g. ``C0123``)."
      • addedInput schema / properties / text / description
        Added value: +"Text chunk to append to the streaming message."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent thread that owns the stream (e.g. ``1700000000.000100``)."
    • Changedchat_delete3 fields changed
      • addedInput schema / properties / as_user / description
        Added value: +"Delete as the authenticated user rather than as the bot (legacy; ignored for workspace apps)."
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel containing the message to delete (e.g. ``C0123``)."
      • addedInput schema / properties / ts / description
        Added value: +"Timestamp of the message to delete (e.g. ``1700000000.000100``)."
    • Changedchat_delete_scheduled_message3 fields changed
      • addedInput schema / properties / as_user / description
        Added value: +"Delete as the authenticated user rather than as the bot (legacy; ignored for workspace apps)."
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel the scheduled message targets (e.g. ``C0123``)."
      • addedInput schema / properties / scheduled_message_id / description
        Added value: +"ID of the scheduled message to delete (from ``chat.scheduleMessage`` or the list tool)."
    • Changedchat_get_permalink2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel containing the message (e.g. ``C0123``)."
      • addedInput schema / properties / message_ts / description
        Added value: +"Timestamp of the message to link to (e.g. ``1700000000.000100``)."
    • Changedchat_me_message2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to post the /me message in (e.g. ``C0123``)."
      • addedInput schema / properties / text / description
        Added value: +"Message text displayed as an action (e.g. \"waves hello\")."
    • Changedchat_post_ephemeral7 fields changed
      • addedInput schema / properties / as_user / description
        Added value: +"Post as the authenticated user rather than as the bot (legacy; ignored for workspace apps)."
      • addedInput schema / properties / attachments / description
        Added value: +"Legacy attachment array. Prefer ``blocks`` for new messages."
      • addedInput schema / properties / blocks / description
        Added value: +"Block Kit block array defining the message layout."
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to post the ephemeral message in (e.g. ``C0123``)."
      • addedInput schema / properties / text / description
        Added value: +"Message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Parent message timestamp to post the ephemeral reply inside a thread (e.g. ``1700000000.000100``)."
      • addedInput schema / properties / user / description
        Added value: +"ID of the user who will see the ephemeral message (e.g. ``U0123``)."
    • Changedchat_post_message16 fields changed
      • addedInput schema / properties / as_user / description
        Added value: +"Post as the authenticated user rather than as the bot (legacy; ignored for workspace apps)."
      • addedInput schema / properties / attachments / description
        Added value: +"Legacy attachment array. Prefer ``blocks`` for new messages."
      • addedInput schema / properties / blocks / description
        Added value: +"Block Kit block array defining the message layout."
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to post to (e.g. ``C0123``), or a DM ID (``D0123``) or user ID for a DM."
      • addedInput schema / properties / icon_emoji / description
        Added value: +"Emoji to use as the bot icon, overrides the app default (e.g. ``:robot_face:``); needs ``username``."
      • addedInput schema / properties / icon_url / description
        Added value: +"URL of an image to use as the bot's icon. Requires ``username``."
      • addedInput schema / properties / link_names / description
        Added value: +"Find and link channel names and usernames in ``text`` (e.g. ``#general`` → hyperlink)."
      • addedInput schema / properties / metadata / description
        Added value: +"Structured metadata object attached to the message (``event_type`` + ``event_payload``)."
      • addedInput schema / properties / mrkdwn / description
        Added value: +"Render Slack mrkdwn formatting in ``text`` (default True)."
      • addedInput schema / properties / parse / description
        Added value: +"How to handle message text: ``full`` (linkify everything) or ``none`` (pass text as-is)."
      • addedInput schema / properties / reply_broadcast / description
        Added value: +"Also post the threaded reply to the channel when ``thread_ts`` is set."
      • addedInput schema / properties / text / description
        Added value: +"Message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent message to reply to, forming a thread (e.g. ``1700000000.000100``)."
      • addedInput schema / properties / unfurl_links / description
        Added value: +"Automatically unfurl URL links in the message."
      • addedInput schema / properties / unfurl_media / description
        Added value: +"Automatically unfurl media URLs (images, video) in the message."
      • addedInput schema / properties / username / description
        Added value: +"Override the bot's display name for this message."
    • Changedchat_schedule_message11 fields changed
      • addedInput schema / properties / as_user / description
        Added value: +"Schedule as the authenticated user rather than as the bot (legacy; ignored for workspace apps)."
      • addedInput schema / properties / attachments / description
        Added value: +"Legacy attachment array. Prefer ``blocks`` for new messages."
      • addedInput schema / properties / blocks / description
        Added value: +"Block Kit block array defining the message layout."
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to send the scheduled message to (e.g. ``C0123``)."
      • addedInput schema / properties / metadata / description
        Added value: +"Structured metadata object attached to the message (``event_type`` + ``event_payload``)."
      • addedInput schema / properties / post_at / description
        Added value: +"Unix epoch timestamp (seconds) at which to deliver the message (e.g. ``1700010000``)."
      • addedInput schema / properties / reply_broadcast / description
        Added value: +"Also post the threaded reply to the channel when ``thread_ts`` is set."
      • addedInput schema / properties / text / description
        Added value: +"Message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent message to schedule a thread reply to (e.g. ``1700000000.000100``)."
      • addedInput schema / properties / unfurl_links / description
        Added value: +"Automatically unfurl URL links when the message is delivered."
      • addedInput schema / properties / unfurl_media / description
        Added value: +"Automatically unfurl media URLs (images, video) when the message is delivered."
    • Changedchat_scheduled_messages_list6 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"Filter to scheduled messages for this channel ID (e.g. ``C0123``). Omit to list across all channels."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / latest / description
        Added value: +"Only include messages scheduled at or before this Unix epoch timestamp."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of scheduled messages to return per page (default 100)."
      • addedInput schema / properties / oldest / description
        Added value: +"Only include messages scheduled at or after this Unix epoch timestamp."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to scope the list to (for org-wide tokens)."
    • Changedchat_start_stream2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to start the stream in (e.g. ``C0123``)."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent thread to attach the stream to (e.g. ``1700000000.000100``)."
    • Changedchat_stop_stream2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel containing the stream (e.g. ``C0123``)."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent thread whose stream should be stopped (e.g. ``1700000000.000100``)."
    • Changedchat_stream3 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel containing the stream (e.g. ``C0123``)."
      • addedInput schema / properties / text / description
        Added value: +"Text chunk to stream into the message."
      • addedInput schema / properties / thread_ts / description
        Added value: +"Timestamp of the parent thread to stream text into (e.g. ``1700000000.000100``)."
    • Changedchat_unfurl7 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel containing the message with URLs to unfurl (e.g. ``C0123``)."
      • addedInput schema / properties / ts / description
        Added value: +"Timestamp of the message containing the URLs (e.g. ``1700000000.000100``)."
      • addedInput schema / properties / unfurls / description
        Added value: +"Map of URLs to their unfurl attachment or Block Kit objects (e.g. ``{\"https://example.com\": {...}}``)."
      • addedInput schema / properties / user_auth_blocks / description
        Added value: +"Block Kit blocks shown to the user in an auth prompt when ``user_auth_required`` is True."
      • addedInput schema / properties / user_auth_message / description
        Added value: +"Plain-text message shown to the user in an auth prompt when ``user_auth_required`` is True."
      • addedInput schema / properties / user_auth_required / description
        Added value: +"Prompt the user to authenticate before unfurling the URL."
      • addedInput schema / properties / user_auth_url / description
        Added value: +"URL to redirect the user to for authentication when ``user_auth_required`` is True."
    • Changedchat_update10 fields changed
      • addedInput schema / properties / as_user / description
        Added value: +"Update as the authenticated user rather than as the bot (legacy; ignored for workspace apps)."
      • addedInput schema / properties / attachments / description
        Added value: +"Updated legacy attachment array. Prefer ``blocks`` for new messages."
      • addedInput schema / properties / blocks / description
        Added value: +"Updated Block Kit block array replacing the existing layout."
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel containing the message to update (e.g. ``C0123``)."
      • addedInput schema / properties / link_names / description
        Added value: +"Find and link channel names and usernames in the updated ``text``."
      • addedInput schema / properties / metadata / description
        Added value: +"Updated structured metadata object (``event_type`` + ``event_payload``)."
      • addedInput schema / properties / parse / description
        Added value: +"How to handle message text: ``full`` (linkify everything) or ``none`` (pass text as-is)."
      • addedInput schema / properties / reply_broadcast / description
        Added value: +"Broadcast the updated threaded reply to the channel."
      • addedInput schema / properties / text / description
        Added value: +"New message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn."
      • addedInput schema / properties / ts / description
        Added value: +"Timestamp of the message to update (e.g. ``1700000000.000100``)."
    • Changedconversations_accept_shared_invite6 fields changed
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel the invite is for, if already known."
      • addedInput schema / properties / channel_name / description
        Added value: +"Name for the channel once accepted."
      • addedInput schema / properties / free_trial_accepted / description
        Added value: +"Accept a paid-feature free trial as part of accepting the invite."
      • addedInput schema / properties / invite_id / description
        Added value: +"ID of the invite to accept. Required unless ``channel_id`` is given."
      • addedInput schema / properties / is_private / description
        Added value: +"Create the accepted channel as private."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID accepting the invite (for org-wide tokens)."
    • Changedconversations_approve_shared_invite2 fields changed
      • addedInput schema / properties / invite_id / description
        Added value: +"ID of the shared-channel invite to approve."
      • addedInput schema / properties / target_team / description
        Added value: +"Encoded team ID the invite is directed to (for org-wide approvals)."
    • Changedconversations_archive1 field changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the conversation to archive (e.g. C0123)."
    • Changedconversations_canvases_create2 fields changed
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel the canvas belongs to (e.g. C0123)."
      • addedInput schema / properties / document_content / description
        Added value: +"Canvas body as a structured document object (e.g. a markdown document)."
    • Changedconversations_close1 field changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the DM or multi-party DM to close (e.g. D0123)."
    • Changedconversations_create3 fields changed
      • addedInput schema / properties / is_private / description
        Added value: +"Create a private channel instead of a public one."
      • addedInput schema / properties / name / description
        Added value: +"Channel name (lowercase, no spaces or periods, max 80 chars)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to create the channel in (for org-wide tokens)."
    • Changedconversations_decline_shared_invite2 fields changed
      • addedInput schema / properties / invite_id / description
        Added value: +"ID of the shared-channel invite to decline."
      • addedInput schema / properties / target_team / description
        Added value: +"Encoded team ID the invite is directed to (for org-wide tokens)."
    • Changedconversations_external_invite_permissions_set2 fields changed
      • addedInput schema / properties / action / description
        Added value: +"Permission to apply — ``upgrade`` to allow external write access or ``downgrade`` to restrict it."
      • addedInput schema / properties / channel / description
        Added value: +"ID of the Slack Connect channel (e.g. C0123)."
    • Changedconversations_history8 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the conversation to read (e.g. C0123)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full, uncompacted Slack response when True."
      • addedInput schema / properties / include_all_metadata / description
        Added value: +"Include all message metadata in the response."
      • addedInput schema / properties / inclusive / description
        Added value: +"Include messages with ``latest`` or ``oldest`` timestamps in the results."
      • addedInput schema / properties / latest / description
        Added value: +"Only include messages at or before this timestamp (e.g. 1700000000.000100). Defaults to now."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of messages to return per page (default 100)."
      • addedInput schema / properties / oldest / description
        Added value: +"Only include messages at or after this timestamp."
    • Changedconversations_info3 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the conversation to look up (e.g. C0123)."
      • addedInput schema / properties / include_locale / description
        Added value: +"Include the channel's locale in the response."
      • addedInput schema / properties / include_num_members / description
        Added value: +"Include the channel's member count in the response."
    • Changedconversations_invite3 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to invite users into (e.g. C0123)."
      • addedInput schema / properties / force / description
        Added value: +"Continue inviting valid users even if some IDs fail, rather than failing the whole call."
      • addedInput schema / properties / users / description
        Added value: +"Comma-separated list of user IDs to invite (e.g. ``U0123,U0456``), up to 1000."
    • Changedconversations_invite_shared4 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to share (e.g. C0123)."
      • addedInput schema / properties / emails / description
        Added value: +"Email addresses to invite. Provide ``emails`` or ``user_ids``."
      • addedInput schema / properties / external_limited / description
        Added value: +"Invite the external party as a limited (single-channel) guest."
      • addedInput schema / properties / user_ids / description
        Added value: +"User IDs to invite. Provide ``emails`` or ``user_ids``."
    • Changedconversations_join1 field changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to join (e.g. C0123)."
    • Changedconversations_kick2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to remove the user from (e.g. C0123)."
      • addedInput schema / properties / user / description
        Added value: +"ID of the user to remove (e.g. U0123)."
    • Changedconversations_leave1 field changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the conversation to leave (e.g. C0123)."
    • Changedconversations_list6 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full, uncompacted Slack response when True."
      • addedInput schema / properties / exclude_archived / description
        Added value: +"Omit archived channels from the results."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of channels to return per page (default 100)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to list channels for (for org-wide tokens)."
      • addedInput schema / properties / types / description
        Added value: +"Comma-separated conversation types to include, e.g. ``public_channel,private_channel,mpim,im``."
    • Changedconversations_list_connect_invites3 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Maximum number of invites to return (default 100)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from ``response_metadata.next_cursor`` in a prior response."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to list invites for (for org-wide tokens)."
    • Changedconversations_mark2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to mark (e.g. C0123)."
      • addedInput schema / properties / ts / description
        Added value: +"Timestamp of the most recently seen message (e.g. 1700000000.000100); everything up to it is marked read."
    • Changedconversations_members3 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the conversation to list members for (e.g. C0123)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of member IDs to return per page (default 100)."
    • Changedconversations_open4 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of an existing DM/MPIM to resume. Provide ``channel`` or ``users``."
      • addedInput schema / properties / prevent_creation / description
        Added value: +"For 1:1 DMs, don't create a new conversation if one doesn't already exist."
      • addedInput schema / properties / return_im / description
        Added value: +"Return the full IM/MPIM channel object rather than just its ID."
      • addedInput schema / properties / users / description
        Added value: +"Comma-separated user IDs to open a DM/MPIM with (e.g. ``U0123,U0456``)."
    • Changedconversations_rename2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the channel to rename (e.g. C0123)."
      • addedInput schema / properties / name / description
        Added value: +"New channel name (lowercase, no spaces or periods, max 80 chars)."
    • Changedconversations_replies9 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the conversation containing the thread (e.g. C0123)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full, uncompacted Slack response when True."
      • addedInput schema / properties / include_all_metadata / description
        Added value: +"Include all message metadata in the response."
      • addedInput schema / properties / inclusive / description
        Added value: +"Include messages with ``latest`` or ``oldest`` timestamps in the results."
      • addedInput schema / properties / latest / description
        Added value: +"Only include messages at or before this timestamp. Defaults to now."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of messages to return per page (default 100)."
      • addedInput schema / properties / oldest / description
        Added value: +"Only include messages at or after this timestamp."
      • addedInput schema / properties / ts / description
        Added value: +"Timestamp of the thread's parent message (e.g. 1700000000.000100)."
    • Changedconversations_request_shared_invite_approve4 fields changed
      • addedInput schema / properties / channel_id / description
        Added value: +"ID of the channel the request is for, if disambiguation is needed."
      • addedInput schema / properties / invite_id / description
        Added value: +"ID of the shared-invite request to approve."
      • addedInput schema / properties / is_approved / description
        Added value: +"Whether the request is approved. Set False to record a rejection."
      • addedInput schema / properties / message / description
        Added value: +"Optional message object to attach to the approval."
    • Changedconversations_request_shared_invite_deny2 fields changed
      • addedInput schema / properties / invite_id / description
        Added value: +"ID of the shared-invite request to deny."
      • addedInput schema / properties / message / description
        Added value: +"Optional message object explaining the denial."
    • Changedconversations_request_shared_invite_list7 fields changed
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from ``response_metadata.next_cursor`` in a prior response."
      • addedInput schema / properties / include_approved / description
        Added value: +"Include already-approved requests in the results."
      • addedInput schema / properties / include_denied / description
        Added value: +"Include denied requests in the results."
      • addedInput schema / properties / include_expired / description
        Added value: +"Include expired requests in the results."
      • addedInput schema / properties / invite_ids / description
        Added value: +"Restrict results to these specific invite request IDs."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of requests to return per page."
      • addedInput schema / properties / user_id / description
        Added value: +"Only return requests made by this user ID."
    • Changedconversations_set_purpose2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the conversation to update (e.g. C0123)."
      • addedInput schema / properties / purpose / description
        Added value: +"New purpose text (max 250 chars)."
    • Changedconversations_set_topic2 fields changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the conversation to update (e.g. C0123)."
      • addedInput schema / properties / topic / description
        Added value: +"New topic text (max 250 chars)."
    • Changedconversations_unarchive1 field changed
      • addedInput schema / properties / channel / description
        Added value: +"ID of the archived conversation to restore (e.g. C0123)."
    • Changedsearch_all8 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Results per page (default 20, max 100)."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full, uncompacted Slack response when True."
      • addedInput schema / properties / highlight / description
        Added value: +"Wrap matched terms in highlight markers in the response."
      • addedInput schema / properties / page / description
        Added value: +"1-based page number to return."
      • addedInput schema / properties / query / description
        Added value: +"Search text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``before:2024-01-31``."
      • addedInput schema / properties / sort / description
        Added value: +"Sort by ``score`` (relevance, default) or ``timestamp`` (recency)."
      • addedInput schema / properties / sort_dir / description
        Added value: +"Sort direction, ``asc`` or ``desc`` (default ``desc``)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to scope the search to (for org-wide tokens)."
    • Changedsearch_files8 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Results per page (default 20, max 100)."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full, uncompacted Slack response when True."
      • addedInput schema / properties / highlight / description
        Added value: +"Wrap matched terms in highlight markers in the response."
      • addedInput schema / properties / page / description
        Added value: +"1-based page number to return."
      • addedInput schema / properties / query / description
        Added value: +"Search text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``type:`` filters."
      • addedInput schema / properties / sort / description
        Added value: +"Sort by ``score`` (relevance, default) or ``timestamp`` (recency)."
      • addedInput schema / properties / sort_dir / description
        Added value: +"Sort direction, ``asc`` or ``desc`` (default ``desc``)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to scope the search to (for org-wide tokens)."
    • Changedsearch_messages9 fields changed
      • addedInput schema / properties / count / description
        Added value: +"Results per page (default 20, max 100)."
      • addedInput schema / properties / cursor / description
        Added value: +"Pagination cursor from ``response_metadata.next_cursor`` in a prior response (alternative to ``page``)."
      • addedInput schema / properties / detailed / description
        Added value: +"Return the full, uncompacted Slack response when True."
      • addedInput schema / properties / highlight / description
        Added value: +"Wrap matched terms in highlight markers in the response."
      • addedInput schema / properties / page / description
        Added value: +"1-based page number to return."
      • addedInput schema / properties / query / description
        Added value: +"Search text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``before:2024-01-31``."
      • addedInput schema / properties / sort / description
        Added value: +"Sort by ``score`` (relevance, default) or ``timestamp`` (recency)."
      • addedInput schema / properties / sort_dir / description
        Added value: +"Sort direction, ``asc`` or ``desc`` (default ``desc``)."
      • addedInput schema / properties / team_id / description
        Added value: +"Encoded team ID to scope the search to (for org-wide tokens)."
    • Changedusers_info1 field changed
      • addedInput schema / properties / detailed
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
    • Changedusers_list1 field changed
      • addedInput schema / properties / detailed
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
    • Changedusers_lookup_by_email1 field changed
      • addedInput schema / properties / detailed
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
    • Changedusers_profile_get1 field changed
      • addedInput schema / properties / detailed
        Added value: +{
        +  "default": false,
        +  "type": "boolean"
        +}
  4. 219 tool updatesv2.0.0
    • First observedai_apps_list
    • First observedapi_features
    • First observedapi_test
    • First observedapps_connections_open
    • First observedapps_event_authorizations_list
    • First observedapps_manifest_create
    • First observedapps_manifest_delete
    • First observedapps_manifest_export
    • First observedapps_manifest_update
    • First observedapps_manifest_validate
    • First observedapps_uninstall
    • First observedassistant_threads_set_status
    • First observedassistant_threads_set_suggested_prompts
    • First observedassistant_threads_set_title
    • First observedauth_revoke
    • First observedauth_teams_list
    • First observedauth_test
    • First observedbookmarks_add
    • First observedbookmarks_edit
    • First observedbookmarks_list
    • First observedbookmarks_remove
    • First observedbots_info
    • First observedbots_list
    • First observedcache_clear
    • First observedcalls_add
    • First observedcalls_end
    • First observedcalls_info
    • First observedcalls_participants_add
    • First observedcalls_participants_remove
    • First observedcalls_update
    • First observedcanvases_access_delete
    • First observedcanvases_access_set
    • First observedcanvases_create
    • First observedcanvases_delete
    • First observedcanvases_edit
    • First observedcanvases_sections_lookup
    • First observedchannels_delete
    • First observedchat_append_stream
    • First observedchat_command
    • First observedchat_delete
    • First observedchat_delete_scheduled_message
    • First observedchat_get_permalink
    • First observedchat_me_message
    • First observedchat_post_ephemeral
    • First observedchat_post_message
    • First observedchat_schedule_message
    • First observedchat_scheduled_messages_list
    • First observedchat_start_stream
    • First observedchat_stop_stream
    • First observedchat_stream
    • First observedchat_unfurl
    • First observedchat_update
    • First observedclient_boot
    • First observedclient_counts
    • First observedclient_user_boot
    • First observedcommands_list
    • First observedconversations_accept_shared_invite
    • First observedconversations_approve_shared_invite
    • First observedconversations_archive
    • First observedconversations_canvases_create
    • First observedconversations_close
    • First observedconversations_create
    • First observedconversations_decline_shared_invite
    • First observedconversations_external_invite_permissions_set
    • First observedconversations_history
    • First observedconversations_info
    • First observedconversations_invite
    • First observedconversations_invite_shared
    • First observedconversations_join
    • First observedconversations_kick
    • First observedconversations_leave
    • First observedconversations_list
    • First observedconversations_list_connect_invites
    • First observedconversations_list_prefs
    • First observedconversations_mark
    • First observedconversations_members
    • First observedconversations_open
    • First observedconversations_rename
    • First observedconversations_replies
    • First observedconversations_request_shared_invite_approve
    • First observedconversations_request_shared_invite_deny
    • First observedconversations_request_shared_invite_list
    • First observedconversations_set_purpose
    • First observedconversations_set_topic
    • First observedconversations_unarchive
    • First observedconversations_view
    • First observeddialog_open
    • First observeddnd_end_dnd
    • First observeddnd_end_snooze
    • First observeddnd_info
    • First observeddnd_set_snooze
    • First observeddnd_team_info
    • First observeddrafts_create
    • First observeddrafts_delete
    • First observeddrafts_list
    • First observeddrafts_update
    • First observedemoji_add
    • First observedemoji_admin_list
    • First observedemoji_list
    • First observedemoji_remove
    • First observedentity_present_details
    • First observedexperiments_get_by_user
    • First observedfiles_comments_delete
    • First observedfiles_complete_upload_external
    • First observedfiles_delete
    • First observedfiles_edit
    • First observedfiles_get_upload_url_external
    • First observedfiles_info
    • First observedfiles_list
    • First observedfiles_remote_add
    • First observedfiles_remote_info
    • First observedfiles_remote_list
    • First observedfiles_remote_remove
    • First observedfiles_remote_share
    • First observedfiles_remote_update
    • First observedfiles_revoke_public_url
    • First observedfiles_share_legacy
    • First observedfiles_shared_public_url
    • First observedfiles_upload
    • First observedfiles_upload_v2
    • First observedfunctions_complete_error
    • First observedfunctions_complete_success
    • First observedmigration_exchange
    • First observedoauth_access
    • First observedoauth_v2_access
    • First observedoauth_v2_exchange
    • First observedopenid_connect_token
    • First observedopenid_connect_user_info
    • First observedpins_add
    • First observedpins_list
    • First observedpins_remove
    • First observedreactions_add
    • First observedreactions_get
    • First observedreactions_list
    • First observedreactions_remove
    • First observedreminders_add
    • First observedreminders_complete
    • First observedreminders_delete
    • First observedreminders_info
    • First observedreminders_list
    • First observedresolve_names
    • First observedrtm_connect
    • First observedrtm_start
    • First observedsaved_add
    • First observedsaved_delete
    • First observedsaved_list
    • First observedsearch_all
    • First observedsearch_files
    • First observedsearch_messages
    • First observedsearch_modules_channels
    • First observedsearch_modules_dms
    • First observedsearch_modules_files
    • First observedsearch_modules_messages
    • First observedsearch_modules_people
    • First observedsession_test
    • First observedslack_lists_access_delete
    • First observedslack_lists_access_set
    • First observedslack_lists_create
    • First observedslack_lists_download_get
    • First observedslack_lists_download_start
    • First observedslack_lists_items_create
    • First observedslack_lists_items_delete
    • First observedslack_lists_items_delete_multiple
    • First observedslack_lists_items_info
    • First observedslack_lists_items_list
    • First observedslack_lists_items_update
    • First observedslack_lists_update
    • First observedstars_add
    • First observedstars_list
    • First observedstars_remove
    • First observedsubscriptions_thread_mark
    • First observedteam_access_logs
    • First observedteam_billable_info
    • First observedteam_billing_info
    • First observedteam_external_teams_disconnect
    • First observedteam_external_teams_list
    • First observedteam_info
    • First observedteam_integration_logs
    • First observedteam_preferences_list
    • First observedteam_prefs_get
    • First observedteam_profile_get
    • First observedthreads_get_view
    • First observedtooling_tokens_rotate
    • First observedusergroups_create
    • First observedusergroups_disable
    • First observedusergroups_enable
    • First observedusergroups_list
    • First observedusergroups_update
    • First observedusergroups_users_list
    • First observedusergroups_users_update
    • First observedusers_admin_invite
    • First observedusers_admin_set_inactive
    • First observedusers_channel_sections_list
    • First observedusers_conversations
    • First observedusers_delete_photo
    • First observedusers_discoverable_contacts_lookup
    • First observedusers_get_presence
    • First observedusers_identity
    • First observedusers_info
    • First observedusers_list
    • First observedusers_lookup_by_email
    • First observedusers_prefs_get
    • First observedusers_prefs_set
    • First observedusers_priority_list
    • First observedusers_profile_get
    • First observedusers_profile_set
    • First observedusers_set_photo
    • First observedusers_set_presence
    • First observedviews_open
    • First observedviews_publish
    • First observedviews_push
    • First observedviews_update
    • First observedworkflows_featured_add
    • First observedworkflows_featured_list
    • First observedworkflows_featured_remove
    • First observedworkflows_featured_set
    • First observedworkflows_step_completed
    • First observedworkflows_step_failed
    • First observedworkflows_update_step

TDQS

C2.6/5.0

Scored across 224 tools

Disambiguation2/5

Many tools have overlapping purposes, especially the legacy/undocumented endpoints that duplicate official ones (e.g., multiple search tools, multiple file upload variants). The sheer number of tools makes it difficult for an agent to select the correct one.

Naming Consistency4/5

Tool names follow a consistent snake_case verb_noun pattern (e.g., conversations_list, files_upload). Minor deviations exist, such as 'slack_lists_*' prefix and 'v2' suffixes, but overall the naming is predictable.

Tool Count1/5

224 tools is excessively high for a single MCP server. While Slack has a large API, many tools are undocumented session endpoints or legacy methods, leading to bloat. The set would benefit from trimming to essential, well-documented tools.

Completeness4/5

The server covers a wide range of Slack functionalities (channels, messages, files, users, search, workflows, apps). Minor gaps exist (e.g., no enterprise grid or modern admin user management), but overall it is very comprehensive.

Maintenance

ActivityStale
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • 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
    6 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.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Slack through 20 specialized tools and resources for managing channels, messages, users, and files. It features built-in rate limit handling, safety controls for message sending, and full support for Slack Block Kit formatting.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to interact with Slack workspaces, including listing channels, posting messages, replying to threads, adding reactions, and retrieving user information.
    10
    14 npm
    MIT