Skip to main content
Glama
ryanmac

Agent Twitter Client MCP

by ryanmac

エージェント-Twitter-クライアント-MCP

npmバージョン ライセンス: MIT Node.js バージョン

agent-twitter-clientパッケージを使用して Twitter と統合するモデル コンテキスト プロトコル (MCP) サーバー。これにより、AI モデルは直接 API アクセスせずに Twitter と対話できるようになります。

特徴

  • 認証オプション:

    • Cookieベースの認証(推奨)

    • ユーザー名/パスワード認証

    • Twitter API v2 の認証情報

  • ツイート操作:

    • ユーザーからのツイートを取得する

    • IDで特定のツイートを取得する

    • ツイートを検索

    • テキストとメディアを含むツイートを送信する

    • アンケートを作成する

    • ツイートをいいね、リツイート、引用する

  • ユーザー操作:

    • ユーザープロファイルを取得する

    • ユーザーをフォローする

    • フォロワーとフォローリストを取得する

  • Grok統合:

    • Twitterのインターフェース経由でGrokとチャットする

    • 会話IDで会話を続ける

    • ウェブ検索結果と引用を取得する

    • Grokを通じてTwitterのリアルタイムデータにアクセスする

    • 注: Grok 機能にはagent-twitter-client v0.0.19以上が必要です

Related MCP server: MCP Twitter

ドキュメント

クイックスタート

インストール

# Install globally
npm install -g agent-twitter-client-mcp

# Or install locally
npm install agent-twitter-client-mcp

基本的な使い方

  1. Twitter の認証情報を使用して.envファイルを作成します (認証方法を参照)

  2. MCP サーバーを実行します。

# If installed globally
agent-twitter-client-mcp

# If installed locally
npx agent-twitter-client-mcp

デモスクリプト

パッケージには、さまざまな機能を示すサンプル スクリプトを含むdemoディレクトリが含まれています。

# Clone the repository to access the demo scripts
git clone https://github.com/ryanmac/agent-twitter-client-mcp.git
cd agent-twitter-client-mcp/demo

# Run the interactive demo menu
./run-demo.sh

# Run a specific demo script
./run-demo.sh --script tweet-search.js

# Run Grok AI examples (requires agent-twitter-client v0.0.19)
./run-demo.sh --script simple-grok.js --use-local-agent-twitter-client
./run-demo.sh --script grok-chat.js --use-local-agent-twitter-client

詳細については、デモの README を参照してください。

ポート構成

デフォルトでは、MCP サーバーはポート 3000 で実行されます。これを変更する必要がある場合 (たとえば、既にポート 3000 でアプリケーションが実行されている場合)、いくつかのオプションがあります。

オプション1: 環境変数を使用する

PORT環境変数を設定します。

PORT=3001 npx agent-twitter-client-mcp

オプション2: Docker Composeを使用する

Docker Compose を使用する場合は、 .envファイルでホスト ポートとコンテナ ポートの両方を構成できます。

# .env file
MCP_HOST_PORT=3001    # The port on your host machine
MCP_CONTAINER_PORT=3000  # The port inside the container

次に以下を実行します:

docker-compose up -d

これにより、ホストのポート 3001 がコンテナーのポート 3000 にマップされ、他のアプリケーションが引き続きポート 3000 を使用しながらも、http://localhost:3001で MCP にアクセスできるようになります。

Claude Desktopでのセットアップ

  1. 次のコードを追加して、Claude Desktop がこの MCP を使用するように設定します。

Windows : %APPDATA%\Claude\claude_desktop_config.json macOS : ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "agent-twitter-client-mcp": {
      "command": "npx",
      "args": ["-y", "agent-twitter-client-mcp"],
      "env": {
        "AUTH_METHOD": "cookies",
        "TWITTER_COOKIES": "[\"auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com\", \"ct0=YOUR_CT0_VALUE; Domain=.twitter.com\", \"twid=u%3DYOUR_USER_ID; Domain=.twitter.com\"]"
      }
    }
  }
}
  1. Claudeデスクトップを再起動します

認証方法

{
  "AUTH_METHOD": "cookies",
  "TWITTER_COOKIES": "[\"auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com\", \"ct0=YOUR_CT0_VALUE; Domain=.twitter.com\", \"twid=u%3DYOUR_USER_ID; Domain=.twitter.com\"]"
}

