Skip to main content
Glama

get-user-profile

Retrieve user profile data from social platforms like Farcaster, Twitter, or Telegram by specifying the platform and user ID. Integrates with the Beyond MCP Server for standardized access.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
platformYesSocial platform (farcaster, twitter, telegram)
userIdYesUser ID or username on the platform

Implementation Reference

  • Top-level registration of content tools module, which includes the get-user-profile tool via registerContentTools(server, providerRegistry).
    registerContentResources(server, providerRegistry); registerContentTools(server, providerRegistry); registerContentPrompts(server);
  • The MCP server.tool registration and inline handler for 'get-user-profile'. Fetches user profile from platform-specific provider and formats it using formatUserProfile.
    server.tool( "get-user-profile", { platform: z.string().describe("Social platform (farcaster, twitter, telegram)"), userId: z.string().describe("User ID or username on the platform") }, async ({ platform, userId }) => { 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 profile = await provider.getUserProfile(userId); return { content: [{ type: "text", text: formatUserProfile(profile) }] }; } catch (error) { return { content: [{ type: "text", text: `Error fetching ${platform} user profile for '${userId}': ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } }
  • Zod input schema for the get-user-profile tool: platform (string) and userId (string).
    { platform: z.string().describe("Social platform (farcaster, twitter, telegram)"), userId: z.string().describe("User ID or username on the platform") },
  • formatUserProfile helper function that formats the retrieved user profile data into a human-readable string for the tool response.
    function formatUserProfile(profile: any): string { const metadata = profile.metadata || {}; const verifiedEthAddresses = metadata.verifiedEthAddresses || []; const verifiedSolAddresses = metadata.verifiedSolAddresses || []; let walletInfo = ''; if (verifiedEthAddresses.length > 0 || verifiedSolAddresses.length > 0) { walletInfo = '\nWallet Information:'; if (verifiedEthAddresses.length > 0) { walletInfo += `\n- Verified ETH Addresses: ${verifiedEthAddresses.join(', ')}`; } if (verifiedSolAddresses.length > 0) { walletInfo += `\n- Verified SOL Addresses: ${verifiedSolAddresses.join(', ')}`; } if (metadata.primaryEthAddress) { walletInfo += `\n- Primary ETH Address: ${metadata.primaryEthAddress}`; } if (metadata.primarySolAddress) { walletInfo += `\n- Primary SOL Address: ${metadata.primarySolAddress}`; } } let additionalInfo = ''; if (metadata.custodyAddress) { additionalInfo += `\n- Custody Address: ${metadata.custodyAddress}`; } if (metadata.recoveryAddress) { additionalInfo += `\n- Recovery Address: ${metadata.recoveryAddress}`; } if (metadata.hasEmail) { additionalInfo += '\n- Has Email: Yes'; } if (metadata.activeStatus) { additionalInfo += `\n- Active Status: ${metadata.activeStatus}`; } if (metadata.powerBadge) { additionalInfo += `\n- Power Badge: ${metadata.powerBadge}`; } return ` User Profile: @${profile.username} (${profile.displayName}) Platform: ${profile.platform} Bio: ${profile.bio || 'No bio available'} Followers: ${profile.followerCount || 0} Following: ${profile.followingCount || 0} Verified: ${profile.verified ? 'Yes' : 'No'} User ID: ${profile.id}${walletInfo}${additionalInfo} `; }

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