{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_yay7rfefbmyn","handle":"mindthread","url":"https://wellknown.network/agents/mindthread","links":{"self":"https://wellknown.network/agents/mindthread/record.json","html":"https://wellknown.network/agents/mindthread","markdown":"https://wellknown.network/agents/mindthread/record.md","api":"https://wellknown.network/api/v1/agents/mindthread","status":"https://wellknown.network/api/v1/agents/mindthread/status","claim":"https://wellknown.network/agents/mindthread/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mindthread/claim.json","badge":"https://wellknown.network/agents/mindthread/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mindthread/history","tools":"https://wellknown.network/api/v1/agents/mindthread/tools"},"ard":{"identifier":"urn:air:mindthread.tw:server:mindthread","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"MindThread","summary":"Threads scheduler for AI agents: write, schedule and publish posts, review replies, read insights.","description":"Threads scheduler for AI agents: write, schedule and publish posts, review replies, read insights.","publisher":{"name":"ppcvote","url":null},"homepage":"https://mindthread.tw/developers","repository":"https://github.com/ppcvote/mindthread-mcp","version":"0.2.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mindthread.tw/api/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:mindthread-mcp","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-26T11:19:55.596859Z","publishedAt":"2026-10-26T11:19:55.596859Z","registryName":"io.github.ppcvote/mindthread"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"code.review","name":"Code Review","confidence":0.885,"provenance":"derived"},{"slug":"content.social","name":"Social Media","confidence":0.859,"provenance":"derived"},{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":0.54,"provenance":"derived"},{"slug":"content.seo","name":"SEO","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"},{"slug":"infra.browser-automation","name":"Browser Automation","confidence":0.51,"provenance":"derived"}],"categories":["code","content","dev","infra","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-10-27T06:24:27.310Z","lastProbedAt":"2026-10-27T06:24:27.310Z","statusComputedAt":"2026-10-27T06:26:17.455Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":132,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":1,"ok":1,"authBoundaryOk":0,"serviceOk":1,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-27T06:24:27.310Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":132,"error":null,"detail":{"tools":[{"name":"get_me","description":"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, r"},{"name":"list_accounts","description":"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 "},{"name":"get_material","description":"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 "},{"name":"build_material","description":"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 chara"},{"name":"get_account_settings","description":"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"},{"name":"update_account_settings","description":"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_rep"},{"name":"list_guardrail_changes","description":"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, s"},{"name":"list_account_settings","description":"Lists every connected Threads account of this member with the settings of the MindThread bulk settings sheet (run mode, auto-posting, review before publish, pos"},{"name":"preview_account_settings","description":"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 post"},{"name":"apply_account_settings","description":"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 r"},{"name":"revert_account_settings_batch","description":"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 la"},{"name":"get_account_settings_batch","description":"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 f"},{"name":"generate_posts","description":"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 con"},{"name":"publish","description":"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 carous"},{"name":"schedule_text","description":"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"},{"name":"list_schedules","description":"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 p"},{"name":"cancel_schedule","description":"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 p"},{"name":"list_library","description":"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_tim"},{"name":"add_library","description":"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 (the"},{"name":"delete_library_item","description":"Permanently deletes one queued, draft or archived library item by id. Applies when the user explicitly wants an item gone rather than archived."},{"name":"approve_library_item","description":"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 b"},{"name":"update_library_item","description":"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"},{"name":"get_cloud_patrol","description":"Returns an account's cloud patrol configuration and status: keywords, daily cap, replies sent today, review_before_reply, last scan time. Cloud patrol searches "},{"name":"set_cloud_patrol","description":"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 t"},{"name":"cloud_patrol_log","description":"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"},{"name":"cloud_patrol_stats","description":"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 work"},{"name":"list_pending_replies","description":"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"},{"name":"approve_pending_reply","description":"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 "},{"name":"reject_pending_reply","description":"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 wan"},{"name":"list_events","description":"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"},{"name":"analytics_insights","description":"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 ag"},{"name":"list_formulas","description":"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"},{"name":"get_playbook","description":"Returns the operating playbook for running an account through this server: the daily loop, how confirmation requests work, quotas, and the review checklist. The"},{"name":"connect_account_link","description":"Returns a Threads OAuth link for the user to open in a browser to connect a new Threads account to this member. The account appears in list_accounts after the u"},{"name":"disable_this_key","description":"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"},{"name":"get_my_usage","description":"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 "},{"name":"get_approval","description":"Returns one confirmation request created by this connection, by id (apr_...): status (pending, approved, executed, failed, denied, expired, cancelled), the acti"},{"name":"bulk_archive_library","description":"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 inc"},{"name":"bulk_delete_library","description":"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 ex"},{"name":"bulk_queue_library","description":"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 publishin"}],"toolCount":40,"toolsHash":"5dd91a763fd9ca082cc4da5f5d621d93583858684365858acf3afa9e09b0d832","serverName":"mindthread","capabilities":["tools"],"serverVersion":"1.19.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"get_me","description":"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, r"},{"name":"list_accounts","description":"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 "},{"name":"get_material","description":"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 "},{"name":"build_material","description":"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 chara"},{"name":"get_account_settings","description":"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"},{"name":"update_account_settings","description":"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_rep"},{"name":"list_guardrail_changes","description":"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, s"},{"name":"list_account_settings","description":"Lists every connected Threads account of this member with the settings of the MindThread bulk settings sheet (run mode, auto-posting, review before publish, pos"},{"name":"preview_account_settings","description":"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 post"},{"name":"apply_account_settings","description":"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 r"},{"name":"revert_account_settings_batch","description":"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 la"},{"name":"get_account_settings_batch","description":"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 f"},{"name":"generate_posts","description":"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 con"},{"name":"publish","description":"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 carous"},{"name":"schedule_text","description":"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"},{"name":"list_schedules","description":"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 p"},{"name":"cancel_schedule","description":"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 p"},{"name":"list_library","description":"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_tim"},{"name":"add_library","description":"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 (the"},{"name":"delete_library_item","description":"Permanently deletes one queued, draft or archived library item by id. Applies when the user explicitly wants an item gone rather than archived."},{"name":"approve_library_item","description":"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 b"},{"name":"update_library_item","description":"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"},{"name":"get_cloud_patrol","description":"Returns an account's cloud patrol configuration and status: keywords, daily cap, replies sent today, review_before_reply, last scan time. Cloud patrol searches "},{"name":"set_cloud_patrol","description":"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 t"},{"name":"cloud_patrol_log","description":"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"},{"name":"cloud_patrol_stats","description":"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 work"},{"name":"list_pending_replies","description":"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"},{"name":"approve_pending_reply","description":"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 "},{"name":"reject_pending_reply","description":"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 wan"},{"name":"list_events","description":"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"},{"name":"analytics_insights","description":"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 ag"},{"name":"list_formulas","description":"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"},{"name":"get_playbook","description":"Returns the operating playbook for running an account through this server: the daily loop, how confirmation requests work, quotas, and the review checklist. The"},{"name":"connect_account_link","description":"Returns a Threads OAuth link for the user to open in a browser to connect a new Threads account to this member. The account appears in list_accounts after the u"},{"name":"disable_this_key","description":"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"},{"name":"get_my_usage","description":"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 "},{"name":"get_approval","description":"Returns one confirmation request created by this connection, by id (apr_...): status (pending, approved, executed, failed, denied, expired, cancelled), the acti"},{"name":"bulk_archive_library","description":"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 inc"},{"name":"bulk_delete_library","description":"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 ex"},{"name":"bulk_queue_library","description":"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 publishin"}],"package":null,"toolSurface":{"id":"ts_menm786dhd36","endpointId":"ep_vnbu7eyg985u","hash":"5dd91a763fd9ca082cc4da5f5d621d93583858684365858acf3afa9e09b0d832","toolCount":40,"serverName":"mindthread","serverVersion":"1.19.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-27T06:24:27.320Z","lastSeenAt":"2026-10-27T06:24:27.320Z","observations":1,"toolNames":["get_me","list_accounts","get_material","build_material","get_account_settings","update_account_settings","list_guardrail_changes","list_account_settings","preview_account_settings","apply_account_settings","revert_account_settings_batch","get_account_settings_batch","generate_posts","publish","schedule_text","list_schedules","cancel_schedule","list_library","add_library","delete_library_item","approve_library_item","update_library_item","get_cloud_patrol","set_cloud_patrol","cloud_patrol_log","cloud_patrol_stats","list_pending_replies","approve_pending_reply","reject_pending_reply","list_events","analytics_insights","list_formulas","get_playbook","connect_account_link","disable_this_key","get_my_usage","get_approval","bulk_archive_library","bulk_delete_library","bulk_queue_library"],"distinctSurfaces":1},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.ppcvote/mindthread","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.ppcvote%2Fmindthread","firstSeenAt":"2026-10-27T05:22:18.453Z","fetchedAt":"2026-10-27T05:22:18.453Z","normalizedAt":"2026-10-27T05:22:18.453Z"}]},"firstSeenAt":"2026-10-27T05:22:18.453Z","updatedAt":"2026-10-27T06:27:11.134Z"}