クッキーを取得するには:

  1. ブラウザでTwitterにログインする

  2. 開発者ツールを開く(F12)

  3. アプリケーションタブ > Cookie へ移動します

  4. auth_token 、 ct0 、 twid Cookieの値をコピーします。

  5. 各CookieにDomain=.twitter.com部分を含めるようにしてください

ユーザー名/パスワード認証

{
  "AUTH_METHOD": "credentials",
  "TWITTER_USERNAME": "your_username",
  "TWITTER_PASSWORD": "your_password",
  "TWITTER_EMAIL": "your_email@example.com", // Optional
  "TWITTER_2FA_SECRET": "your_2fa_secret" // Optional, required if 2FA is enabled
}

Twitter API認証

{
  "AUTH_METHOD": "api",
  "TWITTER_API_KEY": "your_api_key",
  "TWITTER_API_SECRET_KEY": "your_api_secret_key",
  "TWITTER_ACCESS_TOKEN": "your_access_token",
  "TWITTER_ACCESS_TOKEN_SECRET": "your_access_token_secret"
}

利用可能なツール

  • get_user_tweets : 特定のユーザーからのツイートを取得する

  • get_tweet_by_id : IDで特定のツイートを取得する

  • search_tweets : ツイートを検索する

  • send_tweet : 新しいツイートを投稿する

  • send_tweet_with_poll : アンケート付きのツイートを投稿する

  • like_tweet : ツイートに「いいね!」

  • retweet : ツイートをリツイートする

  • quote_tweet : ツイートを引用する

  • get_user_profile : ユーザーのプロフィールを取得する

  • follow_user : ユーザーをフォローする

  • get_followers : ユーザーのフォロワーを取得する

  • get_following : ユーザーがフォローしているユーザーを取得する

  • grok_chat : Twitter 経由で Grok とチャットする

  • health_check : Twitter MCP サーバーの健全性をチェックする

テストインターフェース

MCP には、テスト用の対話型コマンドライン インターフェイスが含まれています。

npx agent-twitter-client-mcp-test
# or if installed locally
npm run test:interface

これにより、さまざまな MCP 関数をテストできる REPL が起動します。

agent-twitter-client-mcp> help

Available commands:
  health                     Run a health check
  profile <username>         Get a user profile
  tweets <username> [count]  Get tweets from a user
  tweet <id>                 Get a specific tweet by ID
  search <query> [count]     Search for tweets
  post <text>                Post a new tweet
  like <id>                  Like a tweet
  retweet <id>               Retweet a tweet
  quote <id> <text>          Quote a tweet
  follow <username>          Follow a user
  followers <userId> [count] Get a user's followers
  following <userId> [count] Get users a user is following
  grok <message>             Chat with Grok
  help                       Show available commands
  exit                       Exit the test interface

テストコマンドの例

# Run a health check
agent-twitter-client-mcp> health

# Search for tweets
agent-twitter-client-mcp> search mcp 2

# Get a user's profile
agent-twitter-client-mcp> profile elonmusk

# Get tweets from a user
agent-twitter-client-mcp> tweets openai 5

# Chat with Grok
agent-twitter-client-mcp> grok Explain quantum computing in simple terms

使用例

クロードに次のことを依頼します。

  • 「TwitterでAIに関するツイートを検索」

  • 「『クロードからこんにちは!』というツイートを投稿してください。」

  • 「@OpenAI の最新ツイートを入手」

  • 「量子コンピューティングについてGrokとチャット」

高度な使用法

メディアとの連携

画像付きのツイートを投稿するには:

I want to post a tweet with an image. The tweet should say "Beautiful sunset today!" and include this image.

動画付きのツイートを投稿するには:

I want to post a tweet with a video. The tweet should say "Check out this amazing video!" and include the video file.

アンケートの作成

アンケートを作成するには:

Create a Twitter poll asking "What's your favorite programming language?" with options: Python, JavaScript, Rust, and Go. The poll should run for 24 hours.

Grokとのやり取り

Grok と会話するには:

Use Grok to explain quantum computing to me. Ask it to include some real-world applications.

Grok との会話を続けるには:

Continue the Grok conversation and ask it to elaborate on quantum entanglement.

Grokのユニークな機能

Grok on Twitterは、スタンドアロンのGrok APIでさえもアクセスできないリアルタイムのTwitterデータにアクセスできます。つまり、Grokに以下の質問をすることができます。

  • Twitterの現在のトレンドトピック

  • 特定のテーマに関する最近のツイートの分析

  • Twitterユーザーとそのコンテンツに関する情報

  • プラットフォーム上で議論されているリアルタイムのイベント

