MindThread

io.github.ppcvotePublished by GitHub account ppcvotev0.2.0Updated Oct 26, 2026

Threads scheduler for AI agents: write, schedule and publish posts, review replies, read insights.

The publisher's own server: ThreadPage

Overview

AI-generated overview

MindThread lets an assistant write, schedule and publish Threads posts, review drafted replies and read account insights through Meta's official Threads API.

What you can do
  • Generate post drafts in an account's voice, list content formulas and build a brand material digest
  • Schedule, publish or cancel posts (text, image, carousel, video) and manage the posting library and queue
  • Read and change account settings, including bulk preview, apply and revert across many accounts
  • Configure cloud patrol keywords, review, approve or reject drafted replies, and read patrol logs and stats
  • Read analytics, event feed, usage and confirmation-request status, and get a link to connect a new Threads account
When to use it
Useful when you run one or more Threads accounts and want an assistant to draft, queue and publish posts on a schedule, keep replies on-brand, and report performance, with per-permission controls deciding what it may do alone.
Requirements
A MindThread account with a connected Threads account and an API key (mt_live_ or mt_test_ sandbox), passed as MINDTHREAD_API_KEY for the local stdio package or as an Authorization bearer header for the remote endpoint; OAuth sign-in is an alternative for some clients. The local package needs Node.js 18.17 or newer. Network access to mindthread.tw.
Before you install
The key can publish, send replies and change settings, so scope each permission to allow, ask or deny; with ask, actions wait for owner confirmation on the website. Publishing, replies and bulk settings changes write to live Threads accounts, and deleting library items is permanent. Cloud patrol can reply automatically to other users' posts. Calls count against a daily quota, and disable_this_key is irreversible.

Installation

In SourceWeft

  1. Open MindThread in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.ppcvote%2Fmindthread/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "mindthread": {
      "type": "http",
      "url": "https://mindthread.tw/api/mcp"
    }
  }
}

README

MindThread MCP: the Threads scheduler built for AI agents

Let Claude, Cursor or any MCP client write, schedule and publish Threads posts, review drafted replies and read insights for your accounts, through Meta's official Threads API. 40+ tools, a free sandbox key, and permission controls so the agent asks before it posts.

bash
claude mcp add --transport http mindthread https://mindthread.tw/api/mcp --header "Authorization: Bearer mt_live_your_key"

繁體中文說明在下方

What your agent can do

  • Write: generate 1 to 5 drafts in the account's voice (persona, brand material, content formulas), or threads of 2 to 10 parts.
  • Schedule and publish: text, single image, carousel (2 to 10 images) or video, now or at an exact time; or drop posts into a queue that publishes at the account's own time slots.
  • Stay on-brand in code: content rules (length, banned phrases, no hashtags, only numbers from your fact list) are enforced by the server, not just suggested in a prompt.
  • Reply where it matters: cloud patrol searches Threads for your keywords and drafts replies; your agent lists the drafts and approves or rejects each one.
  • Measure: views, likes, replies and followers per account, plus the results of patrol replies.
  • Stay in control: every key has per-permission allow, ask or deny. With ask, the post waits until you confirm it on mindthread.tw, and the agent gets a link to hand you instead of posting.

Three-minute setup

1. Get an API key. Sign up at mindthread.tw, connect a Threads account, then open Settings → API keys and create a key. Start with a test key (mt_test_…): reads show your real data, writes are simulated and nothing reaches Threads. Switch to a live key (mt_live_…) when you are ready. Every plan includes API access (October 2026: free plan 50 calls a day per live key; test keys share a 500-a-day sandbox). Current limits: mindthread.tw/developers.

2. Add MindThread to your client (pick yours below).

3. Ask for your first scheduled post:

List my MindThread accounts. Then write a short post about why I started my business, show it to me, and schedule it on my account for tomorrow at 9:00 Taipei time.

The agent calls list_accounts, generate_posts, then publish with publish_at. Check the result with "show my scheduled posts" (list_schedules).

Client setup

