{"name":"threads-mcp","title":"Threads for Claude","kind":"product","description":"Connects a Threads (threads.com) account to AI agents: publish posts, carousels and multi-part threads, reply, repost, moderate replies, search public posts and read post and account insights. MCP Apps-enabled: threads_get_posts_insights renders an interactive insights table.","version":"0.1.0","icons":[{"src":"https://threads-mcp.app/app-icon.png","mimeType":"image/png","sizes":["256x256"]}],"url":"https://threads-mcp.app/mcp","transport":"streamable-http","authentication":{"type":"oauth2","protectedResourceMetadata":"https://threads-mcp.app/.well-known/oauth-protected-resource/mcp","documentation":"https://threads-mcp.app/auth.md"},"serverCard":"https://threads-mcp.app/.well-known/mcp/server-card.json","capabilities":{"tools":true,"resources":true,"extensions":{"io.modelcontextprotocol/ui":{"mimeTypes":["text/html;profile=mcp-app"]}}},"tools":[{"name":"threads_list_accounts","title":"List my Threads accounts","description":"Lists the Threads accounts linked to this connector and which one this app currently acts as. Posts, replies and insights always use the account marked acting.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"annotations":{"title":"List my Threads accounts","readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}},{"name":"threads_use_account","title":"Switch Threads account","description":"Makes this app act as another linked Threads account from now on (other apps keep theirs). Only switch when the user asks for it, and name the account you switched to.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"username":{"type":"string","minLength":1,"description":"Username of a linked account, with or without @ (see threads_list_accounts)."}},"required":["username"]},"annotations":{"title":"Switch Threads account","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"threads_get_profile","title":"Get my Threads profile","description":"Returns the connected Threads account: username, name, bio, profile picture, verification.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"annotations":{"title":"Get my Threads profile","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_list_posts","title":"List my Threads posts","description":"Lists the connected account's own posts, newest first. Use `after` from the previous response to paginate.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"limit":{"default":25,"type":"integer","minimum":1,"maximum":100},"after":{"description":"Pagination cursor (paging.cursors.after).","type":"string"}}},"annotations":{"title":"List my Threads posts","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_get_post","title":"Get a Threads post","description":"Returns one post by its media id.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"post_id":{"type":"string"}},"required":["post_id"]},"annotations":{"title":"Get a Threads post","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_create_post","title":"Publish a Threads post","description":"Publishes a post on the user's Threads account: text (≤ 500 chars, ≤ 5 links), optionally with one image or video, or quoting another post. Publishes publicly and immediately — show the user the final text and get confirmation first. For longer text use threads_create_thread; for several images use threads_create_carousel.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string"},"media":{"type":"object","properties":{"type":{"type":"string","enum":["IMAGE","VIDEO"]},"url":{"type":"string","format":"uri","description":"Publicly reachable URL. Images: JPEG/PNG ≤ 8 MB. Videos: MP4/MOV ≤ 5 min, ≤ 1 GB."},"alt_text":{"type":"string","maxLength":1000}},"required":["type","url"]},"quote_post_id":{"description":"Id of a post to quote.","type":"string"},"reply_control":{"description":"Who can reply. Default: everyone.","type":"string","enum":["everyone","accounts_you_follow","mentioned_only","parent_post_author_only","followers_only"]},"topic_tag":{"description":"One topic tag (without #), 1–50 chars.","type":"string","minLength":1,"maxLength":50,"pattern":"^[^.&]+$"},"link_attachment":{"description":"URL to show as a link preview card (text-only posts).","type":"string","format":"uri"}}},"annotations":{"title":"Publish a Threads post","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"threads_create_carousel","title":"Publish a Threads carousel","description":"Publishes a carousel of 2–20 images and/or videos with optional text. Publishes publicly — confirm with the user first.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"minItems":2,"maxItems":20,"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["IMAGE","VIDEO"]},"url":{"type":"string","format":"uri","description":"Publicly reachable URL. Images: JPEG/PNG ≤ 8 MB. Videos: MP4/MOV ≤ 5 min, ≤ 1 GB."},"alt_text":{"type":"string","maxLength":1000}},"required":["type","url"]}},"text":{"type":"string"},"reply_control":{"description":"Who can reply. Default: everyone.","type":"string","enum":["everyone","accounts_you_follow","mentioned_only","parent_post_author_only","followers_only"]},"topic_tag":{"description":"One topic tag (without #), 1–50 chars.","type":"string","minLength":1,"maxLength":50,"pattern":"^[^.&]+$"},"link_attachment":{"description":"URL to show as a link preview card (text-only posts).","type":"string","format":"uri"}},"required":["items"]},"annotations":{"title":"Publish a Threads carousel","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"threads_create_thread","title":"Publish a multi-post thread","description":"Publishes a chain of 2–10 text posts where each post replies to the previous one (for text longer than 500 chars). Each part must be ≤ 500 chars. Publishes publicly — confirm with the user first.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"parts":{"minItems":2,"maxItems":10,"type":"array","items":{"type":"string","minLength":1}},"reply_control":{"description":"Who can reply. Default: everyone.","type":"string","enum":["everyone","accounts_you_follow","mentioned_only","parent_post_author_only","followers_only"]},"topic_tag":{"description":"One topic tag (without #), 1–50 chars.","type":"string","minLength":1,"maxLength":50,"pattern":"^[^.&]+$"},"link_attachment":{"description":"URL to show as a link preview card (text-only posts).","type":"string","format":"uri"}},"required":["parts"]},"annotations":{"title":"Publish a multi-post thread","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"threads_reply","title":"Reply to a Threads post","description":"Publishes a reply (text and optional media) to any post or reply by id. Publishes publicly — confirm with the user first.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reply_to_id":{"type":"string"},"text":{"type":"string"},"media":{"type":"object","properties":{"type":{"type":"string","enum":["IMAGE","VIDEO"]},"url":{"type":"string","format":"uri","description":"Publicly reachable URL. Images: JPEG/PNG ≤ 8 MB. Videos: MP4/MOV ≤ 5 min, ≤ 1 GB."},"alt_text":{"type":"string","maxLength":1000}},"required":["type","url"]},"reply_control":{"description":"Who can reply. Default: everyone.","type":"string","enum":["everyone","accounts_you_follow","mentioned_only","parent_post_author_only","followers_only"]}},"required":["reply_to_id"]},"annotations":{"title":"Reply to a Threads post","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"threads_repost","title":"Repost a Threads post","description":"Reposts an existing post to the user's profile.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"post_id":{"type":"string"}},"required":["post_id"]},"annotations":{"title":"Repost a Threads post","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"threads_publish_container","title":"Publish a processed media container","description":"Checks a media container returned with status 'processing' and publishes it once ready.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"container_id":{"type":"string"}},"required":["container_id"]},"annotations":{"title":"Publish a processed media container","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},{"name":"threads_delete_post","title":"Delete a Threads post","description":"Permanently deletes one of the user's own posts or replies. Cannot be undone — confirm with the user first.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"post_id":{"type":"string"}},"required":["post_id"]},"annotations":{"title":"Delete a Threads post","readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"threads_get_replies","title":"Get replies to a post","description":"Returns replies to a post. mode 'replies' = top-level replies only; 'conversation' = all nested replies flattened.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"post_id":{"type":"string"},"mode":{"default":"replies","type":"string","enum":["replies","conversation"]},"limit":{"default":25,"type":"integer","minimum":1,"maximum":100},"after":{"type":"string"}},"required":["post_id"]},"annotations":{"title":"Get replies to a post","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_hide_reply","title":"Hide or unhide a reply","description":"Hides (or unhides) a top-level reply on one of the user's posts. Nested replies under it are hidden too.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"reply_id":{"type":"string"},"hide":{"default":true,"type":"boolean"}},"required":["reply_id"]},"annotations":{"title":"Hide or unhide a reply","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"threads_get_mentions","title":"Get mentions","description":"Lists public posts where the user was @mentioned.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"limit":{"default":25,"type":"integer","minimum":1,"maximum":100},"after":{"type":"string"}}},"annotations":{"title":"Get mentions","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_get_activity","title":"Get new activity","description":"Replies to the user's posts and @mentions that Threads pushed since the user last checked (last 30 days), newest first. Use it for 'what's new on Threads?'. By default returns only unseen items and marks them as seen. To answer or hide an item, use threads_reply or threads_hide_reply with its media_id after the user confirms.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"kind":{"default":"all","description":"Filter by event type.","type":"string","enum":["all","reply","mention"]},"unseen_only":{"default":true,"description":"Only items not returned by an earlier call.","type":"boolean"},"mark_seen":{"default":true,"description":"Mark the returned items as seen.","type":"boolean"},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}}},"annotations":{"title":"Get new activity","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"threads_keyword_search","title":"Search Threads posts","description":"Searches public Threads posts by keyword or topic tag. Returns text, author, date, link and whether a post has replies — Threads does not expose likes/views of other people's posts. Until the app is approved for keyword search, results only include the user's own posts. Limit: 2,200 searches per 24 h (empty results don't count).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"q":{"type":"string","minLength":1,"description":"Keyword, phrase or topic tag (without #)."},"search_type":{"default":"TOP","description":"TOP = most popular, RECENT = newest.","type":"string","enum":["TOP","RECENT"]},"search_mode":{"default":"KEYWORD","description":"TAG searches by topic tag.","type":"string","enum":["KEYWORD","TAG"]},"media_type":{"type":"string","enum":["TEXT","IMAGE","VIDEO"]},"author_username":{"description":"Only posts by this username (without @).","type":"string"},"since":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"until":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"limit":{"default":25,"type":"integer","minimum":1,"maximum":100}},"required":["q"]},"annotations":{"title":"Search Threads posts","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_profile_lookup","title":"Look up a public Threads profile","description":"Returns a public Threads profile by exact username: name, bio, verification, followers and totals of likes, replies, quotes, reposts and views over the last 7 days. Only public profiles with 100+ followers are returned. Until the app is approved for profile discovery, only official Meta accounts (@meta, @threads, @instagram, @facebook) can be looked up. Limit: 1,000 lookups per 24 h.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"username":{"type":"string","minLength":1,"description":"Exact username, with or without @."}},"required":["username"]},"annotations":{"title":"Look up a public Threads profile","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_get_profile_posts","title":"Get a public profile's posts","description":"Lists recent public posts of another Threads profile by exact username (text, type, date, link, whether it has replies, quoted/reposted post). Threads does not expose likes or views of other people's posts. Same access limits as threads_profile_lookup.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"username":{"type":"string","minLength":1,"description":"Exact username, with or without @."},"limit":{"default":25,"type":"integer","minimum":1,"maximum":100},"since":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"until":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"after":{"description":"Pagination cursor (paging.cursors.after).","type":"string"}},"required":["username"]},"annotations":{"title":"Get a public profile's posts","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_get_post_insights","title":"Get post insights","description":"Returns views, likes, replies, reposts, quotes and shares for one post. For many posts or a period use threads_get_posts_insights.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"post_id":{"type":"string"}},"required":["post_id"]},"annotations":{"title":"Get post insights","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_get_posts_insights","title":"Get insights for all posts in a period","description":"Lists the user's own posts published in a date range together with views, likes, replies, reposts, quotes and shares for each, plus totals, average/median views and engagement rate — in one call. Use it for reports and \"what performed best\" questions instead of calling threads_get_post_insights per post. Dates are YYYY-MM-DD (UTC, inclusive); defaults to the last 30 days. For \"all time\" pass since=2023-07-05; if the result has a `note` about the limit, call again with `until` set to the oldest date seen to cover older posts.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"since":{"description":"Start date. Default: 30 days ago.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"until":{"description":"End date. Default: today.","type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"sort_by":{"default":"views","type":"string","enum":["date","views","likes","replies","reposts","quotes","shares"]},"limit":{"default":100,"description":"Max posts to analyse (newest first).","type":"integer","minimum":1,"maximum":300},"rows":{"default":50,"description":"How many posts to return in the table after sorting; the summary always covers all analysed posts.","type":"integer","minimum":0,"maximum":300}}},"annotations":{"title":"Get insights for all posts in a period","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true},"_meta":{"ui":{"resourceUri":"ui://threads/posts-insights.html"},"ui/resourceUri":"ui://threads/posts-insights.html"}},{"name":"threads_get_account_insights","title":"Get account insights","description":"Returns account metrics (views, likes, replies, reposts, quotes, clicks, followers_count) for a date range. Dates are YYYY-MM-DD; data is available from 2024-04-13. follower_demographics needs ≥ 100 followers and a breakdown.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"metrics":{"default":["views","likes","replies","reposts","quotes","followers_count"],"type":"array","items":{"type":"string","enum":["views","likes","replies","reposts","quotes","clicks","followers_count","follower_demographics"]}},"since":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"until":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"breakdown":{"type":"string","enum":["country","city","age","gender"]}}},"annotations":{"title":"Get account insights","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}},{"name":"threads_get_publishing_limit","title":"Get publishing quota","description":"Shows how many posts and replies the account has used in the last 24 hours and the limits (250 posts / 1000 replies).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{}},"annotations":{"title":"Get publishing quota","readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}}],"resources":[{"name":"Posts insights dashboard","uri":"ui://threads/posts-insights.html","description":"Interactive table of per-post Threads metrics for threads_get_posts_insights.","mimeType":"text/html;profile=mcp-app"}]}