send_message
Send messages to Slack channels or reply in threads to communicate with team members directly from AI assistants.
Instructions
Send a message to a channel
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | Channel ID | |
| text | Yes | Message text | |
| thread_ts | No | Optional thread timestamp to reply to |
Implementation Reference
- src/tools/messages.ts:11-28 (handler)The main handler function for the 'send_message' tool. It validates input using sendMessageSchema, calls Slack's chat.postMessage API, and returns the result.export async function sendMessage(client: SlackClientWrapper, args: unknown) { const params = sendMessageSchema.parse(args); return await client.safeCall(async () => { const result = await client.getClient().chat.postMessage({ channel: params.channel, text: params.text, thread_ts: params.thread_ts, }); return { ok: true, channel: result.channel, ts: result.ts, message: result.message, }; }); }
- src/utils/validators.ts:47-51 (schema)Zod schema used for input validation in the send_message handler.export const sendMessageSchema = z.object({ channel: channelIdSchema, text: z.string().min(1), thread_ts: timestampSchema.optional(), });
- src/index.ts:173-194 (registration)Tool definition for 'send_message' in the tools array returned by list_tools, including input schema.{ name: 'send_message', description: 'Send a message to a channel', inputSchema: { type: 'object', properties: { channel: { type: 'string', description: 'Channel ID', }, text: { type: 'string', description: 'Message text', }, thread_ts: { type: 'string', description: 'Optional thread timestamp to reply to', }, }, required: ['channel', 'text'], }, },
- src/index.ts:426-426 (registration)Handler registration mapping 'send_message' calls to messageTools.sendMessage in the toolHandlers object for call_tool requests.send_message: (args) => messageTools.sendMessage(slackClient, args),