プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Tweetkit X

作者:nsozturkバージョン 0.3.0i★ 17iパソコンで動く
レジストリ名io.github.nsozturk/tweetkit-x

インストール

概要

作者による説明(英語の原文)

Post, delete & read on X (Twitter) using your own logged-in web session — no paid API.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: マーケティング・SNS
  • 入力が必要なもの:TWEETKIT_COOKIE

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:2項目中2項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: TWEETKIT_COOKIE_KEYCHAIN, TWEETKIT_COOKIE

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • PyPIPythonのuvのインストール(uvxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "tweetkit-x": {
      "command": "uvx",
      "args": [
        "tweetkit-x"
      ],
      "env": {
        "TWEETKIT_COOKIE_KEYCHAIN": "your-value",
        "TWEETKIT_COOKIE": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add tweetkit-x --env TWEETKIT_COOKIE_KEYCHAIN=your-value --env TWEETKIT_COOKIE=your-value -- uvx tweetkit-x

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "tweetkit-x": {
      "command": "uvx",
      "args": [
        "tweetkit-x"
      ],
      "env": {
        "TWEETKIT_COOKIE_KEYCHAIN": "your-value",
        "TWEETKIT_COOKIE": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "tweetkit-x": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "tweetkit-x"
      ],
      "env": {
        "TWEETKIT_COOKIE_KEYCHAIN": "your-value",
        "TWEETKIT_COOKIE": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • TWEETKIT_COOKIE_KEYCHAIN env
    macOS Keychain service name holding your X session cookie string (must contain auth_token + ct0). Alternatively set TWEETKIT_COOKIE (the raw cookie string) or TWEETKIT_COOKIE_FILE (a file path).
  • TWEETKIT_COOKIE 秘密 env
    Your X (Twitter) session cookie string — the Cookie header from a logged-in x.com request. Must contain auth_token and ct0.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月11日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント nsozturk で確認済みです

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:41 日前

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

マーケティング・SNSのほかのサーバーとの比較i

  • このカテゴリのほかの3755件のうち97%よりスターが多い
  • このカテゴリのほかの3755件のうち15%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの3755件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Tweetkit Xは安全ですか?

当てはまる基本チェック2項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:TWEETKIT_COOKIE

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は41 日前、最新バージョン(0.3.0)がレジストリに届いたのは4 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。

代わりに使えるものは?

同じカテゴリには:PostHog MCP Server, Agent-Native Analytics, Openshorts

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

PostHog MCP Server

Official PostHog MCP Server for product analytics, feature flags, experiments, and more.

作者:PostHog広く使われている★ 4.1万10 か月前更新

クラウドで動く

Agent-Native Analytics

Agent-Native Amplitude/Mixpanel - connect data sources, prompt for charts

作者:BuilderIO広く使われている★ 76652 か月前更新

クラウドで動く

Openshorts

Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.

作者:mutonby広く使われている★ 76243 か月前更新

クラウドで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

tweetkit-x

Post, delete & read on X (Twitter) — from Python and as an MCP server — using your own logged-in browser session.

No paid API. No developer app. No OAuth dance. Just your session cookie.

Quick start · Get your cookie · Python · CLI · MCP server · How it works · Disclaimer


Why

Since February 6, 2026, X's official API has no free tier for new developers — it's pay-per-use: ~$0.015 per post, ~$0.20 per post with a link, plus per-read charges. For publishing *your own* tweets (a bot posting your content, a scheduled thread, a cleanup script that deletes old posts), that's a recurring bill for something your browser already does for free.

tweetkit-x skips the API entirely. It replays the exact internal HTTP calls your browser makes when you click Post, Delete, or scroll your profile — authenticated with the session cookie you already have. Post, delete, and read the full timeline, at zero API cost.

⚠️ Automating your web session is against X's Terms of Service. This is a grey-area tool for personal automation. Account risk is entirely yours. See the Disclaimer.


Features

  • ✅ Post — text, up to 4 images, GIF & video (with alt text), replies, threads, quote-tweets, long-form note tweets, and scheduled tweets
  • 🗑️ Delete — one id, a list of ids, or "find matching & delete" cleanup loops
  • ❤️ Engage — like, retweet, bookmark, follow, block, mute, pin — each with an undo
  • 🌐 Search all of X — the real SearchTimeline (operators like from:, min_faves:, filter:media), plus local regex over your own tweets
  • 📖 Read — your home feed, any timeline, a tweet's replies/conversation, followers/following, likers/retweeters, bookmarks, a user's likes, notifications, and full profiles
  • 🔌 MCP server — 40 tools; drop into Claude Desktop / Claude Code / Cursor; tools that explain the cookie and set it up with one paste
  • 🔑 Frictionless auth — paste a Cookie: header, drop a HAR file, or a storage-dump zip; store in a file or the macOS Keychain
  • 🐍 Python API *and* a CLI (tweetkit …)
  • 🪶 Tiny footprint — no headless browser, no Selenium

Quick start

pip install "tweetkit-x[mcp]"      # or: pip install tweetkit-x   (library + CLI only)

1. Import your session cookie (three ways — see the next section)

tweetkit import --paste # paste the Cookie: header, Ctrl-D

or: tweetkit import --file x.com.har

or: tweetkit import --file storagedump_x.com.zip --keychain tweetkit

2. Verify (no network call)

tweetkit whoami

{"ready": true, "user_id": "1986...", "ct0_len": 160}

3. Use it

tweetkit post "hello world 👋" tweetkit search "xmr|monero" --regex # your tweets that match tweetkit delete 2063240404980445603


Getting your session cookie

The only secret tweetkit needs is your X session cookie — the same Cookie: header your logged-in browser sends. It must contain at least two values:

CookieWhat it isRequiredHttpOnly?
auth_tokenyour login/session tokenyesyes (hidden from document.cookie)
ct0CSRF token (sent back as x-csrf-token)yesno
twidyour user id (u= ) — lets tweetkit read *your* timeline with no extra lookuprecommendedno
guest_id, kdt, att, personalization_idmisc session stateoptionalmixed

❗ auth_token is HttpOnly, so a document.cookie copy in the JS console will NOT include it. Use one of the reliable methods below.

Method A — copy the Cookie: header (most reliable, one paste)
  1. Open x.com while logged in.
  2. Open DevTools (F12) → the Network tab.
  3. Click any request to x.com (e.g. HomeTimeline).
  4. Under Request Headers, find `cookie:` and copy the entire value.
  5. Feed it in:
tweetkit import --paste

paste the cookie header, then press Ctrl-D

Method B — an F12 "Preserve log" HAR file
  1. Open x.com logged in → DevTools (F12) → Network.
  2. Tick "Preserve log", then reload / click around so requests are captured.
  3. Right-click any request → "Save all as HAR" (or use the ⬇ export icon).
  4. Import it:
tweetkit import --file ~/Downloads/x.com.har

Modern Chrome can redact cookies from exported HARs. If tweetkit reports auth_token missing, either enable "Allow to generate HAR with sensitive data" in the Network settings, or fall back to Method A / Method C.

Method C — the storagedump browser extension (zip)

The easiest no-DevTools route. [storagedump](https://chromewebstore.google.com/detail/storagedump/kihoghfekemdccfnpjefmggehpgnjnab) (a Chrome extension built by this project's author) exports a tab's browser storage — including the HttpOnly auth_token, which document.cookie can't reach — as a .zip containing cookies.json. On x.com (logged in), click the extension → export, then:

tweetkit import --file storagedump_x.com_2026-07-05.zip

tweetkit reads the extension's native format, { "data": [ { "key": "...", "value": "..." }, ... ] }, and also accepts a plain list or a {name: value} map. Cookie-Editor / EditThisCookie JSON exports (--file export.json) work too.

Install: [storagedump on the Chrome Web Store](https://chromewebstore.google.com/detail/storagedump/kihoghfekemdccfnpjefmggehpgnjnab).

Where the cookie is stored

By default tweetkit import writes `~/.config/tweetkit/cookie.txt` (chmod 600; also git-ignored). Prefer the macOS Keychain? Add --keychain :

tweetkit import --paste --keychain tweetkit

export TWEETKIT_COOKIE_KEYCHAIN=tweetkit

Resolution order at runtime (first hit wins): explicit arg → TWEETKIT_COOKIE → TWEETKIT_COOKIE_FILE → ./cookie.txt → ~/.config/tweetkit/cookie.txt → Keychain (TWEETKIT_COOKIE_KEYCHAIN).


Python usage

from tweetkit_x import TweetKit

tk = TweetKit(keychain_slug="tweetkit") # or cookie="auth_token=...; ct0=..."

tk.whoami() # {'ready': True, 'user_id': '...', 'ct0_len': 160}

post

tk.post("hello world") tk.post("with a picture", image_path="chart.png") tk.post("a reply", reply_to="1800000000000000000")

thread — strings or (text, image_path) tuples; each replies to the previous

tk.post_thread(["1/ intro", ("2/ chart", "chart.png"), "3/ outro"])

read

mine = tk.get_tweets(limit=100) # your tweets, newest first theirs = tk.get_tweets(username="jack", limit=50) # anyone's

search (local filter over the timeline — no paid search API)

hits = tk.search("monero") # substring hits = tk.search(r"xmr|monero", regex=True) # regex

delete

tk.delete("1800000000000000000") tk.delete_many([t["id"] for t in hits])

quote-tweet

tk.quote("this is great", quote_tweet_id="1800000000000000000")

engage (each has an undo)

tk.like("1800000000000000000"); tk.unlike("1800000000000000000") tk.retweet("1800000000000000000"); tk.unretweet("1800000000000000000") tk.bookmark("1800000000000000000"); tk.unbookmark("1800000000000000000")

read a single tweet, and search ALL of X (real search + operators)

tk.get_tweet("1800000000000000000") tk.search_x("mcp server", latest=True, limit=40) tk.search_x("from:jack min_faves:1000") # X search operators work

Every write returns {'ok': True, 'id': '...', 'url': '...'} on success, or {'ok': False, 'status': ..., 'error': '...'} on failure — easy to log or retry.

See examples/ for a full "find my $XMR tweets and delete them" cleanup loop.


CLI usage

tweetkit whoami

tweetkit post "just some text" tweetkit post "text + media" --image pic.png tweetkit post "a reply" --reply-to 1800000000000000000 tweetkit thread thread.txt # tweets separated by blank lines tweetkit delete 1800000000000000000 1800000000000000001 tweetkit tweets --limit 100 # your tweets tweetkit tweets @jack --limit 50 # someone else's tweetkit search monero # your tweets containing "monero" tweetkit search "xmr|monero" --regex tweetkit searchx "mcp server" --latest # search ALL of X (real search + operators) tweetkit get 1800000000000000000 # one tweet by id tweetkit quote "great thread" 1800000000000000000 tweetkit like 1800000000000000000 # also: unlike / retweet / unretweet / bookmark / unbookmark

A thread.txt is just tweets separated by blank lines.


MCP server

tweetkit ships a first-class MCP server so an AI client can post/delete/read for you — and it walks the user through auth, explaining what the cookie is and setting it up with a single paste.

Configure your client

Claude Desktop / Claude Code / Cursor — add to your MCP config (claude_desktop_config.json, .mcp.json, …):

{

"mcpServers": { "tweetkit": { "command": "uvx", "args": ["--from", "tweetkit-x[mcp]", "tweetkit-mcp"], "env": { "TWEETKIT_COOKIE_KEYCHAIN": "tweetkit" } } } }

Already pip installed? Use the console script directly:

{ "mcpServers": { "tweetkit": { "command": "tweetkit-mcp",

"env": { "TWEETKIT_COOKIE_KEYCHAIN": "tweetkit" } } } }

If you don't set any cookie env var, that's fine — the server starts unauthenticated and asks the user to set the cookie from inside the chat (below).

Frictionless auth, from inside the chat

The server describes each value and offers the lowest-effort path. A typical first run:

  1. The client calls `auth_status` → *not authenticated*.
  2. The server’s instructions tell the assistant to ask you for your cookie and explain what `auth_token` and `ct0` are and how to copy them.
  3. You paste the Cookie: header once → `set_session_cookie(" ")` → stored (Keychain or file) and activated. Or point `import_cookie_from_file("~/Downloads/x.com.har")` at a HAR / storage-dump zip.

The raw cookie is never echoed back.

Tools
ToolWhat it does
auth_statusIs a valid session loaded? (call first)
set_session_cookie(cookie_header)Set auth from a pasted Cookie: header — explains exactly what to copy
import_cookie_from_file(path)Set auth from a HAR / storage-dump .zip / cookie JSON
post_tweet(text, image_path?, reply_to?)Post a tweet (optional image / reply)
post_thread(tweets[])Post a thread
quote_tweet(text, quote_tweet_id, image_path?)Quote-tweet an existing tweet

| delete_tweet(tweet_id) / delete_tweets(ids[])

冒頭だけを表示しています。続きはリポジトリで読めます