protogrid

Search / com.txtreel/txtreel

txtreel

R0· no sign-in

Free iMessage, WhatsApp, Instagram DM and Reddit chat videos (1080x1920 MP4) and screenshots.

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality80good
Trust83of 100
Uptime, 30 days100%
Latency p50486 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "txtreel": {
      "type": "http",
      "url": "https://txtreel.com/mcp"
    }
  }
}
claude mcp add --transport http txtreel https://txtreel.com/mcp
[mcp_servers.txtreel]
url = "https://txtreel.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "txtreel": {
      "type": "remote",
      "url": "https://txtreel.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "txtreel": {
      "type": "http",
      "url": "https://txtreel.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=txtreel&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdHh0cmVlbC5jb20vbWNwIn0%3D"
}
{
  "servers": {
    "txtreel": {
      "type": "http",
      "url": "https://txtreel.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "txtreel": {
      "httpUrl": "https://txtreel.com/mcp"
    }
  }
}
extensions:
  "txtreel":
    enabled: true
    name: "txtreel"
    type: streamable_http
    uri: "https://txtreel.com/mcp"
    timeout: 300

Quality 80 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length7 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • warn
    tools.token_costabout 12,157 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes13 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 12,157 tokens to load them all · tool set 02426429dd29 · tools last changed 2026-10-09 · checked 2026-10-20 22:55 UTC

