mcp is a remote MCP server that gives an AI agent 53 tools, among them add_labels_to_tweets, archive_bookmarks, archive_bookmarks_by_filter. It answers at https://mcp.tweetsmash.com/api/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.
Search, label, and manage your X (Twitter) bookmarks from any MCP client via Tweetsmash
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
add_labels_to_tweets | Add a label to a list of tweets. Can use an existing label by ID or create a new label by name. Either label_id or label_name must be provided. Inputs: tweet_ids, label_id, label_name |
archive_bookmarks | Archive, unarchive, delete, undelete, or mark read/unread a list of bookmarks by id (max 500). This is a bulk write; for destructive actions (delete) confirm with the user first. Reports how many changed. Inputs: action, tweet_ids |
archive_bookmarks_by_filter | Apply archive/unarchive/delete/undelete to EVERY bookmark matching a filter, in one call. Destructive by nature — confirm with the user before delete. Reports counts. Inputs: action, search_query, filter, value, tags |
compose_mash_digest | Compose one of the user's Digest 2.0 digests NOW rather than waiting for its schedule. SPENDS A DIGEST CREDIT and takes about a minute, so only call it when the user asks for a fresh digest — not to inspect the current one (use get_mash_dig Inputs: digest_id |
correct_interest | Record the user's correction to an inferred interest, using a key from get_interests. Corrections are sticky — they survive every future recompute. Use `confirm` when they agree, `rename` for their own wording, `hide` to stop using an inter Inputs: interest_key, action, value |
create_share_link | Create a public, read-only share link for a set of bookmarks (explicit ids or everything matching a filter). Returns a share_url valid for 7 days. Free plans share up to 10 bookmarks. Inputs: tweet_ids, search_query, filter, value, tags |
create_smart_view | Create a Smart View from a filter so the user can reuse it. Provide a name and the base_query (filter). Inputs: name, description, base_query, triage_buckets, default_sort |
delete_digest_preference | Remove a digest schedule by id. Inputs: id |
delete_label | Delete a label from the account entirely — the label itself plus every bookmark's assignment of it. The BOOKMARKS are not deleted; they simply lose this label. IRREVERSIBLE: before calling, tell the user how many bookmarks carry the label ( Inputs: label_name, label_id |
delete_smart_view | Delete a Smart View by slug. Inputs: slug |
fetch_recent_bookmarks | Force-pull the user's most recent bookmarks from the X API now (server-side). Requires a connected X account; if the account only syncs via the browser extension, this reports that a browser sync is needed. Use when the user asks to refresh Inputs: max, force |
forget | Delete a saved library preference by key (optionally narrowed by kind). Use when the user changes their mind or asks you to drop something. Inputs: key, kind |
get_author_preferences | The user's stated author preferences for list digests: `boost` = never-miss authors, `hide` = muted authors. |
get_bookmark | Get a single saved bookmark with FULL content in one call — the full X Article body, the unrolled thread, notes, and (optionally) replies. Use `include` (comma list of article,thread,notes,replies) to narrow it; defaults to article,thread,n Inputs: id, include |
get_bookmark_count | Get the total count of user's bookmarks with optional filtering. Useful for understanding the size of bookmark collections before listing them. Inputs: is_unread_only, hide_archived, media_type, author, tag, posted_from |
get_bookmark_sync_status | Show whether a specific bookmark has synced to a given integration connection. Inputs: tweet_id, connect_id |
get_connection_status | Check whether the user's tweets can be pulled: the X (Twitter) API connection (connected / disconnected), whether the browser extension has synced recently, and a rolled-up can_pull + how (x_api or extension). Use this before a sync, or whe |
get_interests | Read what this user is actually interested in, inferred from their saved bookmarks, hand labels, questions and digest clicks — not from anything they typed. Returns topics with a 0-1 strength, whether each is active this week, and a `covera |
get_library_overview | A snapshot of the whole library: total bookmarks, unread, untagged, breakdown by type (threads/media/links/notes), every label with its count, and the years covered. Use this FIRST for anything open-ended (organise, clean up, learn from my |
get_list_digests | List past Twitter-list email digests for the user. |
get_list_tweets | Get recent tweets for a followed X list — the latest, or (sort=POPULARITY) the top/trending tweets in a look-back window. Serves a cached copy when it's fresh and otherwise fetches from X automatically, so it always returns real tweets; `me Inputs: connect_id, hours, sort, limit, max_age_hours |
get_mash_digest_issue | One digest issue in full: its title, intro, every section, and per item the summary, why it was picked and why it matters to this user. Use it to answer 'what was in my digest?', 'why was this in there?' or to carry on a conversation about Inputs: issue_id |
get_me | Get the current user's account: identity, current plan and status, and usage (e.g. AI chat credits). Use this to answer 'who am I' / 'what plan am I on'. |
get_skill | Get the full playbook for a task: when to use it, the exact tool sequence with the arguments that matter, tips, and the pitfalls that cause empty results. `name` takes EITHER an exact skill name (learn_from_bookmarks, organise_into_themes, Inputs: name |
get_smart_view | Get a single Smart View by slug (its filter, tabs/buckets, and sort). Inputs: slug |
get_smart_view_bookmarks | List the bookmarks inside a Smart View, optionally scoped to one tab/bucket. Use the returned ids with archive_bookmarks / tagging tools to act on the view. Inputs: slug, bucket, limit, cursor |
get_sync_status | Show the user's app-sync integrations (Notion, Google Sheets, Zotero): whether each is connected/enabled, synced vs pending counts, and any errors. |
list_bookmarks | List the user's Twitter BOOKMARKS — posts they deliberately saved. Never includes X Likes; use list_likes for those. Supports filtering and pagination. Supports filtering by read status, media type, author, tags, date ranges, and sorting op Inputs: is_unread_only, hide_archived, media_type, author, tag, posted_from |
list_digest_preferences | List the user's email-digest schedules (frequency, time, paused state) for bookmark and Smart View digests. |
list_labels | List all user's labels with their usage counts. Useful for discovering existing labels before adding new ones. |
list_likes | List the posts the user LIKED on X (not their bookmarks). Likes are a lighter signal than a save — use list_bookmarks for things the user deliberately saved, and this when the user explicitly asks about likes or about what they react to. Sa Inputs: is_unread_only, hide_archived, media_type, author, tag, posted_from |
list_mash_digest_issues | Past issues of the user's Digest 2.0, newest first — what arrived and when. Deliberately WITHOUT the content: pick one and call get_mash_digest_issue for the whole thing. Pass digest_id to narrow to one digest. Inputs: digest_id, limit |
list_mash_digests | The user's Mash Digest 2.0 digests — the AI-composed ones. An account can have SEVERAL (a morning read and an evening skim are two digests, not two sections of one), so START HERE and use the returned `id` for the other digest tools. Return |
list_past_digests | List past digests sent to the user's email, newest first. This is Digest 1.0 (the cluster pipeline). For the AI-composed Digest 2.0, use list_mash_digests. |
list_skills | START HERE for any open-ended request. Lists the task playbooks this server supports — systematic learning from bookmarks, organising into themes, cleaning up, X-list intelligence, exporting data out, finding a half-remembered save, digests |
list_smart_views | List the user's Smart Views (saved filtered views). Each has a slug you pass to the other smart-view tools. |
list_twitter_lists | List the X (Twitter) lists the user follows in Tweetsmash. Returns each list's name plus its `connect_id` — pass that to get_list_tweets / send_list_digest. START HERE for any 'what's in my list' request. |
preview_list_ranking | Rank a followed X list exactly the way the digest ranker would, WITHOUT sending anything, and show the work: each unit carries its rank_signals (lane_fit = matches what the user builds/studies, affinity = an author they trust, engagement, s Inputs: connect_id, list_id, limit, sort, window_days |
recall | Read back the user's saved library preferences (optionally filtered by a substring). Worth calling before an open-ended organise, summarise or cleanup task so you follow how they already like things done. Inputs: query |
remember | Save a durable PREFERENCE about how this user wants their bookmark library handled — the themes they organise by, topics to exclude, preferred summary length/format, which account is their main one. It carries across sessions AND into the T Inputs: kind, key, value, mode |
remove_labels_from_tweets, revoke_share_link, search_bookmarks, search_docs, send_list_digest, set_author_preference, setup_vector_store, tag_bookmarks_by_filter, trigger_csv_export, trigger_json_export, trigger_pdf_export, update_digest_preference, update_smart_view
Every block below points at https://mcp.tweetsmash.com/api/mcp. Pick your client and copy.
claude mcp add --transport http mcp https://mcp.tweetsmash.com/api/mcp
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.tweetsmash.com/api/mcp"]
}
}
}{
"mcpServers": {
"mcp": {
"url": "https://mcp.tweetsmash.com/api/mcp"
}
}
}{
"servers": {
"mcp": {
"type": "http",
"url": "https://mcp.tweetsmash.com/api/mcp"
}
}
}{
"context_servers": {
"mcp": {
"url": "https://mcp.tweetsmash.com/api/mcp"
}
}
}{
"mcpServers": {
"mcp": {
"serverUrl": "https://mcp.tweetsmash.com/api/mcp"
}
}
}{
"mcpServers": {
"mcp": {
"url": "https://mcp.tweetsmash.com/api/mcp"
}
}
}name: mcp
version: 0.0.1
schema: v1
mcpServers:
- name: mcp
type: streamable-http
url: https://mcp.tweetsmash.com/api/mcp{
"mcpServers": {
"mcp": {
"httpUrl": "https://mcp.tweetsmash.com/api/mcp"
}
}
}{
"mcpServers": {
"mcp": {
"type": "http",
"url": "https://mcp.tweetsmash.com/api/mcp"
}
}
}{
"mcpServers": {
"mcp": {
"url": "https://mcp.tweetsmash.com/api/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.tweetsmash.com%2Fapi%2Fmcp&type=streamable_http&id=mcp&name=mcp
It answered our last check on 18 October 2026 in 243 ms. Over 10 checks since 5 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by tweetsmash.com and served from mcp.tweetsmash.com, the vendor's own domain: https://mcp.tweetsmash.com/api/mcp.
53, as returned by the server's own tools/list on 31 August 2026: add_labels_to_tweets, archive_bookmarks, archive_bookmarks_by_filter, compose_mash_digest, correct_interest, create_share_link, create_smart_view, delete_digest_preference, and 45 more.
It answered our last check on 18 October 2026 in 243 ms. Over 10 checks since 5 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.tweetsmash.com/api/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: com.tweetsmash. Endpoint host: mcp.tweetsmash.com. ARD identifier: urn:air:com.tweetsmash:mcp:mcp.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.