There are two ways to connect, and both reach the same server:

  • Remote (recommended): point the client at https://mindthread.tw/api/mcp. Nothing to install.
  • Local stdio: run this package with npx -y mindthread-mcp. Use it for clients that only start servers with a command. It forwards every message to the same endpoint, so the tools are always identical.

Claude Code

bash
# Remote, with an API keyclaude mcp add --transport http mindthread https://mindthread.tw/api/mcp --header "Authorization: Bearer mt_live_your_key"
# Remote, signing in with your MindThread account instead of a key (run /mcp in Claude Code to log in)claude mcp add --transport http mindthread https://mindthread.tw/api/mcp
# Local stdioclaude mcp add mindthread --env MINDTHREAD_API_KEY=mt_live_your_key -- npx -y mindthread-mcp

Claude Desktop

Edit claude_desktop_config.json (Settings → Developer → Edit Config):

json
{  "mcpServers": {    "mindthread": {      "command": "npx",      "args": ["-y", "mindthread-mcp"],      "env": { "MINDTHREAD_API_KEY": "mt_live_your_key" }    }  }}

On Windows, if Claude cannot find npx, use "command": "cmd" and "args": ["/c", "npx", "-y", "mindthread-mcp"]. Without editing files: Settings → Connectors → Add custom connector, URL https://mindthread.tw/api/mcp, then sign in with your MindThread account (on Claude plans that offer custom connectors).

Cursor

~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

json
{  "mcpServers": {    "mindthread": {      "url": "https://mindthread.tw/api/mcp",      "headers": { "Authorization": "Bearer mt_live_your_key" }    }  }}

Or the stdio form: "command": "npx", "args": ["-y", "mindthread-mcp"], "env": { "MINDTHREAD_API_KEY": "mt_live_your_key" }.

VS Code (GitHub Copilot agent mode)

.vscode/mcp.json, which asks for the key once and stores it securely:

json
{  "inputs": [    { "type": "promptString", "id": "mindthread-key", "description": "MindThread API key", "password": true }  ],  "servers": {    "mindthread": {      "type": "http",      "url": "https://mindthread.tw/api/mcp",      "headers": { "Authorization": "Bearer ${input:mindthread-key}" }    }  }}

Any other MCP client

  • Streamable HTTP: https://mindthread.tw/api/mcp, header Authorization: Bearer <key> (also accepted as X-API-Key).
  • stdio: command npx, args -y mindthread-mcp, env MINDTHREAD_API_KEY.

Without a key, initialize, tools/list, get_playbook and list_formulas still work, so you can look around first.

Example prompts

  • "What can MindThread do? Read the playbook first." (get_playbook)
  • "Write 3 posts about saving for a first home in @mybrand's voice. Don't post anything yet." (generate_posts)
  • "Queue posts 1 and 3; schedule post 2 for Friday 20:00." (add_library, publish)
  • "Any drafted replies waiting for me? Show them one by one." (list_pending_replies, approve_pending_reply, reject_pending_reply)
  • "How did @mybrand do in the last 7 days compared with the 7 days before?" (analytics_insights)
  • "Set cloud patrol keywords to 'first home', 'mortgage', 'rent vs buy', at most 10 replies a day, and hold every reply for my review." (set_cloud_patrol)

Tools

The set any client sees before signing in, generated from the live server with npm run tools-table. The server is the source of truth: when it adds a tool, this package exposes it without an update.