Tool changes

  • lockscreen_screenshotchangeddescription, input schema
    before

    Render a single frame of an iOS lock screen with notifications to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the input is invalid, this returns an error result with the validation messages instead of an image. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a grey time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video) and springs in from the bottom; at 0 it is already there. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). Without a wallpaper a dark gradient is drawn. "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS does (newest on top with slivers behind); "list" shows every card.

    after · 80% of words in common

    Render a single frame of an iOS lock screen with notifications to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the input is invalid, this returns an error result with the validation messages instead of an image. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a see-through time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video), growing out of the bottom of the screen (or out of the card already there) as on iOS 26; at 0 it is already there. While cards are on screen the lower half of the wallpaper darkens, as on the phone. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). "wallpaper" also takes one of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"); without one, "sky" (the iOS 26 default) is drawn, in its light or dark version with "theme". "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS 26 does (the newest card, the next one or two as one-line rows under it, the rest counted as "+3 from WhatsApp and Messages"); "list" shows every card.

  • lockscreen_render_videochangeddescription, input schema
    before

    Render an iOS lock screen with notifications to an MP4 and wait for it to finish: a wallpaper, the big clock, and cards from imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders that land one by one at the seconds you set. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render (3-5 notifications) typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. If the input is invalid, this returns an error result with the validation messages instead of rendering. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a grey time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video) and springs in from the bottom; at 0 it is already there. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). Without a wallpaper a dark gradient is drawn. "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS does (newest on top with slivers behind); "list" shows every card.

    after · 83% of words in common

    Render an iOS lock screen with notifications to an MP4 and wait for it to finish: a wallpaper, the big clock, and cards from imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders that land one by one at the seconds you set. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render (3-5 notifications) typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. If the input is invalid, this returns an error result with the validation messages instead of rendering. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a see-through time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video), growing out of the bottom of the screen (or out of the card already there) as on iOS 26; at 0 it is already there. While cards are on screen the lower half of the wallpaper darkens, as on the phone. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). "wallpaper" also takes one of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"); without one, "sky" (the iOS 26 default) is drawn, in its light or dark version with "theme". "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS 26 does (the newest card, the next one or two as one-line rows under it, the rest counted as "+3 from WhatsApp and Messages"); "list" shows every card.

  • lockscreen_screenshotchangedinput schema
  • lockscreen_render_videochangedinput schema
  • lockscreen_screenshotchangeddescription, input schema
    before

    Render a single frame of an iOS lock screen with notifications to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the input is invalid, this returns an error result with the validation messages instead of an image. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock, flashlight and camera buttons). Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a grey time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video) and springs in from the bottom; at 0 it is already there. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). Without a wallpaper a dark gradient is drawn. "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS does (newest on top with slivers behind); "list" shows every card.

    after · 94% of words in common

    Render a single frame of an iOS lock screen with notifications to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the input is invalid, this returns an error result with the validation messages instead of an image. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a grey time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video) and springs in from the bottom; at 0 it is already there. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). Without a wallpaper a dark gradient is drawn. "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS does (newest on top with slivers behind); "list" shows every card.

  • lockscreen_render_videochangeddescription, input schema
    before

    Render an iOS lock screen with notifications to an MP4 and wait for it to finish: a wallpaper, the big clock, and cards from imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders that land one by one at the seconds you set. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render (3-5 notifications) typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. If the input is invalid, this returns an error result with the validation messages instead of rendering. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock, flashlight and camera buttons). Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a grey time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video) and springs in from the bottom; at 0 it is already there. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). Without a wallpaper a dark gradient is drawn. "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS does (newest on top with slivers behind); "list" shows every card.

    after · 94% of words in common

    Render an iOS lock screen with notifications to an MP4 and wait for it to finish: a wallpaper, the big clock, and cards from imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders that land one by one at the seconds you set. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render (3-5 notifications) typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. If the input is invalid, this returns an error result with the validation messages instead of rendering. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a grey time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video) and springs in from the bottom; at 0 it is already there. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). Without a wallpaper a dark gradient is drawn. "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS does (newest on top with slivers behind); "list" shows every card.

  • lockscreen_screenshotadded

    Render a single frame of an iOS lock screen with notifications to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the input is invalid, this returns an error result with the validation messages instead of an image. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock, flashlight and camera buttons). Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a grey time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video) and springs in from the bottom; at 0 it is already there. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). Without a wallpaper a dark gradient is drawn. "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS does (newest on top with slivers behind); "list" shows every card.

  • lockscreen_render_videoadded

    Render an iOS lock screen with notifications to an MP4 and wait for it to finish: a wallpaper, the big clock, and cards from imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders that land one by one at the seconds you set. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render (3-5 notifications) typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. If the input is invalid, this returns an error result with the validation messages instead of rendering. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock, flashlight and camera buttons). Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a grey time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video) and springs in from the bottom; at 0 it is already there. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). Without a wallpaper a dark gradient is drawn. "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS does (newest on top with slivers behind); "list" shows every card.

  • reddit_screenshotchangeddescription, input schema
    before

    Render a single frame of a Reddit thread (script, or post+comments) to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the thread is invalid, this returns an error result with the validation messages instead of an image — fix and call again; there is no separate reddit_validate tool. Reddit thread script format (post + nested comments): title: AITA for not going to my sister's wedding? body: First paragraph of the post (optional, one line per paragraph) body: Second paragraph [photo URL] a photo in the post (URL, file path or uploaded photo's number) sleepy_joe: A top-level comment > OP: A reply by the post's author (blue OP label) >> sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age [91 more replies] collapsed replies under the comment above [pause 2] wait 2 s # comment This is a screen recording of someone reading a real-looking thread on mobile reddit.com in iOS Safari: the page is laid out once and the camera scrolls from block to block, holding each one long enough to read. The title is the hook and is on screen from frame 0 — make it count. A typical reel is a post with 1-3 short body paragraphs plus 4-10 comments, about 30-60 seconds. Use nested replies (">", ">>", …) and a reply from the post's author ("> OP: …") for drama — someone getting called out and the poster jumping in reads as real. A "[N more replies]" line under a comment adds realism: it's what a real collapsed thread looks like. Leave scores and ages out unless they matter to the story — they're made up realistically (decreasing down the thread, never older than the post) when omitted. Use "speed" 1.3-1.5 for a faster-paced reel.

    after · 68% of words in common

    Render a single frame of a Reddit thread (script, or post+comments) to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the thread is invalid, this returns an error result with the validation messages instead of an image. Reddit thread script format (post + nested comments): title: AITA for not going to my sister's wedding? body: First paragraph of the post (optional, one line per paragraph) body: Second paragraph [photo URL] a photo in the post (URL, file path or uploaded photo's number) sleepy_joe: A top-level comment > OP: A reply by the post's author (blue OP label) >> sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age [91 more replies] collapsed replies under the comment above [pause 2] wait 2 s # comment The video is a screen recording of a thread on mobile reddit.com in iOS Safari: the page is laid out once and the view scrolls from block to block, holding each one long enough to read. The title is on screen from frame 0. Scores and ages left out of the script are generated (decreasing down the thread, never older than the post).

  • reddit_render_videochangeddescription, input schema
    before

    Render a Reddit thread (script, or post+comments) to an MP4 and wait for it to finish. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. If the thread is invalid, this returns an error result with the validation messages (script errors are prefixed with the offending line number) instead of rendering — fix and call again; there is no separate reddit_validate tool. Reddit thread script format (post + nested comments): title: AITA for not going to my sister's wedding? body: First paragraph of the post (optional, one line per paragraph) body: Second paragraph [photo URL] a photo in the post (URL, file path or uploaded photo's number) sleepy_joe: A top-level comment > OP: A reply by the post's author (blue OP label) >> sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age [91 more replies] collapsed replies under the comment above [pause 2] wait 2 s # comment This is a screen recording of someone reading a real-looking thread on mobile reddit.com in iOS Safari: the page is laid out once and the camera scrolls from block to block, holding each one long enough to read. The title is the hook and is on screen from frame 0 — make it count. A typical reel is a post with 1-3 short body paragraphs plus 4-10 comments, about 30-60 seconds. Use nested replies (">", ">>", …) and a reply from the post's author ("> OP: …") for drama — someone getting called out and the poster jumping in reads as real. A "[N more replies]" line under a comment adds realism: it's what a real collapsed thread looks like. Leave scores and ages out unless they matter to the story — they're made up realistically (decreasing down the thread, never older than the post) when omitted. Use "speed" 1.3-1.5 for a faster-paced reel.

    after · 70% of words in common

    Render a Reddit thread (script, or post+comments) to an MP4 and wait for it to finish. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. If the thread is invalid, this returns an error result with the validation messages (script errors are prefixed with the offending line number) instead of rendering. Reddit thread script format (post + nested comments): title: AITA for not going to my sister's wedding? body: First paragraph of the post (optional, one line per paragraph) body: Second paragraph [photo URL] a photo in the post (URL, file path or uploaded photo's number) sleepy_joe: A top-level comment > OP: A reply by the post's author (blue OP label) >> sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age [91 more replies] collapsed replies under the comment above [pause 2] wait 2 s # comment The video is a screen recording of a thread on mobile reddit.com in iOS Safari: the page is laid out once and the view scrolls from block to block, holding each one long enough to read. The title is on screen from frame 0. Scores and ages left out of the script are generated (decreasing down the thread, never older than the post).

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-21d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://txtreel.com/mcp streamable-httpnoneyes100%486 ms2025-11-252026-10-20

