boring-threads-publisher
# Boring Threads Publisher
Publish posts, multi-post threads, and replies on Threads. Powered by [Boring](https://boring-doc.aiagent-me.com).
## Security & Data Handling
- **MCP link is a credential**: Your MCP Server URL contains an embedded authentication token. Treat it like a password — do not share it publicly. Regenerate anytime in Settings.
- **Media uploads**: Local files or URLs are uploaded to Boring's Google Cloud Storage to make them accessible for publishing. Social media APIs require publicly accessible media URLs.
- **Data flow**: Your content and media are sent from Boring's server to Threads' API on your behalf via your connected OAuth token.
- **No local credentials**: No local API keys or environment variables needed. All auth is embedded in the MCP link.
## Prerequisites
1. **Sign up** at [boring.aiagent-me.com](https://boring.aiagent-me.com) with Google
2. **Connect Threads** account via OAuth
3. **Get your MCP link**: Go to **Settings** → copy your MCP Server URL (contains your auth token — treat it like a password)
4. **Add to Claude**: Paste the MCP link as a Connector — no install, no API key needed
## Workflow
### Step 1: List Accounts
Call `boring_list_accounts` and filter for `threads` platform. Show connected accounts.
### Step 2: Determine Post Type
Threads supports multiple content types:
| Type | Description | Limit |
|------|-------------|-------|
| Text | Text-only post | 500 characters |
| Photo | Single image | JPG/PNG/WEBP, max 8MB |
| Carousel | Multi-image | 2-20 images (more than other platforms!) |
| Video | Single video | MP4/MOV, max 512MB, 5 min |
| Thread | Multi-post thread | Array of text posts, each up to 500 chars |
### Step 3: Choose the Right Tool
**Single post** (text, photo, carousel, video) → use `boring_publish_post`:
```
boring_publish_post(
account_id="<threads_account_id>",
platform="threads",
text="Your post content",
media_urls=["https://..."] (optional)
)
```
**Multi-post thread** (long-form content split into connected posts) → use `boring_publish_thread`:
```
boring_publish_thread(
account_id="<threads_account_id>",
platform="threads",
texts=["First post in thread", "Second post continues...", "Third post wraps up"],
media_urls=["https://..."] (optional, added to first post only)
)
```
**Reply to existing post** → use `boring_reply_to_post_threads`:
```
boring_reply_to_post_threads(
account_id="<threads_account_id>",
reply_to_id="<original_post_id>",
text="Your reply here",
media_urls=["https://..."] (optional, first URL only)
)
```
### Step 4: Handle Long Content
If the user provides content longer than 500 characters:
1. **Automatically split** into multiple posts for a thread
2. Split at sentence boundaries when possible
3. Use `boring_publish_thread` with the array of texts
4. Inform the user: "Your content was split into X connected posts"
### Step 5: Prepare Media
- **Local files**: `boring_upload_file` with `file_path`
- **URLs**: `boring_upload_from_url` to re-host
- **Google Drive**: Pass directly
### Step 6: Publish and Report
Show results:
- Post ID(s) for each published post
- Thread URL if it was a multi-post thread
- Any errors encountered
## Scheduling
Add `scheduled_at` in ISO 8601 format to schedule:
```
boring_publish_post(..., scheduled_at="2025-12-25T10:00:00Z")
boring_publish_thread(..., scheduled_at="2025-12-25T10:00:00Z")
```
## Threads-Specific Notes
- **Text-only posts**: Threads is one of the few platforms that supports pure text posts
- **Carousel limit**: Up to 20 images (vs 10 on Instagram/Facebook)
- **Token**: 60-day expiration with auto-refresh 5 days before expiry
- **Rate Limit**: 250 calls/hour per user
- **Permissions**: `threads_basic`, `threads_content_publish`, `threads_manage_replies`
## Error Handling
| Error | Solution |
|-------|----------|
| `TextTooLong` | Split into thread using `boring_publish_thread` |
| `InvalidCarouselSize` | Carousel needs 2-20 images |
| `TokenExpired` | Reconnect at boring.aiagent-me.com (rare due to auto-refresh) |
| `MediaTooLarge` | Images max 8MB, videos max 512MB |
## Documentation
Full API docs: [boring-doc.aiagent-me.com](https://boring-doc.aiagent-me.com)
标签
skill
ai