threads-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEBUG | No | Log startup, captured GraphQL op names, and scheduler activity to stderr. | false |
| CACHE_TTL_MS | No | In-memory read-cache lifetime. | 30000 |
| THREADS_DOMAIN | No | Threads domain (threads.net redirects here). | threads.com |
| THREADS_HEADLESS | No | Keep false — headless is detected. | false |
| THREADS_PROFILE_DIR | No | Where the saved login lives. | ~/.threads-mcp/chrome-profile |
| THREADS_LOCK_TIMEOUT_MS | No | Ceiling on one browser operation; on timeout the page resets. | 120000 |
| THREADS_MAX_MEDIA_BYTES | No | Largest accepted media file (64 MB). | 67108864 |
| THREADS_MEDIA_TIMEOUT_MS | No | Per-download timeout for http(s) media. | 60000 |
| THREADS_MIN_ACTION_INTERVAL_MS | No | Minimum gap between write actions. Raise to be safer. | 8000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Show which Threads account this server is signed in as (your @handle, user id, name, follower/following counts). Use this to confirm the active session before posting. |
| get_profileA | Get a Threads user's profile: display name, bio, follower count, verified status, and a few recent posts. Omit |
| get_user_threadsB | Get a user's recent Threads posts (their profile feed). |
| get_threadA | Get a single Threads post with its stats. Provide the post |
| get_thread_repliesA | Get the replies to a Threads post. Provide the post |
| get_timelineA | Get your Threads home feed (the "For you" timeline). |
| searchA | Search Threads for posts or users matching a query. |
| get_notificationsA | Read your Threads Activity feed — who followed you, replies and mentions, and suggestions. This is how you find out what happened on your account; every other read tool looks outward. Optionally filter by |
| get_followersA | Get a sample of a user's followers (opens the followers list and reads what loads). Threads does not expose a full follower dump; expect a partial list. |
| get_followingA | Get a sample of the accounts a user follows (opens their Following list and reads what loads). Threads does not expose a full dump; expect a partial list. |
| create_threadA | Post a new thread to YOUR Threads account — text and/or media (images & video). ⚠️ Real account — use sparingly; the server enforces a minimum gap between writes to avoid rate-limit/automation flags. |
| reply_to_threadA | Reply to a Threads post with text and/or media. Provide the post |
| like_threadA | Like a Threads post. Provide the post |
| repost_threadA | Repost a Threads post to your followers. Provide the post |
| quote_threadA | Quote-post a Threads post — repost it with your own comment (text and/or media). Provide the post |
| follow_userA | Follow a Threads user by @handle. ⚠️ Real account — follow/unfollow bursts are a classic ban trigger, so this is rate-limited. |
| delete_threadA | Delete one of YOUR OWN Threads posts. Provide the post |
| unlike_threadA | Remove your like from a Threads post. Provide the post |
| unrepost_threadA | Remove your repost of a Threads post. Provide the post |
| unfollow_userA | Unfollow a Threads user by @handle. ⚠️ Real account — follow/unfollow bursts are a classic ban trigger, so this is rate-limited. |
| schedule_threadA | Schedule a text/media post to publish later. Give |
| list_scheduledA | List scheduled posts and their status (pending / done / failed / canceled). |
| cancel_scheduledA | Cancel a pending scheduled post by its id (from schedule_thread / list_scheduled). |
| doctorA | Check that this server can still drive Threads: session validity, and whether each DOM anchor the write tools depend on is still present. Run it when tools start failing oddly — Meta ships UI changes without notice, and a moved anchor otherwise shows up as a vague "could not confirm" from whichever tool happened to use it. Read-only: it opens the composer to inspect it but never posts, and discards any draft it would create. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Each tool targets a distinct action: scheduling, reading profiles/posts, interactions (like/repost/quote), follow/unfollow, etc. No two tools have overlapping purposes despite the large number.
Nearly all tools follow a verb_noun pattern (e.g., list_scheduled, get_profile, create_thread). Two exceptions: 'whoami' (lowercase, no underscore) and 'doctor' (single word), which are minor deviations from the otherwise consistent schema.
24 tools is slightly above the typical well-scoped range, but the server covers a broad domain (scheduling, posts, interactions, notifications, followers) without feeling bloated—each tool has a clear purpose.
The surface covers core CRUD for posts, scheduling, interactions, and account details. Minor gaps include no tool to update scheduled posts or edit profile information, but these are not critical for the primary use case.