クエリの例:

  • 「今Twitterで話題になっているトピックは何ですか?」

  • 「TwitterにおけるAIに関する感情を分析する」

  • 「最新の Apple イベントについて人々は何と言っているでしょうか?」

  • 「今日話題になっている人気のミームコインに関する情報を表示」

Grok認証要件

Grokの機能には適切な認証が必要です。MCPは次の2つの方法をサポートしています。

  1. Cookie認証(推奨):

    • クッキーはJSON配列形式である必要があります

    • 例: TWITTER_COOKIES=["auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com", "ct0=YOUR_CT0_VALUE; Domain=.twitter.com", "twid=u%3DYOUR_USER_ID; Domain=.twitter.com"]

    • 必須のCookieはauth_token 、 ct0 、 twidです。

  2. ユーザー名/パスワード認証:

    • TWITTER_USERNAMEとTWITTER_PASSWORD環境に設定する

    • 場合によってはCloudflareの保護を受ける可能性があります

Grok レート制限

Grok には使用状況に影響する可能性のあるレート制限があります。

  • 非プレミアムアカウント: 2時間あたり25件のメッセージ

  • プレミアムアカウント:上限額の引き上げ

制限に達すると、MCP は応答でレート制限情報を返します。

Grok の使用に関する詳細については、 Grok の例のドキュメントを参照してください。

トラブルシューティング

認証の問題

クッキー認証の問題

Cookie 認証で問題が発生した場合:

  1. Cookieの有効期限:TwitterのCookieは通常、一定期間後に有効期限が切れます。Twitterからログアウトして再度ログインし、Cookieを更新してみてください。

  2. Cookie の形式: Cookie が正しいドメインを持つ文字列の JSON 配列として適切にフォーマットされていることを確認します。

  3. 必須 Cookie : auth_token 、 ct0 、 twidの必須 Cookie が含まれていることを確認してください。

適切にフォーマットされた Cookie の例:

"TWITTER_COOKIES": "[\"auth_token=1234567890abcdef; Domain=.twitter.com\", \"ct0=abcdef1234567890; Domain=.twitter.com\", \"twid=u%3D1234567890; Domain=.twitter.com\"]"

資格情報認証の問題

ユーザー名/パスワード認証に問題がある場合:

  1. 2 要素認証: アカウントで 2FA が有効になっている場合は、 TWITTER_2FA_SECRET入力する必要があります。

  2. アカウントのロックアウト:ログインに何度も失敗すると、アカウントがロックされる可能性があります。アカウント確認リクエストが届いているか、メールでご確認ください。

  3. キャプチャ チャレンジ: Twitter は、クライアントが自動的に処理できないキャプチャ チャレンジを表示する場合があります。

API認証の問題

API 認証の問題の場合:

  1. API キーの権限: 実行しようとしているアクションに必要な権限が API キーにあることを確認します。

  2. レート制限: Twitter API にはレート制限があり、これを超過すると障害が発生する可能性があります。

  3. API の変更: Twitter は時々 API を変更するため、互換性の問題が発生する可能性があります。

操作エラー

ツイート投稿の失敗

ツイートを投稿できない場合:

  1. コンテンツの制限: Twitter ではコンテンツ ポリシーに違反するツイートをブロックする場合があります。

  2. メディア形式の問題: メディアが適切にフォーマットされ、エンコードされていることを確認します。

  3. レート制限: Twitter では投稿できる頻度が制限されています。

検索の問題

検索が機能しない場合は:

  1. クエリ構文: 検索クエリが Twitter の検索構文に従っていることを確認します。

  2. 検索の制限: 一部の検索モードには制限があったり、特定の権限が必要な場合があります。

Grokの問題