ToolTitleKindWhat it does
get_meMy plan and keyreadReturns the current plan, this connection's identity and permissions (each permission is allow, ask or deny), remaining daily calls in this …
list_accountsList connected accountsreadLists the Threads accounts connected to this MindThread member, with the id to pass as account_id to every other tool.
get_materialGet brand materialreadReturns the account's material digest (who the brand is, what it sells, claims, experiences, FAQ, sourced numbers, voice) that every …
build_materialBuild brand materialwriteBuilds or rebuilds the account's material digest from up to 8 https pages of the brand's own website, optional notes with real cases and …
get_account_settingsGet account settingsreadReturns one account's persona, schedule_times, review_before_publish, auto_reply_enabled, auto_thread, content_rules, and the guardrails …
update_account_settingsUpdate account settingswriteChanges an account's persona (up to 4,000 characters), schedule_times (comma-separated HH:MM in the account time zone, up to 8), …
list_guardrail_changesGuardrail change historyreadLists an account's guardrail revisions, newest first (limit 1 to 50, default 20; before for the next page).
list_account_settingsList account settings (bulk)readLists every connected Threads account of this member with the settings of the MindThread bulk settings sheet (run mode, auto-posting, review …
preview_account_settingsPreview bulk settings changesreadShows what a batch of settings changes would do and writes nothing: for each account and cell the current value and the new value, warnings …
apply_account_settingsApply bulk settings changeswriteWrites a batch of settings changes to up to 100 accounts, each account in its own transaction, and returns a per-row result (ok, unchanged, …
revert_account_settings_batchUndo a bulk settings batchwriteRestores the values that one batch changed, within 24 hours of the batch.
get_account_settings_batchGet a bulk settings batchreadReturns one batch by batch_id: when it was sent and from where (website, API or MCP), counts, whether it can still be reverted, and each …
generate_postsGenerate post draftswriteGenerates 1 to 5 post drafts about a topic using a content formula (auto, or an id from list_formulas), the account persona and material, …
publishPublish or schedule a postwritePublishes a post to Threads now (publish_now:true) or at publish_at (ISO 8601 with offset).
schedule_textSchedule a text postwriteSchedules an existing text (up to 500 characters) at publish_at, or at the next best slot with auto_optimize_time:true (the two are mutually …
list_schedulesList scheduled postsreadLists scheduled posts, optionally filtered by account_id, with status, publish_at, and held_reason when a post was held (for example …
cancel_scheduleCancel a scheduled postwriteCancels a scheduled post by id.
list_libraryList library itemsreadLists an account's library items by status (queued, draft, published, failed; limit up to 200).
add_libraryAdd library itemswriteAdds up to 20 items (text, optional public https images) to an account's library as queued (default; they publish automatically at …
delete_library_itemDelete a library itemwritePermanently deletes one queued, draft or archived library item by id.
approve_library_itemApprove a draft into the queuewriteMoves one draft into the publishing queue by id.
update_library_itemUpdate a library itemwriteChanges one library item by id: status (archived, draft, queued), text (checked against content_rules), or its place in the queue (position …
get_cloud_patrolGet cloud patrol settingsreadReturns an account's cloud patrol configuration and status: keywords, daily cap, replies sent today, review_before_reply, last scan time.
set_cloud_patrolSet cloud patrolwriteCreates or updates an account's cloud patrol: keywords (1 to 10; a "#tag" entry searches a topic tag), reply persona, daily_cap (1 to 50 on …
cloud_patrol_logCloud patrol reply logreadLists replies sent by cloud patrol for an account in the last 1 to 7 days, with the target post and the reply text.
cloud_patrol_statsCloud patrol resultsreadReturns views and likes earned by cloud patrol replies for an account over 1 to 14 days, with the top replies.
list_pending_repliesList drafted replies awaiting reviewreadLists cloud patrol reply drafts for an account by status (pending by default; also sent, rejected, expired).
approve_pending_replySend a drafted replywriteApproves one drafted cloud patrol reply by id and sends it to Threads now, optionally with an edited reply text that passes the same quality …
reject_pending_replyReject a drafted replywriteRejects one drafted cloud patrol reply by id with an optional note.
list_eventsList recent eventsreadReturns the member's event feed for the last 7 days, newest first (limit 1 to 200): post.published, post.failed, reply.sent, patrol.reply, …
analytics_insightsAccount insightsreadReturns views, likes, replies and followers for one account over a period (7d, 30d; default 30d).
list_formulasList content formulasreadLists the content formulas that generate_posts accepts, with id and a short description of each.
get_playbookOperating playbookreadReturns the operating playbook for running an account through this server: the daily loop, how confirmation requests work, quotas, and the …
connect_account_linkGet a link to connect a new accountwriteReturns a Threads OAuth link for the user to open in a browser to connect a new Threads account to this member.
disable_this_keyDisable this connectionwritePermanently disables the key or connection making this call.
get_my_usageMy usage and call logreadReturns this connection's own usage for the last 1 to 30 days (days=1 is today since 00:00 Asia/Taipei): summary (calls, units, errors, …
get_approvalCheck a confirmation requestreadReturns one confirmation request created by this connection, by id (apr_...): status (pending, approved, executed, failed, denied, expired, …
bulk_archive_libraryArchive library items in bulkwriteArchives up to 50 library items by id in one call.
bulk_delete_libraryDelete library items in bulkwritePermanently deletes up to 50 queued, draft or archived library items by id in one call.
bulk_queue_libraryQueue library items in bulkwriteMoves up to 50 drafts into the publishing queue by id in one call; they publish automatically at the account's schedule_times.

Safety and control

  • Permissions per key. Each permission (read, write drafts, schedule, publish now, send replies, turn cloud patrol on, connect accounts, loosen guardrails, webhooks) is allow, ask or deny, set in Settings → API keys. ask means the agent receives approval_required with a link for you; the action runs only after you confirm on mindthread.tw.
  • Things only you do on the website. Undoing a guardrail change is always yours. Turning cloud patrol on is never granted to an OAuth connection (Claude, ChatGPT), and an API key needs that permission set explicitly.
  • Content rules run in code. enforce: "block" makes the server refuse a post that breaks the rules, whatever the model wrote.
  • Kill switch. disable_this_key permanently disables the key in use. You can also revoke keys and connections in Settings.
  • Official API only. Posting and replies go through Meta's official Threads API. MindThread never asks for your Threads password.
  • Your key stays local. In stdio mode the key is read from the MINDTHREAD_API_KEY environment variable and sent only to mindthread.tw. It is never printed (logs show mt_live_…abcd).

Configuration

VariableRequiredMeaning
MINDTHREAD_API_KEYfor any tool that touches your accountsmt_live_… or mt_test_…
MINDTHREAD_MCP_URLnoEndpoint override, default https://mindthread.tw/api/mcp

Requires Node.js 18.17 or newer. No runtime dependencies.

Troubleshooting

  • "MINDTHREAD_API_KEY is not set": add the key to the env block of this server in your client config, then restart the client.
  • "MindThread rejected the key": the key is wrong, revoked or disabled. Create a new one in Settings → API keys.
  • approval_required: working as intended. Open the link the agent shows you, confirm, and the post goes out.
  • insufficient_scope: that permission is set to deny for this key. The error's fix field names the setting to change.
  • rate_limit_exceeded: daily or per-minute limit reached; the error says when it resets. Every tool call counts against the key's daily quota, polls included (list_events, list_pending_replies): on the free plan (50 calls a day) poll every 30 minutes or slower, or use a webhook. After a daily limit the bridge holds tool calls until the reset (00:00 Asia/Taipei) and answers them itself with the same error (held_locally: true), so an agent loop cannot keep hitting MindThread; get_playbook, list_formulas, get_approval and disable_this_key still go through.
  • Logs go to stderr (Claude Desktop: Settings → Developer → Open Logs Folder). stdout carries only MCP messages.

Also available

繁體中文

MindThread 是給 AI agent 用的 Threads 排程器。接上之後,Claude、Cursor 或任何支援 MCP 的工具,都能替你的 Threads 帳號寫文、排程、發文(文字、單圖、輪播、影片)、審核雲端海巡的回覆草稿、看觀看與互動數據。全程走 Meta 官方 Threads API,不需要你的 Threads 密碼。

三分鐘上手:

  1. 到 mindthread.tw 註冊並連接 Threads 帳號,在「設定 → API 金鑰」建立金鑰。建議先用測試金鑰(mt_test_ 開頭):讀取的是真資料,寫入只模擬、不會發到 Threads。
  2. 把 MindThread 加進你的工具,例如 Claude Code:
    bash
    claude mcp add --transport http mindthread https://mindthread.tw/api/mcp --header "Authorization: Bearer mt_live_你的金鑰"
    Claude Desktop、Cursor、VS Code 的設定見上方 Client setup。
  3. 對 AI 說:「列出我的 MindThread 帳號,幫我寫一篇介紹我為什麼創業的短文,給我看過之後,排在明天早上 9 點發。」

你保有控制權:每把金鑰的每項權限都能設成「允許」「先問我」「拒絕」。設成「先問我」時,AI 會拿到一個確認連結交給你,你在 mindthread.tw 按下確認才會發出。字數、禁用詞、只能用你列的數字這些內容規則,由伺服器以程式檢查,可以設成直接擋下。

License

MIT © Ultra Lab

Source: README.md at commit 1abe427

Tools

40

get_me

My plan and key

Returns the current plan, this connection's identity and permissions (each permission is allow, ask or deny), remaining daily calls in this connection's pool, remaining patrol points, and the connected accounts. Applies at the start of a session and whenever a call answered approval_required or insufficient_scope, to see which permission is involved.

Takes no parameters.

list_accounts

List connected accounts

Lists the Threads accounts connected to this MindThread member, with the id to pass as account_id to every other tool. Applies whenever an account id is needed and the user named an account by username or description.

Takes no parameters.

get_material

Get brand material

Returns the account's material digest (who the brand is, what it sells, claims, experiences, FAQ, sourced numbers, voice) that every generation path appends to the persona. has_material:false means generation currently runs on the persona alone. Applies before generating when it is unclear whether the account has material.

Parametersaccount_idrequired

build_material

Build brand material

Builds or rebuilds the account's material digest from up to 8 https pages of the brand's own website, optional notes with real cases and FAQs (up to 6,000 characters), and the account's top posts. Replaces the previous digest. Counts as one AI generation. dry:true returns a preview without saving. Applies once per account before the first generation, and again when the website changes.

Parametersdryurlsnotesaccount_idrequired

get_account_settings

Get account settings

Returns one account's persona, schedule_times, review_before_publish, auto_reply_enabled, auto_thread, content_rules, and the guardrails block: etag (used as if_match on update), last_change, pending loosening approvals, and which paths the rules are enforced on. Applies before any settings change, because content_rules is replaced as a whole on update.

Parametersaccount_idrequired

update_account_settings

Update account settings

Changes an account's persona (up to 4,000 characters), schedule_times (comma-separated HH:MM in the account time zone, up to 8), review_before_publish, auto_reply_enabled, auto_thread, auto_link_to_comment, enabled, and content_rules (max_chars, min_chars, forbid_cta, forbid_hashtags, banned_phrases, facts as the only numbers the AI may use, forbid_causal_claims, judge_claims, one_fact_per_post, mention_limits, enforce warn or block). Only the fields sent are changed, except content_rules, which is replaced as a whole. if_match (the guardrails etag) makes a concurrent change answer 412 instead of overwriting; reason (up to 200 characters) is stored in the revision; dry_run:true previews whether the change would apply, ask the owner or be denied, without writing anything. A change that loosens a guardrail may wait for the owner's confirmation. Applies when the user asks to change voice, posting times, review mode, auto-reply or content rules.

Parametersreasondry_runenabledpersonaif_matchaccount_idrequiredauto_threadcontent_rulesschedule_timesauto_reply_enabledauto_link_to_commentreview_before_publish

list_guardrail_changes

Guardrail change history

Lists an account's guardrail revisions, newest first (limit 1 to 50, default 20; before for the next page). Each revision has source (api, approval, rollback, system), actor, changed_fields, loosened, tightened, before, after and restore_body (an update_account_settings body that puts the earlier values back). Applies when the user asks what changed, who changed it, or wants to restore an earlier rule set.

Parameterslimitbeforeaccount_idrequired

list_account_settings

List account settings (bulk)

Lists every connected Threads account of this member with the settings of the MindThread bulk settings sheet (run mode, auto-posting, review before publish, posting times, audience time zone, random schedule, library recycling, cold start, content language, AI quality, auto-reply and reply limits) and status chips (expired authorization, repeated publish failures, skipped nightly refill). Up to 100 accounts per page, with limit and cursor for more. columns describes each setting (type, allowed values, which ones are sensitive) and rules_url links to the field rules page. Applies when the user wants to see or compare settings across many accounts. 繁中:列出所有帳號的總表設定與狀態標籤。

Parameterslimitcursor

preview_account_settings

Preview bulk settings changes

Shows what a batch of settings changes would do and writes nothing: for each account and cell the current value and the new value, warnings (for example no posting time left), and row errors (an account that is not this member's, an unknown column, a value outside the allowed range, a cell changed since it was read). Takes changes as a list of { account_id, set, base } or csv in the same format as the website download. The result carries apply_changes and a preview_id valid for 15 minutes, which apply_account_settings takes as they are. Applies before any bulk change, so the user sees the exact cells first. 繁中:預覽批次變更,逐格列出舊值與新值,什麼都不寫。

Parameterscsvchanges

apply_account_settings

Apply bulk settings changes

Writes a batch of settings changes to up to 100 accounts, each account in its own transaction, and returns a per-row result (ok, unchanged, or failed with the reason) and a batch_id that revert_account_settings_batch can undo within 24 hours. idempotency_key is required: a retried request with the same key returns the first result instead of writing twice. Changes to run mode, auto-posting or review before publish affect posting right away and need confirm_sensitive:true, and that confirmation may wait for the owner's approval. Nothing is written without a preview: from a Claude or ChatGPT connection the preview_id from preview_account_settings is required, and a preview_id that does not match the changes is refused. Applies after the user has seen the preview and confirmed it. 繁中:套用批次變更(每帳號一個交易、24 小時內可復原),敏感欄位要 confirm_sensitive,目錄連線一定要先預覽並帶 preview_id。

Parameterscsvreasonchangespreview_ididempotency_keyrequiredconfirm_sensitive

revert_account_settings_batch

Undo a bulk settings batch

Restores the values that one batch changed, within 24 hours of the batch. Accounts changed again after the batch are skipped and listed with the reason, so a later edit is never overwritten. A batch can be reverted once. Applies when the user wants to undo a bulk change. 繁中:24 小時內復原一批變更,之後又被改過的帳號會跳過。

Parametersbatch_idrequired

get_account_settings_batch

Get a bulk settings batch

Returns one batch by batch_id: when it was sent and from where (website, API or MCP), counts, whether it can still be reverted, and each row's result with the failure reason. Applies after apply_account_settings, or when the user asks what a bulk change did. 繁中:查一批變更的逐列結果。

Parametersbatch_idrequired

generate_posts

Generate post drafts

Generates 1 to 5 post drafts about a topic using a content formula (auto, or an id from list_formulas), the account persona and material, optional reference context (up to 8,000 characters) and a quality level (fast, standard, premium). Nothing is published or queued. The result carries rule_violations against the account's content_rules. Applies when the user wants drafts to read, edit or choose from.

Parameterscounttopicrequiredcontextformulaqualityaccount_id

publish

Publish or schedule a post

Publishes a post to Threads now (publish_now:true) or at publish_at (ISO 8601 with offset). Takes text, one public https image (media_urls with 1 url), a carousel (2 to 10 urls) or a video_url. Text over 500 characters is split into a thread. Publishing now or within 30 minutes uses the publish-now permission; a post 30 minutes or more ahead uses the schedule permission. Either may wait for the owner's confirmation when that permission is set to ask on this connection. idempotency_key makes a retried request return the first result instead of posting twice. Applies when the user has final text and wants it on Threads.

Parameterstextvideo_urlaccount_idrequiredmedia_urlspublish_atpublish_nowidempotency_key

schedule_text

Schedule a text post

Schedules an existing text (up to 500 characters) at publish_at, or at the next best slot with auto_optimize_time:true (the two are mutually exclusive). Checked against the account's content_rules: with enforce:block a violation returns 422 and nothing is scheduled; the post is checked again right before it publishes. Applies for text-only posts with a specific time or when the user wants the system to pick the time.

Parameterstextrequiredaccount_idrequiredpublish_atschedule_atauto_optimize_time

list_schedules

List scheduled posts

Lists scheduled posts, optionally filtered by account_id, with status, publish_at, and held_reason when a post was held (for example content_rules_violated or publish_result_unknown). Applies when the user asks what is coming up or why a post did not go out.

Parametersaccount_id

cancel_schedule

Cancel a scheduled post

Cancels a scheduled post by id. A post that is being published right now answers 409 publishing_in_progress. Applies when the user no longer wants a scheduled post to go out.

Parametersidrequired

list_library

List library items

Lists an account's library items by status (queued, draft, published, failed; limit up to 200). Queued items publish automatically at the account's schedule_times; the result shows each item's position and next_publish_at. A draft with held_reason publish_result_unknown and reclaimed:true may already be on Threads. Applies when the user asks what is queued, what is waiting as a draft, or what failed.

Parameterslimitstatusaccount_idrequired

add_library

Add library items

Adds up to 20 items (text, optional public https images) to an account's library as queued (default; they publish automatically at schedule_times) or draft (they wait). Each text is checked against the account's content_rules. Applies after drafts are approved by the user and should enter the daily publishing queue, or should be parked as drafts.

Parametersitemsrequiredstatusaccount_idrequired

delete_library_item

Delete a library item

Permanently deletes one queued, draft or archived library item by id. Applies when the user explicitly wants an item gone rather than archived.

Parametersidrequired

approve_library_item

Approve a draft into the queue

Moves one draft into the publishing queue by id. A draft whose held_reason is publish_result_unknown answers 409 publish_result_unknown because it may already be on Threads; an item being published answers 409 publishing_in_progress. Applies when the user approves a single draft.

Parametersidrequired

update_library_item

Update a library item

Changes one library item by id: status (archived, draft, queued), text (checked against content_rules), or its place in the queue (position first or last, or an explicit order). 409 publishing_in_progress means it is being published; 409 publish_result_unknown means it may already be on Threads; 409 status_changed means it changed since it was read. Applies when the user wants to edit, reorder, archive or restore one item.

Parametersidrequiredtextorderstatusposition

get_cloud_patrol

Get cloud patrol settings

Returns an account's cloud patrol configuration and status: keywords, daily cap, replies sent today, review_before_reply, last scan time. Cloud patrol searches Threads every 15 minutes and replies to relevant fresh posts through the official API. Applies before changing patrol settings or when the user asks whether patrol is on.

Parametersaccount_idrequired

set_cloud_patrol

Set cloud patrol

Creates or updates an account's cloud patrol: keywords (1 to 10; a "#tag" entry searches a topic tag), reply persona, daily_cap (1 to 50 on free and trial, up to 80 on paid plans, up to 150 with a haixun add-on), enabled, and review_before_reply. When patrol is on, the account replies to relevant fresh Threads posts through the official API every 15 minutes, one patrol point per delivered reply; with review_before_reply:true every drafted reply waits in list_pending_replies instead of going out. Turning patrol on, or changing a patrol that is already on, needs the patrol permission, which is not granted to directory connections: the owner does it in MindThread. Applies when the user wants to stop patrol or tune its keywords, persona and cap while it is off.

Parametersmodeenabledpersonakeywordsdaily_capaccount_idrequiredreview_before_reply

cloud_patrol_log

Cloud patrol reply log

Lists replies sent by cloud patrol for an account in the last 1 to 7 days, with the target post and the reply text. Applies when the user wants to read what was actually said.

Parametersdaysaccount_idrequired

cloud_patrol_stats

Cloud patrol results

Returns views and likes earned by cloud patrol replies for an account over 1 to 14 days, with the top replies. Applies when the user asks whether patrol is working or which keywords perform.

Parametersdaysaccount_idrequired

list_pending_replies

List drafted replies awaiting review

Lists cloud patrol reply drafts for an account by status (pending by default; also sent, rejected, expired). Each pending draft has the target post, the drafted reply and an expiry 24 hours after it was drafted. Applies when review_before_reply is on and the user wants to decide what goes out.

Parametersstatusaccount_idrequired

approve_pending_reply

Send a drafted reply

Approves one drafted cloud patrol reply by id and sends it to Threads now, optionally with an edited reply text that passes the same quality gates as generated text. May wait for the owner's confirmation. Applies when the user has read a pending draft and wants it posted.

Parametersidrequiredreply

reject_pending_reply

Reject a drafted reply

Rejects one drafted cloud patrol reply by id with an optional note. It is never sent and the same post is not proposed again. Applies when the user does not want a drafted reply to go out.

Parametersidrequiredreason

list_events

List recent events

Returns the member's event feed for the last 7 days, newest first (limit 1 to 200): post.published, post.failed, reply.sent, patrol.reply, patrol.pending, token.expiring, usage.threshold, approval.decided. since (ISO 8601) returns only newer events; types filters by name. Applies when the user asks what happened recently or whether a post went out.

Parameterslimitsincetypes

analytics_insights

Account insights

Returns views, likes, replies and followers for one account over a period (7d, 30d; default 30d). account_id is required; "all" returns the organization-wide aggregate. views_scope is lifetime, posts_scope is the period. Applies when the user asks how an account is performing.

Parametersperiodaccount_idrequired

list_formulas

List content formulas

Lists the content formulas that generate_posts accepts, with id and a short description of each. Applies when the user wants a specific structure (for example a story, a list, a myth-busting post) rather than auto.

Takes no parameters.

get_playbook

Operating playbook

Returns the operating playbook for running an account through this server: the daily loop, how confirmation requests work, quotas, and the review checklist. The same text is in the initialize instructions. Applies when the instructions were not kept or the user asks how the service works.

Takes no parameters.

disable_this_key

Disable this connection

Permanently disables the key or connection making this call. Cannot be undone; the owner creates a new key or reconnects in Settings. Only this connection's API requests stop, and for a connection made through the consent page (OAuth) the webhooks it created are turned off too; queued posts and cloud patrol settings created with it keep running (with an API key, its webhooks keep running as well). The result lists the confirmation requests this connection was still waiting on, now cancelled. Every later call with it answers 401 key_disabled. A connection made through the consent page of a platform such as claude.ai or ChatGPT is shared by every session of that platform for this member, so disabling it stops all of them until the user reconnects. Applies when the credential may have leaked or the user asks to stop this connection for good.

Takes no parameters.

get_my_usage

My usage and call log

Returns this connection's own usage for the last 1 to 30 days (days=1 is today since 00:00 Asia/Taipei): summary (calls, units, errors, by_endpoint) and recent calls (request_id, endpoint, status, units, at), newest first, limit 1 to 100, cursor for the next page. Only this connection's records. Applies when the user asks what this connection did, or a request_id is needed to report a problem.

Parametersdayslimitcursor

get_approval

Check a confirmation request

Returns one confirmation request created by this connection, by id (apr_...): status (pending, approved, executed, failed, denied, expired, cancelled), the action summary, how the owner decided (decision_via, decided_by, step_up), and once executed, the full result. The server runs the original request itself after the owner confirms, so the request is not resent. Applies after a tool answered approval_required, polling about every 15 seconds until the status is final (pending requests expire after 24 hours).

Parametersidrequired

bulk_archive_library

Archive library items in bulk

Archives up to 50 library items by id in one call. Archived items leave the queue but are kept and can be restored with update_library_item. Per-item errors include publishing_in_progress. Applies for clearing a queue without deleting anything.

Parametersidsrequired

bulk_delete_library

Delete library items in bulk

Permanently deletes up to 50 queued, draft or archived library items by id in one call. Per-item errors include publishing_in_progress. Applies when the user explicitly wants items removed for good.

Parametersidsrequired

bulk_queue_library

Queue library items in bulk

Moves up to 50 drafts into the publishing queue by id in one call; they publish automatically at the account's schedule_times. Per-item errors include publishing_in_progress and publish_result_unknown (the item may already be on Threads). Applies when the user approves several drafts at once.

Parametersidsrequired

Version history

1
  1. v0.2.0LatestOct 26, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Thread integrations