Slack ACTION
Get Channel History
Read the recent message history from a specific channel or direct message (DM). Accepts a channel ID (preferred — resolves instantly) or channel name (resolved by scanning up to 5 pages, ~5,000 channels, of the workspace's channel list — a name beyond that bound will not be found, so pass the ID when you have it). To read a DM, pass the other person's user ID (e.g.
U1234567890) as the channel — pass your OWN user ID to read your conversation with yourself. Use this when you want to see a channel's or DM's latest messages — unlike Search which finds messages by keyword. Returns messages with text, timestamps (ts), reactions, and user IDs. Message timestamps can be used with Get Thread Replies, Edit Message, and Add Reaction. Pass fields (e.g. text,ts,user) unless you need full message objects — raw Slack messages carry blocks, attachments and edit metadata, so a busy channel can run to tens of thousands of characters and be truncated before you see any of it. See the documentation- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Slack account once, then configure and run Get Channel History from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "slack_v2-get-channel-history",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
slack_v2: { authProvisionId: "apn_xxxxxxx" },
channel: "Channel",
limit: 10,
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "slack_v2-get-channel-history",
"configured_props": {
"slack_v2": { "authProvisionId": "apn_xxxxxxx" },
"channel": "Channel",
"limit": 10
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "slack_v2",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "slack_v2-get-channel-history",
arguments: {
channel: "Channel",
limit: 10,
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
channel Channel | string | Prefer a channel ID (e.g. C1234567890) — use List Channels to look it up; it resolves instantly. A channel name (e.g. general or #general) is also accepted, but resolving it scans up to 5 pages (~5,000 channels) of the workspace's channel list, which can be slow — and a valid channel beyond that bound will not be found. For a direct message, pass a user ID (e.g. U1234567890) — including your own, to read your self-DM. Required |
limit Limit | integer | Maximum number of messages to return. Default: 20. Optional |
oldest Oldest | string | Only return messages posted after this timestamp (inclusive), as a Slack timestamp, e.g. 1610000000.000000 (Unix epoch seconds, optionally with fractional microseconds). Optional |
latest Latest | string | Only return messages posted before this timestamp. Defaults to now. Same format as Oldest, e.g. 1610000000.000000. Optional |
fields Fields | string[] | Message properties to return, e.g. text, ts, user, thread_ts, reply_count, reactions. Recommended: ["text", "ts", "user"]. Omit only when you need the full message objects. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- slack_v2-get-channel-history
- Version
- 0.2.5
- App
- Slack
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