Grok 機能が動作しない場合は:

  1. バージョン要件:

    • Grok にはagent-twitter-client v0.0.19以上が必要です

    • 現在のパッケージは基本機能にv0.0.18を使用しています

    • デモ スクリプトの場合は、 --use-local-agent-twitter-clientフラグを使用して、v0.0.19 を一時的にインストールします。

  2. 認証の問題:

    • クッキーの形式: クッキーが正しいJSON配列形式であることを確認する

    • クッキーの有効期限: Twitterのクッキーは一定期間後に期限切れになります

    • Cloudflare保護: ユーザー名/パスワード認証がCloudflareによってブロックされる可能性があります

    • プレミアム要件: Grok へのアクセスには Twitter プレミアム サブスクリプションが必要です

  3. レート制限:

    • 非プレミアムアカウント: 2時間あたり25件のメッセージ

    • エラー メッセージ:「レート制限: 制限に達しました...」

    • 解決策: レート制限がリセットされるまで待つか、プレミアムアカウントにアップグレードしてください

  4. 環境ファイルの場所:

    • デモ スクリプトの場合、資格情報がルート.envファイルではなく、 demo/.envにあることを確認してください。

    • --debug-envフラグを使用して、どの環境変数がロードされているかを確認します。

Grok の問題の詳細なトラブルシューティングについては、 Grok の例のドキュメントを参照してください。

サーバーの問題

健康チェック

health_checkツールを使用してサーバーの問題を診断します。

Run a health check on the agent-twitter-client-mcp server to diagnose any issues.

ヘルスチェックでは次の内容が報告されます:

  • 認証ステータス

  • API接続

  • メモリ使用量

ログ記録

サーバーはコンソールとファイルの両方にログを記録します。

  • error.log : エラーレベルのメッセージが含まれます

  • combined.log : すべてのログメッセージが含まれます

詳細なエラー情報については、これらのログを確認してください。

発達

前提条件

  • Node.js 18歳以上

  • npm

設定

  1. リポジトリをクローンする

git clone https://github.com/ryanmac/agent-twitter-client-mcp.git
cd agent-twitter-client-mcp
  1. 依存関係をインストールする

npm install
  1. 設定を含む.envファイルを作成します。

AUTH_METHOD=cookies
TWITTER_COOKIES=["cookie1=value1", "cookie2=value2"]
  1. プロジェクトを構築する

npm run build
  1. サーバーを起動する

npm start

環境変数

認証変数に加えて、以下を設定できます。

  • LOG_LEVEL : ログレベルを設定する(エラー、警告、情報、デバッグ)

  • NODE_ENV : 環境を設定する(開発、本番)

ドッカー

Docker を使用してサーバーを実行することもできます。

Dockerを直接使用する

# Build the Docker image
docker build -t agent-twitter-client-mcp .

# Run the container with environment variables
docker run -p 3000:3000 \
  -e AUTH_METHOD=cookies \
  -e TWITTER_COOKIES='["auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com", "ct0=YOUR_CT0_VALUE; Domain=.twitter.com"]' \
  agent-twitter-client-mcp

Docker Composeの使用

  1. Twitterの認証情報を含む.envファイルを作成する

  2. docker-compose で実行します:

# Start the service
docker-compose up -d

# View logs
docker-compose logs -f

# Stop the service
docker-compose down

Dockerの環境変数

環境変数を Docker コンテナに渡す方法はいくつかあります。

  1. docker-compose.yml ファイル内(すでに設定済み)

  2. .env ファイル経由(docker-compose に推奨)

  3. docker run コマンドで直接実行します(上記のように)

ログの保存

docker-compose 構成には、ログ用のボリューム マウントが含まれています。

volumes:
  - ./logs:/app/logs

これにより、ログはプロジェクト フォルダー内のlogsディレクトリに保存されます。

セキュリティに関する考慮事項

  • 資格情報の保存: 資格情報は、環境変数または安全なボールトを使用して安全に保存することをお勧めします。

  • レート制限: Twitter API の不正使用を防ぐためにレート制限を実装します。

  • コンテンツの検証: 悪意のある使用を防ぐために、投稿する前にすべてのコンテンツを検証します。

ライセンス

マサチューセッツ工科大学

Available Tools

14 tools
follow_userC

Follow a Twitter user

NameRequiredDescriptionDefault
usernameYesUsername to follow (without @)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states 'Follow a Twitter user,' with no mention of idempotency (safe to call again?), effects (e.g., rate limiting, notification), or error states (e.g., user not found). Significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise single sentence, but lacks structure (e.g., no paragraphs or bullet points). Given the simplicity, it is not overly wasteful, but could be improved by adding a brief note on behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple action with one parameter and no output schema, the description is minimal and lacks context about return value, error handling, and side effects. More completeness is needed to guide an AI agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter 'username' described as 'Username to follow (without @).' The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Follow') and resource ('a Twitter user'), making the purpose immediately understandable. However, it could be slightly more specific about the expected input (username format), though the schema already provides that.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., if already following, or when to use other social actions like like_tweet). No mention of prerequisites (e.g., authentication) or context. Lacks explicit usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_followersC

