Skip to main content
Glama
z9905080

MCP Server for Slack

by z9905080

slack_reply_to_thread

Post replies to specific message threads in Slack channels using channel ID, thread timestamp, and reply text.

Instructions

Reply to a specific message thread in Slack

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channel_idYesThe ID of the channel containing the thread
thread_tsYesThe timestamp of the parent message in the format '1234567890.123456'. Timestamps in the format without the period can be converted by adding the period such that 6 numbers come after it.
textYesThe reply text

Implementation Reference

  • Executes the slack_reply_to_thread tool by validating input arguments and invoking the SlackClient.postReply method to send the reply via Slack API.
    case "slack_reply_to_thread": {
      const args = request.params
        .arguments as unknown as ReplyToThreadArgs;
      if (!args.channel_id || !args.thread_ts || !args.text) {
        throw new Error(
          "Missing required arguments: channel_id, thread_ts, and text",
        );
      }
      const response = await slackClient.postReply(
        args.channel_id,
        args.thread_ts,
        args.text,
      );
      return {
        content: [{ type: "text", text: JSON.stringify(response) }],
      };
    }
  • Defines the Tool object for slack_reply_to_thread, including name, description, and input schema with required parameters: channel_id, thread_ts, text.
    const replyToThreadTool: Tool = {
      name: "slack_reply_to_thread",
      description: "Reply to a specific message thread in Slack",
      inputSchema: {
        type: "object",
        properties: {
          channel_id: {
            type: "string",
            description: "The ID of the channel containing the thread",
          },
          thread_ts: {
            type: "string",
            description: "The timestamp of the parent message in the format '1234567890.123456'. Timestamps in the format without the period can be converted by adding the period such that 6 numbers come after it.",
          },
          text: {
            type: "string",
            description: "The reply text",
          },
        },
        required: ["channel_id", "thread_ts", "text"],
      },
    };
  • SlackClient method that makes the HTTP POST request to Slack's chat.postMessage API to reply to a thread, using the provided channel_id, thread_ts, and text.
    async postReply(
      channel_id: string,
      thread_ts: string,
      text: string,
    ): Promise<any> {
      const response = await fetch("https://slack.com/api/chat.postMessage", {
        method: "POST",
        headers: this.botHeaders,
        body: JSON.stringify({
          channel: channel_id,
          thread_ts: thread_ts,
          text: text,
        }),
      });
    
      return response.json();
    }
  • index.ts:567-582 (registration)
    Registers the slack_reply_to_thread tool (as replyToThreadTool) in the list of available tools returned by the ListToolsRequest handler.
    server.setRequestHandler(ListToolsRequestSchema, async () => {
      console.log("Received ListToolsRequest");
      return {
        tools: [
          listChannelsTool,
          postMessageTool,
          replyToThreadTool,
          addReactionTool,
          getChannelHistoryTool,
          getThreadRepliesTool,
          getUsersTool,
          getUserProfileTool,
          lookupUserByEmailTool,
        ],
      };
    });
  • TypeScript interface defining the input arguments for the slack_reply_to_thread tool, used for type checking in the handler.
    interface ReplyToThreadArgs {
      channel_id: string;
      thread_ts: string;
      text: string;
    }

Latest Blog Posts

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

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