Skip to main content
Glama
messages.ts3.06 kB
import { SlackClientWrapper } from '../utils/slack-client.js'; import { sendMessageSchema, updateMessageSchema, deleteMessageSchema, getChannelHistorySchema, searchMessagesSchema, sendFormattedMessageSchema, } from '../utils/validators.js'; 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, }; }); } export async function updateMessage(client: SlackClientWrapper, args: unknown) { const params = updateMessageSchema.parse(args); return await client.safeCall(async () => { const result = await client.getClient().chat.update({ channel: params.channel, ts: params.ts, text: params.text, }); return { ok: true, channel: result.channel, ts: result.ts, message: result.message, }; }); } export async function deleteMessage(client: SlackClientWrapper, args: unknown) { const params = deleteMessageSchema.parse(args); return await client.safeCall(async () => { await client.getClient().chat.delete({ channel: params.channel, ts: params.ts, }); return { ok: true, channel: params.channel, ts: params.ts, }; }); } export async function getChannelHistory(client: SlackClientWrapper, args: unknown) { const params = getChannelHistorySchema.parse(args); return await client.safeCall(async () => { const result = await client.getClient().conversations.history({ channel: params.channel, limit: params.limit, oldest: params.oldest, latest: params.latest, cursor: params.cursor, }); return { messages: result.messages || [], has_more: result.has_more, next_cursor: result.response_metadata?.next_cursor, }; }); } export async function searchMessages(client: SlackClientWrapper, args: unknown) { const params = searchMessagesSchema.parse(args); return await client.safeCall(async () => { const result = await client.getClient().search.messages({ query: params.query, count: params.count, sort: params.sort, }); return { messages: result.messages, total: result.messages?.total || 0, }; }); } export async function sendFormattedMessage(client: SlackClientWrapper, args: unknown) { const params = sendFormattedMessageSchema.parse(args); return await client.safeCall(async () => { const result = await client.getClient().chat.postMessage({ channel: params.channel, text: params.text, blocks: params.blocks as any, thread_ts: params.thread_ts, }); return { ok: true, channel: result.channel, ts: result.ts, message: result.message, }; }); }

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/Hais/slack-bot-mcp'

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