Slack Integration
Send and manage Slack messages and channels
The Slack integration provides access to send and manage Slack messages and channels through the Integrate MCP server.
Installation
The Slack integration is included with the SDK:
import { slackIntegration } from "integrate-sdk/server";Setup
1. Create a Slack OAuth App
- Go to Slack API Apps
- Create a new OAuth application
- Configure your redirect URI
- Note your Client ID and Client Secret
2. Configure the Integration on Your Server
Add the Slack integration to your server configuration. The integration automatically reads SLACK_CLIENT_ID and SLACK_CLIENT_SECRET from your environment variables:
import { createMCPServer, slackIntegration } from "integrate-sdk/server";
export const { client: serverClient } = createMCPServer({
apiKey: process.env.INTEGRATE_API_KEY,
integrations: [
slackIntegration({
}),
],
});You can override the environment variables by passing explicit values:
slackIntegration({
clientId: process.env.CUSTOM_SLACK_ID,
clientSecret: process.env.CUSTOM_SLACK_SECRET,
});3. Client-Side Usage
The default client automatically includes all integrations. You can use it directly:
import { client } from "integrate-sdk";
await client.authorize("slack");
const result = await client.slack.sendMessage({
channel: "value",
});
console.log(result);If you're using a custom client, add the integration to the integrations array:
import { createMCPClient, slackIntegration } from "integrate-sdk";
const customClient = createMCPClient({
integrations: [slackIntegration()],
});Configuration Options
export interface SlackIntegrationConfig {
/** Slack OAuth client ID (defaults to SLACK_CLIENT_ID env var) */
clientId?: string;
Tools
slack_send_message
Send a message to a Slack channel
export interface SlackSendMessageParams {
/** Channel ID or name */
channel: string;
slack_list_messages
Get message history from a channel
export interface SlackListMessagesParams {
/** Channel ID */
channel: string;
slack_get_thread_replies
Get all replies in a message thread
export interface SlackGetThreadRepliesParams {
/** Channel ID */
channel: string;
slack_update_message
Update the text of an existing message
export interface SlackUpdateMessageParams {
/** Channel ID */
channel: string;
slack_delete_message
Delete a message
export interface SlackDeleteMessageParams {
/** Channel ID */
channel: string;
slack_schedule_message
Schedule a message to be sent at a future time
export interface SlackScheduleMessageParams {
/** Channel ID */
channel: string;
slack_get_permalink
Get a permanent URL for a specific message
export interface SlackGetPermalinkParams {
/** Channel ID */
channel: string;
slack_search_messages
Search for messages across the workspace
export interface SlackSearchMessagesParams {
/** Search query string */
query: string;
slack_list_channels
List channels in the workspace
export interface SlackListChannelsParams {
/** Exclude archived channels (default: true) */
exclude_archived?: boolean;
slack_get_channel
Get details about a specific channel
export interface SlackGetChannelParams {
/** Channel ID */
channel: string;
slack_create_channel
Create a new channel
export interface SlackCreateChannelParams {
/** Channel name */
name: string;
slack_invite_to_channel
Invite one or more users to a channel
export interface SlackInviteToChannelParams {
/** Channel ID */
channel: string;
slack_list_channel_members
List all members of a channel
export interface SlackListChannelMembersParams {
/** Channel ID */
channel: string;
slack_set_channel_topic
Set the topic of a channel
export interface SlackSetChannelTopicParams {
/** Channel ID */
channel: string;
slack_archive_channel
Archive a channel
export interface SlackArchiveChannelParams {
/** Channel ID */
channel: string;
slack_list_users
List all users in the workspace
export interface SlackListUsersParams {
/** Max users to return */
limit?: number;
slack_get_user
Get detailed profile for a user
export interface SlackGetUserParams {
/** User ID */
user: string;
slack_lookup_user_by_email
Find a user by their email address
export interface SlackLookupUserByEmailParams {
/** Email address */
email: string;
slack_add_reaction
Add an emoji reaction to a message
export interface SlackAddReactionParams {
/** Channel ID */
channel: string;
slack_remove_reaction
Remove an emoji reaction from a message
export interface SlackRemoveReactionParams {
/** Channel ID */
channel: string;
slack_get_reactions
Get all reactions on a message
export interface SlackGetReactionsParams {
/** Channel ID */
channel: string;
slack_upload_file
Upload a text file to one or more channels
export interface SlackUploadFileParams {
/** Comma-separated channel IDs */
channels: string;
slack_pin_message
Pin a message in a channel
export interface SlackPinMessageParams {
/** Channel ID */
channel: string;
slack_unpin_message
Unpin a message in a channel
export interface SlackUnpinMessageParams {
/** Channel ID */
channel: string;
slack_list_pins
List all pinned items in a channel
export interface SlackListPinsParams {
/** Channel ID */
channel: string;
slack_set_channel_purpose
Set the purpose of a channel
export interface SlackSetChannelPurposeParams {
/** Channel ID */
channel: string;
slack_rename_channel
Rename a channel
export interface SlackRenameChannelParams {
/** Channel ID */
channel: string;
slack_join_channel
Join a channel
export interface SlackJoinChannelParams {
/** Channel ID or name */
channel: string;
slack_leave_channel
Leave a channel
export interface SlackLeaveChannelParams {
/** Channel ID */
channel: string;
slack_kick_from_channel
Remove a user from a channel
export interface SlackKickFromChannelParams {
/** Channel ID */
channel: string;
slack_unarchive_channel
Unarchive a channel
export interface SlackUnarchiveChannelParams {
/** Channel ID */
channel: string;
slack_open_dm
Open or resume a direct message conversation with one or more users
export interface SlackOpenDmParams {
/** Comma-separated user IDs (supports group DMs) */
users: string;
slack_get_user_presence
Get the presence status of a user
export interface SlackGetUserPresenceParams {
/** User ID */
user: string;
slack_get_dnd_info
Get Do Not Disturb status for a user
export interface SlackGetDndInfoParams {
/** User ID */
user: string;
slack_list_files
List files in the workspace
export interface SlackListFilesParams {
/** Filter to files in this channel */
channel?: string;
slack_get_file
Get info about a file
export interface SlackGetFileParams {
/** File ID */
file: string;
slack_delete_file
Delete a file
export interface SlackDeleteFileParams {
/** File ID */
file: string;
slack_get_team_info
Get information about the current workspace/team
No parameters.
slack_list_bookmarks
List bookmarks for a channel
export interface SlackListBookmarksParams {
/** Channel ID */
channel: string;
slack_add_bookmark
Add a bookmark to a channel
export interface SlackAddBookmarkParams {
/** Channel ID */
channel: string;
slack_list_reminders
List reminders for the authenticated user
No parameters.
slack_add_reminder
Create a reminder for the authenticated user
export interface SlackAddReminderParams {
/** Reminder text */
text: string;
slack_list_usergroups
List user groups in the workspace
export interface SlackListUsergroupsParams {
/** Whether to include user lists for each group */
include_users?: boolean;
Notes
- Category: Communication
- Authentication mode: OAuth