Skip to main content
Glama

slack_channels_history

Retrieve Slack channel history over a date range, with threaded replies nested inline. Specify channels directly or discover them with a pattern.

Instructions

History for several channels over one time range, threads nested inline.

Give either an explicit channels list or a pattern to discover them. Replies are attached to their parent message rather than returned flat, which matters for channels whose substance lives in threads.

Discovery by pattern only sees channels you have joined — a matching channel you are not a member of is invisible. That limit is deliberate: enumerating an entire Enterprise Grid workspace is throttled past usability.

Args: channels: Channel names or IDs. Mutually exclusive with pattern. pattern: fnmatch glob over joined channel names, e.g. 'team-*'. oldest: Window start — 'YYYY-MM-DD', an epoch, or an offset like '-7d'. latest: Window end, same formats. Defaults to now. expand_threads: Fetch replies for messages that have them. min_members: With pattern, skip channels below this membership. Costs one extra (cached) API call per matching channel. max_text: Truncate message text to this many characters. None keeps all.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latestNo
oldestNo
patternNo
channelsNo
max_textNo
min_membersNo
expand_threadsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior4/5

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

With no annotations provided, the description must disclose behavioral traits on its own, and it does well. It explicitly mentions that 'Replies are attached to their parent message rather than returned flat,' and it warns about the throttling risk of enumerating an entire Enterprise Grid workspace. It also reveals the deliberate limitation that pattern discovery only sees joined channels. This goes beyond basic schema info, though it doesn't cover every edge case like pagination or timezone handling.

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

Conciseness5/5

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

The description is well-structured and front-loaded with a one-sentence summary, followed by a brief usage note, a warning about pattern limitations, and a clean args list. Every section earns its place. The argument list is compact yet informative, using inline formatting to keep each entry scannable. There is no fluff or redundancy.

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

Completeness4/5

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

For a tool with 7 parameters and an output schema, the description covers the essential aspects: purpose, usage modes, a key limitation (pattern discovery on joined channels only), and parameter semantics. Since an output schema exists, return-value details are not needed. Minor gaps remain, such as behavior when neither channels nor pattern is provided, or what happens with invalid date formats, but these are not critical for the core operation. Overall significantly above the minimum viable level.

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

Parameters5/5

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

The schema has 0% description coverage, so the description carries the full burden for parameter meaning. It excels: every parameter is explained with format (e.g., oldest as 'YYYY-MM-DD', epoch, or offset like '-7d'), defaults (latest 'Defaults to now'), mutual exclusivity (channels vs pattern), and side effects (min_members 'Costs one extra (cached) API call per matching channel'). This provides far more than the bare schema properties.

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

Purpose5/5

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

The first sentence clearly states the tool's function: 'History for several channels over one time range, threads nested inline.' This uses a specific verb (history) and resource (several channels), and the threading note distinguishes it from flat message lists. The sibling tool slack_channel_history is implied as the single-channel counterpart, and slack_dm_history covers DMs, so the multi-channel scope is well differentiated.

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

Usage Guidelines4/5

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

The description provides clear usage context: it explains the two mutually exclusive selectors (channels list vs pattern) and gives guidance on pattern limitations ('only sees channels you have joined'). It also notes the cost of min_members. However, it doesn't explicitly name alternative tools like slack_channel_history for single-channel needs or slack_search for search scenarios, leaving some inference to the agent. The context is clear but not exhaustive in exclusions.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gregbuehler/mcp-slack'

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