meta-threads-mcp
Unofficial MCP server for Meta's Threads API. Enables LLMs like Claude to publish posts, manage replies, and track insights through the Model Context Protocol.
Features
- Full Threads API coverage via MCP tools
- Create text, image, and video posts
- Reply management (reply, hide/unhide, get conversation)
- Post and user insights/metrics
- Publishing quota tracking
- Built on meta-threads-sdk and FastMCP
Installation
pip install meta-threads-mcp
Or with uv:
uv add meta-threads-mcp
Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"threads": {
"command": "meta-threads-mcp"
}
}
}
Authentication
The server expects a bearer token in the format:
<access_token>:<user_id>
The client passes this token via the request context when calling tools.
Available Tools
Posts
| Tool | Description | Parameters |
|---|---|---|
threads_create_post |
Create and publish a text post | text (required), reply_control (optional) |
threads_create_image_post |
Create post with image | image_url (required), text (optional) |
threads_create_video_post |
Create post with video | video_url (required), text (optional) |
threads_get_post |
Get a post by ID | post_id (required) |
threads_get_user_posts |
Get user's recent posts | limit (optional, default 10) |
threads_delete_post |
Delete a post | post_id (required) |
threads_get_publishing_limit |
Check remaining quota | none |
Replies
| Tool | Description | Parameters |
|---|---|---|
threads_reply_to_post |
Reply to a post | post_id (required), text (required) |
threads_get_replies |
Get replies to a post | post_id (required) |
threads_get_conversation |
Get full conversation thread | post_id (required) |
threads_hide_reply |
Hide a reply | reply_id (required) |
threads_unhide_reply |
Unhide a reply | reply_id (required) |
Insights
| Tool | Description | Parameters |
|---|---|---|
threads_get_media_insights |
Get metrics for a post | media_id (required) |
threads_get_user_insights |
Get user-level metrics | none |
User
| Tool | Description | Parameters |
|---|---|---|
threads_get_profile |
Get current user's profile | none |
Reply Control Options
When creating posts, you can control who can reply:
EVERYONE(default) - Anyone can replyACCOUNTS_YOU_FOLLOW- Only accounts you follow can replyMENTIONED_ONLY- Only mentioned accounts can reply
Rate Limits
- 250 posts per 24 hours
- 1000 replies per 24 hours
Use threads_get_publishing_limit to check your current quota.
Development
Setup
git clone https://github.com/MetaThreads/meta-threads-mcp.git
cd meta-threads-mcp
uv sync --dev
Running Tests
uv run pytest
Linting & Type Checking
uv run ruff check src tests
uv run ruff format src tests
uv run mypy src
Testing with FastMCP CLI
fastmcp dev src/meta_threads_mcp/server.py
License
MIT License - see LICENSE for details.
Related Projects
- meta-threads-sdk - Python SDK for Meta's Threads API
- FastMCP - Simple MCP server framework
Metadata
Release files for meta-threads-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| meta_threads_mcp-0.1.0.tar.gz | 88.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meta_threads_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 99.8 kB
Release files / meta_threads_mcp-0.1.0.tar.gz
| Download URL | meta_threads_mcp-0.1.0.tar.gz |
|---|---|
| Size | 88.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9bedbc6beee78ac9980dd0fa29156c3418208d561af7e5f128858e2b61e8b565
|
|
BLAKE2b-256 checksum How to use checksums |
9ebb1c1faad348b7fe465c3c24982f911c504a4a573633a97a64bc4772ee29cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / meta_threads_mcp-0.1.0-py3-none-any.whl
| Download URL | meta_threads_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cbe4f20c9836c283bc26edbe489428edbdb5a9cb513272dc7760f69d6a7d13a5
|
|
BLAKE2b-256 checksum How to use checksums |
c9388dd7844c235fef948ab37e3173c00b1e6c5e913daccd4cefa31f6557fbb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|