Get a user's followers

NameRequiredDescriptionDefault
userIdYesUser ID
countNoNumber of followers to fetch (1-200)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must fully disclose behavior. It only states 'Get a user's followers' without mentioning pagination, rate limits, authentication requirements, or what happens if count exceeds the allowed range.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no wasted words, but it is overly minimal. It could include more detail without becoming verbose, so it is adequate but not excellent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should explain return format, pagination, or handling of large follower lists. The current description is insufficient for an agent to fully understand the tool's capabilities.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for both parameters (userId and count) with 100% coverage. The description 'Get a user's followers' adds no additional meaning beyond what the schema conveys, meeting the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get a user's followers', indicating the verb and resource. However, it does not distinguish from the sibling tool 'get_following', which gets users the user follows. A brief note on the difference would improve clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not mention when to use this tool versus alternatives like 'get_following', nor does it specify prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_followingC

Get users a user is following

NameRequiredDescriptionDefault
userIdYesUser ID
countNoNumber of following to fetch (1-200)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, pagination behavior, or the structure of returned data. The agent receives no insight beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (three words), but this brevity sacrifices essential context. While not verbose, it is not adequately structured to convey important details such as return format or usage constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema and no annotations, the description should compensate with more context. It fails to explain what the response contains (e.g., list of user objects or IDs), pagination, or error cases. The tool's purpose is simple but incomplete for an AI agent to invoke confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters (userId and count), so the schema already explains their meaning. The tool description adds no additional semantics beyond what the schema provides, meeting the minimum baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get users a user is following' clearly states the action (get) and resource (users a user is following). It is specific enough to convey the basic purpose, though it does not differentiate from the sibling tool 'get_followers' which retrieves the reverse relationship.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'get_followers'. There is no mention of prerequisites, context, or scenarios where this tool is appropriate or when to choose another.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tweet_by_idB

Fetch a specific tweet by ID

NameRequiredDescriptionDefault
idYesTweet ID

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must convey behavioral traits. 'Fetch' implies a read operation, but it does not disclose rate limits, authentication needs, error handling for non-existent tweets, or any side effects. The description is too brief to give full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only 6 words, highly concise. It is front-loaded with the key action and resource. However, it could be slightly improved by structuring with additional context without becoming wordy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is minimally adequate. It states the basic purpose but omits details about return format, error conditions, or any special behavior. There is room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the 'id' parameter described as 'Tweet ID'. The description does not add any further meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses 'Fetch a specific tweet by ID' which clearly specifies the verb (fetch) and resource (tweet by ID). It distinguishes this tool from siblings like search_tweets or get_user_tweets that operate on multiple tweets or by different criteria.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives. It only implies usage when a specific tweet ID is known, but lacks explicit when-not conditions or comparisons to sibling tools like search_tweets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_user_profileC

Get a user's profile information

NameRequiredDescriptionDefault
usernameYesTwitter username (without @)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states 'Get', implying a read operation, but does not mention authentication, error cases, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the purpose. However, it sacrifices detail for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should hint at return values, but it only says 'profile information', which is vague. For a simple tool, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter clearly described in the schema. The description adds no extra meaning beyond what the schema already provides, so baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it gets a user's profile information, which is clear but vague. It does not differentiate from sibling tools like get_user_tweets or get_followers, which also relate to user data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_user_tweetsB

Fetch tweets from a specific user

NameRequiredDescriptionDefault
usernameYesTwitter username (without @)
countNoNumber of tweets to fetch (1-200)
includeRepliesNoInclude replies in results
includeRetweetsNoInclude retweets in results

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description only says 'Fetch tweets'. It does not disclose rate limits, pagination behavior, sorting order, or whether the tool respects privacy settings. Adds minimal behavioral context beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no excess words. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, and description lacks details on return format, error handling, or limitations (e.g., max tweets beyond count). For a tool with 4 params and moderate complexity, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions. The tool description adds no extra info beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch tweets from a specific user', which is a specific verb-resource pair. It disambiguates from sibling tools like search_tweets (keyword search) and get_tweet_by_id (single tweet).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies fetching all tweets of a user, but does not mention exclusions or when to prefer follow_user, get_followers, etc.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grok_chatB

Chat with Grok via Twitter

