slack-mcp
Provides full access to Slack workspace, including messages, channels, files, canvases, lists, search, reactions, and more via 220 tools across 36 API families.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@slack-mcpshow me unread messages in #general"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Slack MCP
Your entire Slack workspace — available to any AI.
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
Go to api.slack.com/apps > Create New App > From a manifest
Paste the contents of
manifest.jsonInstall to your workspace
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-mcpThen 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 |
| Full workspace bootstrap — channels, users, prefs, feature flags |
| Unread counts per channel/DM/thread plus mention counts |
| User-specific bootstrap data scoped to the authenticated user |
| Thread inbox — the list of threads with read/unread state |
| My threads with unread reply counts — "catch me up on my threads" |
| Mark individual threads as read or unread |
| Open DMs and group DMs ( |
| Activity inbox — mentions, reactions, replies, reminders, invites |
| List all unsent message drafts |
| Create a message draft with Block Kit text |
| Edit an existing draft |
| Delete a draft |
| List saved-for-later items |
| Fetch specific saved-for-later items by id |
| Save a message for later with optional due date |
| Remove a saved-for-later item |
| Slack List tasks and approvals assigned to me |
| Add a custom emoji from a URL |
| Remove a custom emoji |
| Emoji with rich metadata — uploader, date, usage stats |
| Granular message search |
| File-specific search |
| Server-side channel search by name or topic |
| Fuzzy people search by name, title, department |
| Search within DMs only |
| Channel view with read state and personal config |
| Per-channel notification and mute preferences |
| Sidebar organization — custom sections, favorites |
| Contacts ranked by interaction frequency |
| A/B test experiment assignments |
| Workspace feature flags |
| AI applications configured in the workspace |
| AI summary of unread messages — "summarize what I missed" |
| Slack's AI recaps/digests of activity across channels |
| Subscription/read state for a single thread |
| Today view items (suggested to-dos, highlights) |
| Pending Slack Connect channel and DM invites |
| Slack Connect connections for a channel |
| Suggested channels for the user |
| Per-channel reacji (auto-reaction) triggers |
| Available Slack List templates |
| Records/items within a given Slack List |
| Connected calendars ( |
| The user's current calendar status |
| Available canvas templates |
| Installed and available emoji packs |
| Where a file is shared (channels, tabs, viewer count) |
| Recently deleted files |
| Favorited files |
| Workflows and their triggers |
| Triggers, filterable by app |
| Profile extras — shared channels, onboarding state |
| Custom profile sections |
| Saved and scheduled custom statuses |
| Inline/quick search scoped to a channel or user |
| Save a search |
| Configured enterprise search connectors |
Endpoint | What it provides |
| Execute slash commands programmatically |
| List all slash commands including custom ones |
| Edit a file's title, content, or filetype in-place |
| Share a file to a channel |
| List all bot users in the workspace |
| Team-level preferences — retention, permissions, domains |
| All user preferences — notifications, sidebar, theme |
| Set any individual user preference |
| Invite users by email (Enterprise Grid) |
| Deactivate a user account (Enterprise Grid) |
| Dead method — included for completeness |
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 |
| Yes | User OAuth token from your Slack app |
| No | Browser session token for undocumented endpoints |
| No | Browser session cookie (paired with |
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_replieswith ts > 1 hour old) — 1 hour TTLBounded history (
conversations_historywith old date range) — 1 hour TTLResolved 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 |
| 465 KB | 113 KB | 76% |
| 127 KB | 26 KB | 80% |
| 59 KB | 17 KB | 71% |
| 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~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
Available Tools
224 toolsai_apps_listB
List AI apps in the workspace (undocumented session endpoint).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| foo | No | Example property to return in the response (echoed back as ``args.foo``). | |
| error | No | Error response to return. If set, the call responds with an error of this value. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of log entries to return. | |
| app_id | Yes | The app whose activity logs to return. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| source | No | Origin of logs: ``slack`` or ``developer``. | |
| team_id | No | Workspace to scope logs to (org-wide tokens). | |
| min_log_level | No | Minimum severity: ``trace``, ``debug``, ``info``, ``warn``, ``error``, or ``fatal``. | |
| component_type | No | ``events_api``, ``workflows``, ``functions``, or ``tables``. | |
| log_event_type | No | Filter to a specific event type. | |
| sort_direction | No | ``asc`` or ``desc``. | |
| max_date_created | No | Latest creation time, epoch microseconds. | |
| min_date_created | No | Earliest creation time, epoch microseconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of authorizations to return. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| event_context | Yes | The ``event_context`` value from the event payload to look up authorizations for. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| manifest | Yes | The app manifest, as a JSON-encoded string, describing the app to create. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | ID of the app to delete (e.g. ``A0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | ID of the app whose manifest to export (e.g. ``A0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | ID of the app to update (e.g. ``A0123``). | |
| manifest | Yes | The updated app manifest, as a JSON-encoded string. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | No | ID of an existing app to validate the manifest against (e.g. ``A0123``). | |
| manifest | Yes | The app manifest, as a JSON-encoded string, to validate. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| client_id | Yes | Your app's client ID. | |
| client_secret | Yes | Your app's client secret. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ``score`` (relevance) or ``timestamp`` (recency). | |
| after | No | Only results after this UNIX timestamp. | |
| limit | No | Results per page (max 20). | |
| query | Yes | The search query or user prompt, e.g. ``"What is project gizmo?"``. | |
| before | No | Only results before this UNIX timestamp. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| sort_dir | No | Sort direction — ``asc`` or ``desc``. | |
| action_token | No | Required when calling with a bot token; not needed for user tokens. | |
| include_bots | No | Include messages from bots in results. | |
| channel_types | No | Comma-separated: ``public_channel``, ``private_channel``, ``mpim``, ``im``. | |
| content_types | No | Comma-separated: ``messages``, ``files``, ``channels``, ``users``. | |
| context_channel_id | No | Channel to bias results toward. | |
| include_context_messages | No | Return surrounding messages for each match. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Status text to display, e.g. ``"is thinking..."``. Empty string clears the status. | |
| thread_ts | Yes | Timestamp of the parent assistant thread (e.g. ``1700000000.000100``). | |
| channel_id | Yes | ID of the channel containing the assistant thread (e.g. ``C0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Optional heading shown above the suggested prompts. | |
| prompts | No | List of prompt objects, each with ``title`` and ``message`` keys. | |
| thread_ts | Yes | Timestamp of the parent assistant thread (e.g. ``1700000000.000100``). | |
| channel_id | Yes | ID of the channel containing the assistant thread (e.g. ``C0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title text to set for the thread. | |
| thread_ts | Yes | Timestamp of the parent assistant thread (e.g. ``1700000000.000100``). | |
| channel_id | Yes | ID of the channel containing the assistant thread (e.g. ``C0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| test | No | When ``True``, validate the request but do not actually revoke the token. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of workspaces to return per page (default ``100``). | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page. | |
| include_icon | No | When ``True``, include the workspace icon URLs in each team object. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| blocks | Yes | The Block Kit blocks to validate. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | URL for the bookmark, required when ``type`` is ``link``. | |
| type | Yes | Type of the bookmark, e.g. ``link``. | |
| emoji | No | Emoji tag to apply to the bookmark (e.g. ``:books:``). | |
| title | Yes | Title (display name) for the bookmark. | |
| entity_id | No | ID of the entity being bookmarked (used for non-link bookmark types). | |
| parent_id | No | ID of this bookmark's parent, used to nest it under a bookmark folder. | |
| channel_id | Yes | ID of the channel to add the bookmark to (e.g. ``C0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | New URL for the bookmark. | |
| emoji | No | New emoji tag for the bookmark (e.g. ``:books:``). | |
| title | No | New title (display name) for the bookmark. | |
| channel_id | Yes | ID of the channel containing the bookmark (e.g. ``C0123``). | |
| bookmark_id | Yes | ID of the bookmark to edit (e.g. ``Bk0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the channel whose bookmarks to list (e.g. ``C0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the channel containing the bookmark (e.g. ``C0123``). | |
| bookmark_id | Yes | ID of the bookmark to remove (e.g. ``Bk0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bot | No | ID of the bot to get info for (e.g. ``B0123``). | |
| team_id | No | ID of the workspace to scope the lookup to, required for org-level tokens (e.g. ``T0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return per page. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Display name for the Call. | |
| users | No | Participants to register; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url. | |
| join_url | Yes | URL required for a client to join the Call (e.g. ``https://example.com/calls/1234``). | |
| created_by | No | ID of the user who created the Call; required when called with a bot token (e.g. ``U0123``). | |
| date_start | No | Unix timestamp of when the Call started (e.g. ``1562002086``). | |
| external_unique_id | Yes | Unique ID for the Call supplied by the third-party Call provider. | |
| external_display_id | No | Human-readable ID supplied by the third-party Call provider, displayed to users. | |
| desktop_app_join_url | No | Alternate join URL used by Slack clients that have the provider's desktop app installed. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``). | |
| duration | No | Call duration in seconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``). | |
| users | Yes | Users added to the Call; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``). | |
| users | Yes | Users removed from the Call; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``). | |
| title | No | Display name for the Call. | |
| join_url | No | URL required for a client to join the Call (e.g. ``https://example.com/calls/1234567890``). | |
| desktop_app_join_url | No | Alternate URL used by Slack clients with the Call provider's desktop app installed. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | No | User IDs whose access to the canvas should be removed (e.g. ``["U0123"]``). | |
| canvas_id | Yes | Encoded ID of the canvas to remove access from (e.g. ``F0123ABC456``). | |
| channel_ids | No | Channel IDs whose access to the canvas should be removed (e.g. ``["C0123"]``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | No | User IDs to grant the access level to (e.g. ``["U0123"]``). | |
| canvas_id | Yes | Encoded ID of the canvas to set access on (e.g. ``F0123ABC456``). | |
| channel_ids | No | Channel IDs to grant the access level to (e.g. ``["C0123"]``). | |
| access_level | Yes | Access level granted to the entities — ``read``, ``write``, or ``owner``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Title of the newly created canvas. | |
| document_content | No | Structured content; an object with ``type`` of ``markdown`` and a ``markdown`` body field. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| canvas_id | Yes | Encoded ID of the canvas to delete (e.g. ``F0123ABC456``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | Ordered edit operations, each with an operation (insert/replace/delete), document_content, section_id. | |
| canvas_id | Yes | Encoded ID of the canvas to edit (e.g. ``F0123ABC456``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| criteria | Yes | Filter for which sections to return, e.g. a ``contains_text`` substring and/or ``section_types``. | |
| canvas_id | Yes | Encoded ID of the canvas to search within (e.g. ``F0123ABC456``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the channel to delete (e.g. ``C0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | Timestamp of the streaming message to append to (e.g. ``1700000000.000100``). | |
| channel | Yes | ID of the channel containing the stream (e.g. ``C0123``). | |
| markdown_text | Yes | Markdown-formatted text chunk to append (max 12,000 characters). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Arguments passed to the slash command. | |
| channel | Yes | ID of the channel in which to run the command (e.g. ``C0123``). | |
| command | Yes | The slash command to execute, including the leading slash (e.g. ``/remind``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | Timestamp of the message to delete (e.g. ``1700000000.000100``). | |
| as_user | No | Delete as the authenticated user rather than as the bot (legacy; ignored for workspace apps). | |
| channel | Yes | ID of the channel containing the message to delete (e.g. ``C0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| as_user | No | Delete as the authenticated user rather than as the bot (legacy; ignored for workspace apps). | |
| channel | Yes | ID of the channel the scheduled message targets (e.g. ``C0123``). | |
| scheduled_message_id | Yes | ID of the scheduled message to delete (from ``chat.scheduleMessage`` or the list tool). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_get_permalinkB
Retrieve a permalink URL for a specific message.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the channel containing the message (e.g. ``C0123``). | |
| message_ts | Yes | Timestamp of the message to link to (e.g. ``1700000000.000100``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 the action without detailing outcomes (e.g., URL format), error handling, or permission requirements. Missing critical 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loading the purpose. No unnecessary words, though it could be slightly expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters, output schema exists), the description is minimally adequate. It does not explain the return value or potential errors, but the output schema likely fills some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explains both parameters adequately. The description adds no extra meaning, warranting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieve a permalink URL for a specific message.' It uses a specific verb ('retrieve') and resource ('permalink URL'), distinguishing it from sibling tools that send or modify messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. For a simple retrieval tool, it lacks context like 'use this to share links' or 'not for listing messages'.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Message text displayed as an action (e.g. "waves hello"). | |
| channel | Yes | ID of the channel to post the /me message in (e.g. ``C0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn. | |
| user | Yes | ID of the user who will see the ephemeral message (e.g. ``U0123``). | |
| blocks | No | Block Kit block array defining the message layout. | |
| as_user | No | Post as the authenticated user rather than as the bot (legacy; ignored for workspace apps). | |
| channel | Yes | ID of the channel to post the ephemeral message in (e.g. ``C0123``). | |
| thread_ts | No | Parent message timestamp to post the ephemeral reply inside a thread (e.g. ``1700000000.000100``). | |
| attachments | No | Legacy attachment array. Prefer ``blocks`` for new messages. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn. | |
| parse | No | How to handle message text: ``full`` (linkify everything) or ``none`` (pass text as-is). | |
| blocks | No | Block Kit block array defining the message layout. | |
| mrkdwn | No | Render Slack mrkdwn formatting in ``text`` (default True). | |
| as_user | No | Post as the authenticated user rather than as the bot (legacy; ignored for workspace apps). | |
| channel | Yes | ID of the channel to post to (e.g. ``C0123``), or a DM ID (``D0123``) or user ID for a DM. | |
| icon_url | No | URL of an image to use as the bot's icon. Requires ``username``. | |
| metadata | No | Structured metadata object attached to the message (``event_type`` + ``event_payload``). | |
| username | No | Override the bot's display name for this message. | |
| thread_ts | No | Timestamp of the parent message to reply to, forming a thread (e.g. ``1700000000.000100``). | |
| icon_emoji | No | Emoji to use as the bot icon, overrides the app default (e.g. ``:robot_face:``); needs ``username``. | |
| link_names | No | Find and link channel names and usernames in ``text`` (e.g. ``#general`` → hyperlink). | |
| attachments | No | Legacy attachment array. Prefer ``blocks`` for new messages. | |
| unfurl_links | No | Automatically unfurl URL links in the message. | |
| unfurl_media | No | Automatically unfurl media URLs (images, video) in the message. | |
| reply_broadcast | No | Also post the threaded reply to the channel when ``thread_ts`` is set. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of scheduled messages to return per page (default 100). | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| latest | No | Only include messages scheduled at or before this Unix epoch timestamp. | |
| oldest | No | Only include messages scheduled at or after this Unix epoch timestamp. | |
| channel | No | Filter to scheduled messages for this channel ID (e.g. ``C0123``). Omit to list across all channels. | |
| team_id | No | Encoded team ID to scope the list to (for org-wide tokens). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn. | |
| blocks | No | Block Kit block array defining the message layout. | |
| as_user | No | Schedule as the authenticated user rather than as the bot (legacy; ignored for workspace apps). | |
| channel | Yes | ID of the channel to send the scheduled message to (e.g. ``C0123``). | |
| post_at | Yes | Unix epoch timestamp (seconds) at which to deliver the message (e.g. ``1700010000``). | |
| metadata | No | Structured metadata object attached to the message (``event_type`` + ``event_payload``). | |
| thread_ts | No | Timestamp of the parent message to schedule a thread reply to (e.g. ``1700000000.000100``). | |
| attachments | No | Legacy attachment array. Prefer ``blocks`` for new messages. | |
| unfurl_links | No | Automatically unfurl URL links when the message is delivered. | |
| unfurl_media | No | Automatically unfurl media URLs (images, video) when the message is delivered. | |
| reply_broadcast | No | Also post the threaded reply to the channel when ``thread_ts`` is set. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the channel to start the stream in (e.g. ``C0123``). | |
| thread_ts | Yes | Timestamp of the parent thread to attach the stream to (e.g. ``1700000000.000100``). | |
| markdown_text | No | Initial markdown-formatted text for the stream (max 12,000 characters). | |
| recipient_team_id | No | Team the receiving user belongs to (e.g. ``T0123``). | |
| recipient_user_id | No | User to receive the streaming text; required when streaming to a channel (e.g. ``U0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | Timestamp of the streaming message to stop (e.g. ``1700000000.000100``). | |
| channel | Yes | ID of the channel containing the stream (e.g. ``C0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | Timestamp of the message containing the URLs (e.g. ``1700000000.000100``). | |
| channel | Yes | ID of the channel containing the message with URLs to unfurl (e.g. ``C0123``). | |
| unfurls | Yes | Map of URLs to their unfurl attachment or Block Kit objects (e.g. ``{"https://example.com": {...}}``). | |
| user_auth_url | No | URL to redirect the user to for authentication when ``user_auth_required`` is True. | |
| user_auth_blocks | No | Block Kit blocks shown to the user in an auth prompt when ``user_auth_required`` is True. | |
| user_auth_message | No | Plain-text message shown to the user in an auth prompt when ``user_auth_required`` is True. | |
| user_auth_required | No | Prompt the user to authenticate before unfurling the URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | Timestamp of the message to update (e.g. ``1700000000.000100``). | |
| text | No | New message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn. | |
| parse | No | How to handle message text: ``full`` (linkify everything) or ``none`` (pass text as-is). | |
| blocks | No | Updated Block Kit block array replacing the existing layout. | |
| as_user | No | Update as the authenticated user rather than as the bot (legacy; ignored for workspace apps). | |
| channel | Yes | ID of the channel containing the message to update (e.g. ``C0123``). | |
| metadata | No | Updated structured metadata object (``event_type`` + ``event_payload``). | |
| link_names | No | Find and link channel names and usernames in the updated ``text``. | |
| attachments | No | Updated legacy attachment array. Prefer ``blocks`` for new messages. | |
| reply_broadcast | No | Broadcast the updated threaded reply to the channel. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| org_wide_aware | No | Include counts across all workspaces in an Enterprise org. | |
| thread_count_by_last_read | No | Count unread threads relative to the last-read marker. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_archiveC
Archive a conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the conversation to archive (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the channel the canvas belongs to (e.g. C0123). | |
| document_content | No | Canvas body as a structured document object (e.g. a markdown document). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the DM or multi-party DM to close (e.g. D0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Channel name (lowercase, no spaces or periods, max 80 chars). | |
| team_id | No | Encoded team ID to create the channel in (for org-wide tokens). | |
| is_private | No | Create a private channel instead of a public one. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_external_invite_permissions_setC
Set external invite permissions for a Slack Connect channel.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Permission to apply — ``upgrade`` to allow external write access or ``downgrade`` to restrict it. | |
| channel | Yes | ID of the Slack Connect channel (e.g. ``C0123``). | |
| target_team | Yes | Encoded team ID of the target team to change permissions for (e.g. ``T0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of messages to return per page (default 100). | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| latest | No | Only include messages at or before this timestamp (e.g. 1700000000.000100). Defaults to now. | |
| oldest | No | Only include messages at or after this timestamp. | |
| channel | Yes | ID of the conversation to read (e.g. C0123). | |
| detailed | No | Return the full, uncompacted Slack response when True. | |
| inclusive | No | Include messages with ``latest`` or ``oldest`` timestamps in the results. | |
| include_all_metadata | No | Include all message metadata in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the conversation to look up (e.g. C0123). | |
| include_locale | No | Include the channel's locale in the response. | |
| include_num_members | No | Include the channel's member count in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Continue inviting valid users even if some IDs fail, rather than failing the whole call. | |
| users | Yes | Comma-separated list of user IDs to invite (e.g. ``U0123,U0456``), up to 1000. | |
| channel | Yes | ID of the channel to invite users into (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_joinC
Join an existing conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the channel to join (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | ID of the user to remove (e.g. U0123). | |
| channel | Yes | ID of the channel to remove the user from (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the conversation to leave (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of channels to return per page (default 100). | |
| types | No | Comma-separated conversation types to include, e.g. ``public_channel,private_channel,mpim,im``. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| team_id | No | Encoded team ID to list channels for (for org-wide tokens). | |
| detailed | No | Return the full, uncompacted Slack response when True. | |
| exclude_archived | No | Omit archived channels from the results. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Maximum number of invites to return (default 100). | |
| cursor | No | Pagination cursor from ``response_metadata.next_cursor`` in a prior response. | |
| team_id | No | Encoded team ID to list invites for (for org-wide tokens). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | Timestamp of the most recently seen message (e.g. 1700000000.000100); everything up to it is marked read. | |
| channel | Yes | ID of the channel to mark (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of member IDs to return per page (default 100). | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| channel | Yes | ID of the conversation to list members for (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| users | No | Comma-separated user IDs to open a DM/MPIM with (e.g. ``U0123,U0456``). | |
| channel | No | ID of an existing DM/MPIM to resume. Provide ``channel`` or ``users``. | |
| return_im | No | Return the full IM/MPIM channel object rather than just its ID. | |
| prevent_creation | No | For 1:1 DMs, don't create a new conversation if one doesn't already exist. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | New channel name (lowercase, no spaces or periods, max 80 chars). | |
| channel | Yes | ID of the channel to rename (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | Timestamp of the thread's parent message (e.g. 1700000000.000100). | |
| limit | No | Maximum number of messages to return per page (default 100). | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| latest | No | Only include messages at or before this timestamp. Defaults to now. | |
| oldest | No | Only include messages at or after this timestamp. | |
| channel | Yes | ID of the conversation containing the thread (e.g. C0123). | |
| detailed | No | Return the full, uncompacted Slack response when True. | |
| inclusive | No | Include messages with ``latest`` or ``oldest`` timestamps in the results. | |
| include_all_metadata | No | Include all message metadata in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_set_purposeB
Set the purpose for a conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the conversation to update (e.g. C0123). | |
| purpose | Yes | New purpose text (max 250 chars). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | New topic text (max 250 chars). | |
| channel | Yes | ID of the conversation to update (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the archived conversation to restore (e.g. C0123). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the channel to view (e.g. ``C0123``). | |
| detailed | No | Return the full, uncompacted response instead of the compacted summary. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dialog | Yes | Dialog definition for the modal, including ``title``, ``callback_id``, and ``elements``. | |
| trigger_id | Yes | Trigger ID from a user interaction authorizing the dialog; expires after 3 seconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | ID of the user to fetch status for; defaults to the authenticated user (e.g. ``U0123``). | |
| team_id | No | Encoded team ID to fetch the status from, required for org-wide tokens (e.g. ``T0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| num_minutes | Yes | Number of minutes, starting now, to snooze notifications for (e.g. ``60``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | Comma-separated list of user IDs to fetch Do Not Disturb status for (e.g. ``U0123,U0456``). | |
| team_id | No | Encoded team ID the users belong to, required for org-wide tokens (e.g. ``T0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Draft message body text. | |
| file_ids | No | IDs of already-uploaded files to attach to the draft (e.g. ``F0123``). | |
| broadcast | No | Also send the threaded reply to the channel when posted (requires ``thread_ts``). | |
| thread_ts | No | Timestamp of the parent thread to draft a reply to (e.g. ``1700000000.000100``). | |
| channel_id | Yes | ID of the channel the draft is addressed to (e.g. ``C0123``). | |
| date_scheduled | No | Unix epoch timestamp (seconds) to schedule the draft for sending. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| draft_id | Yes | ID of the draft to delete. | |
| client_last_updated_ts | No | The draft's last-updated timestamp (7-decimal-place Slack draft ts). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of drafts to return. | |
| is_active | No | Only return drafts that are currently active (unsent). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Updated draft message body text. | |
| draft_id | Yes | ID of the draft to update. | |
| file_ids | No | IDs of already-uploaded files to attach to the draft (e.g. ``F0123``). | |
| broadcast | No | Also send the threaded reply to the channel when posted (requires ``thread_ts``). | |
| thread_ts | No | Timestamp of the parent thread to draft a reply to (e.g. ``1700000000.000100``). | |
| channel_id | Yes | ID of the channel the draft is addressed to (e.g. ``C0123``). | |
| client_last_updated_ts | Yes | The draft's last-updated timestamp (7-decimal-place Slack draft ts). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new emoji, without colons (e.g. ``party_parrot``). | |
| image_url | Yes | URL of the image to download and upload as the emoji. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number of results to return. | |
| count | No | Number of emoji to return per page. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| include_categories | No | Include the standard emoji categories in the response when ``True``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the emoji to remove, without colons (e.g. ``party_parrot``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | Error object with status and messaging details, if the entity can't be presented. | |
| metadata | No | Flexpane metadata keyed by entity ID, each describing the entity to present. | |
| trigger_id | Yes | Reference to the user action that initiated the request. | |
| user_auth_url | No | Custom URL where the user can authenticate. | |
| user_auth_required | No | Whether the user must authenticate before details can be shown. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the comment to delete. | |
| file | Yes | ID of the file the comment belongs to (e.g. ``F0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | File objects to finalize, each with an ``id`` from ``files.getUploadURLExternal`` and optional ``title``. | |
| thread_ts | No | Timestamp of the parent message to share the files into as a thread reply (e.g. ``1700000000.00``). | |
| channel_id | No | ID of the channel to share the uploaded files into (e.g. ``C0123``). | |
| initial_comment | No | Message text to post alongside the shared files. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ID of the file to delete (e.g. ``F0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ID of the file to edit (e.g. ``F0123``). | |
| title | No | New title for the file. | |
| content | No | New body content of the file. | |
| filetype | No | New file type (Slack-internal file type identifier, e.g. ``text``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| length | Yes | Size of the file in bytes. | |
| alt_txt | No | Description of the image for screen-reader accessibility. | |
| filename | Yes | Name of the file being uploaded (e.g. ``report.pdf``). | |
| snippet_type | No | Syntax type of a snippet being uploaded (e.g. ``python``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ID of the file to get info about (e.g. ``F0123``). | |
| page | No | Page number of comments to return (deprecated pagination). | |
| count | No | Number of comments to return per page (deprecated pagination). | |
| limit | No | Maximum number of comments to return per page. | |
| cursor | No | Pagination cursor from a prior response's ``response_metadata.next_cursor``. | |
| detailed | No | Return the full Slack response instead of the compacted summary when ``True``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of results to return. | |
| user | No | Filter files to those created by this user (e.g. ``U0123``). | |
| count | No | Number of files to return per page. | |
| ts_to | No | Filter files created before this Unix timestamp. | |
| types | No | Comma-separated file types to filter by (e.g. ``images,pdfs``; also ``all``, ``snippets``, ``gdocs``). | |
| channel | No | Filter files to those shared in this channel (e.g. ``C0123``). | |
| team_id | No | ID of the workspace to list files for, required for org-wide tokens (e.g. ``T0123``). | |
| ts_from | No | Filter files created after this Unix timestamp. | |
| detailed | No | Return the full Slack response instead of the compacted summary when ``True``. | |
| show_files_hidden_by_limit | No | Include files hidden due to the free-plan message/file limit when ``True``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title of the file shown in Slack. | |
| filetype | No | File type identifier (e.g. ``doc``, ``pdf``). | |
| external_id | Yes | Unique identifier for the file in your app's storage (e.g. ``123abc``). | |
| external_url | Yes | URL where the remote file can be accessed (e.g. ``https://example.com/files/123``). | |
| preview_image | No | Image to use as the file's preview thumbnail. | |
| indexable_file_contents | No | Plain-text contents of the file used to make it searchable in Slack. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ID of the file as assigned by Slack (e.g. ``F0123``). | |
| external_id | No | Identifier of the remote file in your app's storage (e.g. ``123abc``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of files to return per page. | |
| ts_to | No | Filter files created before this Unix timestamp. | |
| cursor | No | Pagination cursor for the next page, from a prior response's ``response_metadata.next_cursor``. | |
| channel | No | Filter to remote files shared in this channel (e.g. ``C0123``). | |
| ts_from | No | Filter files created after this Unix timestamp. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ID of the file as assigned by Slack (e.g. ``F0123``). | |
| external_id | No | Identifier of the remote file in your app's storage (e.g. ``123abc``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_updateC
Update a remote file.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | ID of the file as assigned by Slack (e.g. ``F0123``). | |
| title | No | Title of the file shown in Slack. | |
| filetype | No | File type identifier (e.g. ``doc``, ``pdf``). | |
| external_id | No | Identifier of the remote file in your app's storage (e.g. ``123abc``). | |
| external_url | No | URL where the remote file can be accessed (e.g. ``https://example.com/files/123``). | |
| preview_image | No | Image to use as the file's preview thumbnail. | |
| indexable_file_contents | No | Plain-text contents of the file used to make it searchable in Slack. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ID of the file to revoke public sharing for (e.g. ``F0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_uploadC
Upload a file (legacy).
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Title of the file shown in Slack. | |
| content | No | File contents as a string; using this creates an editable text/snippet file instead of a binary upload. | |
| channels | No | Comma-separated list of channel IDs to share the file into (e.g. ``C0123,C0456``). | |
| filename | No | Name of the file (e.g. ``report.pdf``). | |
| filetype | No | File type identifier (e.g. ``python``, ``pdf``). | |
| thread_ts | No | Timestamp of the parent message to share the file into as a thread reply (e.g. ``1700000000.00``). | |
| initial_comment | No | Message text to post alongside the file. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Title of the file shown in Slack. | |
| channel | No | ID of the channel to share the uploaded file into (e.g. ``C0123``). | |
| content | Yes | File contents to upload as a string. | |
| filename | No | Name of the file (e.g. ``notes.txt``). | |
| thread_ts | No | Timestamp of the parent message to share the file into as a thread reply (e.g. ``1700000000.0001``). | |
| snippet_type | No | Syntax type of a snippet being uploaded (e.g. ``python``). | |
| initial_comment | No | Message text to post alongside the file. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| error | Yes | Human-readable error message describing why the function failed. | |
| function_execution_id | Yes | ID of the function execution to fail, from the ``function_executed`` event. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| outputs | Yes | Mapping of output names to values, matching the output parameters declared in the function definition. | |
| function_execution_id | Yes | ID of the function execution to complete, from the ``function_executed`` event. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| detailed | No | Return the full, uncompacted response instead of the compacted summary. | |
| message_ids | Yes | Groups of messages to fetch, each ``{"channel": "C0123", "timestamps": ["1700000000.000100", ...]}``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | Comma-separated list of user IDs (up to 400) to translate (e.g. ``U0123,U0456``). | |
| to_old | No | Set to ``True`` to map global IDs back to their local (legacy) workspace IDs. | |
| team_id | No | Specify a team ID to scope the lookup, required for Enterprise Grid org tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The OAuth verifier code received via the OAuth callback. | |
| client_id | Yes | Your app's client ID. | |
| redirect_uri | No | Must match the value used to request the code. | |
| client_secret | Yes | Your app's client secret. | |
| single_channel | No | Request a single-channel installation token. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The OAuth callback code (omit when refreshing). | |
| client_id | Yes | Your app's client ID. | |
| grant_type | No | ``authorization_code`` (default) or ``refresh_token``. | |
| redirect_uri | No | Must match the value used to request the code. | |
| client_secret | Yes | Your app's client secret. | |
| code_verifier | No | The PKCE code verifier, when the authorization request used PKCE. | |
| refresh_token | No | The refresh token, when ``grant_type=refresh_token``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The legacy (non-expiring) access token to exchange. | |
| client_id | Yes | Your app's client ID. | |
| client_secret | Yes | Your app's client secret. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | The OAuth callback code (omit when refreshing). | |
| client_id | Yes | Your app's client ID. | |
| grant_type | No | ``authorization_code`` (default) or ``refresh_token``. | |
| redirect_uri | No | Must match the value used to request the code. | |
| client_secret | No | Your app's client secret (omit for public PKCE clients). | |
| code_verifier | No | PKCE verifier matching the original challenge. | |
| refresh_token | No | The refresh token, when ``grant_type=refresh_token``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | The temporary authorization code returned via the OAuth redirect. | |
| client_id | Yes | Issued client ID for your Slack app. | |
| grant_type | No | The grant type: ``authorization_code`` (default) or ``refresh_token``. | |
| redirect_uri | No | Redirect URI used in the initial authorization request; must match exactly. | |
| client_secret | Yes | Issued client secret for your Slack app. | |
| code_verifier | No | The PKCE code verifier, when the authorization request used PKCE. | |
| refresh_token | No | The refresh token, used when ``grant_type`` is ``refresh_token``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the channel to pin the item in (e.g. ``C0123``). | |
| timestamp | Yes | Timestamp of the message to pin (e.g. ``1700000000.000100``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the channel whose pinned items to list (e.g. ``C0123``). | |
| detailed | No | Return the full unmodified Slack response instead of a compacted summary. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | ID of the channel containing the pinned item (e.g. ``C0123``). | |
| timestamp | Yes | Timestamp of the pinned message to remove (e.g. ``1700000000.000100``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Reaction (emoji) name, without surrounding colons (e.g. ``thumbsup``). | |
| channel | Yes | Channel where the target message was posted (e.g. ``C0123``). | |
| timestamp | Yes | Timestamp of the message to react to (e.g. ``1700000000.000100``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | File to get reactions for (e.g. ``F0123``). | |
| full | No | Return the complete reaction list, not a truncated one. | |
| channel | No | Channel of the target message (e.g. ``C0123``). Required when getting reactions for a message. | |
| detailed | No | Return the full Slack response instead of a compacted summary. | |
| timestamp | No | Timestamp of the message (e.g. ``1700000000.000100``). Used together with ``channel``. | |
| file_comment | No | File comment to get reactions for (e.g. ``Fc0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Return the complete reaction list for each item, not a truncated one. | |
| page | No | Page number of results to return (deprecated; prefer ``limit`` with ``cursor``). | |
| user | No | User whose reactions to list; defaults to the authenticated user (e.g. ``U0123``). | |
| count | No | Number of items to return per page (deprecated; prefer ``limit`` with ``cursor``). | |
| limit | No | Maximum number of items to return per page. | |
| cursor | No | Pagination cursor from the previous response's ``response_metadata.next_cursor`` (e.g. ``dXNlcjpV``). | |
| team_id | No | Encoded team ID to list reactions in, required for org-wide app tokens (e.g. ``T0123``). | |
| detailed | No | Return the full Slack response instead of a compacted summary. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | File to remove the reaction from (e.g. ``F0123``). | |
| name | Yes | Reaction (emoji) name to remove, without surrounding colons (e.g. ``thumbsup``). | |
| channel | No | Channel where the message to remove the reaction from was posted (e.g. ``C0123``). | |
| timestamp | No | Timestamp of the message (e.g. ``1700000000.000100``). Used together with ``channel``. | |
| file_comment | No | File comment to remove the reaction from (e.g. ``Fc0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The content of the reminder (e.g. ``eat a banana``). | |
| time | Yes | When to trigger — a Unix timestamp, seconds from now, or natural language (e.g. ``in 15 minutes``). | |
| user | No | User who will receive the reminder; defaults to the authenticated user (e.g. ``U0123``). | |
| team_id | No | Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``). | |
| recurrence | No | Recurring schedule, e.g. ``{"frequency": "weekly", "weekdays": ["monday"]}``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | No | Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``). | |
| reminder | Yes | The ID of the reminder to mark complete (e.g. ``Rm0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | No | Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``). | |
| reminder | Yes | The ID of the reminder to delete (e.g. ``Rm0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | No | Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``). | |
| reminder | Yes | The ID of the reminder to get info for (e.g. ``Rm0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | No | Encoded team ID to list reminders for, required for org-wide app tokens (e.g. ``T0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | No | User IDs to resolve to display names (e.g. ``["U0123"]``). | |
| channel_ids | No | Channel IDs to resolve to display names (e.g. ``["C0123"]``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| presence_sub | No | Only deliver presence events for users subscribed via a ``presence_sub`` event. | |
| batch_presence_aware | No | Batch presence deliveries, only for users subscribed via ``presence_sub`` events. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| no_latest | No | Exclude latest timestamps for channels, groups, MPIMs, and IMs to reduce payload size. | |
| mpim_aware | No | Return group-DM (multi-party IM) conversations in the returned data. | |
| no_unreads | No | Skip unread counts for each channel to reduce payload size. | |
| presence_sub | No | Only deliver presence events for users subscribed via a ``presence_sub`` event. | |
| simple_latest | No | Return only the latest message timestamp per channel, omitting the full message object. | |
| include_locale | No | Include locale information for users and IMs in the returned data. | |
| batch_presence_aware | No | Batch presence deliveries, only for users subscribed via ``presence_sub`` events. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | Timestamp of the item to save (e.g. ``1700000000.000100``). | |
| item_id | Yes | ID of the item's container, e.g. the channel ID for a message (``C0123``). | |
| date_due | No | Unix epoch timestamp (seconds) for an optional reminder/due date. | |
| item_type | Yes | Type of item to save, e.g. ``message``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ts | Yes | Timestamp of the saved item to remove (e.g. ``1700000000.000100``). | |
| item_id | Yes | ID of the item's container, e.g. the channel ID for a message (``C0123``). | |
| item_type | Yes | Type of saved item to remove, e.g. ``message``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of saved items to return. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| detailed | No | Return the full, uncompacted response instead of the compacted summary. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number to return. | |
| sort | No | Sort by ``score`` (relevance, default) or ``timestamp`` (recency). | |
| count | No | Results per page (default 20, max 100). | |
| query | Yes | Search text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``before:2024-01-31``. | |
| team_id | No | Encoded team ID to scope the search to (for org-wide tokens). | |
| detailed | No | Return the full, uncompacted Slack response when True. | |
| sort_dir | No | Sort direction, ``asc`` or ``desc`` (default ``desc``). | |
| highlight | No | Wrap matched terms in highlight markers in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number to return. | |
| sort | No | Sort by ``score`` (relevance, default) or ``timestamp`` (recency). | |
| count | No | Results per page (default 20, max 100). | |
| query | Yes | Search text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``type:`` filters. | |
| team_id | No | Encoded team ID to scope the search to (for org-wide tokens). | |
| detailed | No | Return the full, uncompacted Slack response when True. | |
| sort_dir | No | Sort direction, ``asc`` or ``desc`` (default ``desc``). | |
| highlight | No | Wrap matched terms in highlight markers in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number to return. | |
| sort | No | Sort by ``score`` (relevance, default) or ``timestamp`` (recency). | |
| count | No | Results per page (default 20, max 100). | |
| query | Yes | Search text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``before:2024-01-31``. | |
| cursor | No | Pagination cursor from ``response_metadata.next_cursor`` in a prior response (alternative to ``page``). | |
| team_id | No | Encoded team ID to scope the search to (for org-wide tokens). | |
| detailed | No | Return the full, uncompacted Slack response when True. | |
| sort_dir | No | Sort direction, ``asc`` or ``desc`` (default ``desc``). | |
| highlight | No | Wrap matched terms in highlight markers in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results to return per page. | |
| query | Yes | Search query string matching channel names and topics. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results to return per page. | |
| query | Yes | Search query string matched against direct-message content. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results to return per page. | |
| query | Yes | Search query string matching file names and contents. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results to return per page. | |
| query | Yes | Search query string, supporting Slack search operators (e.g. ``from:@user``). | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| detailed | No | Return the full, uncompacted response instead of the compacted summary. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results to return per page. | |
| query | Yes | Search query string matching member names, titles, and departments. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ID of the list (a file ID) to remove access from (e.g. ``F0123``). | |
| user_ids | No | User IDs to revoke access for (e.g. ``["U0123"]``). | |
| channel_ids | No | Channel IDs to revoke access for (e.g. ``["C0123"]``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ID of the list (a file ID) to set access on (e.g. ``F0123``). | |
| user_ids | No | User IDs to grant access to (e.g. ``["U0123"]``). | |
| channel_ids | No | Channel IDs to grant access to (e.g. ``["C0123"]``). | |
| access_level | Yes | Access level to grant; one of ``read``, ``write``, or ``owner``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name (title) of the list to create. | |
| schema | No | Column definitions for the list, each describing a field's key, name, and type. | |
| description_blocks | No | Rich-text blocks describing the list. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ID of the download job previously started for the list. | |
| list_id | Yes | ID of the list (a file ID) being downloaded (e.g. ``F0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ID of the list (a file ID) to download (e.g. ``F0123``). | |
| include_archived | No | When ``True``, include archived items in the download. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ID of the list (a file ID) to add the item to (e.g. ``F0123``). | |
| initial_fields | No | Field values for the new item, each an object with a ``column_id`` and a typed value. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ID of the list item (record) to delete. | |
| list_id | Yes | ID of the list (a file ID) containing the item (e.g. ``F0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ID of the list (a file ID) containing the items (e.g. ``F0123``). | |
| item_ids | Yes | IDs of the list items (records) to delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ID of the list item (record) to fetch. | |
| list_id | Yes | ID of the list (a file ID) containing the item (e.g. ``F0123``). | |
| include_is_subscribed | No | When ``True``, include whether the caller is subscribed to the item. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return per page. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| list_id | Yes | ID of the list (a file ID) whose items to return (e.g. ``F0123``). | |
| archived | No | When ``True``, return archived items instead of active ones. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cells | Yes | Cells to update, each an object with ``row_id`` (the item/record), ``column_id``, and a typed value. | |
| list_id | Yes | ID of the list (a file ID) containing the item (e.g. ``F0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name (title) for the list. | |
| list_id | Yes | ID of the list (a file ID) to update (e.g. ``F0123``). | |
| description_blocks | No | New rich-text blocks describing the list. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | File to add a star to (e.g. ``F0123``). | |
| channel | No | Channel, group, or DM to star, or the channel of a file/comment being starred (e.g. ``C0123``). | |
| timestamp | No | Timestamp of the message to star; requires ``channel`` (e.g. ``1700000000.000100``). | |
| file_comment | No | File comment to add a star to (e.g. ``Fc0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of results to return (legacy paging). | |
| count | No | Number of items to return per page (legacy paging). | |
| limit | No | Maximum number of items to return per page (cursor paging). | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| team_id | No | Encoded team ID to list stars for; required if the token belongs to an org-level app (e.g. ``T0123``). | |
| detailed | No | When ``True``, return the full Slack response instead of a compacted summary. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | File to remove a star from (e.g. ``F0123``). | |
| channel | No | Channel, group, or DM to unstar, or the channel of a file/comment being unstarred (e.g. ``C0123``). | |
| timestamp | No | Timestamp of the message to unstar; requires ``channel`` (e.g. ``1700000000.000100``). | |
| file_comment | No | File comment to remove a star from (e.g. ``Fc0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| read | No | Mark the thread as read (``True``) or unread (``False``). | |
| channel | Yes | ID of the channel containing the thread (e.g. ``C0123``). | |
| thread_ts | Yes | Timestamp of the parent thread message (e.g. ``1700000000.000100``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of results to return (legacy paging). | |
| count | No | Number of items to return per page (legacy paging). | |
| limit | No | Maximum number of items to return per page (cursor paging). | |
| before | No | Return logs from before this Unix timestamp (in seconds). | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| team_id | No | Encoded team ID to get logs for; required if the token belongs to an org-level app (e.g. ``T0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | A single user to retrieve billable information for, rather than the whole team (e.g. ``U0123``). | |
| limit | No | Maximum number of items to return per page. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| team_id | No | Encoded team ID to get billable info for; required for org-level app tokens (e.g. ``T0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| target_team | Yes | Encoded team ID of the external organization to disconnect (e.g. ``T0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of items to return per page. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor``. | |
| sort_field | No | Field to sort results by (e.g. ``team_name``, ``last_active_timestamp``). | |
| sort_direction | No | Direction to sort results, ``asc`` or ``desc``. | |
| workspace_filter | No | Filter results to specific workspaces by encoded team ID (e.g. ``["T0123"]``). | |
| connection_status_filter | No | Filter results by connection status (e.g. ``CONNECTED``, ``DISCONNECTED``). | |
| slack_connect_pref_filter | No | Filter results by Slack Connect preferences (e.g. ``["approved_orgs_only"]``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Encoded team ID to fetch info for; defaults to the authed user's team (e.g. ``T0123``). | |
| domain | No | Workspace domain to look up info by, in place of ``team`` (e.g. ``acme`` for ``acme.slack.com``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of results to return. | |
| user | No | Filter logs to events performed by this user (e.g. ``U0123``). | |
| count | No | Number of items to return per page. | |
| app_id | No | Filter logs to this app's events (e.g. ``A0123``). | |
| team_id | No | Encoded team ID to get logs for; required if the token belongs to an org-level app (e.g. ``T0123``). | |
| service_id | No | Filter logs to this service's events. | |
| change_type | No | Filter logs by change type (e.g. ``added``, ``removed``, ``enabled``, ``disabled``, ``updated``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| visibility | No | Filter profile fields by visibility; one of ``all``, ``visible``, or ``hidden``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| current_ts | No | Timestamp anchoring the thread view to page from (e.g. ``1700000000.000100``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| refresh_token | Yes | The ``xoxe`` refresh token issued alongside the old app configuration token. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A name for the User Group (must be unique among User Groups). | |
| handle | No | A mention handle (must be unique among channels, users, and User Groups). | |
| team_id | No | Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``). | |
| channels | No | Comma-separated string of default channel IDs for the User Group (e.g. ``C0123,C0456``). | |
| description | No | A short description of the User Group. | |
| include_count | No | Include the number of users in each User Group in the response. | |
| enable_section | No | Whether to enable a section for the User Group. | |
| additional_channels | No | Comma-separated additional default channel IDs to add beyond ``channels`` (e.g. ``C0789``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | No | Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``). | |
| usergroup | Yes | The encoded ID of the User Group to disable (e.g. ``S0123``). | |
| include_count | No | Include the number of users in the User Group in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | No | Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``). | |
| usergroup | Yes | The encoded ID of the User Group to enable (e.g. ``S0123``). | |
| include_count | No | Include the number of users in the User Group in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | No | Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``). | |
| include_count | No | Include the number of users in each User Group in the response. | |
| include_users | No | Include the list of users for each User Group in the response. | |
| include_disabled | No | Include disabled User Groups in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | A name for the User Group (must be unique among User Groups). | |
| handle | No | A mention handle (must be unique among channels, users, and User Groups). | |
| team_id | No | Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``). | |
| channels | No | Comma-separated string of default channel IDs for the User Group (e.g. ``C0123,C0456``). | |
| usergroup | Yes | The encoded ID of the User Group to update (e.g. ``S0123``). | |
| description | No | A short description of the User Group. | |
| include_count | No | Include the number of users in the User Group in the response. | |
| enable_section | No | Whether to enable a section for the User Group. | |
| additional_channels | No | Comma-separated additional default channel IDs to add beyond ``channels`` (e.g. ``C0789``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team_id | No | Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``). | |
| usergroup | Yes | The encoded ID of the User Group to list users for (e.g. ``S0123``). | |
| include_disabled | No | Include disabled User Group users in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| users | Yes | Comma-separated user IDs representing the entire list of users for the User Group (e.g. ``U0123,U0456``). | |
| team_id | No | Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``). | |
| is_shared | No | Whether the User Group is shared across an org/Enterprise Grid. | |
| usergroup | Yes | The encoded ID of the User Group to update (e.g. ``S0123``). | |
| include_count | No | Include the number of users in the User Group in the response. | |
| additional_channels | No | Comma-separated channel IDs the User Group can add members to (e.g. ``C0123,C0456``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address of the person to invite. | ||
| channels | No | Comma-separated list of channel IDs to add the invitee to (e.g. ``C0123,C0456``). | |
| real_name | No | Full name to assign to the invited user. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | ID of the user to deactivate (e.g. ``U0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | Browse conversations by a specific user ID rather than the calling user (e.g. ``U0123``). | |
| limit | No | Maximum number of items to return per page (1-1000, default 100). | |
| types | No | Comma-separated conversation types to include: ``public_channel``, ``private_channel``, ``mpim``, ``im``. | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page. | |
| team_id | No | Encoded team ID to list conversations in, required for org-wide app tokens (e.g. ``T0123``). | |
| exclude_archived | No | Set to ``True`` to exclude archived channels from the list. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The email address of the user to look up (e.g. ``user@example.com``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | ID of the user to get presence info for; defaults to the authenticated user if omitted (e.g. ``U0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | ID of the user to get info about (e.g. ``U0123``). | |
| detailed | No | Set to ``True`` to return the full, uncompacted Slack response. | |
| include_locale | No | Set to ``True`` to receive the locale for the user in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of users to return per page (0-1000, default 0 for no limit). | |
| cursor | No | Pagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page. | |
| team_id | No | Encoded team ID to list users in, required if the token belongs to an org-wide app (e.g. ``T0123``). | |
| detailed | No | Set to ``True`` to return the full, uncompacted Slack response. | |
| include_locale | No | Set to ``True`` to receive the locale for users in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | An email address belonging to a user in the workspace (e.g. ``user@example.com``). | ||
| detailed | No | Set to ``True`` to return the full, uncompacted Slack response. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the preference to set. | |
| value | Yes | Value to assign to the preference. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | ID of user to retrieve profile info for; defaults to the authenticated user if omitted (e.g. ``U0123``). | |
| detailed | No | Set to ``True`` to return the full, uncompacted Slack response. | |
| include_labels | No | Set to ``True`` to include labels for each ID in custom profile fields. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of a single profile field to set (e.g. ``first_name``); use with ``value``. | |
| user | No | ID of user to change; requires admin scope, defaults to the authenticated user (e.g. ``U0123``). | |
| value | No | Value to set on a single profile field named by ``name``. | |
| profile | No | Map of profile fields to set, as key-value pairs (alternative to ``name``/``value``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| crop_w | No | Width/height of the square crop box, in pixels (the crop is always square). | |
| crop_x | No | X coordinate of the top-left corner of the crop box, in pixels. | |
| crop_y | No | Y coordinate of the top-left corner of the crop box, in pixels. | |
| image_base64 | Yes | The image to set, as a base64-encoded string of the raw image bytes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| presence | Yes | Presence to set, either ``auto`` or ``away``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | Yes | A view payload object (of type ``modal``). | |
| trigger_id | Yes | Exchange a trigger to post to the user (e.g. ``12345.98765.abcd2358fdea``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | No | A string representing view state, used to protect against race conditions when updating an existing view. | |
| view | Yes | A view payload object (of type ``home``). | |
| user_id | Yes | ID of the user you want to publish a view to (e.g. ``U0123``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | Yes | A view payload object (of type ``modal``) to push onto the existing view stack. | |
| trigger_id | Yes | Exchange a trigger to post to the user (e.g. ``12345.98765.abcd2358fdea``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | No | A string that represents view state to protect against possible race conditions when updating the view. | |
| view | Yes | A view payload object (of type ``modal``) with the updated contents. | |
| view_id | No | A unique identifier of the view to be updated, returned when the view was opened (e.g. ``VMHU10V25``). | |
| external_id | No | A unique identifier set by the developer when opening the view, identifying which view to update. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_featured_addC
Add featured workflows to a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the channel to feature the workflows in (e.g. ``C0123``). | |
| trigger_ids | Yes | Workflow trigger IDs to feature, max 15 (e.g. ``["Ft0123", "Ft0456"]``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the basic action of adding but reveals no behavioral traits such as permissions required, idempotency, or what happens if a workflow is already featured. 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.
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 efficient, though it could benefit from slightly more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the existence of an output schema, the description still lacks important context such as permissions, the effect on existing featured workflows, and how this differs from 'set'. It is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage with descriptions for both parameters. The description does not add any additional meaning beyond 'add', so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'add' and the resource 'featured workflows' with the target 'channel', distinguishing it from sibling tools like 'list' and 'remove'. However, it does not explicitly differentiate from 'set', which might imply a similar operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 only implies adding, but there are no when-not conditions or mentions of sibling tools like 'workflows_featured_set' that might be more appropriate for replacing the entire feature set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows_featured_listB
List featured workflows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 read-only nature, required permissions, or rate limits. For a listing tool, stating it is a safe read operation would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with one phrase, front-loading the purpose. Every word is necessary and no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there are no parameters and an output schema exists, the description does not mention what the output contains (e.g., list of workflow IDs, names). This is a gap for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description does not need to explain parameters. It adds no additional parameter meaning but is not required to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List featured workflows' clearly states the verb and resource. It distinguishes from sibling tools like add/remove/set by indicating a list operation, but could be more specific (e.g., 'all featured workflows').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Sibling tools exist for adding, removing, and setting featured workflows, but the description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows_featured_removeB
Remove featured workflows from a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the channel to remove the featured workflows from (e.g. ``C0123``). | |
| trigger_ids | Yes | Workflow trigger IDs to remove, max 15 (e.g. ``["Ft0123"]``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 required permissions, reversibility, or side effects. The agent is left without critical context 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.
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 benefit from additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the lack of usage guidance and behavioral transparency leaves gaps for a simple but potentially impactful mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema descriptions are comprehensive (100% coverage) and include examples. The tool description adds no additional parameter meaning, which is acceptable given the schema quality. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('featured workflows from a channel'), distinguishing it from siblings like 'workflows_featured_add' and 'workflows_featured_list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, or when not to use it. The description simply states the action without contextualizing it among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflows_featured_setA
Replace the featured workflows in a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the channel to set featured workflows in (e.g. ``C0123``). | |
| trigger_ids | Yes | Workflow trigger IDs that replace the channel's featured set, max 15; an empty list clears all featured workflows (e.g. ``["Ft0123"]``). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 says 'Replace' without detailing that it overwrites the current set, whether it is idempotent, or if it requires special scopes. The description lacks necessary 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words. It is front-loaded and efficiently conveys the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally complete given the simple two-parameter schema and existence of an output schema. However, it lacks behavioral details that would help the agent understand side effects, making it adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning to the parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Replace') and the resource ('featured workflows in a channel'). It is specific and distinguishes this tool from siblings like workflows_featured_add, workflows_featured_list, and workflows_featured_remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for replacing the set of featured workflows, but it does not explicitly guide when to use this tool versus the add or remove siblings, nor does it mention prerequisites like required permissions.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| outputs | No | Key-value object mapping output names from the step's configuration to their values. | |
| workflow_step_execute_id | Yes | Context identifier for the step execution, from the ``workflow_step_execute`` event. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| error | Yes | A JSON-based object with a ``message`` property that should contain a human-readable error message. | |
| workflow_step_execute_id | Yes | Context identifier for the step execution, from the ``workflow_step_execute`` event. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Key-value map of inputs from the user's step configuration; each value has a ``value`` property. | |
| outputs | No | A list of output objects (each with ``name``, ``type``, and ``label``) used during step execution. | |
| step_name | No | Optional override for the name shown to users in the Workflow Builder for this step. | |
| step_image_url | No | Optional override for the image shown to users in the Workflow Builder for this step. | |
| workflow_step_edit_id | Yes | A context identifier from the ``view_submission`` payload, mapping to editing a step. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
164 tool updates
v3.0.0- Changed
api_test2 fields changed- added
Input schema / properties / error / descriptionAdded value: +"Error response to return. If set, the call responds with an error of this value." - added
Input schema / properties / foo / descriptionAdded value: +"Example property to return in the response (echoed back as ``args.foo``)."
- Added
apps_activities_list - Changed
apps_event_authorizations_list3 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / event_context / descriptionAdded value: +"The ``event_context`` value from the event payload to look up authorizations for." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of authorizations to return."
- Changed
apps_manifest_create1 field changed- added
Input schema / properties / manifest / descriptionAdded value: +"The app manifest, as a JSON-encoded string, describing the app to create."
- Changed
apps_manifest_delete1 field changed- added
Input schema / properties / app_id / descriptionAdded value: +"ID of the app to delete (e.g. ``A0123``)."
- Changed
apps_manifest_export1 field changed- added
Input schema / properties / app_id / descriptionAdded value: +"ID of the app whose manifest to export (e.g. ``A0123``)."
- Changed
apps_manifest_update2 fields changed- added
Input schema / properties / app_id / descriptionAdded value: +"ID of the app to update (e.g. ``A0123``)." - added
Input schema / properties / manifest / descriptionAdded value: +"The updated app manifest, as a JSON-encoded string."
- Changed
apps_manifest_validate2 fields changed- added
Input schema / properties / app_id / descriptionAdded value: +"ID of an existing app to validate the manifest against (e.g. ``A0123``)." - added
Input schema / properties / manifest / descriptionAdded value: +"The app manifest, as a JSON-encoded string, to validate."
- Changed
apps_uninstall2 fields changed- added
Input schema / properties / client_id / descriptionAdded value: +"Your app's client ID." - added
Input schema / properties / client_secret / descriptionAdded value: +"Your app's client secret."
- Added
assistant_search_context - Added
assistant_search_info - Changed
assistant_threads_set_status3 fields changed- added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel containing the assistant thread (e.g. ``C0123``)." - added
Input schema / properties / status / descriptionAdded value: +"Status text to display, e.g. ``\"is thinking...\"``. Empty string clears the status." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent assistant thread (e.g. ``1700000000.000100``)."
- Changed
assistant_threads_set_suggested_prompts4 fields changed- added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel containing the assistant thread (e.g. ``C0123``)." - added
Input schema / properties / prompts / descriptionAdded value: +"List of prompt objects, each with ``title`` and ``message`` keys." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent assistant thread (e.g. ``1700000000.000100``)." - added
Input schema / properties / title / descriptionAdded value: +"Optional heading shown above the suggested prompts."
- Changed
assistant_threads_set_title3 fields changed- added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel containing the assistant thread (e.g. ``C0123``)." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent assistant thread (e.g. ``1700000000.000100``)." - added
Input schema / properties / title / descriptionAdded value: +"Title text to set for the thread."
- Changed
auth_revoke1 field changed- added
Input schema / properties / test / descriptionAdded value: +"When ``True``, validate the request but do not actually revoke the token."
- Changed
auth_teams_list3 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page." - added
Input schema / properties / include_icon / descriptionAdded value: +"When ``True``, include the workspace icon URLs in each team object." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of workspaces to return per page (default ``100``)."
- Added
blocks_validate - Changed
bookmarks_add7 fields changed- added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel to add the bookmark to (e.g. ``C0123``)." - added
Input schema / properties / emoji / descriptionAdded value: +"Emoji tag to apply to the bookmark (e.g. ``:books:``)." - added
Input schema / properties / entity_id / descriptionAdded value: +"ID of the entity being bookmarked (used for non-link bookmark types)." - added
Input schema / properties / link / descriptionAdded value: +"URL for the bookmark, required when ``type`` is ``link``." - added
Input schema / properties / parent_id / descriptionAdded value: +"ID of this bookmark's parent, used to nest it under a bookmark folder." - added
Input schema / properties / title / descriptionAdded value: +"Title (display name) for the bookmark." - added
Input schema / properties / type / descriptionAdded value: +"Type of the bookmark, e.g. ``link``."
- Changed
bookmarks_edit5 fields changed- added
Input schema / properties / bookmark_id / descriptionAdded value: +"ID of the bookmark to edit (e.g. ``Bk0123``)." - added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel containing the bookmark (e.g. ``C0123``)." - added
Input schema / properties / emoji / descriptionAdded value: +"New emoji tag for the bookmark (e.g. ``:books:``)." - added
Input schema / properties / link / descriptionAdded value: +"New URL for the bookmark." - added
Input schema / properties / title / descriptionAdded value: +"New title (display name) for the bookmark."
- Changed
bookmarks_list1 field changed- added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel whose bookmarks to list (e.g. ``C0123``)."
- Changed
bookmarks_remove2 fields changed- added
Input schema / properties / bookmark_id / descriptionAdded value: +"ID of the bookmark to remove (e.g. ``Bk0123``)." - added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel containing the bookmark (e.g. ``C0123``)."
- Changed
bots_info2 fields changed- added
Input schema / properties / bot / descriptionAdded value: +"ID of the bot to get info for (e.g. ``B0123``)." - added
Input schema / properties / team_id / descriptionAdded value: +"ID of the workspace to scope the lookup to, required for org-level tokens (e.g. ``T0123``)."
- Changed
bots_list2 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of items to return per page."
- Changed
calls_add8 fields changed- added
Input schema / properties / created_by / descriptionAdded value: +"ID of the user who created the Call; required when called with a bot token (e.g. ``U0123``)." - added
Input schema / properties / date_start / descriptionAdded value: +"Unix timestamp of when the Call started (e.g. ``1562002086``)." - added
Input schema / properties / desktop_app_join_url / descriptionAdded value: +"Alternate join URL used by Slack clients that have the provider's desktop app installed." - added
Input schema / properties / external_display_id / descriptionAdded value: +"Human-readable ID supplied by the third-party Call provider, displayed to users." - added
Input schema / properties / external_unique_id / descriptionAdded value: +"Unique ID for the Call supplied by the third-party Call provider." - added
Input schema / properties / join_url / descriptionAdded value: +"URL required for a client to join the Call (e.g. ``https://example.com/calls/1234``)." - added
Input schema / properties / title / descriptionAdded value: +"Display name for the Call." - added
Input schema / properties / users / descriptionAdded value: +"Participants to register; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url."
- Changed
calls_end2 fields changed- added
Input schema / properties / duration / descriptionAdded value: +"Call duration in seconds." - added
Input schema / properties / id / descriptionAdded value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)."
- Changed
calls_info1 field changed- added
Input schema / properties / id / descriptionAdded value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)."
- Changed
calls_participants_add2 fields changed- added
Input schema / properties / id / descriptionAdded value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)." - added
Input schema / properties / users / descriptionAdded value: +"Users added to the Call; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url."
- Changed
calls_participants_remove2 fields changed- added
Input schema / properties / id / descriptionAdded value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)." - added
Input schema / properties / users / descriptionAdded value: +"Users removed from the Call; each entry uses ``slack_id`` and/or external_id, display_name, avatar_url."
- Changed
calls_update4 fields changed- added
Input schema / properties / desktop_app_join_url / descriptionAdded value: +"Alternate URL used by Slack clients with the Call provider's desktop app installed." - added
Input schema / properties / id / descriptionAdded value: +"ID of the Call returned by ``calls.add`` (e.g. ``R0E69JAID``)." - added
Input schema / properties / join_url / descriptionAdded value: +"URL required for a client to join the Call (e.g. ``https://example.com/calls/1234567890``)." - added
Input schema / properties / title / descriptionAdded value: +"Display name for the Call."
- Changed
canvases_access_delete3 fields changed- added
Input schema / properties / canvas_id / descriptionAdded value: +"Encoded ID of the canvas to remove access from (e.g. ``F0123ABC456``)." - added
Input schema / properties / channel_ids / descriptionAdded value: +"Channel IDs whose access to the canvas should be removed (e.g. ``[\"C0123\"]``)." - added
Input schema / properties / user_ids / descriptionAdded value: +"User IDs whose access to the canvas should be removed (e.g. ``[\"U0123\"]``)."
- Changed
canvases_access_set4 fields changed- added
Input schema / properties / access_level / descriptionAdded value: +"Access level granted to the entities — ``read``, ``write``, or ``owner``." - added
Input schema / properties / canvas_id / descriptionAdded value: +"Encoded ID of the canvas to set access on (e.g. ``F0123ABC456``)." - added
Input schema / properties / channel_ids / descriptionAdded value: +"Channel IDs to grant the access level to (e.g. ``[\"C0123\"]``)." - added
Input schema / properties / user_ids / descriptionAdded value: +"User IDs to grant the access level to (e.g. ``[\"U0123\"]``)."
- Changed
canvases_create2 fields changed- added
Input schema / properties / document_content / descriptionAdded value: +"Structured content; an object with ``type`` of ``markdown`` and a ``markdown`` body field." - added
Input schema / properties / title / descriptionAdded value: +"Title of the newly created canvas."
- Changed
canvases_delete1 field changed- added
Input schema / properties / canvas_id / descriptionAdded value: +"Encoded ID of the canvas to delete (e.g. ``F0123ABC456``)."
- Changed
canvases_edit2 fields changed- added
Input schema / properties / canvas_id / descriptionAdded value: +"Encoded ID of the canvas to edit (e.g. ``F0123ABC456``)." - added
Input schema / properties / changes / descriptionAdded value: +"Ordered edit operations, each with an operation (insert/replace/delete), document_content, section_id."
- Changed
canvases_sections_lookup2 fields changed- added
Input schema / properties / canvas_id / descriptionAdded value: +"Encoded ID of the canvas to search within (e.g. ``F0123ABC456``)." - added
Input schema / properties / criteria / descriptionAdded value: +"Filter for which sections to return, e.g. a ``contains_text`` substring and/or ``section_types``."
- Changed
channels_delete1 field changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to delete (e.g. ``C0123``)."
- Changed
chat_append_stream5 fields changed- added
Input schema / properties / markdown_textAdded value: +{ + "description": "Markdown-formatted text chunk to append (max 12,000 characters).", + "type": "string" +} - removed
Input schema / properties / textRemoved value: -{ - "description": "Text chunk to append to the streaming message.", - "type": "string" -} - removed
Input schema / properties / thread_tsRemoved value: -{ - "description": "Timestamp of the parent thread that owns the stream (e.g. ``1700000000.000100``).", - "type": "string" -} - added
Input schema / properties / tsAdded value: +{ + "description": "Timestamp of the streaming message to append to (e.g. ``1700000000.000100``).", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "channel", - "thread_ts", - "text" -]New value: +[ + "channel", + "ts", + "markdown_text" +]
- Changed
chat_command3 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel in which to run the command (e.g. ``C0123``)." - added
Input schema / properties / command / descriptionAdded value: +"The slash command to execute, including the leading slash (e.g. ``/remind``)." - added
Input schema / properties / text / descriptionAdded value: +"Arguments passed to the slash command."
- Changed
chat_start_stream3 fields changed- added
Input schema / properties / markdown_textAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Initial markdown-formatted text for the stream (max 12,000 characters)." +} - added
Input schema / properties / recipient_team_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Team the receiving user belongs to (e.g. ``T0123``)." +} - added
Input schema / properties / recipient_user_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "User to receive the streaming text; required when streaming to a channel (e.g. ``U0123``)." +}
- Changed
chat_stop_stream3 fields changed- removed
Input schema / properties / thread_tsRemoved value: -{ - "description": "Timestamp of the parent thread whose stream should be stopped (e.g. ``1700000000.000100``).", - "type": "string" -} - added
Input schema / properties / tsAdded value: +{ + "description": "Timestamp of the streaming message to stop (e.g. ``1700000000.000100``).", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "channel", - "thread_ts" -]New value: +[ + "channel", + "ts" +]
- Removed
chat_stream - Changed
client_counts2 fields changed- added
Input schema / properties / org_wide_aware / descriptionAdded value: +"Include counts across all workspaces in an Enterprise org." - added
Input schema / properties / thread_count_by_last_read / descriptionAdded value: +"Count unread threads relative to the last-read marker."
- Changed
conversations_external_invite_permissions_set3 fields changed- changed
Input schema / properties / channel / descriptionPrevious value: -"ID of the Slack Connect channel (e.g. C0123)."New value: +"ID of the Slack Connect channel (e.g. ``C0123``)." - added
Input schema / properties / target_teamAdded value: +{ + "description": "Encoded team ID of the target team to change permissions for (e.g. ``T0123``).", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "channel", - "action" -]New value: +[ + "channel", + "action", + "target_team" +]
- Changed
conversations_request_shared_invite_approve4 fields changed- changed
Input schema / properties / channel_id / descriptionPrevious 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." - removed
Input schema / properties / is_approvedRemoved value: -{ - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Whether the request is approved. Set False to record a rejection." -} - added
Input schema / properties / is_external_limitedAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Restrict the invited team to post-only (limited) access." +} - changed
Input schema / properties / message / descriptionPrevious value: -"Optional message object to attach to the approval."New value: +"Optional message object (``{\"text\": ..., \"is_override\": ...}``) to attach to the approval."
- Changed
conversations_request_shared_invite_deny2 fields changed- changed
Input schema / properties / message / anyOfPrevious value: -[ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / message / descriptionPrevious value: -"Optional message object explaining the denial."New value: +"Optional message explaining why the request was denied."
- Changed
conversations_view2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to view (e.g. ``C0123``)." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full, uncompacted response instead of the compacted summary."
- Changed
dialog_open2 fields changed- added
Input schema / properties / dialog / descriptionAdded value: +"Dialog definition for the modal, including ``title``, ``callback_id``, and ``elements``." - added
Input schema / properties / trigger_id / descriptionAdded value: +"Trigger ID from a user interaction authorizing the dialog; expires after 3 seconds."
- Changed
dnd_info2 fields changed- added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to fetch the status from, required for org-wide tokens (e.g. ``T0123``)." - added
Input schema / properties / user / descriptionAdded value: +"ID of the user to fetch status for; defaults to the authenticated user (e.g. ``U0123``)."
- Changed
dnd_set_snooze1 field changed- added
Input schema / properties / num_minutes / descriptionAdded value: +"Number of minutes, starting now, to snooze notifications for (e.g. ``60``)."
- Changed
dnd_team_info2 fields changed- added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID the users belong to, required for org-wide tokens (e.g. ``T0123``)." - added
Input schema / properties / users / descriptionAdded value: +"Comma-separated list of user IDs to fetch Do Not Disturb status for (e.g. ``U0123,U0456``)."
- Changed
drafts_create6 fields changed- added
Input schema / properties / broadcast / descriptionAdded value: +"Also send the threaded reply to the channel when posted (requires ``thread_ts``)." - added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel the draft is addressed to (e.g. ``C0123``)." - added
Input schema / properties / date_scheduled / descriptionAdded value: +"Unix epoch timestamp (seconds) to schedule the draft for sending." - added
Input schema / properties / file_ids / descriptionAdded value: +"IDs of already-uploaded files to attach to the draft (e.g. ``F0123``)." - added
Input schema / properties / text / descriptionAdded value: +"Draft message body text." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent thread to draft a reply to (e.g. ``1700000000.000100``)."
- Changed
drafts_delete2 fields changed- added
Input schema / properties / client_last_updated_ts / descriptionAdded value: +"The draft's last-updated timestamp (7-decimal-place Slack draft ts)." - added
Input schema / properties / draft_id / descriptionAdded value: +"ID of the draft to delete."
- Changed
drafts_list2 fields changed- added
Input schema / properties / is_active / descriptionAdded value: +"Only return drafts that are currently active (unsent)." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of drafts to return."
- Changed
drafts_update7 fields changed- added
Input schema / properties / broadcast / descriptionAdded value: +"Also send the threaded reply to the channel when posted (requires ``thread_ts``)." - added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel the draft is addressed to (e.g. ``C0123``)." - added
Input schema / properties / client_last_updated_ts / descriptionAdded value: +"The draft's last-updated timestamp (7-decimal-place Slack draft ts)." - added
Input schema / properties / draft_id / descriptionAdded value: +"ID of the draft to update." - added
Input schema / properties / file_ids / descriptionAdded value: +"IDs of already-uploaded files to attach to the draft (e.g. ``F0123``)." - added
Input schema / properties / text / descriptionAdded value: +"Updated draft message body text." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent thread to draft a reply to (e.g. ``1700000000.000100``)."
- Changed
emoji_add2 fields changed- added
Input schema / properties / image_url / descriptionAdded value: +"URL of the image to download and upload as the emoji." - added
Input schema / properties / name / descriptionAdded value: +"Name for the new emoji, without colons (e.g. ``party_parrot``)."
- Changed
emoji_admin_list2 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Number of emoji to return per page." - added
Input schema / properties / page / descriptionAdded value: +"1-based page number of results to return."
- Changed
emoji_list1 field changed- added
Input schema / properties / include_categories / descriptionAdded value: +"Include the standard emoji categories in the response when ``True``."
- Changed
emoji_remove1 field changed- added
Input schema / properties / name / descriptionAdded value: +"Name of the emoji to remove, without colons (e.g. ``party_parrot``)."
- Changed
entity_present_details9 fields changed- removed
Input schema / properties / app_idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / entity_idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / entity_typeRemoved value: -{ - "type": "string" -} - added
Input schema / properties / errorAdded 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." +} - added
Input schema / properties / metadataAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Flexpane metadata keyed by entity ID, each describing the entity to present." +} - added
Input schema / properties / trigger_idAdded value: +{ + "description": "Reference to the user action that initiated the request.", + "type": "string" +} - added
Input schema / properties / user_auth_requiredAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether the user must authenticate before details can be shown." +} - added
Input schema / properties / user_auth_urlAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom URL where the user can authenticate." +} - changed
Input schema / requiredPrevious value: -[ - "app_id", - "entity_id", - "entity_type" -]New value: +[ + "trigger_id" +]
- Changed
files_comments_delete2 fields changed- added
Input schema / properties / file / descriptionAdded value: +"ID of the file the comment belongs to (e.g. ``F0123``)." - added
Input schema / properties / id / descriptionAdded value: +"ID of the comment to delete."
- Changed
files_complete_upload_external4 fields changed- added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel to share the uploaded files into (e.g. ``C0123``)." - added
Input schema / properties / files / descriptionAdded value: +"File objects to finalize, each with an ``id`` from ``files.getUploadURLExternal`` and optional ``title``." - added
Input schema / properties / initial_comment / descriptionAdded value: +"Message text to post alongside the shared files." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent message to share the files into as a thread reply (e.g. ``1700000000.00``)."
- Changed
files_delete1 field changed- added
Input schema / properties / file / descriptionAdded value: +"ID of the file to delete (e.g. ``F0123``)."
- Changed
files_edit4 fields changed- added
Input schema / properties / content / descriptionAdded value: +"New body content of the file." - added
Input schema / properties / file / descriptionAdded value: +"ID of the file to edit (e.g. ``F0123``)." - added
Input schema / properties / filetype / descriptionAdded value: +"New file type (Slack-internal file type identifier, e.g. ``text``)." - added
Input schema / properties / title / descriptionAdded value: +"New title for the file."
- Changed
files_get_upload_url_external4 fields changed- added
Input schema / properties / alt_txt / descriptionAdded value: +"Description of the image for screen-reader accessibility." - added
Input schema / properties / filename / descriptionAdded value: +"Name of the file being uploaded (e.g. ``report.pdf``)." - added
Input schema / properties / length / descriptionAdded value: +"Size of the file in bytes." - added
Input schema / properties / snippet_type / descriptionAdded value: +"Syntax type of a snippet being uploaded (e.g. ``python``)."
- Changed
files_info6 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Number of comments to return per page (deprecated pagination)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a prior response's ``response_metadata.next_cursor``." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full Slack response instead of the compacted summary when ``True``." - added
Input schema / properties / file / descriptionAdded value: +"ID of the file to get info about (e.g. ``F0123``)." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of comments to return per page." - added
Input schema / properties / page / descriptionAdded value: +"Page number of comments to return (deprecated pagination)."
- Changed
files_list10 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"Filter files to those shared in this channel (e.g. ``C0123``)." - added
Input schema / properties / count / descriptionAdded value: +"Number of files to return per page." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full Slack response instead of the compacted summary when ``True``." - added
Input schema / properties / page / descriptionAdded value: +"Page number of results to return." - added
Input schema / properties / show_files_hidden_by_limit / descriptionAdded value: +"Include files hidden due to the free-plan message/file limit when ``True``." - added
Input schema / properties / team_id / descriptionAdded value: +"ID of the workspace to list files for, required for org-wide tokens (e.g. ``T0123``)." - added
Input schema / properties / ts_from / descriptionAdded value: +"Filter files created after this Unix timestamp." - added
Input schema / properties / ts_to / descriptionAdded value: +"Filter files created before this Unix timestamp." - added
Input schema / properties / types / descriptionAdded value: +"Comma-separated file types to filter by (e.g. ``images,pdfs``; also ``all``, ``snippets``, ``gdocs``)." - added
Input schema / properties / user / descriptionAdded value: +"Filter files to those created by this user (e.g. ``U0123``)."
- Changed
files_remote_add6 fields changed- added
Input schema / properties / external_id / descriptionAdded value: +"Unique identifier for the file in your app's storage (e.g. ``123abc``)." - added
Input schema / properties / external_url / descriptionAdded value: +"URL where the remote file can be accessed (e.g. ``https://example.com/files/123``)." - added
Input schema / properties / filetype / descriptionAdded value: +"File type identifier (e.g. ``doc``, ``pdf``)." - added
Input schema / properties / indexable_file_contents / descriptionAdded value: +"Plain-text contents of the file used to make it searchable in Slack." - added
Input schema / properties / preview_image / descriptionAdded value: +"Image to use as the file's preview thumbnail." - added
Input schema / properties / title / descriptionAdded value: +"Title of the file shown in Slack."
- Changed
files_remote_info2 fields changed- added
Input schema / properties / external_id / descriptionAdded value: +"Identifier of the remote file in your app's storage (e.g. ``123abc``)." - added
Input schema / properties / file / descriptionAdded value: +"ID of the file as assigned by Slack (e.g. ``F0123``)."
- Changed
files_remote_list5 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"Filter to remote files shared in this channel (e.g. ``C0123``)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor for the next page, from a prior response's ``response_metadata.next_cursor``." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of files to return per page." - added
Input schema / properties / ts_from / descriptionAdded value: +"Filter files created after this Unix timestamp." - added
Input schema / properties / ts_to / descriptionAdded value: +"Filter files created before this Unix timestamp."
- Changed
files_remote_remove2 fields changed- added
Input schema / properties / external_id / descriptionAdded value: +"Identifier of the remote file in your app's storage (e.g. ``123abc``)." - added
Input schema / properties / file / descriptionAdded value: +"ID of the file as assigned by Slack (e.g. ``F0123``)."
- Changed
files_remote_share3 fields changed- added
Input schema / properties / channels / descriptionAdded value: +"Comma-separated list of channel IDs to share the file into (e.g. ``C0123,C0456``)." - added
Input schema / properties / external_id / descriptionAdded value: +"Identifier of the remote file in your app's storage (e.g. ``123abc``)." - added
Input schema / properties / file / descriptionAdded value: +"ID of the file as assigned by Slack (e.g. ``F0123``)."
- Changed
files_remote_update7 fields changed- added
Input schema / properties / external_id / descriptionAdded value: +"Identifier of the remote file in your app's storage (e.g. ``123abc``)." - added
Input schema / properties / external_url / descriptionAdded value: +"URL where the remote file can be accessed (e.g. ``https://example.com/files/123``)." - added
Input schema / properties / file / descriptionAdded value: +"ID of the file as assigned by Slack (e.g. ``F0123``)." - added
Input schema / properties / filetype / descriptionAdded value: +"File type identifier (e.g. ``doc``, ``pdf``)." - added
Input schema / properties / indexable_file_contents / descriptionAdded value: +"Plain-text contents of the file used to make it searchable in Slack." - added
Input schema / properties / preview_image / descriptionAdded value: +"Image to use as the file's preview thumbnail." - added
Input schema / properties / title / descriptionAdded value: +"Title of the file shown in Slack."
- Changed
files_revoke_public_url1 field changed- added
Input schema / properties / file / descriptionAdded value: +"ID of the file to revoke public sharing for (e.g. ``F0123``)."
- Changed
files_share_legacy2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to share the file into (e.g. ``C0123``)." - added
Input schema / properties / file / descriptionAdded value: +"ID of the file to share (e.g. ``F0123``)."
- Changed
files_shared_public_url1 field changed- added
Input schema / properties / file / descriptionAdded value: +"ID of the file to enable public sharing for (e.g. ``F0123``)."
- Changed
files_upload7 fields changed- added
Input schema / properties / channels / descriptionAdded value: +"Comma-separated list of channel IDs to share the file into (e.g. ``C0123,C0456``)." - added
Input schema / properties / content / descriptionAdded value: +"File contents as a string; using this creates an editable text/snippet file instead of a binary upload." - added
Input schema / properties / filename / descriptionAdded value: +"Name of the file (e.g. ``report.pdf``)." - added
Input schema / properties / filetype / descriptionAdded value: +"File type identifier (e.g. ``python``, ``pdf``)." - added
Input schema / properties / initial_comment / descriptionAdded value: +"Message text to post alongside the file." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent message to share the file into as a thread reply (e.g. ``1700000000.00``)." - added
Input schema / properties / title / descriptionAdded value: +"Title of the file shown in Slack."
- Changed
files_upload_v214 fields changed- added
Input schema / properties / channelAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "ID of the channel to share the uploaded file into (e.g. ``C0123``)." +} - removed
Input schema / properties / channel_idRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null -} - removed
Input schema / properties / content / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / content / defaultRemoved value: -null - added
Input schema / properties / content / descriptionAdded value: +"File contents to upload as a string." - added
Input schema / properties / content / typeAdded value: +"string" - added
Input schema / properties / filename / descriptionAdded value: +"Name of the file (e.g. ``notes.txt``)." - removed
Input schema / properties / filetypeRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null -} - added
Input schema / properties / initial_comment / descriptionAdded value: +"Message text to post alongside the file." - removed
Input schema / properties / lengthRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null -} - added
Input schema / properties / snippet_type / descriptionAdded value: +"Syntax type of a snippet being uploaded (e.g. ``python``)." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent message to share the file into as a thread reply (e.g. ``1700000000.0001``)." - added
Input schema / properties / title / descriptionAdded value: +"Title of the file shown in Slack." - added
Input schema / requiredAdded value: +[ + "content" +]
- Changed
functions_complete_error2 fields changed- added
Input schema / properties / error / descriptionAdded value: +"Human-readable error message describing why the function failed." - added
Input schema / properties / function_execution_id / descriptionAdded value: +"ID of the function execution to fail, from the ``function_executed`` event."
- Changed
functions_complete_success7 fields changed- added
Input schema / properties / function_execution_id / descriptionAdded value: +"ID of the function execution to complete, from the ``function_executed`` event." - added
Input schema / properties / outputs / additionalPropertiesAdded value: +true - removed
Input schema / properties / outputs / anyOfRemoved value: -[ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } -] - removed
Input schema / properties / outputs / defaultRemoved value: -null - added
Input schema / properties / outputs / descriptionAdded value: +"Mapping of output names to values, matching the output parameters declared in the function definition." - added
Input schema / properties / outputs / typeAdded value: +"object" - changed
Input schema / requiredPrevious value: -[ - "function_execution_id" -]New value: +[ + "function_execution_id", + "outputs" +]
- Added
messages_list - Changed
migration_exchange3 fields changed- added
Input schema / properties / team_id / descriptionAdded value: +"Specify a team ID to scope the lookup, required for Enterprise Grid org tokens." - added
Input schema / properties / to_old / descriptionAdded value: +"Set to ``True`` to map global IDs back to their local (legacy) workspace IDs." - added
Input schema / properties / users / descriptionAdded value: +"Comma-separated list of user IDs (up to 400) to translate (e.g. ``U0123,U0456``)."
- Changed
oauth_access5 fields changed- added
Input schema / properties / client_id / descriptionAdded value: +"Your app's client ID." - added
Input schema / properties / client_secret / descriptionAdded value: +"Your app's client secret." - added
Input schema / properties / code / descriptionAdded value: +"The OAuth verifier code received via the OAuth callback." - added
Input schema / properties / redirect_uri / descriptionAdded value: +"Must match the value used to request the code." - added
Input schema / properties / single_channel / descriptionAdded value: +"Request a single-channel installation token."
- Changed
oauth_v2_access7 fields changed- added
Input schema / properties / client_id / descriptionAdded value: +"Your app's client ID." - added
Input schema / properties / client_secret / descriptionAdded value: +"Your app's client secret." - added
Input schema / properties / code / descriptionAdded value: +"The OAuth callback code (omit when refreshing)." - added
Input schema / properties / code_verifierAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The PKCE code verifier, when the authorization request used PKCE." +} - added
Input schema / properties / grant_type / descriptionAdded value: +"``authorization_code`` (default) or ``refresh_token``." - added
Input schema / properties / redirect_uri / descriptionAdded value: +"Must match the value used to request the code." - added
Input schema / properties / refresh_token / descriptionAdded value: +"The refresh token, when ``grant_type=refresh_token``."
- Changed
oauth_v2_exchange3 fields changed- added
Input schema / properties / client_id / descriptionAdded value: +"Your app's client ID." - added
Input schema / properties / client_secret / descriptionAdded value: +"Your app's client secret." - added
Input schema / properties / token / descriptionAdded value: +"The legacy (non-expiring) access token to exchange."
- Added
oauth_v2_user_access - Changed
openid_connect_token7 fields changed- added
Input schema / properties / client_id / descriptionAdded value: +"Issued client ID for your Slack app." - added
Input schema / properties / client_secret / descriptionAdded value: +"Issued client secret for your Slack app." - added
Input schema / properties / code / descriptionAdded value: +"The temporary authorization code returned via the OAuth redirect." - added
Input schema / properties / code_verifierAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The PKCE code verifier, when the authorization request used PKCE." +} - added
Input schema / properties / grant_type / descriptionAdded value: +"The grant type: ``authorization_code`` (default) or ``refresh_token``." - added
Input schema / properties / redirect_uri / descriptionAdded value: +"Redirect URI used in the initial authorization request; must match exactly." - added
Input schema / properties / refresh_token / descriptionAdded value: +"The refresh token, used when ``grant_type`` is ``refresh_token``."
- Changed
pins_add2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to pin the item in (e.g. ``C0123``)." - added
Input schema / properties / timestamp / descriptionAdded value: +"Timestamp of the message to pin (e.g. ``1700000000.000100``)."
- Changed
pins_list2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel whose pinned items to list (e.g. ``C0123``)." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full unmodified Slack response instead of a compacted summary."
- Changed
pins_remove2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel containing the pinned item (e.g. ``C0123``)." - added
Input schema / properties / timestamp / descriptionAdded value: +"Timestamp of the pinned message to remove (e.g. ``1700000000.000100``)."
- Changed
reactions_add3 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"Channel where the target message was posted (e.g. ``C0123``)." - added
Input schema / properties / name / descriptionAdded value: +"Reaction (emoji) name, without surrounding colons (e.g. ``thumbsup``)." - added
Input schema / properties / timestamp / descriptionAdded value: +"Timestamp of the message to react to (e.g. ``1700000000.000100``)."
- Changed
reactions_get6 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"Channel of the target message (e.g. ``C0123``). Required when getting reactions for a message." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full Slack response instead of a compacted summary." - added
Input schema / properties / file / descriptionAdded value: +"File to get reactions for (e.g. ``F0123``)." - added
Input schema / properties / file_comment / descriptionAdded value: +"File comment to get reactions for (e.g. ``Fc0123``)." - added
Input schema / properties / full / descriptionAdded value: +"Return the complete reaction list, not a truncated one." - added
Input schema / properties / timestamp / descriptionAdded value: +"Timestamp of the message (e.g. ``1700000000.000100``). Used together with ``channel``."
- Changed
reactions_list8 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Number of items to return per page (deprecated; prefer ``limit`` with ``cursor``)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from the previous response's ``response_metadata.next_cursor`` (e.g. ``dXNlcjpV``)." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full Slack response instead of a compacted summary." - added
Input schema / properties / full / descriptionAdded value: +"Return the complete reaction list for each item, not a truncated one." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of items to return per page." - added
Input schema / properties / page / descriptionAdded value: +"Page number of results to return (deprecated; prefer ``limit`` with ``cursor``)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to list reactions in, required for org-wide app tokens (e.g. ``T0123``)." - added
Input schema / properties / user / descriptionAdded value: +"User whose reactions to list; defaults to the authenticated user (e.g. ``U0123``)."
- Changed
reactions_remove5 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"Channel where the message to remove the reaction from was posted (e.g. ``C0123``)." - added
Input schema / properties / file / descriptionAdded value: +"File to remove the reaction from (e.g. ``F0123``)." - added
Input schema / properties / file_comment / descriptionAdded value: +"File comment to remove the reaction from (e.g. ``Fc0123``)." - added
Input schema / properties / name / descriptionAdded value: +"Reaction (emoji) name to remove, without surrounding colons (e.g. ``thumbsup``)." - added
Input schema / properties / timestamp / descriptionAdded value: +"Timestamp of the message (e.g. ``1700000000.000100``). Used together with ``channel``."
- Changed
reminders_add5 fields changed- added
Input schema / properties / recurrence / descriptionAdded value: +"Recurring schedule, e.g. ``{\"frequency\": \"weekly\", \"weekdays\": [\"monday\"]}``." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``)." - added
Input schema / properties / text / descriptionAdded value: +"The content of the reminder (e.g. ``eat a banana``)." - added
Input schema / properties / time / descriptionAdded value: +"When to trigger — a Unix timestamp, seconds from now, or natural language (e.g. ``in 15 minutes``)." - added
Input schema / properties / user / descriptionAdded value: +"User who will receive the reminder; defaults to the authenticated user (e.g. ``U0123``)."
- Changed
reminders_complete2 fields changed- added
Input schema / properties / reminder / descriptionAdded value: +"The ID of the reminder to mark complete (e.g. ``Rm0123``)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``)."
- Changed
reminders_delete2 fields changed- added
Input schema / properties / reminder / descriptionAdded value: +"The ID of the reminder to delete (e.g. ``Rm0123``)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``)."
- Changed
reminders_info2 fields changed- added
Input schema / properties / reminder / descriptionAdded value: +"The ID of the reminder to get info for (e.g. ``Rm0123``)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID the reminder belongs to, required for org-wide app tokens (e.g. ``T0123``)."
- Changed
reminders_list1 field changed- added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to list reminders for, required for org-wide app tokens (e.g. ``T0123``)."
- Changed
resolve_names2 fields changed- added
Input schema / properties / channel_ids / descriptionAdded value: +"Channel IDs to resolve to display names (e.g. ``[\"C0123\"]``)." - added
Input schema / properties / user_ids / descriptionAdded value: +"User IDs to resolve to display names (e.g. ``[\"U0123\"]``)."
- Changed
rtm_connect2 fields changed- added
Input schema / properties / batch_presence_aware / descriptionAdded value: +"Batch presence deliveries, only for users subscribed via ``presence_sub`` events." - added
Input schema / properties / presence_sub / descriptionAdded value: +"Only deliver presence events for users subscribed via a ``presence_sub`` event."
- Changed
rtm_start7 fields changed- added
Input schema / properties / batch_presence_aware / descriptionAdded value: +"Batch presence deliveries, only for users subscribed via ``presence_sub`` events." - added
Input schema / properties / include_locale / descriptionAdded value: +"Include locale information for users and IMs in the returned data." - added
Input schema / properties / mpim_aware / descriptionAdded value: +"Return group-DM (multi-party IM) conversations in the returned data." - added
Input schema / properties / no_latest / descriptionAdded value: +"Exclude latest timestamps for channels, groups, MPIMs, and IMs to reduce payload size." - added
Input schema / properties / no_unreads / descriptionAdded value: +"Skip unread counts for each channel to reduce payload size." - added
Input schema / properties / presence_sub / descriptionAdded value: +"Only deliver presence events for users subscribed via a ``presence_sub`` event." - added
Input schema / properties / simple_latest / descriptionAdded value: +"Return only the latest message timestamp per channel, omitting the full message object."
- Changed
saved_add4 fields changed- added
Input schema / properties / date_due / descriptionAdded value: +"Unix epoch timestamp (seconds) for an optional reminder/due date." - added
Input schema / properties / item_id / descriptionAdded value: +"ID of the item's container, e.g. the channel ID for a message (``C0123``)." - added
Input schema / properties / item_type / descriptionAdded value: +"Type of item to save, e.g. ``message``." - added
Input schema / properties / ts / descriptionAdded value: +"Timestamp of the item to save (e.g. ``1700000000.000100``)."
- Changed
saved_delete3 fields changed- added
Input schema / properties / item_id / descriptionAdded value: +"ID of the item's container, e.g. the channel ID for a message (``C0123``)." - added
Input schema / properties / item_type / descriptionAdded value: +"Type of saved item to remove, e.g. ``message``." - added
Input schema / properties / ts / descriptionAdded value: +"Timestamp of the saved item to remove (e.g. ``1700000000.000100``)."
- Changed
saved_list3 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full, uncompacted response instead of the compacted summary." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of saved items to return."
- Changed
search_modules_channels3 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Number of results to return per page." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / query / descriptionAdded value: +"Search query string matching channel names and topics."
- Changed
search_modules_dms3 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Number of results to return per page." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / query / descriptionAdded value: +"Search query string matched against direct-message content."
- Changed
search_modules_files3 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Number of results to return per page." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / query / descriptionAdded value: +"Search query string matching file names and contents."
- Changed
search_modules_messages4 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Number of results to return per page." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full, uncompacted response instead of the compacted summary." - added
Input schema / properties / query / descriptionAdded value: +"Search query string, supporting Slack search operators (e.g. ``from:@user``)."
- Changed
search_modules_people3 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Number of results to return per page." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / query / descriptionAdded value: +"Search query string matching member names, titles, and departments."
- Changed
slack_lists_access_delete3 fields changed- added
Input schema / properties / channel_ids / descriptionAdded value: +"Channel IDs to revoke access for (e.g. ``[\"C0123\"]``)." - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) to remove access from (e.g. ``F0123``)." - added
Input schema / properties / user_ids / descriptionAdded value: +"User IDs to revoke access for (e.g. ``[\"U0123\"]``)."
- Changed
slack_lists_access_set4 fields changed- added
Input schema / properties / access_level / descriptionAdded value: +"Access level to grant; one of ``read``, ``write``, or ``owner``." - added
Input schema / properties / channel_ids / descriptionAdded value: +"Channel IDs to grant access to (e.g. ``[\"C0123\"]``)." - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) to set access on (e.g. ``F0123``)." - added
Input schema / properties / user_ids / descriptionAdded value: +"User IDs to grant access to (e.g. ``[\"U0123\"]``)."
- Changed
slack_lists_create5 fields changed- removed
Input schema / properties / columnsRemoved value: -{ - "anyOf": [ - { - "items": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null -} - removed
Input schema / properties / descriptionRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null -} - added
Input schema / properties / description_blocksAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Rich-text blocks describing the list." +} - added
Input schema / properties / name / descriptionAdded value: +"Name (title) of the list to create." - added
Input schema / properties / schemaAdded 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." +}
- Changed
slack_lists_download_get2 fields changed- added
Input schema / properties / job_id / descriptionAdded value: +"ID of the download job previously started for the list." - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) being downloaded (e.g. ``F0123``)."
- Changed
slack_lists_download_start2 fields changed- added
Input schema / properties / include_archivedAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "When ``True``, include archived items in the download." +} - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) to download (e.g. ``F0123``)."
- Changed
slack_lists_items_create3 fields changed- removed
Input schema / properties / column_valuesRemoved value: -{ - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null -} - added
Input schema / properties / initial_fieldsAdded 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." +} - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) to add the item to (e.g. ``F0123``)."
- Changed
slack_lists_items_delete2 fields changed- added
Input schema / properties / item_id / descriptionAdded value: +"ID of the list item (record) to delete." - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) containing the item (e.g. ``F0123``)."
- Changed
slack_lists_items_delete_multiple2 fields changed- added
Input schema / properties / item_ids / descriptionAdded value: +"IDs of the list items (records) to delete." - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) containing the items (e.g. ``F0123``)."
- Changed
slack_lists_items_info3 fields changed- added
Input schema / properties / include_is_subscribedAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "When ``True``, include whether the caller is subscribed to the item." +} - added
Input schema / properties / item_id / descriptionAdded value: +"ID of the list item (record) to fetch." - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) containing the item (e.g. ``F0123``)."
- Changed
slack_lists_items_list4 fields changed- added
Input schema / properties / archivedAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "When ``True``, return archived items instead of active ones." +} - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of items to return per page." - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) whose items to return (e.g. ``F0123``)."
- Changed
slack_lists_items_update5 fields changed- added
Input schema / properties / cellsAdded 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" +} - removed
Input schema / properties / column_valuesRemoved value: -{ - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "default": null -} - removed
Input schema / properties / item_idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) containing the item (e.g. ``F0123``)." - changed
Input schema / requiredPrevious value: -[ - "item_id", - "list_id" -]New value: +[ + "list_id", + "cells" +]
- Changed
slack_lists_update4 fields changed- removed
Input schema / properties / descriptionRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null -} - added
Input schema / properties / description_blocksAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "New rich-text blocks describing the list." +} - added
Input schema / properties / list_id / descriptionAdded value: +"ID of the list (a file ID) to update (e.g. ``F0123``)." - added
Input schema / properties / name / descriptionAdded value: +"New name (title) for the list."
- Changed
stars_add4 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"Channel, group, or DM to star, or the channel of a file/comment being starred (e.g. ``C0123``)." - added
Input schema / properties / file / descriptionAdded value: +"File to add a star to (e.g. ``F0123``)." - added
Input schema / properties / file_comment / descriptionAdded value: +"File comment to add a star to (e.g. ``Fc0123``)." - added
Input schema / properties / timestamp / descriptionAdded value: +"Timestamp of the message to star; requires ``channel`` (e.g. ``1700000000.000100``)."
- Changed
stars_list6 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Number of items to return per page (legacy paging)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / detailed / descriptionAdded value: +"When ``True``, return the full Slack response instead of a compacted summary." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of items to return per page (cursor paging)." - added
Input schema / properties / page / descriptionAdded value: +"Page number of results to return (legacy paging)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to list stars for; required if the token belongs to an org-level app (e.g. ``T0123``)."
- Changed
stars_remove4 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"Channel, group, or DM to unstar, or the channel of a file/comment being unstarred (e.g. ``C0123``)." - added
Input schema / properties / file / descriptionAdded value: +"File to remove a star from (e.g. ``F0123``)." - added
Input schema / properties / file_comment / descriptionAdded value: +"File comment to remove a star from (e.g. ``Fc0123``)." - added
Input schema / properties / timestamp / descriptionAdded value: +"Timestamp of the message to unstar; requires ``channel`` (e.g. ``1700000000.000100``)."
- Changed
subscriptions_thread_mark3 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel containing the thread (e.g. ``C0123``)." - added
Input schema / properties / read / descriptionAdded value: +"Mark the thread as read (``True``) or unread (``False``)." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent thread message (e.g. ``1700000000.000100``)."
- Changed
team_access_logs6 fields changed- added
Input schema / properties / before / descriptionAdded value: +"Return logs from before this Unix timestamp (in seconds)." - added
Input schema / properties / count / descriptionAdded value: +"Number of items to return per page (legacy paging)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of items to return per page (cursor paging)." - added
Input schema / properties / page / descriptionAdded value: +"Page number of results to return (legacy paging)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to get logs for; required if the token belongs to an org-level app (e.g. ``T0123``)."
- Changed
team_billable_info4 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of items to return per page." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to get billable info for; required for org-level app tokens (e.g. ``T0123``)." - added
Input schema / properties / user / descriptionAdded value: +"A single user to retrieve billable information for, rather than the whole team (e.g. ``U0123``)."
- Changed
team_external_teams_disconnect1 field changed- added
Input schema / properties / target_team / descriptionAdded value: +"Encoded team ID of the external organization to disconnect (e.g. ``T0123``)."
- Changed
team_external_teams_list7 fields changed- added
Input schema / properties / connection_status_filter / descriptionAdded value: +"Filter results by connection status (e.g. ``CONNECTED``, ``DISCONNECTED``)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of items to return per page." - added
Input schema / properties / slack_connect_pref_filter / descriptionAdded value: +"Filter results by Slack Connect preferences (e.g. ``[\"approved_orgs_only\"]``)." - added
Input schema / properties / sort_direction / descriptionAdded value: +"Direction to sort results, ``asc`` or ``desc``." - added
Input schema / properties / sort_field / descriptionAdded value: +"Field to sort results by (e.g. ``team_name``, ``last_active_timestamp``)." - added
Input schema / properties / workspace_filter / descriptionAdded value: +"Filter results to specific workspaces by encoded team ID (e.g. ``[\"T0123\"]``)."
- Changed
team_info2 fields changed- added
Input schema / properties / domain / descriptionAdded value: +"Workspace domain to look up info by, in place of ``team`` (e.g. ``acme`` for ``acme.slack.com``)." - added
Input schema / properties / team / descriptionAdded value: +"Encoded team ID to fetch info for; defaults to the authed user's team (e.g. ``T0123``)."
- Changed
team_integration_logs7 fields changed- added
Input schema / properties / app_id / descriptionAdded value: +"Filter logs to this app's events (e.g. ``A0123``)." - added
Input schema / properties / change_type / descriptionAdded value: +"Filter logs by change type (e.g. ``added``, ``removed``, ``enabled``, ``disabled``, ``updated``)." - added
Input schema / properties / count / descriptionAdded value: +"Number of items to return per page." - added
Input schema / properties / page / descriptionAdded value: +"Page number of results to return." - added
Input schema / properties / service_id / descriptionAdded value: +"Filter logs to this service's events." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to get logs for; required if the token belongs to an org-level app (e.g. ``T0123``)." - added
Input schema / properties / user / descriptionAdded value: +"Filter logs to events performed by this user (e.g. ``U0123``)."
- Changed
team_profile_get1 field changed- added
Input schema / properties / visibility / descriptionAdded value: +"Filter profile fields by visibility; one of ``all``, ``visible``, or ``hidden``."
- Changed
threads_get_view1 field changed- added
Input schema / properties / current_ts / descriptionAdded value: +"Timestamp anchoring the thread view to page from (e.g. ``1700000000.000100``)."
- Changed
tooling_tokens_rotate5 fields changed- removed
Input schema / properties / client_idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / client_secretRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / grant_typeRemoved value: -{ - "default": "refresh_token", - "type": "string" -} - added
Input schema / properties / refresh_token / descriptionAdded value: +"The ``xoxe`` refresh token issued alongside the old app configuration token." - changed
Input schema / requiredPrevious value: -[ - "refresh_token", - "client_id", - "client_secret" -]New value: +[ + "refresh_token" +]
- Changed
usergroups_create8 fields changed- added
Input schema / properties / additional_channelsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Comma-separated additional default channel IDs to add beyond ``channels`` (e.g. ``C0789``)." +} - added
Input schema / properties / channels / descriptionAdded value: +"Comma-separated string of default channel IDs for the User Group (e.g. ``C0123,C0456``)." - added
Input schema / properties / description / descriptionAdded value: +"A short description of the User Group." - added
Input schema / properties / enable_sectionAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to enable a section for the User Group." +} - added
Input schema / properties / handle / descriptionAdded value: +"A mention handle (must be unique among channels, users, and User Groups)." - added
Input schema / properties / include_count / descriptionAdded value: +"Include the number of users in each User Group in the response." - added
Input schema / properties / name / descriptionAdded value: +"A name for the User Group (must be unique among User Groups)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)."
- Changed
usergroups_disable3 fields changed- added
Input schema / properties / include_count / descriptionAdded value: +"Include the number of users in the User Group in the response." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)." - added
Input schema / properties / usergroup / descriptionAdded value: +"The encoded ID of the User Group to disable (e.g. ``S0123``)."
- Changed
usergroups_enable3 fields changed- added
Input schema / properties / include_count / descriptionAdded value: +"Include the number of users in the User Group in the response." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)." - added
Input schema / properties / usergroup / descriptionAdded value: +"The encoded ID of the User Group to enable (e.g. ``S0123``)."
- Changed
usergroups_list4 fields changed- added
Input schema / properties / include_count / descriptionAdded value: +"Include the number of users in each User Group in the response." - added
Input schema / properties / include_disabled / descriptionAdded value: +"Include disabled User Groups in the response." - added
Input schema / properties / include_users / descriptionAdded value: +"Include the list of users for each User Group in the response." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)."
- Changed
usergroups_update9 fields changed- added
Input schema / properties / additional_channelsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Comma-separated additional default channel IDs to add beyond ``channels`` (e.g. ``C0789``)." +} - added
Input schema / properties / channels / descriptionAdded value: +"Comma-separated string of default channel IDs for the User Group (e.g. ``C0123,C0456``)." - added
Input schema / properties / description / descriptionAdded value: +"A short description of the User Group." - added
Input schema / properties / enable_sectionAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to enable a section for the User Group." +} - added
Input schema / properties / handle / descriptionAdded value: +"A mention handle (must be unique among channels, users, and User Groups)." - added
Input schema / properties / include_count / descriptionAdded value: +"Include the number of users in the User Group in the response." - added
Input schema / properties / name / descriptionAdded value: +"A name for the User Group (must be unique among User Groups)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)." - added
Input schema / properties / usergroup / descriptionAdded value: +"The encoded ID of the User Group to update (e.g. ``S0123``)."
- Changed
usergroups_users_list3 fields changed- added
Input schema / properties / include_disabled / descriptionAdded value: +"Include disabled User Group users in the response." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)." - added
Input schema / properties / usergroup / descriptionAdded value: +"The encoded ID of the User Group to list users for (e.g. ``S0123``)."
- Changed
usergroups_users_update6 fields changed- added
Input schema / properties / additional_channelsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Comma-separated channel IDs the User Group can add members to (e.g. ``C0123,C0456``)." +} - added
Input schema / properties / include_count / descriptionAdded value: +"Include the number of users in the User Group in the response." - added
Input schema / properties / is_sharedAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether the User Group is shared across an org/Enterprise Grid." +} - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID where the User Group exists, required if org token is used (e.g. ``T0123``)." - added
Input schema / properties / usergroup / descriptionAdded value: +"The encoded ID of the User Group to update (e.g. ``S0123``)." - added
Input schema / properties / users / descriptionAdded value: +"Comma-separated user IDs representing the entire list of users for the User Group (e.g. ``U0123,U0456``)."
- Changed
users_admin_invite3 fields changed- added
Input schema / properties / channels / descriptionAdded value: +"Comma-separated list of channel IDs to add the invitee to (e.g. ``C0123,C0456``)." - added
Input schema / properties / email / descriptionAdded value: +"Email address of the person to invite." - added
Input schema / properties / real_name / descriptionAdded value: +"Full name to assign to the invited user."
- Changed
users_admin_set_inactive1 field changed- added
Input schema / properties / user / descriptionAdded value: +"ID of the user to deactivate (e.g. ``U0123``)."
- Changed
users_conversations6 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page." - added
Input schema / properties / exclude_archived / descriptionAdded value: +"Set to ``True`` to exclude archived channels from the list." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of items to return per page (1-1000, default 100)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to list conversations in, required for org-wide app tokens (e.g. ``T0123``)." - added
Input schema / properties / types / descriptionAdded value: +"Comma-separated conversation types to include: ``public_channel``, ``private_channel``, ``mpim``, ``im``." - added
Input schema / properties / user / descriptionAdded value: +"Browse conversations by a specific user ID rather than the calling user (e.g. ``U0123``)."
- Changed
users_discoverable_contacts_lookup1 field changed- added
Input schema / properties / email / descriptionAdded value: +"The email address of the user to look up (e.g. ``user@example.com``)."
- Changed
users_get_presence5 fields changed- added
Input schema / properties / user / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / user / defaultAdded value: +null - added
Input schema / properties / user / descriptionAdded value: +"ID of the user to get presence info for; defaults to the authenticated user if omitted (e.g. ``U0123``)." - removed
Input schema / properties / user / typeRemoved value: -"string" - removed
Input schema / requiredRemoved value: -[ - "user" -]
- Changed
users_info3 fields changed- added
Input schema / properties / detailed / descriptionAdded value: +"Set to ``True`` to return the full, uncompacted Slack response." - added
Input schema / properties / include_locale / descriptionAdded value: +"Set to ``True`` to receive the locale for the user in the response." - added
Input schema / properties / user / descriptionAdded value: +"ID of the user to get info about (e.g. ``U0123``)."
- Changed
users_list5 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor`` to fetch the next page." - added
Input schema / properties / detailed / descriptionAdded value: +"Set to ``True`` to return the full, uncompacted Slack response." - added
Input schema / properties / include_locale / descriptionAdded value: +"Set to ``True`` to receive the locale for users in the response." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of users to return per page (0-1000, default 0 for no limit)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to list users in, required if the token belongs to an org-wide app (e.g. ``T0123``)."
- Changed
users_lookup_by_email2 fields changed- added
Input schema / properties / detailed / descriptionAdded value: +"Set to ``True`` to return the full, uncompacted Slack response." - added
Input schema / properties / email / descriptionAdded value: +"An email address belonging to a user in the workspace (e.g. ``user@example.com``)."
- Changed
users_prefs_set2 fields changed- added
Input schema / properties / name / descriptionAdded value: +"Name of the preference to set." - added
Input schema / properties / value / descriptionAdded value: +"Value to assign to the preference."
- Changed
users_profile_get3 fields changed- added
Input schema / properties / detailed / descriptionAdded value: +"Set to ``True`` to return the full, uncompacted Slack response." - added
Input schema / properties / include_labels / descriptionAdded value: +"Set to ``True`` to include labels for each ID in custom profile fields." - added
Input schema / properties / user / descriptionAdded value: +"ID of user to retrieve profile info for; defaults to the authenticated user if omitted (e.g. ``U0123``)."
- Changed
users_profile_set4 fields changed- added
Input schema / properties / name / descriptionAdded value: +"Name of a single profile field to set (e.g. ``first_name``); use with ``value``." - added
Input schema / properties / profile / descriptionAdded value: +"Map of profile fields to set, as key-value pairs (alternative to ``name``/``value``)." - added
Input schema / properties / user / descriptionAdded value: +"ID of user to change; requires admin scope, defaults to the authenticated user (e.g. ``U0123``)." - added
Input schema / properties / value / descriptionAdded value: +"Value to set on a single profile field named by ``name``."
- Changed
users_set_photo6 fields changed- added
Input schema / properties / crop_w / descriptionAdded value: +"Width/height of the square crop box, in pixels (the crop is always square)." - added
Input schema / properties / crop_x / descriptionAdded value: +"X coordinate of the top-left corner of the crop box, in pixels." - added
Input schema / properties / crop_y / descriptionAdded value: +"Y coordinate of the top-left corner of the crop box, in pixels." - removed
Input schema / properties / imageRemoved value: -{ - "type": "string" -} - added
Input schema / properties / image_base64Added value: +{ + "description": "The image to set, as a base64-encoded string of the raw image bytes.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "image" -]New value: +[ + "image_base64" +]
- Changed
users_set_presence1 field changed- added
Input schema / properties / presence / descriptionAdded value: +"Presence to set, either ``auto`` or ``away``."
- Changed
views_open2 fields changed- added
Input schema / properties / trigger_id / descriptionAdded value: +"Exchange a trigger to post to the user (e.g. ``12345.98765.abcd2358fdea``)." - added
Input schema / properties / view / descriptionAdded value: +"A view payload object (of type ``modal``)."
- Changed
views_publish3 fields changed- added
Input schema / properties / hash / descriptionAdded value: +"A string representing view state, used to protect against race conditions when updating an existing view." - added
Input schema / properties / user_id / descriptionAdded value: +"ID of the user you want to publish a view to (e.g. ``U0123``)." - added
Input schema / properties / view / descriptionAdded value: +"A view payload object (of type ``home``)."
- Changed
views_push2 fields changed- added
Input schema / properties / trigger_id / descriptionAdded value: +"Exchange a trigger to post to the user (e.g. ``12345.98765.abcd2358fdea``)." - added
Input schema / properties / view / descriptionAdded value: +"A view payload object (of type ``modal``) to push onto the existing view stack."
- Changed
views_update4 fields changed- added
Input schema / properties / external_id / descriptionAdded value: +"A unique identifier set by the developer when opening the view, identifying which view to update." - added
Input schema / properties / hash / descriptionAdded value: +"A string that represents view state to protect against possible race conditions when updating the view." - added
Input schema / properties / view / descriptionAdded value: +"A view payload object (of type ``modal``) with the updated contents." - added
Input schema / properties / view_id / descriptionAdded value: +"A unique identifier of the view to be updated, returned when the view was opened (e.g. ``VMHU10V25``)."
- Changed
workflows_featured_add4 fields changed- added
Input schema / properties / channel_idAdded value: +{ + "description": "ID of the channel to feature the workflows in (e.g. ``C0123``).", + "type": "string" +} - added
Input schema / properties / trigger_idsAdded value: +{ + "description": "Workflow trigger IDs to feature, max 15 (e.g. ``[\"Ft0123\", \"Ft0456\"]``).", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Input schema / properties / workflow_idsRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - changed
Input schema / requiredPrevious value: -[ - "workflow_ids" -]New value: +[ + "channel_id", + "trigger_ids" +]
- Changed
workflows_featured_remove4 fields changed- added
Input schema / properties / channel_idAdded value: +{ + "description": "ID of the channel to remove the featured workflows from (e.g. ``C0123``).", + "type": "string" +} - added
Input schema / properties / trigger_idsAdded value: +{ + "description": "Workflow trigger IDs to remove, max 15 (e.g. ``[\"Ft0123\"]``).", + "items": { + "type": "string" + }, + "type": "array" +} - removed
Input schema / properties / workflow_idsRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - changed
Input schema / requiredPrevious value: -[ - "workflow_ids" -]New value: +[ + "channel_id", + "trigger_ids" +]
- Changed
workflows_featured_set4 fields changed- added
Input schema / properties / channel_idAdded value: +{ + "description": "ID of the channel to set featured workflows in (e.g. ``C0123``).", + "type": "string" +} - added
Input schema / properties / trigger_idsAdded 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" +} - removed
Input schema / properties / workflow_idsRemoved value: -{ - "items": { - "type": "string" - }, - "type": "array" -} - changed
Input schema / requiredPrevious value: -[ - "workflow_ids" -]New value: +[ + "channel_id", + "trigger_ids" +]
- Changed
workflows_step_completed2 fields changed- added
Input schema / properties / outputs / descriptionAdded value: +"Key-value object mapping output names from the step's configuration to their values." - added
Input schema / properties / workflow_step_execute_id / descriptionAdded value: +"Context identifier for the step execution, from the ``workflow_step_execute`` event."
- Changed
workflows_step_failed2 fields changed- added
Input schema / properties / error / descriptionAdded value: +"A JSON-based object with a ``message`` property that should contain a human-readable error message." - added
Input schema / properties / workflow_step_execute_id / descriptionAdded value: +"Context identifier for the step execution, from the ``workflow_step_execute`` event."
- Changed
workflows_update_step5 fields changed- added
Input schema / properties / inputs / descriptionAdded value: +"Key-value map of inputs from the user's step configuration; each value has a ``value`` property." - added
Input schema / properties / outputs / descriptionAdded value: +"A list of output objects (each with ``name``, ``type``, and ``label``) used during step execution." - added
Input schema / properties / step_image_url / descriptionAdded value: +"Optional override for the image shown to users in the Workflow Builder for this step." - added
Input schema / properties / step_name / descriptionAdded value: +"Optional override for the name shown to users in the Workflow Builder for this step." - added
Input schema / properties / workflow_step_edit_id / descriptionAdded value: +"A context identifier from the ``view_submission`` payload, mapping to editing a step."
10 tool updates
v2.2.0- Changed
canvases_create1 field changed- changed
Input schema / properties / document_content / anyOfPrevious value: -[ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } +]
- Changed
canvases_edit1 field changed- changed
Input schema / properties / changes / items / additionalPropertiesPrevious value: -{ - "type": "string" -}New value: +true
- Changed
canvases_sections_lookup1 field changed- changed
Input schema / properties / criteria / additionalPropertiesPrevious value: -{ - "type": "string" -}New value: +true
- Changed
views_open1 field changed- changed
Input schema / properties / view / additionalPropertiesPrevious value: -{ - "type": "string" -}New value: +true
- Changed
views_publish1 field changed- changed
Input schema / properties / view / additionalPropertiesPrevious value: -{ - "type": "string" -}New value: +true
- Changed
views_push1 field changed- changed
Input schema / properties / view / additionalPropertiesPrevious value: -{ - "type": "string" -}New value: +true
- Changed
views_update1 field changed- changed
Input schema / properties / view / additionalPropertiesPrevious value: -{ - "type": "string" -}New value: +true
- Changed
workflows_step_completed1 field changed- changed
Input schema / properties / outputs / anyOfPrevious value: -[ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } +]
- Changed
workflows_step_failed1 field changed- changed
Input schema / properties / error / additionalPropertiesPrevious value: -{ - "type": "string" -}New value: +true
- Changed
workflows_update_step2 fields changed- changed
Input schema / properties / inputs / anyOfPrevious value: -[ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } +] - changed
Input schema / properties / outputs / anyOfPrevious value: -[ - { - "items": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } +]
50 tool updates
v2.1.0- Changed
bookmarks_add1 field changed- added
Input schema / properties / titleAdded value: +{ + "type": "string" +}
- Changed
chat_append_stream3 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel containing the stream (e.g. ``C0123``)." - added
Input schema / properties / text / descriptionAdded value: +"Text chunk to append to the streaming message." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent thread that owns the stream (e.g. ``1700000000.000100``)."
- Changed
chat_delete3 fields changed- added
Input schema / properties / as_user / descriptionAdded value: +"Delete as the authenticated user rather than as the bot (legacy; ignored for workspace apps)." - added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel containing the message to delete (e.g. ``C0123``)." - added
Input schema / properties / ts / descriptionAdded value: +"Timestamp of the message to delete (e.g. ``1700000000.000100``)."
- Changed
chat_delete_scheduled_message3 fields changed- added
Input schema / properties / as_user / descriptionAdded value: +"Delete as the authenticated user rather than as the bot (legacy; ignored for workspace apps)." - added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel the scheduled message targets (e.g. ``C0123``)." - added
Input schema / properties / scheduled_message_id / descriptionAdded value: +"ID of the scheduled message to delete (from ``chat.scheduleMessage`` or the list tool)."
- Changed
chat_get_permalink2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel containing the message (e.g. ``C0123``)." - added
Input schema / properties / message_ts / descriptionAdded value: +"Timestamp of the message to link to (e.g. ``1700000000.000100``)."
- Changed
chat_me_message2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to post the /me message in (e.g. ``C0123``)." - added
Input schema / properties / text / descriptionAdded value: +"Message text displayed as an action (e.g. \"waves hello\")."
- Changed
chat_post_ephemeral7 fields changed- added
Input schema / properties / as_user / descriptionAdded value: +"Post as the authenticated user rather than as the bot (legacy; ignored for workspace apps)." - added
Input schema / properties / attachments / descriptionAdded value: +"Legacy attachment array. Prefer ``blocks`` for new messages." - added
Input schema / properties / blocks / descriptionAdded value: +"Block Kit block array defining the message layout." - added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to post the ephemeral message in (e.g. ``C0123``)." - added
Input schema / properties / text / descriptionAdded value: +"Message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Parent message timestamp to post the ephemeral reply inside a thread (e.g. ``1700000000.000100``)." - added
Input schema / properties / user / descriptionAdded value: +"ID of the user who will see the ephemeral message (e.g. ``U0123``)."
- Changed
chat_post_message16 fields changed- added
Input schema / properties / as_user / descriptionAdded value: +"Post as the authenticated user rather than as the bot (legacy; ignored for workspace apps)." - added
Input schema / properties / attachments / descriptionAdded value: +"Legacy attachment array. Prefer ``blocks`` for new messages." - added
Input schema / properties / blocks / descriptionAdded value: +"Block Kit block array defining the message layout." - added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to post to (e.g. ``C0123``), or a DM ID (``D0123``) or user ID for a DM." - added
Input schema / properties / icon_emoji / descriptionAdded value: +"Emoji to use as the bot icon, overrides the app default (e.g. ``:robot_face:``); needs ``username``." - added
Input schema / properties / icon_url / descriptionAdded value: +"URL of an image to use as the bot's icon. Requires ``username``." - added
Input schema / properties / link_names / descriptionAdded value: +"Find and link channel names and usernames in ``text`` (e.g. ``#general`` → hyperlink)." - added
Input schema / properties / metadata / descriptionAdded value: +"Structured metadata object attached to the message (``event_type`` + ``event_payload``)." - added
Input schema / properties / mrkdwn / descriptionAdded value: +"Render Slack mrkdwn formatting in ``text`` (default True)." - added
Input schema / properties / parse / descriptionAdded value: +"How to handle message text: ``full`` (linkify everything) or ``none`` (pass text as-is)." - added
Input schema / properties / reply_broadcast / descriptionAdded value: +"Also post the threaded reply to the channel when ``thread_ts`` is set." - added
Input schema / properties / text / descriptionAdded value: +"Message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent message to reply to, forming a thread (e.g. ``1700000000.000100``)." - added
Input schema / properties / unfurl_links / descriptionAdded value: +"Automatically unfurl URL links in the message." - added
Input schema / properties / unfurl_media / descriptionAdded value: +"Automatically unfurl media URLs (images, video) in the message." - added
Input schema / properties / username / descriptionAdded value: +"Override the bot's display name for this message."
- Changed
chat_schedule_message11 fields changed- added
Input schema / properties / as_user / descriptionAdded value: +"Schedule as the authenticated user rather than as the bot (legacy; ignored for workspace apps)." - added
Input schema / properties / attachments / descriptionAdded value: +"Legacy attachment array. Prefer ``blocks`` for new messages." - added
Input schema / properties / blocks / descriptionAdded value: +"Block Kit block array defining the message layout." - added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to send the scheduled message to (e.g. ``C0123``)." - added
Input schema / properties / metadata / descriptionAdded value: +"Structured metadata object attached to the message (``event_type`` + ``event_payload``)." - added
Input schema / properties / post_at / descriptionAdded value: +"Unix epoch timestamp (seconds) at which to deliver the message (e.g. ``1700010000``)." - added
Input schema / properties / reply_broadcast / descriptionAdded value: +"Also post the threaded reply to the channel when ``thread_ts`` is set." - added
Input schema / properties / text / descriptionAdded value: +"Message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent message to schedule a thread reply to (e.g. ``1700000000.000100``)." - added
Input schema / properties / unfurl_links / descriptionAdded value: +"Automatically unfurl URL links when the message is delivered." - added
Input schema / properties / unfurl_media / descriptionAdded value: +"Automatically unfurl media URLs (images, video) when the message is delivered."
- Changed
chat_scheduled_messages_list6 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"Filter to scheduled messages for this channel ID (e.g. ``C0123``). Omit to list across all channels." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / latest / descriptionAdded value: +"Only include messages scheduled at or before this Unix epoch timestamp." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of scheduled messages to return per page (default 100)." - added
Input schema / properties / oldest / descriptionAdded value: +"Only include messages scheduled at or after this Unix epoch timestamp." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to scope the list to (for org-wide tokens)."
- Changed
chat_start_stream2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to start the stream in (e.g. ``C0123``)." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent thread to attach the stream to (e.g. ``1700000000.000100``)."
- Changed
chat_stop_stream2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel containing the stream (e.g. ``C0123``)." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent thread whose stream should be stopped (e.g. ``1700000000.000100``)."
- Changed
chat_stream3 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel containing the stream (e.g. ``C0123``)." - added
Input schema / properties / text / descriptionAdded value: +"Text chunk to stream into the message." - added
Input schema / properties / thread_ts / descriptionAdded value: +"Timestamp of the parent thread to stream text into (e.g. ``1700000000.000100``)."
- Changed
chat_unfurl7 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel containing the message with URLs to unfurl (e.g. ``C0123``)." - added
Input schema / properties / ts / descriptionAdded value: +"Timestamp of the message containing the URLs (e.g. ``1700000000.000100``)." - added
Input schema / properties / unfurls / descriptionAdded value: +"Map of URLs to their unfurl attachment or Block Kit objects (e.g. ``{\"https://example.com\": {...}}``)." - added
Input schema / properties / user_auth_blocks / descriptionAdded value: +"Block Kit blocks shown to the user in an auth prompt when ``user_auth_required`` is True." - added
Input schema / properties / user_auth_message / descriptionAdded value: +"Plain-text message shown to the user in an auth prompt when ``user_auth_required`` is True." - added
Input schema / properties / user_auth_required / descriptionAdded value: +"Prompt the user to authenticate before unfurling the URL." - added
Input schema / properties / user_auth_url / descriptionAdded value: +"URL to redirect the user to for authentication when ``user_auth_required`` is True."
- Changed
chat_update10 fields changed- added
Input schema / properties / as_user / descriptionAdded value: +"Update as the authenticated user rather than as the bot (legacy; ignored for workspace apps)." - added
Input schema / properties / attachments / descriptionAdded value: +"Updated legacy attachment array. Prefer ``blocks`` for new messages." - added
Input schema / properties / blocks / descriptionAdded value: +"Updated Block Kit block array replacing the existing layout." - added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel containing the message to update (e.g. ``C0123``)." - added
Input schema / properties / link_names / descriptionAdded value: +"Find and link channel names and usernames in the updated ``text``." - added
Input schema / properties / metadata / descriptionAdded value: +"Updated structured metadata object (``event_type`` + ``event_payload``)." - added
Input schema / properties / parse / descriptionAdded value: +"How to handle message text: ``full`` (linkify everything) or ``none`` (pass text as-is)." - added
Input schema / properties / reply_broadcast / descriptionAdded value: +"Broadcast the updated threaded reply to the channel." - added
Input schema / properties / text / descriptionAdded value: +"New message text or fallback text when ``blocks`` are provided. Supports Slack mrkdwn." - added
Input schema / properties / ts / descriptionAdded value: +"Timestamp of the message to update (e.g. ``1700000000.000100``)."
- Changed
conversations_accept_shared_invite6 fields changed- added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel the invite is for, if already known." - added
Input schema / properties / channel_name / descriptionAdded value: +"Name for the channel once accepted." - added
Input schema / properties / free_trial_accepted / descriptionAdded value: +"Accept a paid-feature free trial as part of accepting the invite." - added
Input schema / properties / invite_id / descriptionAdded value: +"ID of the invite to accept. Required unless ``channel_id`` is given." - added
Input schema / properties / is_private / descriptionAdded value: +"Create the accepted channel as private." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID accepting the invite (for org-wide tokens)."
- Changed
conversations_approve_shared_invite2 fields changed- added
Input schema / properties / invite_id / descriptionAdded value: +"ID of the shared-channel invite to approve." - added
Input schema / properties / target_team / descriptionAdded value: +"Encoded team ID the invite is directed to (for org-wide approvals)."
- Changed
conversations_archive1 field changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the conversation to archive (e.g. C0123)."
- Changed
conversations_canvases_create2 fields changed- added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel the canvas belongs to (e.g. C0123)." - added
Input schema / properties / document_content / descriptionAdded value: +"Canvas body as a structured document object (e.g. a markdown document)."
- Changed
conversations_close1 field changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the DM or multi-party DM to close (e.g. D0123)."
- Changed
conversations_create3 fields changed- added
Input schema / properties / is_private / descriptionAdded value: +"Create a private channel instead of a public one." - added
Input schema / properties / name / descriptionAdded value: +"Channel name (lowercase, no spaces or periods, max 80 chars)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to create the channel in (for org-wide tokens)."
- Changed
conversations_decline_shared_invite2 fields changed- added
Input schema / properties / invite_id / descriptionAdded value: +"ID of the shared-channel invite to decline." - added
Input schema / properties / target_team / descriptionAdded value: +"Encoded team ID the invite is directed to (for org-wide tokens)."
- Changed
conversations_external_invite_permissions_set2 fields changed- added
Input schema / properties / action / descriptionAdded value: +"Permission to apply — ``upgrade`` to allow external write access or ``downgrade`` to restrict it." - added
Input schema / properties / channel / descriptionAdded value: +"ID of the Slack Connect channel (e.g. C0123)."
- Changed
conversations_history8 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the conversation to read (e.g. C0123)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full, uncompacted Slack response when True." - added
Input schema / properties / include_all_metadata / descriptionAdded value: +"Include all message metadata in the response." - added
Input schema / properties / inclusive / descriptionAdded value: +"Include messages with ``latest`` or ``oldest`` timestamps in the results." - added
Input schema / properties / latest / descriptionAdded value: +"Only include messages at or before this timestamp (e.g. 1700000000.000100). Defaults to now." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of messages to return per page (default 100)." - added
Input schema / properties / oldest / descriptionAdded value: +"Only include messages at or after this timestamp."
- Changed
conversations_info3 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the conversation to look up (e.g. C0123)." - added
Input schema / properties / include_locale / descriptionAdded value: +"Include the channel's locale in the response." - added
Input schema / properties / include_num_members / descriptionAdded value: +"Include the channel's member count in the response."
- Changed
conversations_invite3 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to invite users into (e.g. C0123)." - added
Input schema / properties / force / descriptionAdded value: +"Continue inviting valid users even if some IDs fail, rather than failing the whole call." - added
Input schema / properties / users / descriptionAdded value: +"Comma-separated list of user IDs to invite (e.g. ``U0123,U0456``), up to 1000."
- Changed
conversations_invite_shared4 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to share (e.g. C0123)." - added
Input schema / properties / emails / descriptionAdded value: +"Email addresses to invite. Provide ``emails`` or ``user_ids``." - added
Input schema / properties / external_limited / descriptionAdded value: +"Invite the external party as a limited (single-channel) guest." - added
Input schema / properties / user_ids / descriptionAdded value: +"User IDs to invite. Provide ``emails`` or ``user_ids``."
- Changed
conversations_join1 field changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to join (e.g. C0123)."
- Changed
conversations_kick2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to remove the user from (e.g. C0123)." - added
Input schema / properties / user / descriptionAdded value: +"ID of the user to remove (e.g. U0123)."
- Changed
conversations_leave1 field changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the conversation to leave (e.g. C0123)."
- Changed
conversations_list6 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full, uncompacted Slack response when True." - added
Input schema / properties / exclude_archived / descriptionAdded value: +"Omit archived channels from the results." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of channels to return per page (default 100)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to list channels for (for org-wide tokens)." - added
Input schema / properties / types / descriptionAdded value: +"Comma-separated conversation types to include, e.g. ``public_channel,private_channel,mpim,im``."
- Changed
conversations_list_connect_invites3 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Maximum number of invites to return (default 100)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from ``response_metadata.next_cursor`` in a prior response." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to list invites for (for org-wide tokens)."
- Changed
conversations_mark2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to mark (e.g. C0123)." - added
Input schema / properties / ts / descriptionAdded value: +"Timestamp of the most recently seen message (e.g. 1700000000.000100); everything up to it is marked read."
- Changed
conversations_members3 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the conversation to list members for (e.g. C0123)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of member IDs to return per page (default 100)."
- Changed
conversations_open4 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of an existing DM/MPIM to resume. Provide ``channel`` or ``users``." - added
Input schema / properties / prevent_creation / descriptionAdded value: +"For 1:1 DMs, don't create a new conversation if one doesn't already exist." - added
Input schema / properties / return_im / descriptionAdded value: +"Return the full IM/MPIM channel object rather than just its ID." - added
Input schema / properties / users / descriptionAdded value: +"Comma-separated user IDs to open a DM/MPIM with (e.g. ``U0123,U0456``)."
- Changed
conversations_rename2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the channel to rename (e.g. C0123)." - added
Input schema / properties / name / descriptionAdded value: +"New channel name (lowercase, no spaces or periods, max 80 chars)."
- Changed
conversations_replies9 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the conversation containing the thread (e.g. C0123)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from a previous response's ``response_metadata.next_cursor``." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full, uncompacted Slack response when True." - added
Input schema / properties / include_all_metadata / descriptionAdded value: +"Include all message metadata in the response." - added
Input schema / properties / inclusive / descriptionAdded value: +"Include messages with ``latest`` or ``oldest`` timestamps in the results." - added
Input schema / properties / latest / descriptionAdded value: +"Only include messages at or before this timestamp. Defaults to now." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of messages to return per page (default 100)." - added
Input schema / properties / oldest / descriptionAdded value: +"Only include messages at or after this timestamp." - added
Input schema / properties / ts / descriptionAdded value: +"Timestamp of the thread's parent message (e.g. 1700000000.000100)."
- Changed
conversations_request_shared_invite_approve4 fields changed- added
Input schema / properties / channel_id / descriptionAdded value: +"ID of the channel the request is for, if disambiguation is needed." - added
Input schema / properties / invite_id / descriptionAdded value: +"ID of the shared-invite request to approve." - added
Input schema / properties / is_approved / descriptionAdded value: +"Whether the request is approved. Set False to record a rejection." - added
Input schema / properties / message / descriptionAdded value: +"Optional message object to attach to the approval."
- Changed
conversations_request_shared_invite_deny2 fields changed- added
Input schema / properties / invite_id / descriptionAdded value: +"ID of the shared-invite request to deny." - added
Input schema / properties / message / descriptionAdded value: +"Optional message object explaining the denial."
- Changed
conversations_request_shared_invite_list7 fields changed- added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from ``response_metadata.next_cursor`` in a prior response." - added
Input schema / properties / include_approved / descriptionAdded value: +"Include already-approved requests in the results." - added
Input schema / properties / include_denied / descriptionAdded value: +"Include denied requests in the results." - added
Input schema / properties / include_expired / descriptionAdded value: +"Include expired requests in the results." - added
Input schema / properties / invite_ids / descriptionAdded value: +"Restrict results to these specific invite request IDs." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of requests to return per page." - added
Input schema / properties / user_id / descriptionAdded value: +"Only return requests made by this user ID."
- Changed
conversations_set_purpose2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the conversation to update (e.g. C0123)." - added
Input schema / properties / purpose / descriptionAdded value: +"New purpose text (max 250 chars)."
- Changed
conversations_set_topic2 fields changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the conversation to update (e.g. C0123)." - added
Input schema / properties / topic / descriptionAdded value: +"New topic text (max 250 chars)."
- Changed
conversations_unarchive1 field changed- added
Input schema / properties / channel / descriptionAdded value: +"ID of the archived conversation to restore (e.g. C0123)."
- Changed
search_all8 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Results per page (default 20, max 100)." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full, uncompacted Slack response when True." - added
Input schema / properties / highlight / descriptionAdded value: +"Wrap matched terms in highlight markers in the response." - added
Input schema / properties / page / descriptionAdded value: +"1-based page number to return." - added
Input schema / properties / query / descriptionAdded value: +"Search text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``before:2024-01-31``." - added
Input schema / properties / sort / descriptionAdded value: +"Sort by ``score`` (relevance, default) or ``timestamp`` (recency)." - added
Input schema / properties / sort_dir / descriptionAdded value: +"Sort direction, ``asc`` or ``desc`` (default ``desc``)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to scope the search to (for org-wide tokens)."
- Changed
search_files8 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Results per page (default 20, max 100)." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full, uncompacted Slack response when True." - added
Input schema / properties / highlight / descriptionAdded value: +"Wrap matched terms in highlight markers in the response." - added
Input schema / properties / page / descriptionAdded value: +"1-based page number to return." - added
Input schema / properties / query / descriptionAdded value: +"Search text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``type:`` filters." - added
Input schema / properties / sort / descriptionAdded value: +"Sort by ``score`` (relevance, default) or ``timestamp`` (recency)." - added
Input schema / properties / sort_dir / descriptionAdded value: +"Sort direction, ``asc`` or ``desc`` (default ``desc``)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to scope the search to (for org-wide tokens)."
- Changed
search_messages9 fields changed- added
Input schema / properties / count / descriptionAdded value: +"Results per page (default 20, max 100)." - added
Input schema / properties / cursor / descriptionAdded value: +"Pagination cursor from ``response_metadata.next_cursor`` in a prior response (alternative to ``page``)." - added
Input schema / properties / detailed / descriptionAdded value: +"Return the full, uncompacted Slack response when True." - added
Input schema / properties / highlight / descriptionAdded value: +"Wrap matched terms in highlight markers in the response." - added
Input schema / properties / page / descriptionAdded value: +"1-based page number to return." - added
Input schema / properties / query / descriptionAdded value: +"Search text. Supports Slack modifiers like ``in:#channel``, ``from:@user``, and ``before:2024-01-31``." - added
Input schema / properties / sort / descriptionAdded value: +"Sort by ``score`` (relevance, default) or ``timestamp`` (recency)." - added
Input schema / properties / sort_dir / descriptionAdded value: +"Sort direction, ``asc`` or ``desc`` (default ``desc``)." - added
Input schema / properties / team_id / descriptionAdded value: +"Encoded team ID to scope the search to (for org-wide tokens)."
- Changed
users_info1 field changed- added
Input schema / properties / detailedAdded value: +{ + "default": false, + "type": "boolean" +}
- Changed
users_list1 field changed- added
Input schema / properties / detailedAdded value: +{ + "default": false, + "type": "boolean" +}
- Changed
users_lookup_by_email1 field changed- added
Input schema / properties / detailedAdded value: +{ + "default": false, + "type": "boolean" +}
- Changed
users_profile_get1 field changed- added
Input schema / properties / detailedAdded value: +{ + "default": false, + "type": "boolean" +}
219 tool updates
v2.0.0- First observed
ai_apps_list - First observed
api_features - First observed
api_test - First observed
apps_connections_open - First observed
apps_event_authorizations_list - First observed
apps_manifest_create - First observed
apps_manifest_delete - First observed
apps_manifest_export - First observed
apps_manifest_update - First observed
apps_manifest_validate - First observed
apps_uninstall - First observed
assistant_threads_set_status - First observed
assistant_threads_set_suggested_prompts - First observed
assistant_threads_set_title - First observed
auth_revoke - First observed
auth_teams_list - First observed
auth_test - First observed
bookmarks_add - First observed
bookmarks_edit - First observed
bookmarks_list - First observed
bookmarks_remove - First observed
bots_info - First observed
bots_list - First observed
cache_clear - First observed
calls_add - First observed
calls_end - First observed
calls_info - First observed
calls_participants_add - First observed
calls_participants_remove - First observed
calls_update - First observed
canvases_access_delete - First observed
canvases_access_set - First observed
canvases_create - First observed
canvases_delete - First observed
canvases_edit - First observed
canvases_sections_lookup - First observed
channels_delete - First observed
chat_append_stream - First observed
chat_command - First observed
chat_delete - First observed
chat_delete_scheduled_message - First observed
chat_get_permalink - First observed
chat_me_message - First observed
chat_post_ephemeral - First observed
chat_post_message - First observed
chat_schedule_message - First observed
chat_scheduled_messages_list - First observed
chat_start_stream - First observed
chat_stop_stream - First observed
chat_stream - First observed
chat_unfurl - First observed
chat_update - First observed
client_boot - First observed
client_counts - First observed
client_user_boot - First observed
commands_list - First observed
conversations_accept_shared_invite - First observed
conversations_approve_shared_invite - First observed
conversations_archive - First observed
conversations_canvases_create - First observed
conversations_close - First observed
conversations_create - First observed
conversations_decline_shared_invite - First observed
conversations_external_invite_permissions_set - First observed
conversations_history - First observed
conversations_info - First observed
conversations_invite - First observed
conversations_invite_shared - First observed
conversations_join - First observed
conversations_kick - First observed
conversations_leave - First observed
conversations_list - First observed
conversations_list_connect_invites - First observed
conversations_list_prefs - First observed
conversations_mark - First observed
conversations_members - First observed
conversations_open - First observed
conversations_rename - First observed
conversations_replies - First observed
conversations_request_shared_invite_approve - First observed
conversations_request_shared_invite_deny - First observed
conversations_request_shared_invite_list - First observed
conversations_set_purpose - First observed
conversations_set_topic - First observed
conversations_unarchive - First observed
conversations_view - First observed
dialog_open - First observed
dnd_end_dnd - First observed
dnd_end_snooze - First observed
dnd_info - First observed
dnd_set_snooze - First observed
dnd_team_info - First observed
drafts_create - First observed
drafts_delete - First observed
drafts_list - First observed
drafts_update - First observed
emoji_add - First observed
emoji_admin_list - First observed
emoji_list - First observed
emoji_remove - First observed
entity_present_details - First observed
experiments_get_by_user - First observed
files_comments_delete - First observed
files_complete_upload_external - First observed
files_delete - First observed
files_edit - First observed
files_get_upload_url_external - First observed
files_info - First observed
files_list - First observed
files_remote_add - First observed
files_remote_info - First observed
files_remote_list - First observed
files_remote_remove - First observed
files_remote_share - First observed
files_remote_update - First observed
files_revoke_public_url - First observed
files_share_legacy - First observed
files_shared_public_url - First observed
files_upload - First observed
files_upload_v2 - First observed
functions_complete_error - First observed
functions_complete_success - First observed
migration_exchange - First observed
oauth_access - First observed
oauth_v2_access - First observed
oauth_v2_exchange - First observed
openid_connect_token - First observed
openid_connect_user_info - First observed
pins_add - First observed
pins_list - First observed
pins_remove - First observed
reactions_add - First observed
reactions_get - First observed
reactions_list - First observed
reactions_remove - First observed
reminders_add - First observed
reminders_complete - First observed
reminders_delete - First observed
reminders_info - First observed
reminders_list - First observed
resolve_names - First observed
rtm_connect - First observed
rtm_start - First observed
saved_add - First observed
saved_delete - First observed
saved_list - First observed
search_all - First observed
search_files - First observed
search_messages - First observed
search_modules_channels - First observed
search_modules_dms - First observed
search_modules_files - First observed
search_modules_messages - First observed
search_modules_people - First observed
session_test - First observed
slack_lists_access_delete - First observed
slack_lists_access_set - First observed
slack_lists_create - First observed
slack_lists_download_get - First observed
slack_lists_download_start - First observed
slack_lists_items_create - First observed
slack_lists_items_delete - First observed
slack_lists_items_delete_multiple - First observed
slack_lists_items_info - First observed
slack_lists_items_list - First observed
slack_lists_items_update - First observed
slack_lists_update - First observed
stars_add - First observed
stars_list - First observed
stars_remove - First observed
subscriptions_thread_mark - First observed
team_access_logs - First observed
team_billable_info - First observed
team_billing_info - First observed
team_external_teams_disconnect - First observed
team_external_teams_list - First observed
team_info - First observed
team_integration_logs - First observed
team_preferences_list - First observed
team_prefs_get - First observed
team_profile_get - First observed
threads_get_view - First observed
tooling_tokens_rotate - First observed
usergroups_create - First observed
usergroups_disable - First observed
usergroups_enable - First observed
usergroups_list - First observed
usergroups_update - First observed
usergroups_users_list - First observed
usergroups_users_update - First observed
users_admin_invite - First observed
users_admin_set_inactive - First observed
users_channel_sections_list - First observed
users_conversations - First observed
users_delete_photo - First observed
users_discoverable_contacts_lookup - First observed
users_get_presence - First observed
users_identity - First observed
users_info - First observed
users_list - First observed
users_lookup_by_email - First observed
users_prefs_get - First observed
users_prefs_set - First observed
users_priority_list - First observed
users_profile_get - First observed
users_profile_set - First observed
users_set_photo - First observed
users_set_presence - First observed
views_open - First observed
views_publish - First observed
views_push - First observed
views_update - First observed
workflows_featured_add - First observed
workflows_featured_list - First observed
workflows_featured_remove - First observed
workflows_featured_set - First observed
workflows_step_completed - First observed
workflows_step_failed - First observed
workflows_update_step
TDQS
Scored across 224 tools
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.
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.
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.
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
Related MCP Connectors
Enable interaction with Slack workspaces. Supports subscribing to Slack events through Resources.
Messaging tools for AI agents: send messages, manage chats, groups and channels.
- SkilderOAuthai.skilder
One place to build, share, and govern the skills and tools your AI agents use at work.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Slack workspaces through comprehensive channel management, messaging, direct messages, search functionality, and user management capabilities.306 npm2MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Slack workspaces through natural language, supporting channel management, message operations, user profiles, reactions, and threaded conversations.-
- AlicenseNot gradedqualityDmaintenanceEnables 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
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with Slack workspaces, including listing channels, posting messages, replying to threads, adding reactions, and retrieving user information.1014 npmMIT