Skip to main content
Glama
Beyond-Network-AI

Beyond MCP Server

get-thread

Extract threads or conversations from social platforms (Farcaster, Twitter, Telegram) using a specific thread ID to access and analyze structured data for LLM workflows.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
platformYesSocial platform (farcaster, twitter, telegram)
threadIdYesThread or conversation ID

Implementation Reference

  • Registration and handler implementation of the 'get-thread' tool. Defines input schema (platform, threadId), fetches the thread via the platform-specific provider, formats it, and returns as text content. Handles provider not found and errors.
    server.tool(
      "get-thread",
      {
        platform: z.string().describe("Social platform (farcaster, twitter, telegram)"),
        threadId: z.string().describe("Thread or conversation ID")
      },
      async ({ platform, threadId }) => {
        try {
          const provider = providerRegistry.getProviderForPlatform(platform);
          
          if (!provider) {
            return {
              content: [{ type: "text", text: `Provider for platform '${platform}' not found or not enabled` }],
              isError: true
            };
          }
          
          const thread = await provider.getThread(threadId);
          
          return {
            content: [{ 
              type: "text", 
              text: formatThread(thread) 
            }]
          };
        } catch (error) {
          return {
            content: [{ 
              type: "text", 
              text: `Error fetching ${platform} thread '${threadId}': ${error instanceof Error ? error.message : String(error)}` 
            }],
            isError: true
          };
        }
      }
    );
  • Helper function to format the retrieved thread data (root post and replies) into a structured, readable text string for the tool response.
    function formatThread(thread: any): string {
      const rootContent = thread.content;
      const replies = thread.replies;
      
      const root = `
    Original Post by @${rootContent.authorUsername} (${rootContent.authorName}):
    "${rootContent.text}"
    - Posted: ${new Date(rootContent.createdAt).toLocaleString()}
    - Engagement: ${rootContent.likes || 0} likes, ${rootContent.reposts || 0} reposts, ${rootContent.replies || 0} replies
    - ID: ${rootContent.id}
    `;
      
      let repliesText = '';
      if (replies.length > 0) {
        repliesText = '\nReplies:\n\n' + replies.map((reply: SocialContent, index: number) => {
          return `[${index + 1}] @${reply.authorUsername} (${reply.authorName}): ${reply.text}
          - Posted: ${new Date(reply.createdAt).toLocaleString()}
          - Engagement: ${reply.likes || 0} likes, ${reply.reposts || 0} reposts, ${reply.replies || 0} replies
          - ID: ${reply.id}`;
        }).join('\n\n');
      } else {
        repliesText = '\nNo replies to this post.';
      }
      
      return `Thread on ${thread.platform}:\n${root}${repliesText}`;
    }
  • Calls registerContentTools which registers the 'get-thread' tool among others on the MCP server.
    registerContentTools(server, providerRegistry);
Install Server

Other Tools

Related Tools

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/Beyond-Network-AI/beyond-mcp-server'

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