NameRequiredDescriptionDefault
messageYesMessage to send to Grok
conversationIdNoOptional conversation ID for continuing a conversation
returnSearchResultsNoWhether to return search results
returnCitationsNoWhether to return citations

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclosure behavioral traits, but it only states 'Chat with Grok via Twitter' without mentioning authentication, side effects, or the nature of the interaction (e.g., AI response).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded and efficient. While it is not verbose, it could include slightly more context without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a chat tool with no output schema or annotations, the description is too sparse. It does not explain how conversationId, returnSearchResults, or returnCitations work, leaving the agent with insufficient information to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already fully documented in the input schema. The description adds no additional meaning beyond what the schema provides, earning a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Chat with Grok via Twitter' clearly specifies the action (chat) and the resource (Grok), distinguishing it from sibling tools that focus on Twitter-centric actions like sending tweets or searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., send_tweet, search_tweets). There is no mention of prerequisites or appropriate contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

health_checkA

Check the health of the Twitter MCP server

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states 'check the health' without explaining what constitutes health, whether the tool is read-only, what the response contains, or if it has any side effects. This is insufficient for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of one short sentence. It is front-loaded and easy to parse, but could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and a simple purpose, the description is adequate but not fully complete. It does not explain what the health check entails or what the output indicates, which is important for a diagnostic tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema description coverage is 100% (empty). The description adds no parameter info, but none is needed. Baseline 4 is appropriate for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check the health of the Twitter MCP server'. It uses a specific verb ('check') and resource ('health'), and is unambiguous. No sibling tool serves a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. However, given it's the only health check tool, usage is implied: use before other operations to verify server status. No exclusions or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

like_tweetC

Like a tweet

NameRequiredDescriptionDefault
idYesTweet ID to like

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool performs a 'like' action (a write operation), but with no annotations, it fails to mention authentication needs, idempotency, side effects, or errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, but it is too brief; it could include more information without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema or annotations, the description lacks sufficient completeness, e.g., whether liking is idempotent or requires specific permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the only parameter (id) with a description, and the tool description adds no extra meaning. Baseline of 3 is appropriate given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description 'Like a tweet' is a tautology of the tool name 'like_tweet', restating the same verb and resource without adding clarity or differentiation from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like retweet or quote_tweet, nor any exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

quote_tweetC

Quote a tweet

