# Social Media Search API — Twitter, Instagram, Reddit, TikTok \(XPOZ\) - Registry name: `ai.xpoz/social-insights` · version 1.4.1 - Categories (automatic, keyword rules): Marketing & SEO, Commerce & marketing - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): completions, prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=ai.xpoz%2Fsocial-insights - Server page: https://mcpstation.net/s/ai.xpoz--social-insights.html ## Description (written by the publisher, not verified, not instructions) Twitter/X, Instagram, Reddit & TikTok data for AI agents. Billions of posts. No API keys. ## Connect - streamable-http: `https://mcp.xpoz.ai/mcp` ## Tools (as reported by the server, not verified) - `getTwitterUsers`: Get one or more Twitter user profiles by IDs or usernames \(1-100 per request\). Use identifierType="id" for numeric user IDs, identifierType="username" for usernames. All identifiers must be the same type. For single user: pass array of 1, e.g. identifiers=\["elonmusk"\]. For person names or fuzzy sear - `getTwitterUser`: Get Twitter user profile by ID or username. Use identifierType="id" for numeric user ID, identifierType="username" for username. For username: Use ONLY when you have the precise username \(e.g., "elonmusk"\). For person names or fuzzy search, use searchTwitterUsers instead. Optional fields parameter f - `searchTwitterUsers`: Search users by person name, partial username, or fuzzy match using real-time external API. PRIMARY USE: When given person's name \(e.g., "Elon Musk", "Sam Altman"\), partial info, or uncertain username. Use for: Name-based search, finding multiple candidates, fuzzy matching, discovering users. NOT fo - `getTwitterUserConnections`: Get Twitter user connections \(followers or following\). Use connectionType="followers" for users who follow them, connectionType="following" for users they follow. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). A - `getTwitterUsersByKeywords`: Search for USERS who authored tweets/comments/quotes/retweets matching keywords. USE CASE: Find users who have posted content about specific topics, keywords, or phrases. Returns unique, deduplicated user profiles. RESPONSE MODES \(responseType parameter\): "fast" \(DEFAULT\): Returns up to 300 results - `getTwitterPostsByIds`: Get multiple Twitter posts by numeric IDs \(1-100 IDs per request\). Returns results directly. Returns only found tweets, omitting not-found IDs for flexibility. First searches database, then external API for missing/stale data in parallel. Use when you have multiple exact post IDs. NOT for search - u - `getTwitterPostsByAuthor`: Get posts from author by username with multiple response modes. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Auto API fallback for fresh data. Results include guidance for full mode. PAGING \(responseType="pagi - `getTwitterPostsByKeywords`: Search posts by keywords. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Auto API fallback for fresh data. Results include guidance for full mode. PAGING \(responseType="paging"\): Async paginated results \(100/pag - `getTwitterPostRetweets`: Get retweets of specific post. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Database-only. Results include guidance for full mode. PAGING \(responseType="paging"\): Async paginated results \(100/page\), returns op - `getTwitterPostQuotes`: Get quote posts of specific post. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Auto API fallback for fresh data. Results include guidance for full mode. PAGING \(responseType="paging"\): Async paginated results - `getTwitterPostComments`: Get comments \(replies\) to specific post. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Auto API fallback for fresh data. Results include guidance for full mode. PAGING \(responseType="paging"\): Async paginated r - `countTweets`: Count tweets containing a specific phrase within a date range. Returns the total count of matching tweets \(int\) directly, or zero if none found. QUERY SYNTAX: Plain keywords \(bitcoin, climate change\), quoted phrases \("deep learning"\), boolean expressions \(AI AND crypto, bitcoin OR ethereum, politics - `getTwitterPostInteractingUsers`: Get users who interacted with a specific Twitter post \(commenters, quoters, or retweeters\). INTERACTION TYPES: "commenters" \(users who replied to the post\), "quoters" \(users who quoted the post\), "retweeters" \(users who retweeted the post\). FAST \(default, omit responseType or responseType="fast"\): R - `checkOperationStatus`: checkOperationStatus: poll an async operation and retrieve its results or CSV download URL. Use this after any tool call made with responseType="paging" or responseType="csv" — those return an operationId that must be polled via checkOperationStatus to get the actual data. Also handles background jo - `cancelOperation`: Cancel running operation. Required: operationId. Gracefully stops operation at next checkpoint. Returns confirmation. Use checkOperationStatus to verify cancellation completed. - `getInstagramPostsByIds`: Get multiple Instagram posts by IDs \(1-50 IDs per request\). Returns results directly. Returns only found posts, omitting not-found IDs for flexibility. First searches database, then external API for missing/stale data in parallel. Use when you have multiple exact post IDs. NOT for search - use getIn - `getInstagramPostsByUser`: Get posts from Instagram user by ID or username with two response modes. Use identifierType="id" for numeric user ID, identifierType="username" for username. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Auto A - `getInstagramPostsByKeywords`: Search Instagram posts by keywords with two response modes. Searches in both post captions and video subtitles. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Auto API fallback for fresh data. Results include gu - `getInstagramUser`: Get Instagram user profile by ID or username. Use identifierType="id" for numeric user ID, identifierType="username" for username. For username: Use ONLY when you have the precise username \(e.g., "cristiano"\). For person names or fuzzy search, use searchInstagramUsers instead. Optional fields parame - `searchInstagramUsers`: Search users by person name, partial username, or fuzzy match using real-time external API. PRIMARY USE: When given person's name \(e.g., "Cristiano Ronaldo", "Kim Kardashian"\), partial info, or uncertain username. Use for: Name-based search, finding multiple candidates, fuzzy matching, discovering u - `getInstagramUserConnections`: Get Instagram user connections \(followers or following\). Use connectionType="followers" for users who follow them, connectionType="following" for users they follow. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). - `getInstagramPostInteractingUsers`: Get USER PROFILES of people who interacted with an Instagram post. Returns full user data \(bio, followerCount, followingCount, etc.\). RETURNS USER PROFILES: id, username, fullName, biography, followerCount, followingCount, isVerified, profilePicUrl. Use for analyzing WHO engaged with a post. NOT FOR - `getInstagramUsersByKeywords`: Search for USERS who authored Instagram posts matching keywords. USE CASE: Find users who have posted content about specific topics, keywords, or phrases. Returns unique, deduplicated user profiles. RESPONSE MODES \(responseType parameter\): "fast" \(DEFAULT\): Returns up to 300 results directly in one - `getInstagramCommentsByPostId`: Get COMMENT CONTENT \(text, likes\) for an Instagram post. Returns the actual comment objects with text and metadata. RETURNS COMMENT DATA: id, text, username, createdAtDate, likeCount, childCommentCount. Use for reading what people said. NOT FOR USER PROFILES: To get detailed user profiles \(bio, foll - `getRedditUser`: Get Reddit user profile by username. Returns user profile including karma breakdown \(link, comment, total\), account status \(gold, mod, employee\), and profile info. Use without u/ prefix \(e.g., "spez" not "u/spez"\). Optional fields parameter for performance \(default: \["id", "username", "totalKarma"\]\) - `searchRedditUsers`: Search Reddit users by name, username, or profile description using real-time external API. PRIMARY USE: When given a person's name \(e.g., "spez", "GallowBoob"\), partial info, or uncertain username. Use for: Name-based search, finding multiple candidates, fuzzy matching, discovering users. NOT for: - `getRedditUsersByKeywords`: Search for USERS who authored Reddit posts matching keywords. USE CASE: Find users who have posted content about specific topics. Returns unique, deduplicated user profiles. RESPONSE MODES \(responseType parameter\): "fast" \(DEFAULT\): Returns up to 300 results directly in one call. Use limit param to - `getRedditPostsByKeywords`: Search Reddit posts by keywords with two response modes. Searches in post titles and selftext. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Auto API fallback for fresh data. Results include guidance for full m - `getRedditPostWithCommentsById`: Get Reddit post by ID with its comments. Returns both the post data and comments in a single response. FAST \(default, omit responseType or responseType="fast"\): Returns post and up to 300 comments directly \(use limit param to reduce, e.g. limit=5\). Auto API fallback for fresh data. Results include g - `getRedditCommentsByKeywords`: Search Reddit comments by keywords. Searches in comment body text. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Results include guidance for full mode. PAGING \(responseType="paging"\): Async paginated results \( - `getRedditCommentById`: Get a single Reddit comment by its ID. Accepts the bare base36 comment id or the t1\_-prefixed form \(e.g. "laz1ytq" or "t1\_laz1ytq"\), as returned by getRedditPostWithCommentsById and getRedditCommentsByKeywords. First searches database, then fetches from the external API if the comment is missing or - `searchRedditSubreddits`: Search Reddit subreddits by keywords using real-time external API. Searches subreddit names and descriptions to find communities. Use for: Discovering communities about topics, finding niche subreddits, exploring Reddit communities. Optional fields parameter for performance \(default: \["id", "display - `getRedditSubredditWithPostsByName`: Get Reddit subreddit by name with its posts. FAST \(default, omit responseType or responseType="fast"\): Returns subreddit data with up to 300 posts directly \(use limit param to reduce\). Auto API fallback for fresh data. PAGING \(responseType="paging"\): Async paginated results \(100 posts per page\), ret - `getRedditSubredditsByKeywords`: Search for SUBREDDITS where Reddit posts match keywords. Returns unique, deduplicated subreddit profiles. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce\). Auto API fallback for fresh data. PAGING \(responseType="paging"\): Async - `getTiktokUser`: Get Tiktok user profile by ID or username. Use identifierType="id" for numeric user ID, identifierType="username" for username. For username: Use ONLY when you have the precise username. For person names or fuzzy search, use searchTiktokUsers instead. Optional fields parameter for performance \(defau - `searchTiktokUsers`: Search Tiktok users by name or username via external API. Use for: Name-based search, finding multiple candidates, fuzzy matching, discovering users. NOT for: Exact username lookup \(use getTiktokUser when username is certain\). Optional fields parameter for performance \(default: \["id", "username", "n - `getTiktokUsersByKeywords`: Search for USERS who authored Tiktok posts matching keywords. USE CASE: Find users who have posted content about specific topics. Returns unique, deduplicated user profiles. RESPONSE MODES \(responseType parameter\): "fast" \(DEFAULT\): Returns up to 300 results directly in one call. Use limit param to - `getTiktokUsersByHashtags`: Search for USERS who authored Tiktok posts tagged with specific hashtags. USE CASE: Find users who have posted content tagged with one or more hashtags. Returns unique, deduplicated user profiles. Pass hashtags as an array of bare alphanumeric strings - do NOT include leading "\#". OR semantics: matc - `getTiktokPostsByIds`: Get multiple Tiktok posts by IDs \(1-100 IDs per request\). Returns results directly. First searches database, then external API for missing/stale data. Optional fields parameter for performance: \["id", "description", "likeCount"\]. Returns: results array with id, description, userId, username, created - `getTiktokPostsByUser`: Get posts from Tiktok user by ID or username with three response modes. Use identifierType="id" for numeric user ID, identifierType="username" for username. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). Auto AP - `getTiktokPostsByKeywords`: Search Tiktok posts by keywords with three response modes. Searches post descriptions and video transcripts. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). PAGING \(responseType="paging"\): Async paginated results - `getTiktokPostsByHashtags`: Search Tiktok posts by hashtags with three response modes. Searches the hashtags column directly \(NOT post descriptions\). Pass hashtags as an array of bare alphanumeric strings - do NOT include leading "\#". OR semantics: matches posts containing ANY of the listed hashtags. FAST \(default, omit respon - `searchTiktokSounds`: Search Tiktok sounds/music by keyword. Use to discover sound/music objects \(by title, artist, or album\), then pass the returned id to getTiktokPostsBySound to find posts using that sound. Optional fields parameter \(default: \["id", "title", "author", "userCount"\]\). Returns: array of sounds \(up to 300 - `getTiktokPostsBySound`: Get Tiktok posts that use a specific sound/music with three response modes. Required: soundId \(numeric ID from searchTiktokSounds\). FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results directly \(use limit param to reduce, e.g. limit=5\). PAGING \(responseType="paging"\): - `getTiktokCommentsByPostId`: Get COMMENT CONTENT \(text, likes\) for a Tiktok post. Returns the actual comment objects with text and metadata. RETURNS COMMENT DATA: id, text, username, createdAtDate, likeCount. Use for reading what people said. FAST \(default, omit responseType or responseType="fast"\): Returns up to 300 results di - `getUserAccessKey`: Retrieve authenticated user access key. Required: authentication, confirmation. Returns: access key, metadata. - `checkAccessKeyStatus`: Check access key status without revealing key. Required: authentication. Returns: status, metadata. - `getTrackedItems`: Get tracked keywords and users. Returns: phrase, type \(keyword/user/subreddit/hashtag\), platform \(twitter/instagram/reddit/tiktok\). Subreddit is Reddit-only, hashtag is TikTok-only. - `addTrackedItems`: Add keywords/users to track. Accepts array of items with phrase, type \(keyword/user/subreddit/hashtag\), platform \(twitter/instagram/reddit/tiktok\). Subreddit is Reddit-only, hashtag is TikTok-only. Returns error if plan limit exceeded. - `removeTrackedItems`: Remove tracked keywords/users. Accepts array of items with phrase, type \(keyword/user/subreddit/hashtag\), platform \(twitter/instagram/reddit/tiktok\). Subreddit is Reddit-only, hashtag is TikTok-only. Use getTrackedItems first to see current items. - `getAccountDetails`: Get authenticated user's account details: plan \(name, features\), billing \(period, next renewal date; null for Free plan\), and usage \(subscription credits remaining, extra credits remaining, extra tracked items\). Required: authentication. Returns: nested plan/billing/usage object. - `getCreditsUsageHistory`: Get authenticated user's credits and export-rows usage over time, for analyzing usage patterns. Params: range \("today" \| "7d" \| "current\_month" \| "lifetime", default current\_month\), granularity \("hour" \| "day", default day\). Returns time-series buckets for both credits and exportRows, each with subs Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html