Tools (7)

chat_render_videoRender a txtreel conversation (script or messages) to an MP4 and wait for it to finish. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render (a handful of messages) typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. Conversation script format (one event per line): them: hey, you up? me: yeah why [pause 1.5] wait 1.5 s --- Today 9:41 PM date/time separator me: [photo URL] caption a photo (URL, local file path, or an uploaded photo's number) [them reacts ❤️] reaction on my last message [read] they read my messages === everything above is already on screen at the start === scroll 3 same, but open on the oldest message and skim down in 3 s # comment "Name: text" also means "them" when Name matches contact.name (e.g. contact.name "Sam" lets you write "Sam: omg" instead of "them: omg"). A literal "\n" inside a message becomes a line break. Lines starting with # are comments. Photos: "me: [photo https://example.com/image.jpg] optional caption" (https URLs only; local file paths are not available). "=== scroll 3" opens on the oldest message of a longer history and skims down to the live part in 3 s. With keyboard true (the default), the newest messages stay above the area where the Reels caption sits.
chat_screenshotRender a single frame of a txtreel conversation (script or messages) to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). Conversation script format (one event per line): them: hey, you up? me: yeah why [pause 1.5] wait 1.5 s --- Today 9:41 PM date/time separator me: [photo URL] caption a photo (URL, local file path, or an uploaded photo's number) [them reacts ❤️] reaction on my last message [read] they read my messages === everything above is already on screen at the start === scroll 3 same, but open on the oldest message and skim down in 3 s # comment "Name: text" also means "them" when Name matches contact.name (e.g. contact.name "Sam" lets you write "Sam: omg" instead of "them: omg"). A literal "\n" inside a message becomes a line break. Lines starting with # are comments. Photos: "me: [photo https://example.com/image.jpg] optional caption" (https URLs only; local file paths are not available). "=== scroll 3" opens on the oldest message of a longer history and skims down to the live part in 3 s. With keyboard true (the default), the newest messages stay above the area where the Reels caption sits.
chat_validateread-onlyChecks a txtreel conversation (script or messages) without rendering anything. It is fast and free. On success returns { ok: true, durationSeconds, messageCount, conversation } where "conversation" is the fully-resolved object (all defaults applied). On failure returns { ok: false, errors: string[] } — one message per problem; when the input was a script, errors are prefixed with the offending line number. Videos longer than the server limit are rejected here too. Conversation script format (one event per line): them: hey, you up? me: yeah why [pause 1.5] wait 1.5 s --- Today 9:41 PM date/time separator me: [photo URL] caption a photo (URL, local file path, or an uploaded photo's number) [them reacts ❤️] reaction on my last message [read] they read my messages === everything above is already on screen at the start === scroll 3 same, but open on the oldest message and skim down in 3 s # comment "Name: text" also means "them" when Name matches contact.name (e.g. contact.name "Sam" lets you write "Sam: omg" instead of "them: omg"). A literal "\n" inside a message becomes a line break. Lines starting with # are comments. Photos: "me: [photo https://example.com/image.jpg] optional caption" (https URLs only; local file paths are not available). "=== scroll 3" opens on the oldest message of a longer history and skims down to the live part in 3 s. With keyboard true (the default), the newest messages stay above the area where the Reels caption sits.
lockscreen_render_videoRender an iOS lock screen with notifications to an MP4 and wait for it to finish: a wallpaper, the big clock, and cards from imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders that land one by one at the seconds you set. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render (3-5 notifications) typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. If the input is invalid, this returns an error result with the validation messages instead of rendering. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a see-through time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video), growing out of the bottom of the screen (or out of the card already there) as on iOS 26; at 0 it is already there. While cards are on screen the lower half of the wallpaper darkens, as on the phone. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). "wallpaper" also takes one of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"); without one, "sky" (the iOS 26 default) is drawn, in its light or dark version with "theme". "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS 26 does (the newest card, the next one or two as one-line rows under it, the rest counted as "+3 from WhatsApp and Messages"); "list" shows every card.
lockscreen_screenshotRender a single frame of an iOS lock screen with notifications to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the input is invalid, this returns an error result with the validation messages instead of an image. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a see-through time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video), growing out of the bottom of the screen (or out of the card already there) as on iOS 26; at 0 it is already there. While cards are on screen the lower half of the wallpaper darkens, as on the phone. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). "wallpaper" also takes one of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"); without one, "sky" (the iOS 26 default) is drawn, in its light or dark version with "theme". "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS 26 does (the newest card, the next one or two as one-line rows under it, the rest counted as "+3 from WhatsApp and Messages"); "list" shows every card.
reddit_render_videoRender a Reddit thread (script, or post+comments) to an MP4 and wait for it to finish. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render typically takes 20-60 seconds. Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message. If the thread is invalid, this returns an error result with the validation messages (script errors are prefixed with the offending line number) instead of rendering. Reddit thread script format (post + nested comments): title: AITA for not going to my sister's wedding? body: First paragraph of the post (optional, one line per paragraph) body: Second paragraph [photo URL] a photo in the post (URL, file path or uploaded photo's number) sleepy_joe: A top-level comment > OP: A reply by the post's author (blue OP label) >> sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age [91 more replies] collapsed replies under the comment above [pause 2] wait 2 s # comment The video is a screen recording of a thread on mobile reddit.com in iOS Safari: the page is laid out once and the view scrolls from block to block, holding each one long enough to read. The title is on screen from frame 0. Scores and ages left out of the script are generated (decreasing down the thread, never older than the post).
reddit_screenshotRender a single frame of a Reddit thread (script, or post+comments) to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the thread is invalid, this returns an error result with the validation messages instead of an image. Reddit thread script format (post + nested comments): title: AITA for not going to my sister's wedding? body: First paragraph of the post (optional, one line per paragraph) body: Second paragraph [photo URL] a photo in the post (URL, file path or uploaded photo's number) sleepy_joe: A top-level comment > OP: A reply by the post's author (blue OP label) >> sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age [91 more replies] collapsed replies under the comment above [pause 2] wait 2 s # comment The video is a screen recording of a thread on mobile reddit.com in iOS Safari: the page is laid out once and the view scrolls from block to block, holding each one long enough to read. The title is on screen from frame 0. Scores and ages left out of the script are generated (decreasing down the thread, never older than the post).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.txtreel/txtreel",
  "title": "txtreel",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://txtreel.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://txtreel.com",
  "description": "Free iMessage, WhatsApp, Instagram DM and Reddit chat videos (1080x1920 MP4) and screenshots."
}