NameRequiredDescriptionDefault
textYesQuote content (max 280 characters)
quotedTweetIdYesID of tweet to quote
mediaNoMedia attachments (optional, max 4 images or 1 video)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It only states the action but does not disclose any behavioral traits such as authentication requirements, rate limits, or effects (e.g., creating a new tweet).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action. It is concise but may be too terse for an agent unfamiliar with Twitter's quoting feature.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of output schema and lack of explanation about return values or error conditions, the description is incomplete. It does not address what the tool returns or how to use the parameters effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds no extra meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Quote a tweet' clearly states the action and the resource (tweet). It distinguishes from siblings like 'retweet' (which doesn't add text) and 'send_tweet' (new tweet), but does not elaborate on what quoting entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like retweet or send_tweet. The description does not mention any prerequisites or context for quoting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retweetB

Retweet a tweet

NameRequiredDescriptionDefault
idYesTweet ID to retweet

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only says 'retweet' with no disclosure of side effects (e.g., changes to retweet count, like counts) or authentication requirements. Minimal transparency for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no unnecessary words. Front-loaded with the action and resource. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 1-param tool without output schema or nested objects, the description is minimally adequate but lacks context on limits, side effects, or expected behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters (id is described as 'Tweet ID to retweet'). Description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retweet a tweet' clearly states the verb (retweet) and resource (a tweet). It distinguishes from sibling tools like 'like_tweet' or 'quote_tweet', though it could explicitly clarify it's a simple retweet without comment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use retweet vs alternatives like quote_tweet or send_tweet. No mention of prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tweetsC

Search for tweets by keyword

NameRequiredDescriptionDefault
queryYesSearch query
countNoNumber of tweets to return (10-100)
searchModeNoSearch mode: Top, Latest, Photos, or VideosTop

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry full burden. It only states 'Search for tweets by keyword' and omits behavioral traits like rate limits, return format, pagination, or that it returns a list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no extraneous information. Could be slightly more informative but remains concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no output schema, and no annotations, the description is too brief. It lacks details on return structure, pagination, and default behavior beyond schema fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description adds no extra meaning. The description merely restates 'keyword' for the query parameter, which is already described in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search for tweets by keyword', specifying a verb and resource. It distinguishes from sibling tools like get_user_tweets and get_tweet_by_id by implying a global search scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_user_tweets for user-specific tweets, get_tweet_by_id for single tweet). No mention of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_tweetC

Post a new tweet

NameRequiredDescriptionDefault
textYesTweet content (max 280 characters)
replyToTweetIdNoID of tweet to reply to (optional)
mediaNoMedia attachments (optional, max 4 images or 1 video)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It only states 'post' (implying creation), but omits details like authentication needs, rate limits, or idempotency. This is insufficient for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at 4 words, with no redundancy. However, it sacrifices some clarity and completeness; a single additional sentence could improve value without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters, no output schema, and no annotations, the description is too minimal. It fails to cover return values, error conditions, or prerequisites (e.g., authentication), leaving the agent underinformed for a nontrivial operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; it does not clarify parameter usage or constraints like the 280-character limit for text (already in schema).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Post a new tweet'), using a specific verb and resource. It distinguishes from siblings like quote_tweet, retweet, and send_tweet_with_poll by focusing on creating a new standalone tweet, but does not explicitly differentiate itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like send_tweet_with_poll or quote_tweet. The description lacks any context for selection, which is a significant gap given the many sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_tweet_with_pollC

Post a tweet with a poll

NameRequiredDescriptionDefault
textYesTweet content (max 280 characters)
replyToTweetIdNoID of tweet to reply to (optional)
pollYesPoll configuration

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as authentication requirements, rate limits, side effects, or limitations. It only repeats the basic function without adding depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence. It is front-loaded and efficient, though it could be slightly more informative without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the complexity of the nested poll object, and the lack of behavioral information, the description is insufficient for an agent to fully understand the tool's behavior and return value. Important context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all parameters. The description does not add any additional meaning beyond what the schema already provides. Thus, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Post a tweet' and the distinguishing feature 'with a poll'. It is specific about the resource and action, but does not explicitly contrast with the sibling tool 'send_tweet' which lacks a poll.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like 'send_tweet' or 'quote_tweet'. There are no explicit conditions, prerequisites, or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updates
    • First observedfollow_user
    • First observedget_followers
    • First observedget_following
    • First observedget_tweet_by_id
    • First observedget_user_profile
    • First observedget_user_tweets
    • First observedgrok_chat
    • First observedhealth_check
    • First observedlike_tweet
    • First observedquote_tweet
    • First observedretweet
    • First observedsearch_tweets
    • First observedsend_tweet
    • First observedsend_tweet_with_poll

TDQS

B3.3/5.0

Scored across 14 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Each tool targets a specific Twitter action (like, retweet, quote, follow) or data retrieval operation (get followers, get tweets, search), and the descriptions make their unique functions immediately apparent. There is no overlap that would cause confusion or misselection.

Naming Consistency4/5

The naming is mostly consistent with a clear verb_noun pattern (e.g., follow_user, get_followers, like_tweet), but there are minor deviations. For example, 'grok_chat' and 'health_check' follow the pattern but stand out as non-core Twitter actions, and 'send_tweet' and 'send_tweet_with_poll' could be more aligned (e.g., 'post_tweet'). Overall, the naming is readable and predictable.

Tool Count5/5

With 14 tools, this is well-scoped for a Twitter client server, covering core social media interactions and data access. Each tool earns its place by addressing a specific need, such as posting, liking, searching, or retrieving user information, without being overly bloated or too sparse for the domain.

Completeness4/5

The tool set provides comprehensive coverage for Twitter operations, including CRUD-like actions (send, like, retweet) and data retrieval (get tweets, search, profile). Minor gaps exist, such as no tools for deleting tweets, managing lists, or handling direct messages, but agents can work around these with the available tools for core workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI to interact with Twitter, allowing functions like searching tweets, comparing sentiments across accounts, and retrieving timeline content.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI models and applications to interact directly with Twitter/X, providing capabilities to create posts, reply to tweets, retrieve user data, and manage account actions.
    7 npm
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI assistants to interact with Twitter functionality using cookie-based authentication, allowing for timeline access, tweet management, user information retrieval, and search capabilities.
    16
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Model Context Protocol server that enables programmatic interaction with Twitter API, allowing users to post tweets, search for content, and retrieve user timelines through standardized MCP tools.
    8 npm
    MIT