twitr.sh

sh.twitrPublished by twitr.shOfficial publisherv1.0.0Updated Nov 2, 2026

X/Twitter reads, search, monitors and posting. Pay-per-call in USDC — no signup, no API keys.

Overview

AI-generated overview

Remote MCP server for reading, searching, monitoring and posting on X/Twitter, paid per call in USDC from an agent wallet instead of API keys.

What you can do
  • Read tweets, profiles, timelines, lists, communities, trends and media, and check follow relationships
  • Search tweets with the full operator set or search user profiles by keyword
  • Bulk-export followers, repliers, likers, threads and search results as downloadable datasets
  • Watch accounts or keywords in real time via polling or signed webhooks
  • Draft tweets with AI, then post, reply, like, repost, follow, DM or delete through a connected account
  • Read a connected account's bookmarks, notifications and DM history, and edit its profile or manage communities
When to use it
Useful when an assistant needs live X/Twitter data — brand or competitor tracking, social listening, audience exports, or drafting and publishing posts — without registering an X developer account or managing OAuth tokens.
Requirements
A remote endpoint at twitr.sh over streamable HTTP; no API key or signup. Calls are paid in USDC through an x402/MPP-capable agent wallet (for example AgentCash, awal, pay.sh) on Base, Solana or Tempo. Write, inbox and profile tools require first connecting an X account through a single-use sign-in link. The optional skills install needs Node 18+ and git.
Before you install
Every call costs money: reads and searches bill per item returned, posts and replies are fixed-price, monitors are prepaid per hour, and the first call returns HTTP 402 with a quote. Write tools post, reply, like, follow, DM and delete as a connected account, and inbox tools read private bookmarks, notifications and DMs. Connecting an account gives the agent's wallet write access until you revoke it. Some automation designs may violate X rules and risk the account.

Installation

In SourceWeft

  1. Open twitr.sh in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/sh.twitr%2Ftwitr/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "twitr-sh": {
      "type": "http",
      "url": "https://twitr.sh/api/mcp"
    }
  }
}

README

[twitr.sh]

X (Twitter) skills for Claude Code — no API key, no developer account

Six installable X/Twitter skills for Claude Code, Cursor, OpenClaw and Hermes — paid per call in USDC. No X developer account, no API keys, no OAuth, no signup, no subscription.

[skills.sh] [Skills] [Payment] [Networks] [License]

Start in 60 seconds · Ideas · The skills · Wallets · Scraper API · Pricing · Links


⚡ Start in 60 seconds

Most X/Twitter skills wrap the official API, so the setup is yours: register an X developer account, create an app, complete OAuth, store the tokens, and pay X directly. These skip all of it — your agent's wallet pays per request, and that payment is the authentication.

1 · Install the skills (needs Node 18+ and git on PATH):

sh
npx skills add lnvestor/twitr-skills

Claude Code users can install from the plugin marketplace instead — either path works:

sh
/plugin marketplace add lnvestor/twitr-skills/plugin install twitr-skills@twitr

2 · Get a wallet. Any x402/MPP wallet works — each one's own documented command:

WalletTry itPays on
[Image]AgentCash ⭐npx agentcash try https://twitr.shBase · Solana · Tempo
[Image]awal (Coinbase)npx awal x402 bazaar search twitr.shBase
[Image]pay.sh (Solana Foundation)pay curl https://twitr.shSolana
[Image]Ponchotryponcho.com/m/twitr.sh—
[Image]Circle Agent Walletcircle services search "twitr.sh"—

