threads_create_ carousel_ containerStep 2 of a carousel: combine 2 to 20 slide ids from threads_create_carousel_item_container.
Post a thread from a draft, answer mentions, hide or approve replies, search what people are saying about a topic, and see which posts earned the most views this month.
PopMCPThreads
Every publishing, reply, search, profile and insights endpoint of the Threads API on one connection, plus one-call tools for posting and for ranking your posts.
39 tools in the full catalog: 26 read and 13 write. 37 load by default, and the rest are found with tool search.
threads_create_ carousel_ containerStep 2 of a carousel: combine 2 to 20 slide ids from threads_create_carousel_item_container.
threads_create_ carousel_ item_ containerStep 1 of a carousel: create one slide from a public image or video link, once per slide (2 to 20 slides, mixed is fine).
threads_create_ image_ containerCreate an image post container from a public image link Threads downloads: JPEG or PNG, 8 MB at most, width 320 to 1440 (scaled), aspect ratio up to 10:1.
threads_create_ text_ containerCreate a text post container: up to 500 characters (emoji count as their UTF-8 bytes), up to 5 links.
threads_create_ video_ containerCreate a video post container from a public video link Threads downloads: MP4 or MOV, H264 or HEVC with AAC audio, up to 5 minutes and 1 GB, 23 to 60 FPS, 9:16 recommended.
threads_delete_ postPermanently delete one of the account's own posts or replies.
threads_get_ container_ statusCheck a container before publishing it.
threads_publish_ containerThe step that actually posts: publish a container and get the new post's media id.
threads_repost_ postRepost a post to the connected account's Reposts tab.
threads_find_ post_ by_ linkTurn a threads.com link into the numeric media id the other tools need, for one of this account's OWN posts or replies.
threads_get_ account_ summaryHow the account is doing, in one call: the profile, totals over a date range (views, likes, replies, reposts, quotes, link clicks), follower count and how much of the daily quotas is used.
threads_get_ post_ overviewOne post in full, in one call: its text, media and link, its lifetime numbers (views, likes, replies, reposts, quotes, shares) and its latest 25 top-level replies.
threads_get_ top_ postsRank this account's recent posts by a metric: which posts did best.
threads_list_ conversationList every reply in a post's conversation, top-level and nested, as one flat list.
threads_list_ my_ repliesList the replies the connected account itself has written, on any post, newest first.
threads_list_ pending_ repliesList replies waiting for approval on a post created with enable_reply_approvals: true.
threads_list_ repliesList the top-level replies to a post, newest first by default.
threads_publish_ postPublish one Threads post in a single call: the usual way to post.
threads_publish_ threadPublish a chain of 2 to 10 text posts, each one a reply to the one before: what people mean by "post a thread".
threads_set_ pending_ reply_ approvalApprove or ignore a reply held for approval, by its id from threads_list_pending_replies.
threads_set_ reply_ hiddenHide or unhide a top-level reply on one of the account's posts; its nested replies follow.
threads_get_ postRead one post by its media id: text, media, permalink, timestamp, poll results, quoted or reposted post.
threads_get_ profileRead the connected Threads account's own profile: id, username, name, profile picture, biography and verified status.
threads_get_ publishing_ limitHow much of the account's rolling 24-hour quotas is used: posts (250), replies (1,000), deletions (100) and location searches (500).
threads_list_ ghost_ postsList the connected account's ghost posts (text posts that archive themselves after 24 hours), with ghost_post_status ACTIVE or ARCHIVED and the expiry time.
threads_list_ mentionsList public posts by other people that @mention the connected account, newest first.
threads_list_ postsList the connected account's own posts, newest first.
threads_list_ profile_ postsList the posts of another public Threads profile by exact username, newest first.
threads_lookup_ profileLook up another public Threads profile by exact username: name, picture, biography, verified status, follower count and 7-day likes, quotes, replies, reposts and views.
threads_search_ postsSearch public Threads posts by keyword or topic tag.
threads_get_ account_ insightsAccount totals over a date range: views (daily time series), likes, replies, reposts, quotes, clicks (per link) and followers_count.
threads_get_ follower_ demographicsWho follows the account, split by one breakdown: country, city, age or gender.
threads_get_ post_ insightsLifetime numbers for one post: views, likes, replies, reposts, quotes and shares (all six when metric is omitted).
threads_get_ locationRead one tagged place by its id: name, address, city, country, coordinates, postal code.
threads_search_ locationsFind places to tag on a post, by name or by coordinates (or both).
threads_get_ post_ embedGet the embed HTML for a public post, for pasting into a website.
threads_get_ token_ infoCheck this connection's own authorization: whether it is valid, when it expires, when data access expires, and exactly which permissions (scopes) it holds.
threads_create_ containerThe raw container endpoint.
threads_get_ recently_ searched_ keywordsThe keywords this account searched recently through threads_search_posts, each with a timestamp in milliseconds.
Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Threads side.
In your own Meta app with the Threads use case, add your account as a Threads Tester and accept the invitation in Threads. Then open Use cases, Access the Threads API, Settings, generate an access token and add it in PopMCP. No App Review is needed for your own account.
••••••••••••3f7a990602627938098••••••••••••3f7apublish_post, publish_thread, delete_post and set_reply_hidden take effect the moment the AI calls them. New connections are read-only until an owner allows writes, and only clients you tick for Threads on the PopMCP consent screen reach it.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Threads credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Post this draft as a thread, one part per paragraph
threads_publish_threadok
Then just ask for the work
“Post this draft as a thread, one part per paragraph”
“Rank my posts from last month by views and tell me what the best ones have in common”
“Find this week's mentions of my account and draft a reply to each”
“Hide the replies on my latest post that are advertising something”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Threads behind an AI client.
For now, yes. Threads has no personal API key: tokens come from a Meta app with the Threads use case. Creating one is free and takes a few minutes. Add your Threads account as a Threads Tester, accept the invitation under Website permissions in your Threads account settings, then generate a token on the use case's Settings page. PopMCP's own Threads app, which needs no setup at all, comes once Meta approves it.
Not for your own account. A Threads Tester can use every permission straight away. App Review is what lets an app serve people with no role on it, and it also opens up public data: until a permission is approved, keyword search covers only your own posts, location search answers only for Menlo Park, mentions come only from the app's testers, and profile lookup works only for Meta's own accounts.
publish_post does it in one call: text, an image, a video, or a carousel of 2 to 20 items, as a new post, a reply or a quote, with polls and topic tags. Media comes from public links Threads downloads, as there is no file upload. A video that takes long to process comes back with the steps to finish it, so it cannot post twice. publish_thread posts a chain of up to 10 parts. Each post is at most 500 characters, and an account can publish 250 posts in 24 hours.
Only if it sits idle. The token lasts 60 days and renews itself: PopMCP refreshes it when a call arrives within 10 days of expiry, so a connection in regular use keeps working. A token that goes 60 days without being used expires for good, and you connect again.
Public ones, with limits. search_posts finds public posts by keyword or topic, lookup_profile and list_profile_posts read public profiles with at least 100 followers, and list_mentions shows public posts that mention you, all once Meta has approved those permissions for the app. Private profiles are never returned. Insights are only for your own posts and account.
Three, all by polling: a new post on the account, a new public mention of it, and a new reply written by it. Meta's webhooks are set per app and need a verified business and App Review, so they are not used.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Threads in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Threads on the consent screen. The Threads tools are then available in that session, and no Threads credential is stored on your machine.
Loading 39 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 37-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 39 here. A trigger is something PopMCP watches for you: 3 Threads events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Threads.
Launch a hosted MCP endpoint for Threads, keep tool access under control, and start testing real workflow prompts right away.