Check if Slack tokens are valid.
Parameters: None
Returns:
{
"status": "ok",
"code": "ok",
"message": "Slack auth valid",
"user": "james",
"team": "Rêvasser",
"token_source": "environment",
"token_updated": "2026-01-03T00:00:00Z"
}
Get detailed token health, age, and cache statistics.
Parameters: None
Returns:
{
"status": "healthy",
"code": "ok",
"message": "Token is healthy",
"next_action": null,
"token": {
"status": "healthy",
"age_hours": 2.5,
"source": "file",
"updated_at": "2026-01-08T12:00:00Z"
},
"auto_refresh": {
"enabled": true,
"interval": "4 hours",
"requires": "Slack tab open in Chrome"
},
"cache": {
"users": { "size": 25, "maxSize": 500, "ttlMs": 3600000 },
"dms": { "count": 10, "age_hours": 1.2 }
}
}
Force refresh tokens from Chrome.
Prerequisites: Chrome must be running with a Slack tab open (app.slack.com).
Parameters: None
Returns:
{
"status": "ok",
"code": "refreshed",
"message": "Tokens refreshed from Chrome.",
"user": "james",
"team": "Rêvasser"
}
List all DMs and channels.
Parameters: | Name | Type | Default | Description | |——|——|———|————-| | types | string | “im,mpim” | Conversation types to include | | limit | number | 100 | Maximum results |
Types:
im - Direct messagesmpim - Group DMspublic_channel - Public channelsprivate_channel - Private channelsReturns:
{
"count": 5,
"conversations": [
{
"id": "D063M4403MW",
"name": "Gwen Santos",
"type": "dm",
"user_id": "U05GPEVH7J9"
}
]
}
Get messages from a channel or DM.
Parameters: | Name | Type | Default | Description | |——|——|———|————-| | channel_id | string | required | Channel or DM ID | | limit | number | 50 | Messages to fetch (max 100) | | oldest | string | - | Unix timestamp, get messages after | | latest | string | - | Unix timestamp, get messages before | | resolve_users | boolean | true | Convert user IDs to names |
Returns:
{
"channel": "D063M4403MW",
"message_count": 50,
"has_more": true,
"messages": [
{
"ts": "1767368030.607599",
"user": "Gwen Santos",
"user_id": "U05GPEVH7J9",
"text": "Hello!",
"datetime": "2026-01-02T15:33:50.000Z",
"has_thread": false
}
]
}
Export full conversation with threads.
Parameters: | Name | Type | Default | Description | |——|——|———|————-| | channel_id | string | required | Channel or DM ID | | oldest | string | - | Unix timestamp start | | latest | string | - | Unix timestamp end | | max_messages | number | 2000 | Max messages (up to 10000) | | include_threads | boolean | true | Fetch thread replies | | output_file | string | - | Filename (saved to ~/.slack-mcp-exports/) |
Timestamps:
17330112001735689600Returns:
{
"channel": "D063M4403MW",
"exported_at": "2026-01-03T16:00:00Z",
"total_messages": 150,
"date_range": {
"oldest": "2025-12-01T00:00:00Z",
"latest": "now"
},
"saved_to": "/Users/james/export.json",
"messages": [...]
}
Search messages across the workspace.
Parameters: | Name | Type | Default | Description | |——|——|———|————-| | query | string | required | Search query | | count | number | 20 | Number of results (max 100) |
Query Syntax:
from:@username - From specific userin:#channel - In specific channelhas:link - Has linksbefore:2026-01-01 - Before dateafter:2025-12-01 - After dateReturns:
{
"query": "project update",
"total": 25,
"matches": [
{
"ts": "1767368030.607599",
"channel": "general",
"channel_id": "C05GPEVH7J9",
"user": "Example User",
"text": "Here's the project update...",
"datetime": "2026-01-02T15:33:50.000Z",
"permalink": "https://..."
}
]
}
Send a message.
Parameters: | Name | Type | Default | Description | |——|——|———|————-| | channel_id | string | required | Channel or DM ID | | text | string | required | Message text | | thread_ts | string | - | Thread to reply to |
Returns:
{
"status": "sent",
"channel": "D063M4403MW",
"ts": "1767368030.607599",
"message": "Hello!"
}
Get all replies in a thread.
Parameters: | Name | Type | Default | Description | |——|——|———|————-| | channel_id | string | required | Channel or DM ID | | thread_ts | string | required | Thread parent timestamp |
Returns:
{
"channel": "D063M4403MW",
"thread_ts": "1767368030.607599",
"message_count": 5,
"messages": [
{
"ts": "1767368030.607599",
"user": "James Lambert",
"text": "Original message",
"datetime": "2026-01-02T15:33:50.000Z",
"is_parent": true
}
]
}
Get user details.
Parameters: | Name | Type | Default | Description | |——|——|———|————-| | user_id | string | required | Slack user ID |
Returns:
{
"id": "U05GPEVH7J9",
"name": "gwen",
"real_name": "Gwen Santos",
"display_name": "Gwen",
"email": "gwen@example.com",
"title": "Assistant",
"timezone": "America/New_York",
"is_bot": false,
"is_admin": false
}
List all workspace users.
Parameters: | Name | Type | Default | Description | |——|——|———|————-| | limit | number | 100 | Maximum users to return |
Returns:
{
"count": 10,
"users": [
{
"id": "U05GPEVH7J9",
"name": "gwen",
"real_name": "Gwen Santos",
"display_name": "Gwen",
"email": "gwen@example.com",
"is_admin": false
}
]
}