First time with agent wallets? → Wallet setup has step-by-step guides (AgentCash's onboarding bonus can even fund you up to $25 for free).

3 · Ask your agent something. The first call returns HTTP 402 with the exact price — that's the quote, not an error. Your wallet pays and retries automatically. $5 covers thousands of reads.

💡 What can my agent do?

Copy-paste any of these once the skills are installed:

"What is @vercel posting about this week?"

"Search X for what people are saying about my product — top 50 by likes, English only."

"Watch @competitor and tell me the moment they announce something." — a real-time monitor; events reach your agent by free polling or signed webhook

"Draft 3 tweet variants announcing our launch in my voice — I'll pick one, then post it."

"Export everyone who replied to this tweet as a dataset."

"Run my X presence: watch these 3 topics, queue drafts every morning, replies wait for my approval."

📦 The skills

Six focused skills with explicit trigger boundaries, so they don't fire over each other.

SkillWhat it does
⭐x-presenceUnattended presence — watch topics, draft in your voice, publish on a schedule, queue replies for approval. Start here — it drives the others internally.
🤖twitter-automationThe automation builder — describe the automation you want (auto-reply, scheduler, watcher, engagement) and it designs, prices, and wires it from the primitives.
🔎x-twitter-dataLive reads — tweets, profiles, search, timelines, lists, communities, trends.
🔔x-twitter-monitorReal-time monitors, delivered by free polling or HMAC-signed webhooks.
✍️x-twitter-publishDraft with AI, then post, reply, or quote through a connected account.
📦x-twitter-researchBulk exports — followers, repliers, reposters — as downloadable datasets.

Install one instead of all six with --skill <name>.

Scheduling x-presence? See scheduling.md — verified commands for Claude Code routines, Hermes cron, and OpenClaw cron.

👛 Wallet setup

[Image] AgentCash — one command, ~2 minutes, and it may pay you up to $25.

1. Onboard (creates a local wallet, installs the AgentCash skill, and wires up MCP for your agent):

sh
npx agentcash@latest onboard

Visiting agentcash.dev/onboard first and connecting GitHub/X/LinkedIn gets you a claim code worth up to $25 in free USDC — often enough to run these skills for weeks without depositing anything.

2. Fund it (skip if the bonus covered you):

sh
npx agentcash fund

Guided flow with card on-ramp and bridging. No minimum.

3. Check it works — ask your agent "What is my AgentCash balance?" If it answers with a number, you're done.

Claude Code users can alternatively install just the MCP server: claude mcp add agentcash --scope user -- npx -y agentcash@latest

[Image] Coinbase Agentic Wallet (awal) — email OTP login, fund with Apple Pay/card.

1. Sign in (a 6-digit code lands in your email; verify it):

sh
npx awal@latest auth loginnpx awal@latest auth verify <flowId> <otp>

2. Fund it — npx awal@latest show opens the Coinbase Onramp UI (Apple Pay, card, bank).

3. Done. Your agent pays twitr.sh over x402 on Base; to pay an endpoint by hand: npx awal@latest x402 pay <url>.

[Image] pay.sh — Solana Foundation's payment layer; wraps your agent CLI.

1. Set up the wallet, then wrap the tool you use:

sh
pay setuppay claude   # or: pay curl https://twitr.sh/api/tools/x_read ...

pay detects the 402/MPP challenge, asks your local wallet to sign, and retries with payment proof — USDC on Solana. twitr.sh accepts Solana x402 natively.

Your client's per-call cap is a hard spend limit — no call can exceed it, and failed calls are never charged.

Connecting an X account? Your agent never sees your password — it hands you a single-use link and you sign in on twitr.sh in your own browser. Your wallet owns the account; the agent's wallet only gets write access, and only you can revoke it. See SECURITY.md · full write-up.

🐍 Use it as a Twitter scraper API

No agent? The same tools are a plain HTTP Twitter / X scraper API: search tweets, read profiles and timelines, export followers, replies and likes, pull lists and communities. Every endpoint is POST https://twitr.sh/api/tools/{tool} with a flat JSON body.

Two ways to pay, same prices:

  • Card balance + API key. Sign in at twitr.sh/dashboard with Google, top up by card, create a tw_live_… key, and send it as a Bearer token.
  • Wallet, no account. Call without credentials, get HTTP 402 with the exact price, pay in USDC (x402 on Base or Solana, MPP on Tempo), retry. x402-aware clients do this automatically.

curl

sh
curl -X POST https://twitr.sh/api/tools/x_search \  -H "Authorization: Bearer $TWITR_API_KEY" \  -H "content-type: application/json" \  -d '{"q":"from:nasa since:2026-01-01","queryType":"Latest","resultsLimit":20}'

Python — examples/python/search_tweets.py

python
import os, requests
r = requests.post(    "https://twitr.sh/api/tools/x_search",    headers={"Authorization": f"Bearer {os.environ['TWITR_API_KEY']}"},    json={"q": "from:nasa", "queryType": "Latest", "resultsLimit": 20},)for tweet in r.json()["items"]:    print(tweet["createdAt"], tweet["text"][:80])

Node — examples/node/search-tweets.mjs

js
const res = await fetch("https://twitr.sh/api/tools/x_search", {  method: "POST",  headers: { authorization: `Bearer ${process.env.TWITR_API_KEY}`, "content-type": "application/json" },  body: JSON.stringify({ q: "from:nasa", queryType: "Latest", resultsLimit: 20 }),});for (const t of (await res.json()).items) console.log(t.createdAt, t.text.slice(0, 80));

Volume tools bill per returned item and need resultsLimit, so you never pay for more than you asked for. Full tool list and inputs: twitr.sh/tools · OpenAPI.

💸 What it costs

ActionPrice
Reading events from a monitorfree
Drafting a post~$0.0024
A read or search~$0.0012 / item
A post or reply$0.036
A monitor~$0.025 / hour

A typical week running x-presence — two monitors, a dozen replies, a few posts — is about $9. Every 402 quotes the exact price before your wallet signs anything.

🚫 What these skills will not do

The presence and publish skills contain no automated following, unfollowing, or liking, and no keyword-triggered replies.

X prohibits these by name, and its published ranking weights show follows aren't scored at all while a single report scores −369.0 — so the banned tactics cost reach as well as risking the account. twitter-automation exposes the full action set for users who need it, but it prices every design up front, requires explicit confirmation, and warns when a design is spam-shaped enough to risk the account.

Reasoning and sources: ranking-signals.md · x-rules.md

🔗 Links

All six skillshttps://twitr.sh/skills
Agent guidehttps://twitr.sh/skill.md
Docshttps://twitr.sh/docs
Security modelhttps://twitr.sh/agent-security
OpenAPI 3.1https://twitr.sh/openapi.json
MCPPOST https://twitr.sh/api/mcp
Payment discoveryx402 · MPP
Explorer listingsx402scan · agentcash

License

MIT — see LICENSE.

Independent service. Not affiliated with X Corp. "X" and "Twitter" are trademarks of X Corp.


Enjoying twitr-skills? A ⭐ on this repo helps other agents find it.

Source: README.md at commit b445f70

Tools

14

x_read

Read live X/Twitter data: look up a single tweet or user profile, batch-read up to 100 tweets or users at once, check whether one account follows another, fetch trending topics by region, extract a long-form article, or download tweet media. Pay per call in USDC — no API key, no signup; failed calls are never charged. Guidance: resource=get-tweet|get-user (id), batch-tweets|batch-users (ids array, ≤100), check-follower (source+target usernames), trends (optional woeid/count), article (tweet id), followers-you-know (id + mandatory resultsLimit), download-media (id or ids ≤50 — returns media file URLs on THIS origin; links live 7 days). Fixed-price per call/id except followers-you-know which is per-result.

ParametersididscountwoeidsourcetargetresourcerequiredresultsLimit

x_timeline

Fetch a user's X/Twitter timeline — their tweets, replies, likes, media posts, or mentions — plus follower and following lists, and per-tweet engagement lists (who replied, quoted, retweeted, or favorited). Billed per item returned. The building block for monitoring what an account posts or ranking accounts by activity. Guidance: kind selects the timeline: user-tweets|user-replies|user-likes|user-media|user-mentions|followers|following|verified-followers (id = user) or tweet-replies|tweet-quotes|tweet-thread|tweet-favoriters|tweet-retweeters (id = tweet). resultsLimit is MANDATORY — billed per item returned. Search-operator filters (fromUser, language, mediaType, minFaves, …) apply to tweet timelines.

ParametersidrequiredkindrequiredlanguageminFavesmediaTyperesultsLimitrequiredverifiedOnlyincludeRepliesincludeParentTweet

x_lists

Read an X/Twitter List: its combined tweet timeline, its member roster, or its followers. Billed per item returned. Useful for following a curated set of accounts as one feed. Guidance: kind=tweets|members|followers; id = list ID. resultsLimit is MANDATORY — billed per item returned. tweets supports sinceTime/untilTime and includeReplies.

ParametersidrequiredkindrequiredsinceTimeuntilTimeresultsLimitrequiredincludeReplies

x_communities

Read an X/Twitter Community: profile info, member and moderator rosters, the community's tweets, or keyword search inside the community. Fixed price for info; billed per item for rosters, tweets, and search. Guidance: kind=info (fixed price) or members|moderators|tweets|search (per-item — resultsLimit MANDATORY). id = community ID. search additionally requires q.

ParametersqidrequiredkindrequiredresultsLimit

x_extract

Bulk-export X/Twitter data as downloadable datasets: followers, following, repliers, quoters, reposters, likers, mentions, full threads, list and community members, spaces, or people/tweet search results — 23 extractors. Runs async: you get a claim check immediately and poll a free status URL for the download link. Billed per result. Guidance: tool selects the extractor (23 options). Provide the matching target: targetTweetId (reply/repost/quote/thread/article/favoriters extractors), targetUsername (follower/following/verified/post/mention/likes/media), targetCommunityId, targetListId, targetSpaceId, or searchQuery (people_search, tweet_search_extractor). resultsLimit is MANDATORY — billed per result (article_extractor bills 5× per result). Runs ASYNC: the response is a claim check {snapshot_id, status_url}; poll status_url (free, SIWX) until status=ready for the download link. Idempotency-Key header is required so retries reuse the same job.

ParameterstoolrequiredlanguageminFavesmediaTypesinceDateuntilDatesearchQueryresultsLimitrequiredtargetListIdverifiedOnlytargetSpaceIdtargetTweetId+2 more

x_monitor

Watch an X/Twitter account or keyword query in real time: new tweets, replies, quotes, mentions, hashtags, and profile changes, delivered to your agent by free polling or HMAC-signed webhooks. Prepaid by the hour with a hard stop at expiry — no open-ended billing. The way to track a brand, competitor, or topic without re-polling paid reads. Guidance: action=create needs username (account monitor, e.g. "vercel") OR query (keyword monitor, X search syntax, ≤512 chars), optional eventTypes — 21 available: post events (tweet.new, .reply, .retweet, .quote, .media, .link, .poll, .mention, .hashtag, .longform) for any monitor, plus profile-change events (profile.avatar/banner/name/username/bio/location/url/verified/protected/pinned_tweet/unavailable.changed) for ACCOUNT monitors only; default all applicable — and hours (1–168, default 1). action=extend needs monitorId + hours; hours append to the current expiry (total prepaid window ≤ 720h). Extend at least 5 minutes BEFORE expiry — extends inside the final 5 minutes are refused (unpaid) to keep settlement from racing the expiry teardown. PREPAID: the monitor stops and is removed at expires_at unless extended — no open-ended billing; early deletion does not refund remaining hours. Idempotency-Key header REQUIRED — retries replay the original monitor instead of re-charging (on the MCP door, retries are protected by single-use payment credentials instead). Pay with USDC on Base (x402) or Tempo (MPP); Solana is not offered for monitors (stateful resources need a recoverable owner wallet). After creation: poll events at /api/monitors/{id}/events (free — SIWX sign-in with the paying wallet; do NOT poll in a tight loop) or register an HTTPS webhook once at /api/webhooks to push signed events straight to your AI agent (Claude, OpenClaw, Hermes, or any endpoint) in real time. Manage monitors at /api/monitors (SIWX).

ParameterstypehoursqueryactionrequiredusernamemonitorIdeventTypes

x_draws

Run a provably fair giveaway on X/Twitter: pick crypto-random winners from a tweet's replies, with retweet, follow, hashtag, keyword, minimum-follower, and account-age conditions. Fixed price set upfront from your estimated entry count. Guidance: tweetUrl required. Optional: winnerCount (default 1), backupCount, uniqueAuthorsOnly, mustRetweet, mustFollowUsername, filterMinFollowers, filterAccountAgeDays, filterLanguage, requiredHashtags/Keywords/Mentions. Pricing is fixed upfront from the estimatedEntries you set (default 1000, max 10000) — set it near the tweet's reply count; that number is enforced as a hard cap. Payment settles before the draw runs, so pay only when you intend to run it; a failed draw does not auto-refund (contact support). Idempotency-Key header required — retries with the same key replay the original result instead of re-charging.

ParameterstweetUrlrequiredbackupCountmustRetweetwinnerCountfilterLanguageestimatedEntriesrequiredHashtagsrequiredKeywordsrequiredMentionsuniqueAuthorsOnlyfilterMinFollowersmustFollowUsername+1 more

x_write

Act on X/Twitter through an account you connect: post a tweet, reply, like, retweet, follow or unfollow, send a DM, delete a tweet, remove a follower, or upload media. Ownership is checked server-side — an agent can only write as a handle its own wallet connected. Guidance: PREREQUISITE: connect an X account first — POST /api/x-accounts/start (free, SIWX) with {username} only; it returns a one-time connect_url the USER opens in their own browser to sign in there. Never ask the user for their X password, email, or 2FA secret. Poll GET /api/x-accounts until the handle shows linked, then reference it in `account`. Actions: post (text) | reply (text + reply_to_tweet_id) | like|unlike|retweet|unretweet|delete_tweet (target_tweet_id) | follow|unfollow (target_user_id — the NUMERIC user id, get it from x_read get-user) | remove_follower (target_user_id of the follower) | send_dm (target_user_id + text) | upload_media (media_url → returns media_id). You can only write as a handle THIS wallet connected (checked server-side; the input account is not trusted). Payment settles before the action runs and is non-refundable; a write may return status=pending_confirmation with an actionId to poll — do NOT resend. Idempotency-Key header is required so a retry replays the original result instead of acting twice.

Parameterstextactionrequiredaccountrequiredmedia_idsmedia_urlcommunity_idis_note_tweettarget_user_idtarget_tweet_idreply_to_tweet_id

x_inbox

Read a connected X/Twitter account's private surfaces: bookmarks and bookmark folders, notifications, and DM history. Billed per item returned; readable only for handles this wallet connected. Guidance: PREREQUISITE: connect an X account (see /api/x-accounts/start). Reads act AS that account, so you can only read the inbox of a handle THIS wallet connected. action=bookmarks (optional folderId) | bookmark_folders | notifications (optional type) | dm_history (target_user_id required). bookmarks/notifications/dm_history are billed per item — set resultsLimit (1–10000). account (the connected handle) is required.

ParameterstypemaxIdactionrequiredaccountrequiredfolderIdresultsLimittarget_user_id

x_profile

Edit a connected X/Twitter account's profile: display name, bio, location, website link, avatar image, and banner image. Acts only on handles this wallet connected. Guidance: PREREQUISITE: connect an X account. Acts as a handle THIS wallet owns. action=update_profile (any of name, description, location, url) | set_avatar (media_url) | set_banner (media_url). account required. Payment settles before the change; Idempotency-Key required.

Parametersurlnameactionrequiredaccountrequiredlocationmedia_urldescription

x_community

Manage X/Twitter Communities as a connected account: create a new community, join or leave an existing one, or delete a community you own. Guidance: PREREQUISITE: connect an X account. Acts as a handle THIS wallet owns. action=create (name, optional description) | join|leave (community_id) | delete (community_id + community_name confirmation). account required. Payment settles before the action; Idempotency-Key required.

Parametersnameactionrequiredaccountrequireddescriptioncommunity_idcommunity_name

x_radar

Trending topics and breaking stories across tech, dev, science, business, culture, politics, and entertainment — aggregated from multiple public sources with regional and time-window filters. Flat sub-cent price per call; the cheap first stop for what is happening right now. Guidance: Optional filters: category, region, hours (lookback), limit, source. Use report.next_cursor via `after` for the next page. Flat floor price per call.

Parametersafterhourslimitregionsourcecategory

x_compose

Draft tweets with AI: generate variants from a topic and goal, refine an existing draft, or score a draft for likely engagement — with tone, call-to-action, and style-matching options. Flat sub-cent price per step. Guidance: step=generate (topic + goal required; optional tone/styleUsername/additionalContext/callToAction/mediaType/hasLink/hasMedia), refine (draft required), or score (draft required). Returns text variants with scores and suggestions. Flat floor price per call.

ParametersgoalsteprequiredtonedrafttopichasLinkhasMediamediaTypecallToActionstyleUsernameadditionalContext

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts