Skip to main content
Glama
6551Team

Twitter MCP Server

by 6551Team

快速安装

首先,前往 http://app.newsliquid.com/mcp 获取你的 API Token。

Claude Code

claude mcp add twitter \
  -e OPENNEWS_TOKEN=<your-token> \
  -- uv --directory /path/to/twitter-mcp run twitter-mcp

/path/to/twitter-mcp 替换为你本地项目路径,将 <your-token> 替换为你的 Token。

OpenClaw

export OPENNEWS_TOKEN="<your-token>"
cp -r openclaw-skill/opentwitter ~/.openclaw/skills/

Related MCP server: Apex MCP for X Management

让 AI 帮你审核并安装

不确定这个 MCP 是否安全?将下面的提示词粘贴给你的 AI 助手——它会先审查源代码,确认安全后再安装:

复制这段提示词并发送给你的 AI 助手(将 <project-path><your-token> 替换为实际值):

Please review and install the twitter-mcp MCP server for me. The project is at <project-path>.

Steps:
1. Review these files for security:
   - src/twitter_mcp/api_client.py — Confirm it only connects to ai.6551.io, no data sent elsewhere
   - src/twitter_mcp/config.py — Confirm token is only read from local config.json or env vars, no hardcoded secrets or leaks
   - src/twitter_mcp/tools.py — Confirm all tools only perform API queries, no file writes, command execution, or dangerous operations
   - pyproject.toml — Confirm dependencies are only mcp, httpx, no suspicious packages
2. Tell me your conclusion: safe / risky / problematic, with specific reasons
3. If safe, run the install (get Token from http://app.newsliquid.com/mcp):
   claude mcp add twitter -e OPENNEWS_TOKEN=<your-token> -- uv --directory <project-path> run twitter-mcp

它能做什么?

连接完成后,你只需直接告诉你的 AI 助手:

你说什么

它会做什么

"查看 @elonmusk 的 Twitter 主页"

获取用户主页信息

"@VitalikButerin 最近发了什么推文"

获取用户最近的推文

"搜索关于 Bitcoin 的推文"

关键词搜索

"查找带 #crypto 标签的推文"

话题标签搜索

"关于 ETH 且超过 1000 赞的热门推文"

带互动筛选的搜索

"用粉丝追踪功能监控 @elonmusk"

添加用户到监视列表并附带选项

"谁引用了这条推文"

获取某条推文的引用推文

"谁转发了这条推文"

获取转发了某条推文的用户

"最近谁关注了 @elonmusk"

获取新增粉丝事件

"谁取关了 @elonmusk"

获取取关事件

"@elonmusk 删除了哪些推文"

获取已删除的推文

"哪些 KOL 关注了 @elonmusk"

获取 KOL 粉丝


可用工具

工具

描述

get_twitter_user

通过用户名获取用户主页

get_twitter_user_by_id

通过数字 ID 获取用户主页

get_twitter_user_tweets

获取某用户最近的推文

search_twitter

使用基础筛选条件搜索推文

search_twitter_advanced

使用多重筛选条件的高级搜索

get_twitter_follower_events

获取关注/取关事件

get_twitter_deleted_tweets

获取某用户已删除的推文

get_twitter_kol_followers

获取 KOL(关键意见领袖)粉丝

get_twitter_article_by_id

通过 ID 获取 Twitter 文章

get_twitter_tweet_by_id

通过 ID 获取推文(包含嵌套的回复/引用推文)

get_twitter_quote_tweets_by_id

获取引用了某条推文的所有推文

get_twitter_retweet_users_by_id

获取转发了某条推文的用户

get_twitter_watch

获取所有 Twitter 监控用户

add_twitter_watch

添加 Twitter 用户到监控列表(带事件类型选项)

delete_twitter_watch

从监控列表中删除 Twitter 用户


配置

获取 API Token

前往 http://app.newsliquid.com/mcp 获取你的 API Token。

设置环境变量:

# macOS / Linux
export OPENNEWS_TOKEN="<your-token>"

# Windows PowerShell
$env:OPENNEWS_TOKEN = "<your-token>"

变量

是否必须

描述

OPENNEWS_TOKEN

6551 API Bearer Token(从 http://app.newsliquid.com/mcp 获取)

TWITTER_API_BASE

覆盖 REST API URL

TWITTER_MAX_ROWS

每次查询的最大结果数(默认:100)

同时支持项目根目录下的 config.json(环境变量优先):

{
  "api_base_url": "https://ai.6551.io",
  "api_token": "<your-token>",
  "max_rows": 100
}

WebSocket 实时订阅

端点wss://ai.6551.io/open/twitter_wss?token=YOUR_TOKEN

订阅你监控的 Twitter 账号的实时事件。

心跳

为保持连接存活,客户端可发送 ping,服务器将回复 pong

订阅 Twitter 事件

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "twitter.subscribe"
}

响应

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "success": true
  }
}

