atodeyomu-mcp
A read-only MCP server that detects and retrieves "read later" quote retweets from X (Twitter), designed for integration with knowledge management pipelines (e.g., Claude → Notion).
get_quoted_posts: Retrieve quote retweets posted since the last confirmed cursor position, including the quoted post's text, author, creation date, URL, and media — without advancing the cursor.max_results(1–100, default 20): control how many posts are fetchedsince_id: manually override the cursor to rewind the fetch start position (useful for recovering missed posts)
commit_cursor: Advance the cursor only after downstream processing (e.g., saving to Notion) has succeeded, by providing the last successfully processedpost_id. If never called (e.g., due to failure), the cursor stays in place so the same posts can be re-fetched, preventing data loss.
Cursor state is stored locally in ~/.atodeyomu-mcp/cursor.json, enabling incremental (diff-only) fetching via since_id to minimize costs. The server performs no write operations to X (no posting, liking, or retweeting) and handles OAuth 2.0 authentication with automatic token refresh.
Allows saving summarized X (Twitter) quote posts to a Notion database for knowledge management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@atodeyomu-mcpfetch my recent quote retweets"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
atodeyomu-mcp
X (Twitter) で「あとで読む」目的の 引用リツイート(引用ポスト) を検出する、読み取り専用の MCP サーバーです。引用ポストとその引用元(本文・メディア・著者)をまとめて取得し、Claude(Cowork)→ Notion の知識管理パイプラインから利用することを想定しています。
提供するツールは get_quoted_posts(前回以降の引用ポストを取得)と commit_cursor(取得位置を確定)の 2 つです。X への投稿・いいね・RT などの書き込みは一切行いません。前回どこまで取得したかはローカル(~/.atodeyomu-mcp/cursor.json)に記録し、since_id で差分だけを取得するため、Notion 照合のコストを抑えられます。
動作確認の詳細手順は docs/VERIFICATION.md、Cowork スケジュールタスクで Notion に記録するまでの手順は docs/COWORK_PIPELINE.md を参照してください。設計の詳細は docs/DESIGN.md、フロー図つきの仕様は docs/SPEC.md にあります。
必要なもの
Node.js 20 以上(
npxが使えること)X Developer アカウント(無料プランで可)
Claude(Cowork / デスクトップアプリ)
npx で実行するため、リポジトリの clone やビルドは不要です。
Related MCP server: X MCP Server
セットアップ
1. X Developer Portal でアプリを作成
developer.x.com でプロジェクトとアプリを作成します。
アプリの User authentication settings を開き、次のように設定します。
App permissions:
ReadType of App:
Web App, Automated App or Bot(Confidential client)Callback URI / Redirect URL:
http://127.0.0.1:8787/callbackWebsite URL: 任意の URL(例: GitHub リポジトリ URL)
Keys and tokens から OAuth 2.0 Client ID と Client Secret を控えます。
スコープは
tweet.readusers.readoffline.accessの 3 つだけを使います。
2. 認可(初回のみ)
トークンを取得する認可を一度だけ実行します。控えた Client ID / Secret をフラグで渡します。
npx -y atodeyomu-mcp auth --client-id 控えたClientID --client-secret 控えたClientSecretターミナルに表示された認可 URL をブラウザで開きます。
X で承認すると
http://127.0.0.1:8787/callbackにリダイレクトされ、access / refresh token を取得します。トークンは
~/.atodeyomu-mcp/tokens.jsonにchmod 600で保存されます。
以降、トークンは MCP サーバーが自動でリフレッシュします。再認可が必要になるのは refresh token が失効したときだけです(その場合は同じコマンドを再実行)。
3. MCP クライアントへの登録
Claude(Cowork / デスクトップアプリ)の MCP 設定ファイルに登録します。場所は次のとおりです。
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
このファイルの mcpServers に次を追記します(他のキーは消さないこと)。CLIENT_ID / CLIENT_SECRET は env で渡します(サーバーがトークンを自動リフレッシュする際に必要です)。
{
"mcpServers": {
"atodeyomu": {
"command": "npx",
"args": ["-y", "atodeyomu-mcp"],
"env": {
"CLIENT_ID": "控えたClientID",
"CLIENT_SECRET": "控えたClientSecret"
}
}
}
}保存後、Claude(Cowork)アプリを再起動すると atodeyomu が接続されます。
この MCP 設定ファイルには秘密情報(Client ID / Secret)が平文で入ります。共有・コミットしないでください。
Claude Code CLI など他の MCP クライアントを使う場合は、上の
atodeyomuエントリ(command/args/env)を各クライアントの MCP 設定に記述してください(中身は同じです)。
使い方
登録後、Claude(Cowork)から 2 つのツールを呼び出せます。基本の流れは「get_quoted_posts で差分を取得 → 要約して Notion に保存 → 成功したら commit_cursor で取得位置を確定」です。
get_quoted_posts
前回確定した位置以降の引用ポストを返します。この時点では取得位置を進めません。
入力
パラメータ | 型 | 必須 | デフォルト | 説明 |
| number | 任意 | 20 | 1〜100 |
| string | 任意 | カーソル値 | 取りこぼし時に取得開始位置を手動で巻き戻すための上書き |
出力(例)
{
"posts": [
{
"id": "1899...",
"text": "これあとで読む",
"created_at": "2026-06-20T09:12:00.000Z",
"url": "https://x.com/your_name/status/1899...",
"quoted_post": {
"id": "1898...",
"text": "引用元の本文 ...",
"created_at": "2026-06-19T22:00:00.000Z",
"author_username": "someone",
"url": "https://x.com/someone/status/1898...",
"media": [{ "url": "https://pbs.twimg.com/media/xxx.jpg", "type": "photo" }]
}
}
],
"newest_seen_id": "1899..."
}前回以降の直近 max_results 件のうち、引用ポストだけが posts に返ります。「あとで読む」というキーワードでの絞り込みや要約は、呼び出し側(Cowork のスキル/タスク)で行う設計です。
commit_cursor
Notion への保存が成功したあとに呼び、取得位置を進めます。
パラメータ | 型 | 必須 | 説明 |
| string | 必須 | ここまで安全に保存できた最後の post id |
全件成功なら get_quoted_posts が返した newest_seen_id を、一部だけ保存できた場合はその最後の id を渡します。次回の get_quoted_posts はその id 以降から再開します。途中で失敗して commit_cursor を呼ばなければ取得位置は据え置かれ、次回また同じ差分を取り直せるので取りこぼしが起きません。
動作確認
X 上で、適当な投稿に「あとで読む」とコメントを付けて 引用ポスト します。
上記の MCP 設定に登録した状態で Claude(Cowork)アプリを起動します。
Claude(Cowork)に
get_quoted_postsを呼ぶよう指示します(例:「直近の引用ポストを取得して」)。手順 1 の引用ポストが、引用元の本文・メディアまで含めて返ってくれば成功です。
続けて、返ってきた
newest_seen_idでcommit_cursorを呼び、~/.atodeyomu-mcp/cursor.jsonが更新されることを確認します。次回get_quoted_postsを呼ぶと、その位置以降の差分だけが返ります。
トラブルシューティング
症状 | 対処 |
| refresh token が失効しています。 |
トークン期限切れ後にリフレッシュで失敗する | MCP 設定ファイル( |
レート制限のエラー | メッセージ中の |
コールバックが届かない | Developer Portal の Callback URI が |
セキュリティ
Client ID / Secret は MCP 設定ファイル(
claude_desktop_config.json)のenvに平文で入ります。この設定ファイルとトークン(~/.atodeyomu-mcp/tokens.json)は秘密情報です。コミット・共有しないでください。資格情報(Client ID / Secret)は、サーバー起動時は MCP 設定ファイルの
env、認可時は--client-id/--client-secretフラグで渡します。トークンファイルは
chmod 600で保存されます。カーソル(
~/.atodeyomu-mcp/cursor.json)は秘密情報ではありませんが、トークンと同じディレクトリで管理されます。取得位置をリセットしたい場合はこのファイルを削除してください。ただし次回呼び出しはsince_idなしになるため、タイムラインの直近max_results件(既定20・最大100)の中から引用ポストを探すだけで、それより古い投稿は一度の呼び出しでは取得されません。古い投稿まで遡りたい場合はmax_resultsを増やすか、since_idを指定して複数回呼び出してください。本サーバーは X に対して読み取り専用で、書き込み権限は要求しません(ローカルのカーソルファイルのみ書き込みます)。
免責
This project is unofficial, community-maintained, and not affiliated with X Corp. Use at your own risk. "X" and "Twitter" are trademarks of their respective owners.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kkk2jp/atodeyomu-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server