Text Processing
Paste a long text and split it into a numbered X thread that respects the 280-character limit. Splits on word/sentence/paragraph boundaries, auto-adds 1/N numbering, weighs CJK and full-width characters correctly, counts URLs as 23 characters, and shows a live X-style preview card for each tweet with a character meter.
Call this tool from your code in three languages.
curl -X POST 'https://api.elysiatools.com/en/api/tools/twitter-thread-splitter' \
-H 'Content-Type: application/json' \
-d '{"text":"Designing for latency is harder than designing for throughput. Throughput rewards batching and parallelism. Latency punishes them, because every extra hop adds queuing delay. The fastest request is the one you never make. Cache aggressively, but measure the cache hit ratio — a 50% hit rate barely helps P99. Finally, budget for failure: retries and timeouts are themselves latency sources, and they compound under load.","limit":280,"mode":"sentence","numbering":"slash","separator":"—","keepBreaks":true,"reserveUrl":true}'Send a POST request with your inputs as JSON. File parameters require a separate upload first.
POST https://api.elysiatools.com/en/api/tools/twitter-thread-splitter| Name | Type | Required | Description |
|---|---|---|---|
| text | textarea | Yes | The text you want to split into an X thread. |
| limit | number | Yes | Character budget per tweet. 280 is the standard X limit (CJK and URLs are weighted per X rules). |
| mode | select | No | — |
| numbering | select | No | — |
| separator | text | No | Text placed between content and the numbering tag (e.g. — or a newline). |
| keepBreaks | checkbox | No | — |
| reserveUrl | checkbox | No | When on, URLs count as 23 characters (X behaviour). When off, URLs count by their raw length. |
HTML result
{
"result": "<div>Processed HTML content</div>",
"error": "Error message (optional)",
"message": "Notification message (optional)",
"metadata": {
"key": "value"
}
}Add this tool to your Model Context Protocol server so AI agents can list and call it.
Add this block to your MCP client configuration:
{
"mcpServers": {
"elysiatools-twitter-thread-splitter": {
"name": "twitter-thread-splitter",
"description": "Paste a long text and split it into a numbered X thread that respects the 280-character limit. Splits on word/sentence/paragraph boundaries, auto-adds 1/N numbering, weighs CJK and full-width characters correctly, counts URLs as 23 characters, and shows a live X-style preview card for each tweet with a character meter.",
"baseUrl": "https://api.elysiatools.com/mcp/sse?toolId=twitter-thread-splitter",
"command": "",
"args": [],
"env": {},
"isActive": true,
"type": "sse"
}
}
}After connecting to the SSE endpoint, list the exposed tools:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Invoke the tool by its id, passing arguments built from its parameters:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "twitter-thread-splitter",
"arguments": {
"text": "Designing for latency is harder than designing for throughput. Throughput rewards batching and parallelism. Latency punishes them, because every extra hop adds queuing delay. The fastest request is the one you never make. Cache aggressively, but measure the cache hit ratio — a 50% hit rate barely helps P99. Finally, budget for failure: retries and timeouts are themselves latency sources, and they compound under load.",
"limit": 280,
"mode": "sentence",
"numbering": "slash",
"separator": "—",
"keepBreaks": true,
"reserveUrl": true
}
}
}Questions or issues? Contact [email protected]