MindThread

Official registry AI and agents

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

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

Remote (streamable-http)
Claude Code
claude mcp add --transport http mindthread 'https://mindthread.tw/api/mcp' --header 'Authorization: <Bearer followed by a MindThread API key. Leave it out if your client signs in with OAuth (Claude, ChatGPT).>'
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "mindthread": {
            "type": "http",
            "url": "https://mindthread.tw/api/mcp",
            "headers": {
                "Authorization": "<Bearer followed by a MindThread API key. Leave it out if your client signs in with OAuth (Claude, ChatGPT).>"
            }
        }
    }
}
NPM package mindthread-mcp
Claude Code
claude mcp add mindthread -e 'MINDTHREAD_API_KEY=<your mindthread_api_key>' -- npx -y mindthread-mcp@0.2.0
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "mindthread": {
            "command": "npx",
            "args": [
                "-y",
                "mindthread-mcp@0.2.0"
            ],
            "env": {
                "MINDTHREAD_API_KEY": "<your mindthread_api_key>"
            }
        }
    }
}

Environment variables

  • MINDTHREAD_API_KEY required secret MindThread API key (mt_live_… or mt_test_… for the free sandbox). Create one at https://mindthread.tw/settings under API keys.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. MindThread MCP: the Threads scheduler built for AI agents
  2. What your agent can do
  3. Three-minute setup
  4. Client setup
  5. Example prompts
  6. Tools
  7. Safety and control
  8. Configuration
  9. Troubleshooting
  10. Also available
  11. 繁體中文
  12. License

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.

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
# Remote, with an API key
claude 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 stdio
claude 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):

{
  "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):

{
  "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:

{
  "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.
  • 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:

     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

Frequently asked questions

What is MindThread?

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

How do I install MindThread?

It runs as a remote server. In Claude Code: claude mcp add --transport http mindthread 'https://mindthread.tw/api/mcp' --header 'Authorization: <Bearer followed by a MindThread API key. Leave it out if your client signs in with OAuth (Claude, ChatGPT).>'. For other clients, paste the JSON configuration from this page into their MCP settings.

Does MindThread need an API key?

Yes. It expects MINDTHREAD_API_KEY, Authorization, which you set in its configuration.

Is MindThread open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains MindThread?

It is published by ppcvote. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.