取消订阅

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "twitter.unsubscribe"
}

服务器推送——Twitter 事件

当被监控的账号有活动时,服务器会推送:

{
  "jsonrpc": "2.0",
  "method": "twitter.event",
  "params": {
    "id": 123456,
    "twAccount": "elonmusk",
    "twUserName": "Elon Musk",
    "profileUrl": "https://twitter.com/elonmusk",
    "eventType": "NEW_TWEET",
    "content": "...",
    "ca": "0x1234...",
    "remark": "Custom note",
    "createdAt": "2026-03-06T10:00:00Z"
  }
}

注意content 字段的结构因事件类型而异(见下文)。


**Event Types and Content Structure**:

#### Tweet Events
- `NEW_TWEET` - New tweet posted
- `NEW_TWEET_REPLY` - New reply tweet
- `NEW_TWEET_QUOTE` - New quote tweet
- `NEW_RETWEET` - Retweeted
- `CA` - Tweet with CA address

Content structure for tweet events:
```json
{
  "id": "1234567890",
  "text": "Tweet content...",
  "createdAt": "2026-03-06T10:00:00Z",
  "language": "en",
  "retweetCount": 100,
  "favoriteCount": 500,
  "replyCount": 20,
  "quoteCount": 10,
  "viewCount": 10000,
  "userScreenName": "elonmusk",
  "userName": "Elon Musk",
  "userIdStr": "44196397",
  "userFollowers": 170000000,
  "userVerified": true,
  "conversationId": "1234567890",
  "isReply": false,
  "isQuote": false,
  "hashtags": ["crypto", "bitcoin"],
  "media": [
    {
      "type": "photo",
      "url": "https://...",
      "thumbUrl": "https://..."
    }
  ],
  "urls": [
    {
      "url": "https://...",
      "expandedUrl": "https://...",
      "displayUrl": "example.com"
    }
  ],
  "mentions": [
    {
      "username": "VitalikButerin",
      "name": "Vitalik Buterin"
    }
  ]
}

粉丝事件

  • NEW_FOLLOWER - 该账号关注了某用户

  • NEW_UNFOLLOWER - 该账号取关了某用户

粉丝事件的 content 结构(数组):

[
  {
    "id": 123,
    "twId": 44196397,
    "twAccount": "elonmusk",
    "twUserName": "Elon Musk",
    "twUserLabel": "Verified",
    "description": "User bio...",
    "profileUrl": "https://...",
    "bannerUrl": "https://...",
    "followerCount": 170000000,
    "friendCount": 500,
    "createdAt": "2026-03-06T10:00:00Z"
  }
]

主页更新事件

  • UPDATE_NAME - 用户名变更(content:新的名字字符串)

  • UPDATE_DESCRIPTION - 个人简介更新(content:新的简介字符串)

  • UPDATE_AVATAR - 头像更换(content:新的头像 URL 字符串)

  • UPDATE_BANNER - 横幅图片更换(content:新的横幅 URL 字符串)

其他事件

  • TWEET_TOPPING - 推文置顶

  • DELETE - 推文删除

  • SYSTEM - 系统事件

  • TRANSLATE - 推文翻译

  • CA_CREATE - CA 代币创建


数据结构

Twitter 用户

{
  "userId": "44196397",
  "screenName": "elonmusk",
  "name": "Elon Musk",
  "description": "...",
  "followersCount": 170000000,
  "friendsCount": 500,
  "statusesCount": 30000,
  "verified": true
}

推文

{
  "id": "1234567890",
  "text": "Tweet content...",
  "createdAt": "2024-02-20T12:00:00Z",
  "retweetCount": 1000,
  "favoriteCount": 5000,
  "replyCount": 200,
  "userScreenName": "elonmusk",
  "hashtags": ["crypto", "bitcoin"],
  "urls": [{"url": "https://..."}]
}

在以下所有配置中,将 /path/to/twitter-mcp 替换为你实际的本地项目路径,将 <your-token> 替换为从 http://app.newsliquid.com/mcp 获取的 Token。

Claude Desktop

编辑配置(macOS:~/Library/Application Support/Claude/claude_desktop_config.json,Windows:%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "twitter": {
      "command": "uv",
      "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
      "env": {
        "OPENNEWS_TOKEN": "<your-token>"
      }
    }
  }
}

Cursor

~/.cursor/mcp.json 或设置 > MCP 服务器:

{
  "mcpServers": {
    "twitter": {
      "command": "uv",
      "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
      "env": {
        "OPENNEWS_TOKEN": "<your-token>"
      }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "twitter": {
      "command": "uv",
      "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
      "env": {
        "OPENNEWS_TOKEN": "<your-token>"
      }
    }
  }
}

Cline

VS Code 侧边栏 > Cline > MCP 服务器 > 配置,编辑 cline_mcp_settings.json

{
  "mcpServers": {
    "twitter": {
      "command": "uv",
      "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
      "env": {
        "OPENNEWS_TOKEN": "<your-token>"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Continue.dev

~/.continue/config.yaml

mcpServers:
  - name: twitter
    command: uv
    args:
      - --directory
      - /path/to/twitter-mcp
      - run
      - twitter-mcp
    env:
      OPENNEWS_TOKEN: <your-token>

Cherry Studio

设置 > MCP 服务器 > 添加 > 类型 stdio:命令 uv,参数 --directory /path/to/twitter-mcp run twitter-mcp,环境变量 OPENNEWS_TOKEN

Zed Editor

~/.config/zed/settings.json

{
  "context_servers": {
    "twitter": {
      "command": {
        "path": "uv",
        "args": ["--directory", "/path/to/twitter-mcp", "run", "twitter-mcp"],
        "env": {
          "OPENNEWS_TOKEN": "<your-token>"
        }
      }
    }
  }
}

任意 stdio MCP 客户端

OPENNEWS_TOKEN=<your-token> \
  uv --directory /path/to/twitter-mcp run twitter-mcp

兼容性

客户端

安装方式

状态

Claude Code

claude mcp add

一行命令

OpenClaw

复制技能目录

一行命令

Claude Desktop

JSON 配置

已支持

Cursor

JSON 配置

已支持

Windsurf

JSON 配置

已支持

Cline

JSON 配置

已支持

Continue.dev

YAML / JSON

已支持

Cherry Studio

图形界面

已支持

Zed

JSON 配置

已支持


开发

cd /path/to/twitter-mcp
uv sync
uv run twitter-mcp
# MCP Inspector
npx @modelcontextprotocol/inspector uv --directory /path/to/twitter-mcp run twitter-mcp

项目结构

├── README.md
├── docs/
│   ├── README_JA.md           # 日本語
│   └── README_KO.md           # 한국어
├── openclaw-skill/opentwitter/    # OpenClaw Skill
├── pyproject.toml
├── config.json
└── src/twitter_mcp/
    ├── server.py              # Entry point
    ├── app.py                 # FastMCP instance
    ├── config.py              # Config loader
    ├── api_client.py          # HTTP client
    └── tools.py               # 8 tools

许可证

MIT

Available Tools

12 tools
add_twitter_watchB

Add a Twitter user to monitoring list.

Args: username: Twitter username to monitor (without @).

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool adds a user to a monitoring list but doesn't explain what monitoring entails, whether this is a write operation, if there are rate limits, or what happens on success/failure. This leaves significant gaps for an agent to understand the tool's behavior.

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 appropriately brief and front-loaded with the main purpose, followed by parameter details. The two-sentence structure is efficient, though the 'Args:' section could be integrated more smoothly into the flow.

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 lack of annotations and output schema, the description is incomplete. It doesn't cover what the tool returns, error conditions, or the implications of 'monitoring' (e.g., what data is collected, how it's accessed). For a tool that likely involves ongoing data collection, this is a significant oversight.

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 schema has 0% description coverage, but the description compensates by explaining the 'username' parameter as 'Twitter username to monitor (without @)', adding crucial semantic context beyond the schema's basic type information. Since there's only one parameter, this is sufficient for clarity.

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 ('Add') and resource ('Twitter user to monitoring list'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its sibling 'get_twitter_watch', which likely retrieves the monitoring list rather than adding to it.

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_twitter_watch' or 'delete_twitter_watch'. The description lacks context about prerequisites, such as whether the user must exist or if there are limits to the monitoring list.

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

delete_twitter_watchC

Delete a Twitter user from monitoring list.

Args: watch_id: The monitoring record ID to delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
watch_idYes

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 the full burden of behavioral disclosure. It states the tool performs a deletion (implying a destructive mutation) but doesn't specify whether this action is reversible, requires special permissions, has side effects, or provides confirmation feedback. For a destructive tool with zero annotation coverage, this lack of detail is a significant gap in transparency.

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?

The description is extremely concise and well-structured: a clear purpose statement followed by a parameter explanation. Every sentence earns its place, with no redundant or verbose language. It's front-loaded with the core action, making it easy for an agent to quickly grasp the tool's function.

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's destructive nature, lack of annotations, and absence of an output schema, the description is incomplete. It doesn't cover critical aspects like what happens after deletion (e.g., success confirmation, error handling), whether the watch_id must be valid, or how this interacts with other monitoring functions. For a mutation tool with no structured safety cues, 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?

The description includes an 'Args' section that documents the single parameter 'watch_id' as 'The monitoring record ID to delete,' adding semantic meaning beyond the schema (which has 0% description coverage and only provides type information). This compensates adequately for the low schema coverage, establishing a baseline understanding of the parameter's purpose.

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 ('Delete') and resource ('a Twitter user from monitoring list'), making the purpose unambiguous. It distinguishes itself from sibling tools like 'add_twitter_watch' by specifying deletion rather than addition. However, it doesn't fully differentiate from other potential deletion operations in the sibling set, keeping it at 4 rather than 5.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing watch_id), exclusions, or relationships with sibling tools like 'get_twitter_watch' for retrieving IDs. The agent must infer usage from context alone, which is insufficient for clear decision-making.

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

get_twitter_article_by_idC

Get Twitter article by ID.

Args: article_id: Twitter article ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
article_idYes

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 carries full burden for behavioral disclosure. It states 'Get' which implies a read operation, but doesn't specify whether this requires authentication, rate limits, what happens if the ID is invalid, or the format of returned data. For a tool with zero annotation coverage, this leaves 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?

The description is brief with two sentences: a purpose statement and parameter documentation. While efficient, the parameter section could be more integrated. There's no wasted text, but the structure feels slightly disjointed rather than fully cohesive.

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 1 parameter with 0% schema coverage, no annotations, no output schema, and multiple sibling tools, the description is incomplete. It doesn't explain what a 'Twitter article' is versus tweets, how results differ from search tools, error conditions, or return format. For a retrieval tool in a crowded namespace, 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?

Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds minimal semantics by naming 'article_id' as 'Twitter article ID', but doesn't explain what format this ID takes (numeric, alphanumeric, URL), where to find it, or provide examples. It compensates slightly but inadequately for the coverage gap.

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 verb 'Get' and resource 'Twitter article by ID', making the purpose understandable. However, it doesn't differentiate this tool from potential siblings like 'get_twitter_user_tweets' or 'search_twitter', which might also retrieve Twitter content. The purpose is clear but lacks sibling differentiation.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'get_twitter_user_tweets' and 'search_twitter' that might retrieve similar content, there's no indication whether this tool is for specific article IDs, whether it's faster/more precise, or any prerequisites. Usage is implied from the name but not explicitly stated.

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

get_twitter_deleted_tweetsB

Get deleted tweets from a Twitter/X user.

Args: username: Twitter username (without @). limit: Maximum tweets to return (default 20, max 100).

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
limitNo

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'deleted tweets' but doesn't disclose critical behavioral traits: whether this requires prior setup (like a watch), rate limits, authentication needs, what happens if no deleted tweets exist, or the format of returned data. The description is minimal and lacks operational context.

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 appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured 'Args:' section. There's no wasted text, and each sentence adds value. It could be slightly more concise by integrating the args into the main flow, but it's efficient overall.

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 complexity (fetching deleted tweets likely involves monitoring or API constraints), no annotations, no output schema, and 2 parameters, the description is incomplete. It doesn't explain what 'deleted tweets' entails (e.g., recently deleted, all-time), how results are returned, or any dependencies on other tools like 'add_twitter_watch'. More context is needed for safe and effective use.

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?

Schema description coverage is 0%, so the description must compensate. It adds meaningful semantics: 'username' is clarified as 'Twitter username (without @)', and 'limit' specifies 'Maximum tweets to return (default 20, max 100)'. This goes beyond the schema's basic titles, providing practical usage details. However, it doesn't cover all edge cases (e.g., username validation).

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 tool's purpose: 'Get deleted tweets from a Twitter/X user.' It specifies the verb ('Get') and resource ('deleted tweets'), and distinguishes it from siblings like 'get_twitter_user_tweets' (which presumably gets regular tweets). However, it doesn't explicitly contrast with all siblings (e.g., 'search_twitter'), so it's not a perfect 5.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the user must be monitored first), nor does it differentiate from similar tools like 'get_twitter_user_tweets' or 'search_twitter' beyond the 'deleted' aspect. Usage context is implied but not explicit.

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

get_twitter_follower_eventsB

Get follower/unfollower events for a Twitter/X user.

Args: username: Twitter username (without @). is_follow: True for new followers, False for unfollowers. limit: Maximum events to return (default 20, max 100).

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
is_followNo
limitNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool retrieves events with a limit (default 20, max 100), which adds some context, but lacks critical details like rate limits, authentication requirements, data freshness, or error handling. For a tool accessing external API data with no annotations, this is a significant gap.

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 appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured 'Args:' section. There's no wasted text, and each sentence earns its place by explaining parameters. Minor improvement could be made by integrating parameter details more seamlessly, but it's efficient.

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 3 parameters with 0% schema coverage and no output schema or annotations, the description is moderately complete. It covers parameter meanings well but lacks behavioral context (e.g., API constraints, error responses) and output details. For a tool that fetches event data from Twitter/X, more information on data format or limitations would enhance completeness.

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?

Schema description coverage is 0%, so the description must compensate. It successfully explains all three parameters: 'username' (Twitter username without @), 'is_follow' (True for followers, False for unfollowers), and 'limit' (default and max values). This adds meaningful semantics beyond the bare schema, though it doesn't cover edge cases like invalid usernames.

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 tool's purpose: 'Get follower/unfollower events for a Twitter/X user.' It specifies the verb ('Get') and resource ('follower/unfollower events'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'get_twitter_kol_followers' or 'get_twitter_user', which might also retrieve follower-related 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where other tools might be more appropriate, such as using 'get_twitter_user' for general user info or 'get_twitter_kol_followers' for specific follower types. Usage is implied through parameter descriptions but not explicitly stated.

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

get_twitter_kol_followersC

Get KOL (Key Opinion Leader) followers for a Twitter/X user.

Returns which influential accounts (KOLs) are following this user.

Args: username: Twitter username (without @).

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

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 carries the full burden of behavioral disclosure. It states the tool returns KOL followers but doesn't describe what constitutes a KOL (e.g., criteria like follower count, verification status), how results are formatted (e.g., list, count, pagination), rate limits, authentication needs, or error handling. This leaves significant gaps for an agent to understand the tool's behavior beyond basic functionality.

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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by a clarifying sentence and parameter details. There's no wasted text, and the structure is logical. However, it could be slightly more concise by integrating the parameter note into the main flow, but it's still efficient.

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 complexity (retrieving specialized follower data), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain what a KOL is, how results are returned, or any behavioral constraints (e.g., rate limits, data freshness). For a tool that likely involves API calls and data processing, this leaves too many unknowns for effective agent use.

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 description adds minimal semantics beyond the input schema. It defines 'username' as 'Twitter username (without @)', which clarifies formatting but doesn't explain validation (e.g., length, allowed characters) or provide examples. With 0% schema description coverage and only 1 parameter, this compensates slightly but remains basic. The baseline is 3 due to low parameter count, but more detail would improve utility.

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 tool's purpose: 'Get KOL (Key Opinion Leader) followers for a Twitter/X user' and elaborates with 'Returns which influential accounts (KOLs) are following this user.' This specifies the verb (get/return), resource (KOL followers), and scope (for a specific user). However, it doesn't explicitly differentiate from sibling tools like 'get_twitter_user' or 'get_twitter_follower_events', which reduces clarity about when this specific tool is uniquely appropriate.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_twitter_user' (which might return general user info) or 'get_twitter_follower_events' (which might track follower changes), nor does it specify prerequisites (e.g., whether the user must be public or monitored). Usage is implied by the purpose but lacks explicit 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_twitter_userA

Get Twitter/X user profile information by username.

Args: username: Twitter username (without @, e.g. "elonmusk").

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

TDQS

A4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves profile information but does not specify whether this is a read-only operation, if it requires authentication, rate limits, error handling, or what the output format looks like (e.g., JSON structure). This leaves significant gaps for an AI agent to understand the tool's behavior.

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?

The description is front-loaded with the core purpose in the first sentence, followed by a concise 'Args' section that efficiently explains the parameter. Every sentence earns its place without redundancy, making it easy to parse quickly.

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's low complexity (1 parameter, no nested objects) but lack of annotations and output schema, the description is partially complete. It covers the purpose and parameter well, but fails to address behavioral aspects like output format, error cases, or authentication needs, which are important for a tool interacting with an external API like Twitter/X.

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

Parameters5/5

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

The schema description coverage is 0%, so the description must compensate. It provides clear semantics for the single parameter 'username,' explaining it is a Twitter username without the @ symbol and giving an example ('elonmusk'). This adds essential meaning beyond the basic schema, fully documenting the parameter.

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 with a specific verb ('Get') and resource ('Twitter/X user profile information'), and distinguishes it from siblings like get_twitter_user_by_id (which uses ID instead of username) and get_twitter_user_tweets (which retrieves tweets rather than profile info).

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

Usage Guidelines4/5

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

The description implies usage context by specifying 'by username,' which helps differentiate it from get_twitter_user_by_id. However, it lacks explicit guidance on when to use this tool versus alternatives like get_twitter_user_by_id or search_twitter, and does not mention any prerequisites or exclusions.

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

get_twitter_user_by_idB

Get Twitter/X user profile information by user ID.

Args: user_id: Twitter user ID (numeric string).

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states this is a 'Get' operation but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or what happens with invalid/non-existent IDs. For a read operation with zero annotation coverage, this is inadequate.

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 appropriately sized and front-loaded with the core purpose. The two-sentence structure is efficient, though the 'Args:' section formatting is slightly redundant with the schema but adds clarity.

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's moderate complexity (single parameter read operation), no annotations, and no output schema, the description is minimally adequate. It covers the purpose and parameter semantics but lacks behavioral context and usage guidance, leaving gaps for an agent.

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 description adds meaningful semantics beyond the schema. The input schema has 0% description coverage (just 'User Id' title), but the description clarifies that 'user_id' is a 'Twitter user ID (numeric string)', specifying the format and context. This compensates well for the schema gap.

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 tool's purpose with a specific verb ('Get') and resource ('Twitter/X user profile information'), and specifies the lookup method ('by user ID'). However, it doesn't explicitly differentiate from sibling tools like 'get_twitter_user' (which might use a different identifier).

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 provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_twitter_user' (possibly by username) and 'search_twitter', there's no indication of when this specific ID-based lookup is preferred or required.

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

get_twitter_user_tweetsA

Get recent tweets from a specific Twitter/X user.

Args: username: Twitter username (without @). limit: Maximum tweets to return (default 20, max 100). include_replies: Include reply tweets (default False). include_retweets: Include retweets (default False).

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
limitNo
include_repliesNo
include_retweetsNo

TDQS

A3.7/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 for behavioral disclosure. It mentions default values and limits, but doesn't cover important aspects like rate limits, authentication requirements, pagination, error handling, or what 'recent' means (time window). For a read operation with 4 parameters, this leaves significant gaps.

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?

The description is perfectly structured: a clear purpose statement followed by a well-organized parameter breakdown. Every sentence earns its place, with no wasted words. The information is front-loaded and efficiently presented.

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 no annotations and no output schema, the description does a decent job but has gaps. It covers parameters well but lacks information about return format, error conditions, rate limits, and authentication requirements. For a tool with 4 parameters and multiple sibling tools, it's adequate but not comprehensive.

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?

With 0% schema description coverage, the description must compensate - and it does well by explaining all 4 parameters: username format ('without @'), limit range and defaults, and the boolean filters' purposes. It adds meaningful context beyond the bare schema, though it doesn't specify exact return formats.

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 specific action ('Get recent tweets') and resource ('from a specific Twitter/X user'), distinguishing it from siblings like get_twitter_user (user profile) or search_twitter (general search). The verb+resource combination is precise and unambiguous.

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?

The description implies usage for retrieving tweets from a specific user, but provides no explicit guidance on when to use this tool versus alternatives like get_twitter_user_by_id (which might get user info) or search_twitter (for broader searches). The context is clear but lacks sibling differentiation.

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

get_twitter_watchB

Get all Twitter monitoring users for the current user.

Returns a list of Twitter accounts being monitored.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 carries full burden for behavioral disclosure. It states the tool returns 'a list of Twitter accounts being monitored', which clarifies the output type. However, it lacks critical behavioral details: whether this requires authentication, rate limits, pagination for large result sets, or error conditions. For a read operation with zero annotation coverage, this is insufficient.

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?

The description is extremely concise and well-structured: two clear sentences that front-load the core functionality ('Get all Twitter monitoring users') followed by the return value. Every word earns its place with zero redundancy or unnecessary elaboration.

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's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does and what it returns. However, for a tool that likely involves API calls to Twitter, it should ideally mention authentication requirements or rate limiting considerations. The absence of output schema means the description should more fully describe the return format.

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 0 parameters with 100% schema description coverage (empty schema). The description appropriately doesn't discuss parameters since none exist. It focuses on what the tool does rather than parameter details, which is correct for a parameterless tool. Baseline 4 is appropriate as no parameter information is needed.

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 tool's purpose: 'Get all Twitter monitoring users for the current user' specifies the verb ('Get'), resource ('Twitter monitoring users'), and scope ('for the current user'). It distinguishes from siblings like 'get_twitter_user' by focusing on monitored accounts rather than general user data. However, it doesn't explicitly differentiate from all siblings like 'get_twitter_kol_followers' which might overlap conceptually.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when this tool is appropriate compared to siblings like 'get_twitter_user' or 'search_twitter', nor does it specify prerequisites or exclusions. The context is implied (retrieving monitored accounts) but lacks explicit usage instructions.

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

search_twitterA

Search Twitter/X for tweets matching criteria.

Args: keywords: Search keywords. from_user: Filter tweets from specific user (without @). hashtag: Filter by hashtag (without #). min_likes: Minimum likes threshold. limit: Maximum tweets to return (default 20, max 100).

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsNo
from_userNo
hashtagNo
min_likesNo
limitNo

TDQS

A3.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 for behavioral disclosure. It mentions default and maximum values for 'limit' (20, max 100), which adds useful context, but fails to address critical aspects like rate limits, authentication requirements, pagination, or what happens when no results match. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its operational behavior.

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?

The description is efficiently structured with a clear purpose statement followed by a bullet-point style parameter explanation. Every sentence earns its place by providing essential information without redundancy. The formatting makes it easy to scan and understand quickly.

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 5 parameters with 0% schema coverage and no output schema, the description does a reasonable job explaining inputs but lacks information about return values, error conditions, or authentication requirements. For a search tool with multiple filtering options and no structured output documentation, it should provide more complete context about what the tool returns and how results are structured.

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?

Schema description coverage is 0%, so the description must compensate. It successfully adds meaning for all 5 parameters by explaining their purposes (e.g., 'Filter tweets from specific user (without @)', 'Filter by hashtag (without #)'), including default values and constraints for 'limit'. This provides clear semantic context beyond the bare schema, though it doesn't cover all possible edge cases or interactions between 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 specific action ('Search Twitter/X for tweets') and resource ('tweets matching criteria'), distinguishing it from sibling tools like 'get_twitter_user_tweets' or 'search_twitter_advanced' by focusing on general search functionality. It uses precise language that immediately conveys the tool's function without ambiguity.

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

Usage Guidelines4/5

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

The description implies usage context through the parameter explanations (e.g., 'Filter tweets from specific user'), but it doesn't explicitly state when to use this tool versus alternatives like 'search_twitter_advanced'. It provides clear filtering criteria but lacks explicit guidance on tool selection among siblings.

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

search_twitter_advancedB

Advanced Twitter/X search with multiple filters.

Args: keywords: Search keywords. from_user: Filter tweets from specific user. to_user: Filter tweets to specific user. mention_user: Filter tweets mentioning specific user. hashtag: Filter by hashtag (without #). exclude_replies: Exclude reply tweets. exclude_retweets: Exclude retweets. min_likes: Minimum likes threshold. min_retweets: Minimum retweets threshold. min_replies: Minimum replies threshold. since_date: Start date (YYYY-MM-DD). until_date: End date (YYYY-MM-DD). lang: Language code (e.g. "en", "zh"). product: Sort by "Top" or "Latest" (default "Top"). limit: Maximum tweets to return (default 20, max 100).

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsNo
from_userNo
to_userNo
mention_userNo
hashtagNo
exclude_repliesNo
exclude_retweetsNo
min_likesNo
min_retweetsNo
min_repliesNo
since_dateNo
until_dateNo
langNo
productNoTop
limitNo

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 carries full burden for behavioral disclosure. While it lists parameters, it doesn't describe what the tool actually returns (tweet objects, metadata format), rate limits, authentication requirements, error conditions, or whether this is a read-only operation. The description focuses on inputs rather than behavioral outcomes.

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 efficiently structured with a brief purpose statement followed by a comprehensive parameter list. Each parameter explanation is clear and minimal. While somewhat lengthy due to 15 parameters, every line adds value and the structure is logical with parameter documentation following the initial summary.

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 complex tool with 15 parameters, no annotations, and no output schema, the description is incomplete. It thoroughly documents inputs but provides no information about return values, error handling, rate limits, or authentication requirements. The agent cannot understand what results to expect or operational constraints.

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

Parameters5/5

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

With 0% schema description coverage and 15 parameters, the description provides excellent parameter semantics by explaining each parameter's purpose with clear examples (e.g., 'hashtag: Filter by hashtag (without #)', 'lang: Language code (e.g. "en", "zh")', 'product: Sort by "Top" or "Latest"'). This fully compensates for the lack of schema descriptions.

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 'Advanced Twitter/X search with multiple filters' which specifies the verb (search) and resource (Twitter/X) with the qualifier 'advanced' to indicate enhanced filtering capabilities. It distinguishes from the simpler 'search_twitter' sibling tool by emphasizing 'multiple filters' and 'advanced' nature, though it doesn't explicitly contrast them.

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 provides no guidance on when to use this tool versus alternatives like the simpler 'search_twitter' sibling tool. There's no mention of use cases, prerequisites, or trade-offs between this advanced search and other Twitter-related tools on the server.

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. 12 tool updatesv0.1.0
    • First observedadd_twitter_watch
    • First observeddelete_twitter_watch
    • First observedget_twitter_article_by_id
    • First observedget_twitter_deleted_tweets
    • First observedget_twitter_follower_events
    • First observedget_twitter_kol_followers
    • First observedget_twitter_user
    • First observedget_twitter_user_by_id
    • First observedget_twitter_user_tweets
    • First observedget_twitter_watch
    • First observedsearch_twitter
    • First observedsearch_twitter_advanced

TDQS

A3.5/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between get_twitter_user and get_twitter_user_by_id (both retrieve user profiles via different identifiers) and between search_twitter and search_twitter_advanced (both search tweets, with the latter being a superset). The descriptions clarify the differences, preventing major confusion.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb_noun structures (e.g., add_twitter_watch, get_twitter_user_tweets, search_twitter_advanced). The naming is predictable and uniform across all 12 tools.

Tool Count5/5

With 12 tools, the server is well-scoped for Twitter/X monitoring and data retrieval. The count is appropriate, covering user management, tweet fetching, search, and monitoring without being overwhelming or insufficient for the domain.

Completeness4/5

The toolset provides strong coverage for monitoring and retrieving Twitter data, including user profiles, tweets, searches, and follower events. Minor gaps exist, such as no tools for posting tweets or interacting with tweets (e.g., liking, retweeting), but core retrieval and monitoring workflows are well-covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with X (formerly Twitter), allowing for posting tweets, searching content, managing accounts, and organizing lists.
    8 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables complete management of X (Twitter) accounts through a single API key, supporting functions like getting tweets, searching, generating and posting replies.
    16 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with X (Twitter) to post tweets, threads, and replies while retrieving tweet metrics and account information. It supports core management tasks like deleting tweets and verifying authentication through the Twitter API.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to access Twitter/X data including user profiles, tweets, search, and follower events via a set of MCP tools.
    1
    MIT