Skip to main content
Glama
olivier-motium

x-ai-mcp

x-ai-mcp

X (Twitter) MCP server with Grok-powered intelligence. Personal account access + AI analysis in one package.

20 tools: 16 X API tools for reading/writing + 4 Grok intelligence tools for real-time analysis.

Setup

1. Install

git clone https://github.com/olivier-motium/x-ai-mcp.git
cd x-ai-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e .

2. Configure

Copy .env.example to .env and fill in:

# Required — X API bearer token (read-only operations)
X_BEARER_TOKEN=your_bearer_token

# Required — your X user ID
X_USER_ID=your_user_id

# Optional — OAuth for write ops (posting, DMs)
# Run: python scripts/auth_flow.py
X_CLIENT_ID=your_client_id

# Optional — xAI key for intelligence tools
XAI_API_KEY=your_xai_key

3. Get OAuth tokens (for write operations)

python scripts/auth_flow.py

Opens browser, authorizes your account, saves token.json. Tokens auto-refresh.

4. Add to Claude Code

claude mcp add x-ai \
  -e X_BEARER_TOKEN=xxx \
  -e X_USER_ID=xxx \
  -e XAI_API_KEY=xxx \
  -- python -m src.server

Tools

X API — Timeline & Tweets

Tool

Description

x_home_timeline

Your home timeline

x_user_tweets

A user's recent tweets

x_get_tweet

Get a specific tweet

x_post_tweet

Post a tweet (OAuth)

x_delete_tweet

Delete your tweet (OAuth)

x_search_tweets

Search recent tweets (7 days)

X API — DMs

Tool

Description

x_list_dms

Recent DM messages

x_read_dm

Read a DM conversation

x_send_dm

Send a DM (OAuth)

X API — Social

Tool

Description

x_bookmarks

Your bookmarked tweets

x_liked_tweets

Liked tweets (you or others)

x_like_tweet

Like a tweet (OAuth)

x_user_info

User profile details

x_followers

List followers

x_following

List following

Intelligence — Grok-powered

Tool

Description

x_analyze_topic

Real-time analysis of any topic on X

x_daily_digest

AI-powered daily briefing

x_summarize_thread

Summarize a tweet thread

x_analyze_account

Deep analysis of any X account

Daily Digest (standalone)

# Default (AI/tech focus)
python scripts/daily_digest.py

# Custom focus
python scripts/daily_digest.py --focus "crypto markets"

# Save to file
python scripts/daily_digest.py --focus "AI agents" --output digest.md

Cron it for daily briefings:

0 9 * * * cd /path/to/x-ai-mcp && .venv/bin/python scripts/daily_digest.py >> ~/digests.log

Architecture

Bearer Token (read) ──┐
OAuth 2.0 PKCE (r/w) ─┤──→ X API v2 ──→ 16 MCP tools
                       │
xAI API Key ───────────┤──→ Grok (x_search + chat) ──→ 4 intelligence tools
                       │
Logfire (optional) ────┘──→ Observability dashboard
  • X client: async httpx, auto rate-limit retry, OAuth token refresh

  • Grok client: Chat Completions API for analysis, Responses API with x_search for real-time X data

  • Output: Plain text, never raw JSON. Tweets formatted as [date time] @user: text (metrics)

License

MIT

Available Tools

23 tools
x_analyze_accountB

Use Grok to analyze an X account — their posting patterns, key topics, influence, and recent activity.

Args:
    username: X username (without @)
ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 mentions 'Use Grok to analyze', implying an external service or AI, but doesn't disclose behavioral traits like rate limits, authentication needs, data freshness, or what 'analyze' entails (e.g., returns structured insights vs. raw data). This is a significant gap for a tool with no annotation coverage.

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, followed by a concise parameter explanation. Every sentence earns its place, with no wasted words. It's appropriately sized for a single-parameter tool.

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 1 parameter, no annotations, but an output schema exists, the description is minimally adequate. It covers the purpose and parameter semantics, but lacks behavioral context (e.g., how analysis is performed, limitations). The output schema likely handles return values, so that gap is mitigated, but overall completeness is moderate.

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%, but the description compensates by explaining the 'username' parameter: 'X username (without @)'. This adds crucial semantics beyond the bare schema, clarifying format. With only 1 parameter, this is sufficient for a high score, though not perfect as it doesn't cover edge cases.

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: 'analyze an X account' with specific aspects like 'posting patterns, key topics, influence, and recent activity'. It distinguishes from siblings like x_user_info (which might provide basic info) or x_user_tweets (which lists tweets), but doesn't explicitly contrast them, 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 like x_user_info or x_analyze_topic. It mentions 'Use Grok to analyze', but this is vague and doesn't specify context or exclusions. The agent must infer usage from the purpose alone.

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

x_analyze_topicB

Use Grok AI to analyze what X is saying about a topic right now. Returns insights with citations from real-time X data.

Args:
    topic: Topic to analyze (e.g., 'AI agents', 'Claude Code', 'Bitcoin')
ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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 mentions 'real-time X data' and 'insights with citations', which adds some context, but it doesn't cover critical aspects like rate limits, authentication needs, data freshness, or potential costs. For a tool that likely involves API calls and AI processing, this 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 well-structured and concise, with two sentences that efficiently convey the tool's purpose and parameter usage. The first sentence explains the core functionality, and the second provides parameter details with examples, with no wasted words. It's appropriately sized for a single-parameter tool.

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 complexity (involving AI analysis and real-time data), no annotations, and an output schema present, the description is moderately complete. It covers the purpose and parameter semantics adequately, but lacks details on behavioral traits like performance or limitations. The output schema likely handles return values, so the description doesn't need to explain those, but overall it could be more 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?

The description adds meaningful semantics beyond the input schema, which has 0% coverage. It explains that the 'topic' parameter is for analysis (e.g., 'AI agents', 'Claude Code', 'Bitcoin'), providing concrete examples that clarify usage. However, it doesn't detail constraints like topic length or format, so it's not a perfect 5.

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: 'Use Grok AI to analyze what X is saying about a topic right now.' It specifies the verb (analyze), resource (X posts about a topic), and method (Grok AI). However, it doesn't explicitly differentiate from sibling tools like 'x_search_tweets' or 'x_summarize_thread', which might offer similar functionality, so it doesn't reach 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 Guidelines3/5

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

The description implies usage by stating 'right now' and 'real-time X data', suggesting it's for current analysis, but it doesn't provide explicit guidance on when to use this tool versus alternatives like 'x_search_tweets' or 'x_summarize_thread'. There's no mention of prerequisites, exclusions, or specific contexts, leaving usage somewhat ambiguous.

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

x_bookmarksB

Get your bookmarked tweets. Requires OAuth token.

Args:
    count: Number of bookmarks (1-100, default 20)
ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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 mentions authentication requirements ('Requires OAuth token'), which is helpful. However, it lacks details on rate limits, pagination, error handling, or what the output contains beyond 'bookmarked tweets', leaving significant gaps in behavioral understanding.

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 parameter details in a bullet-like format. Every sentence adds value, and there's no redundant information, making it appropriately sized and front-loaded.

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) and the presence of an output schema (which handles return values), the description is adequate but incomplete. It covers authentication and parameter details but lacks behavioral context like rate limits or error scenarios, which 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?

The description adds meaningful context for the single parameter 'count' by specifying its purpose ('Number of bookmarks'), range ('1-100'), and default value ('default 20'), which compensates for the 0% schema description coverage. This provides clear semantics beyond what the basic schema offers.

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 'Get your bookmarked tweets', specifying the verb (get) and resource (bookmarked tweets). It distinguishes from siblings like x_liked_tweets or x_user_tweets by focusing on bookmarks, but doesn't explicitly contrast with similar tools like x_home_timeline.

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 provides some usage context with 'Requires OAuth token', indicating authentication prerequisites. However, it doesn't specify when to use this tool versus alternatives like x_liked_tweets or x_user_tweets, nor does it mention any exclusions or specific scenarios for its use.

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

x_daily_digestB

Generate an AI-powered daily digest of what's happening on X. Uses Grok with real-time X search.

Args:
    focus: Optional focus area (e.g., 'AI', 'crypto', 'tech startups'). Defaults to general tech/AI.
ParametersJSON Schema
NameRequiredDescriptionDefault
focusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 using 'Grok with real-time X search' and generating a 'daily digest,' but lacks details on permissions required, rate limits, whether it's a read-only or write operation (though 'generate' suggests read-only), output format, or any side effects. For a tool with no 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.

Conciseness4/5

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

The description is appropriately sized and front-loaded: the first sentence clearly states the purpose, and the second provides parameter details. There's no wasted text, and it's structured with a brief explanation followed by args. However, it could be slightly more concise by integrating the parameter info into the main sentence.

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 complexity (AI-powered digest generation), no annotations, and an output schema (which should cover return values), the description is moderately complete. It explains the purpose and parameter well but lacks behavioral context like usage guidelines, permissions, or limitations. The output schema likely handles return values, but the description should still address when and how to use the tool effectively.

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 context for the single parameter 'focus': it explains it as an 'Optional focus area' with examples ('e.g., 'AI', 'crypto', 'tech startups') and notes it 'Defaults to general tech/AI.' This provides clear semantics beyond the schema, which only indicates it's an optional string with a null default and 0% description coverage. Since there's only one parameter, the description adequately compensates for the low 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 the tool's purpose: 'Generate an AI-powered daily digest of what's happening on X. Uses Grok with real-time X search.' It specifies the verb ('generate'), resource ('daily digest'), and method ('AI-powered', 'Grok', 'real-time X search'). However, it doesn't explicitly distinguish itself from sibling tools like x_search_tweets or x_summarize_thread, which might also involve AI-powered analysis or summarization of X content.

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 (e.g., for daily summaries vs. real-time searches) or when to prefer other tools like x_search_tweets for specific queries or x_summarize_thread for individual threads. The only implied usage is for daily digests, but this is vague without context on frequency or scope.

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

x_delete_tweetA

Delete one of your tweets. Permanent action.

Args:
    tweet_id: ID of the tweet to delete
ParametersJSON Schema
NameRequiredDescriptionDefault
tweet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/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 'Permanent action,' which hints at irreversibility, but lacks details on permissions required, rate limits, error conditions, or what the output schema might return. This is a significant gap for a destructive operation.

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 action and permanence warning, followed by a brief parameter explanation. Every sentence earns its place without redundancy, making it efficient and easy to scan.

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 complexity as a destructive operation with no annotations, the description is somewhat complete but has gaps. It covers the purpose and parameter semantics adequately, and the presence of an output schema means return values don't need explanation. However, it lacks critical behavioral details like authentication needs or error handling.

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 includes an 'Args' section that explains 'tweet_id: ID of the tweet to delete,' adding meaning beyond the input schema, which has 0% description coverage and only lists 'Tweet Id' as the title. This compensates well for the low schema coverage, though it doesn't elaborate on format or validation.

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 ('Delete one of your tweets') and identifies the resource ('tweet'), with 'Permanent action' emphasizing the nature of the operation. It distinguishes itself from sibling tools like x_like_tweet or x_post_tweet by focusing on deletion rather than creation or interaction.

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, such as whether it applies only to the user's own tweets or if there are prerequisites like authentication. It mentions 'your tweets' but doesn't clarify if this is exclusive or if other tools handle different deletion scenarios.

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

x_dm_inboxA

List all DM conversations — both regular (REST API) and encrypted (XChat GraphQL).

Shows conversation list with participant info, last message preview,
and encryption status. Encrypted conversations are fetched from XChat
and decrypted if private key is available.

Args:
    count: Max conversations to return (default 20)
ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and adds valuable behavioral context: it discloses that encrypted conversations are fetched from XChat and decrypted if a private key is available, and mentions the default count. However, it doesn't cover rate limits, authentication needs, or error handling, leaving some 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 front-loaded with the core purpose, followed by details on encryption and parameters in a structured format. Every sentence adds value without redundancy, making it efficient and easy to parse.

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

Completeness4/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 (handling encrypted DMs), no annotations, and an output schema present, the description is mostly complete: it covers purpose, encryption behavior, and the single parameter. However, it could benefit from mentioning output format or error cases to fully compensate for the lack of annotations.

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 and only one parameter, the description compensates by explaining the 'count' parameter's purpose and default value, adding meaning beyond the bare schema. It doesn't detail constraints or format, but provides sufficient context for basic usage.

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 verb ('List') and resource ('all DM conversations'), distinguishing between regular and encrypted types. It differentiates from sibling tools like 'x_list_dms' by explicitly mentioning encryption handling and XChat integration, providing a precise scope.

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 DM conversations with encryption details, but lacks explicit guidance on when to use this tool versus alternatives like 'x_list_dms' or 'x_message_requests'. No exclusions or prerequisites are mentioned, leaving usage context somewhat vague.

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

x_dm_read_conversationA

Read messages from a DM conversation.

Automatically detects encrypted conversations (IDs starting with 'e')
and uses XChat GraphQL + decryption. Regular conversations use REST API.

Args:
    conversation_id: The conversation ID
    count: Max messages to fetch (default 50)
ParametersJSON Schema
NameRequiredDescriptionDefault
conversation_idYes
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/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 adds useful context about handling encrypted conversations and API selection, but doesn't cover other behavioral aspects such as rate limits, authentication needs, error handling, or pagination. This is a moderate effort but incomplete for a read operation 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?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by implementation details and parameter explanations. Every sentence adds value without redundancy, making it efficient and easy to parse.

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

Completeness4/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, no annotations, and the presence of an output schema, the description is fairly complete. It covers purpose, behavior, and parameters, but could benefit from more explicit usage guidelines or error handling info. The output schema likely handles return values, so this is adequate.

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 input schema: it explains that 'conversation_id' is for a DM conversation and 'count' is the max messages to fetch with a default of 50. Since schema description coverage is 0%, this compensates well, though it could provide more detail on ID formats or count limits.

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: 'Read messages from a DM conversation.' It specifies the resource (DM conversation) and verb (read messages). However, it doesn't explicitly distinguish this tool from sibling tools like 'x_read_dm' or 'x_list_dms', which might have overlapping functionality, so it doesn't reach the highest score.

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 provides some implied usage context by mentioning automatic detection of encrypted vs. regular conversations and the APIs used. However, it lacks explicit guidance on when to use this tool versus alternatives like 'x_read_dm' or 'x_list_dms', and doesn't specify prerequisites or exclusions, leaving room for ambiguity.

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

x_dm_sendB

Send a DM via X's internal API (regular conversations only).

Args:
    conversation_id: The conversation ID to send to
    text: Message text to send
ParametersJSON Schema
NameRequiredDescriptionDefault
conversation_idYes
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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 states it's a send operation via X's API, implying a write/mutation action, but doesn't disclose behavioral traits such as authentication requirements, rate limits, error handling, or what happens on success/failure. The mention of 'regular conversations only' adds some context, but overall, critical behavioral details are missing 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?

The description is front-loaded with the core purpose in the first sentence, followed by a structured 'Args' section. Every sentence earns its place by providing essential information without redundancy. It's appropriately sized for a tool with 2 parameters and no complex annotations.

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 that there's an output schema (which reduces the need to describe return values) and no annotations, the description is moderately complete. It covers the purpose and parameters adequately but lacks behavioral context for a mutation tool, such as side effects or error conditions. The presence of an output schema helps, but more detail on usage and behavior would improve 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?

The description includes an 'Args' section that lists and briefly describes both parameters (conversation_id and text), adding meaning beyond the input schema, which has 0% description coverage. This compensates well for the schema gap, though it doesn't provide detailed semantics like format examples or constraints. With 2 parameters and good coverage in the description, this is above baseline.

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 ('Send a DM') and resource ('via X's internal API'), specifying it's for 'regular conversations only'. It distinguishes from sibling tools like x_dm_inbox or x_list_dms by focusing on sending rather than reading. However, it doesn't explicitly differentiate from x_send_dm, which appears to be a similar tool in the sibling list.

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 by specifying 'regular conversations only', suggesting it shouldn't be used for other conversation types. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like x_send_dm (a sibling tool) or other messaging tools, nor does it mention prerequisites or exclusions beyond the conversation type.

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

x_followersB

List followers for yourself or another user.

Args:
    username: Username or user ID (default: your account)
    count: Number of followers (1-1000, default 50)
ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 states it's a list operation but doesn't disclose behavioral traits such as rate limits, authentication needs, pagination, or what the output looks like. This is inadequate for a tool with potential API constraints.

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 front-loaded with the core purpose, followed by parameter details in a structured format. It's efficient with two sentences and a bullet-like list, though the parameter explanations could be integrated more smoothly.

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, 0% schema coverage, but an output schema exists, the description is partially complete. It covers the purpose and parameters but lacks behavioral context and doesn't leverage the output schema to explain return values, leaving gaps for agent usage.

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%, but the description compensates by explaining both parameters: 'username' (with default behavior) and 'count' (with range and default). It adds meaningful context beyond the bare schema, though it could detail format constraints for 'username'.

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 ('List') and resource ('followers'), specifying it can be for yourself or another user. However, it doesn't explicitly differentiate from sibling tools like 'x_following' or 'x_user_info', which might provide overlapping user-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 Guidelines3/5

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

The description implies usage by mentioning 'yourself or another user,' but provides no explicit guidance on when to use this tool versus alternatives like 'x_user_info' or 'x_following.' It lacks context on prerequisites or exclusions.

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

x_followingB

List accounts you (or another user) follow.

Args:
    username: Username or user ID (default: your account)
    count: Number of accounts (1-1000, default 50)
ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 the tool lists accounts, implying a read-only operation, but lacks details on permissions, rate limits, pagination, or error handling. This is a significant gap for a tool with no annotation coverage, making behavioral traits unclear.

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, followed by concise parameter details in a clear format. Every sentence adds value without redundancy, making it efficient and well-structured for quick understanding.

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 an output schema (which handles return values), the description covers the purpose and parameters adequately. However, with no annotations and moderate complexity (2 parameters), it lacks behavioral context like error cases or performance details, making it minimally complete but with gaps.

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 input schema, which has 0% description coverage. It explains 'username' as 'Username or user ID (default: your account)' and 'count' with a range and default, clarifying usage that the schema alone does not provide. This compensates well for the low 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 the tool's purpose as 'List accounts you (or another user) follow,' which includes a specific verb ('List') and resource ('accounts you follow'). It distinguishes from some siblings like 'x_followers' (which lists followers) but does not explicitly differentiate from others like 'x_user_info' that might provide related user data, keeping it from a perfect score.

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 mentions a default behavior ('your account') but does not specify scenarios, prerequisites, or exclusions compared to siblings like 'x_user_info' or 'x_followers,' leaving usage unclear.

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

x_get_tweetA

Get a specific tweet by ID with full details.

Args:
    tweet_id: The tweet ID to fetch
ParametersJSON Schema
NameRequiredDescriptionDefault
tweet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/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 mentions fetching 'full details' but does not specify what those details include, error handling (e.g., for invalid IDs), authentication requirements, or rate limits. This leaves significant gaps for a tool that likely interacts with an external API.

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 parameter explanation. Every sentence adds value without redundancy, and the structure is efficient for quick understanding.

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 (single parameter) and the presence of an output schema (which likely defines the return structure), the description is minimally adequate. However, it lacks behavioral details like error handling or API constraints, which are important for a read operation with no annotations.

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 explicitly documents the single parameter 'tweet_id' and its purpose ('The tweet ID to fetch'), adding meaningful context beyond the schema, which has 0% description coverage. This fully compensates for the schema's lack of parameter descriptions, making the parameter's role clear.

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') and resource ('a specific tweet by ID with full details'), distinguishing it from siblings like x_search_tweets (which searches) or x_user_tweets (which lists tweets by user). It precisely defines the tool's purpose without redundancy.

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 x_search_tweets or x_user_tweets, nor does it mention prerequisites such as needing a valid tweet ID. It only states what the tool does, leaving usage context implicit.

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

x_home_timelineA

Get your home timeline — tweets from people you follow. Requires OAuth token.

Args:
    count: Number of tweets to fetch (1-100, default 20)
ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the OAuth token requirement, which is a key behavioral trait for authentication. However, it doesn't cover other important aspects like rate limits, pagination behavior, error handling, or the format of returned tweets, leaving gaps in behavioral 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 with two sentences: the first states the purpose and auth requirement, and the second explains the parameter. It's front-loaded with the core functionality, though the parameter details could be slightly more integrated, but overall it's efficient with minimal waste.

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

Completeness4/5

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

Given the tool has an output schema (which likely describes the return values), the description doesn't need to explain outputs. It covers the purpose, auth requirement, and parameter semantics adequately for a read-only tool. However, it could benefit from more behavioral details like rate limits or ordering, but the presence of an output schema reduces the burden.

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 context for the single parameter 'count' by explaining it as 'Number of tweets to fetch' and providing a range (1-100) and default (20), which the input schema only lists as a numeric property with a default. Since schema description coverage is 0%, the description fully compensates by detailing the parameter's purpose and constraints.

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 ('your home timeline — tweets from people you follow'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'x_user_tweets' or 'x_liked_tweets', which might also retrieve tweets but from different sources.

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 by specifying 'tweets from people you follow', which suggests it's for viewing a personalized feed. However, it lacks explicit guidance on when to use this versus alternatives like 'x_user_tweets' (for a specific user's tweets) or 'x_search_tweets' (for keyword-based searches), and doesn't mention any exclusions or prerequisites beyond the OAuth token requirement.

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

x_liked_tweetsB

Get liked tweets for yourself or another user.

Args:
    username: Username or user ID (default: your account)
    count: Number of likes (1-100, default 20)
ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 data ('Get'), implying a read-only operation, but doesn't clarify authentication needs (e.g., whether accessing another user's likes requires permissions), rate limits, pagination, or error handling. For a tool with no annotation coverage, this is a significant gap in transparency about how it behaves 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 purpose clearly, followed by a structured 'Args' section with bullet-like formatting. Every sentence adds value, with no redundant information. However, the formatting could be slightly more polished (e.g., using markdown lists), and it's brief but not overly terse, earning a high score for efficiency.

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 that there is an output schema (which handles return values), no annotations, and low schema description coverage (0%), the description does a decent job by explaining the tool's purpose and parameters. However, it lacks details on behavioral aspects like authentication, rate limits, or error handling, which are important for a tool interacting with an external API like X. This makes it minimally adequate but with clear gaps in 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?

The description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'username' can be a username or user ID with a default to the current account, and 'count' specifies the number of likes with a range (1-100) and default (20). This compensates well for the schema's lack of descriptions, providing clear context for both parameters, though it doesn't cover all possible edge cases (e.g., 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 liked tweets for yourself or another user.' It specifies the verb ('Get') and resource ('liked tweets'), and distinguishes it from siblings like x_like_tweet (which creates likes) and x_user_tweets (which gets user's own tweets). However, it doesn't explicitly differentiate from x_bookmarks (which retrieves saved tweets) or other retrieval tools, keeping it at a 4 rather than a 5.

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 by mentioning 'yourself or another user' and providing default values, suggesting it's for retrieving liked tweets. However, it lacks explicit guidance on when to use this tool versus alternatives like x_user_tweets (for user's tweets) or x_bookmarks (for saved tweets), and doesn't specify prerequisites or exclusions. This leaves usage context somewhat implied but not fully articulated.

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

x_like_tweetB

Like a tweet. Requires OAuth token.

Args:
    tweet_id: ID of the tweet to like
ParametersJSON Schema
NameRequiredDescriptionDefault
tweet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 mentions the OAuth requirement, which is useful, but fails to describe other critical traits such as whether the action is reversible, rate limits, error conditions, or the response format (though an output schema exists). This leaves significant gaps in understanding 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 highly concise and well-structured: the first sentence states the purpose, the second provides a prerequisite, and the third documents the parameter. Every sentence adds value without redundancy, making 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 the tool's moderate complexity (a mutation action with authentication needs), no annotations, and an existing output schema, the description is partially complete. It covers the purpose and parameter but lacks details on behavioral aspects like side effects or error handling. The output schema mitigates some gaps, but overall completeness is only adequate.

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 explicitly documents the single parameter ('tweet_id: ID of the tweet to like'), adding meaning beyond the input schema, which has 0% description coverage. However, it does not provide additional context such as format examples or constraints, so it only partially compensates for the schema's lack of detail.

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 ('Like a tweet') and the resource ('a tweet'), making the purpose immediately understandable. However, it does not explicitly differentiate this tool from sibling tools like 'x_liked_tweets' (which likely lists liked tweets) or 'x_get_tweet' (which retrieves tweet details), missing an opportunity for full sibling distinction.

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 includes a prerequisite ('Requires OAuth token'), which provides some context for when authentication is needed. However, it offers no guidance on when to use this tool versus alternatives (e.g., when to like vs. bookmark or delete a tweet) or any exclusions, leaving usage decisions ambiguous.

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

x_list_dmsA

List your actual DM conversations (where you've replied). Filters out unanswered message requests.

Args:
    count: Number of DM events to scan (1-100, default 50). Higher = more conversations found.
ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/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 discloses that the tool filters out unanswered message requests and scans DM events, which adds useful context. However, it lacks details on permissions, rate limits, or response format, leaving behavioral gaps for a tool with no annotation coverage.

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 parameter explanation. Every sentence adds value without redundancy, making it efficiently structured and appropriately sized.

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

Completeness4/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 (1 parameter, no annotations, but with an output schema), the description is mostly complete. It covers purpose, usage context, and parameter semantics well. However, with no annotations, it could benefit from more behavioral details like response format hints, though the output schema mitigates this gap.

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, the description fully compensates by explaining the 'count' parameter's semantics: it defines the number of DM events to scan, specifies the range (1-100), default (50), and clarifies that higher values yield more conversations. This adds significant meaning beyond the basic schema.

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 ('List your actual DM conversations') and distinguishes it from siblings by specifying it filters out unanswered message requests, unlike 'x_dm_inbox' or 'x_message_requests'. It uses a precise verb ('List') and resource ('DM conversations').

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 provides clear context by stating it filters out unanswered message requests, implying when to use this tool (for replied conversations) versus alternatives like 'x_message_requests'. However, it does not explicitly name alternatives or state when not to use it, keeping it at a 4.

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

x_message_requestsB

List pending DM message requests — messages from people you haven't replied to.

Args:
    count: Number of DM events to scan (1-100, default 50).
ParametersJSON Schema
NameRequiredDescriptionDefault
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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 describes the tool as listing pending DM requests, which implies a read-only operation, but doesn't disclose behavioral traits such as whether it marks messages as read, requires authentication, has rate limits, or what the output format is. The description adds minimal context beyond the basic purpose.

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 appropriately sized and front-loaded: the first sentence states the purpose clearly, and the second sentence explains the parameter concisely. There is no wasted text, and the structure efficiently conveys essential information in two sentences.

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 an output schema (which handles return values), 1 parameter with good description coverage, and no annotations, the description is moderately complete. It covers purpose and parameter semantics but lacks behavioral details like authentication needs or rate limits. For a read operation with output schema, it's adequate but could be more informative about operational context.

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 meaning for the single parameter 'count' by explaining it as 'Number of DM events to scan (1-100, default 50).' This clarifies the parameter's role and constraints beyond the schema, which only provides type and default. With 0% schema description coverage and 1 parameter, the description compensates well, though it doesn't detail what 'scan' entails.

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: 'List pending DM message requests — messages from people you haven't replied to.' It specifies the verb ('list') and resource ('pending DM message requests'), and distinguishes it from siblings like x_dm_inbox or x_list_dms by focusing on unread/unreplied messages. However, it doesn't explicitly differentiate from x_read_dm or x_dm_read_conversation, which might also involve DM interactions.

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 context by specifying 'pending DM message requests — messages from people you haven't replied to,' suggesting it's for reviewing unreplied DMs. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like x_dm_inbox (which might list all DMs) or x_read_dm (which might mark as read). No exclusions or prerequisites are mentioned.

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

x_post_tweetA

Post a new tweet. Requires OAuth token with tweet.write scope.

Args:
    text: Tweet text (max 280 characters)
    reply_to: Optional tweet ID to reply to
ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
reply_toNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/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 adds value by specifying the authentication requirement (OAuth token with tweet.write scope) and the character limit (max 280 characters), which aren't in the schema. However, it doesn't cover other important behaviors like rate limits, error conditions, or what happens on success (e.g., returns tweet ID), leaving gaps 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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by authentication requirements, then parameter details in a clear bullet-like format. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.

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

Completeness4/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 (a write operation with 2 parameters), no annotations, and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the main action, authentication, and parameter semantics. However, it could be more complete by mentioning potential side effects (e.g., tweet visibility) or linking to sibling tools for context, keeping it from a perfect score.

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 beyond the schema by explaining that 'text' is tweet text with a max of 280 characters and 'reply_to' is an optional tweet ID to reply to. This clarifies the purpose and constraints of both parameters effectively, though it doesn't cover all possible edge cases (e.g., format of tweet ID).

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 ('Post') and resource ('a new tweet'), making the purpose immediately understandable. It distinguishes from siblings like x_delete_tweet or x_get_tweet by specifying creation rather than deletion or retrieval. However, it doesn't explicitly differentiate from similar tools like x_send_dm (which also posts content), 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 Guidelines3/5

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

The description provides some usage context by mentioning the required OAuth token and scope, which implies when authentication is needed. However, it lacks explicit guidance on when to use this tool versus alternatives like x_send_dm for direct messages or x_reply_to_tweet (if it existed), and doesn't specify prerequisites beyond authentication. This leaves room for ambiguity in tool selection.

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

x_read_dmB

Read messages from a specific DM conversation.

Args:
    conversation_id: The DM conversation ID
    count: Number of messages (1-100, default 20)
ParametersJSON Schema
NameRequiredDescriptionDefault
conversation_idYes
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 states the tool reads messages, implying a read-only operation, but does not cover aspects like authentication needs, rate limits, pagination, error handling, or what the output contains. This is a significant gap for a tool with no annotation coverage.

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, starting with the core purpose followed by parameter details. It uses two sentences efficiently, with no wasted words, though the structure could be slightly improved by integrating parameter explanations more seamlessly.

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 that there is an output schema (which reduces the need to explain return values), no annotations, and low schema coverage, the description is partially complete. It covers the basic purpose and parameters but lacks behavioral context and usage guidelines, making it adequate but with clear gaps for a read operation 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 description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'conversation_id' is for a specific DM conversation and 'count' specifies the number of messages with a range and default, clarifying usage that the schema alone does not provide. With 2 parameters, this compensates well for the low 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 the tool's purpose as 'Read messages from a specific DM conversation,' which includes a specific verb ('Read') and resource ('DM conversation'). It distinguishes from some siblings like x_dm_send or x_delete_tweet but not explicitly from x_dm_inbox or x_list_dms, which may also involve DM-related operations, so it lacks full 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. It does not mention when to choose this over siblings like x_dm_inbox or x_list_dms, nor does it specify prerequisites or exclusions, leaving usage context implied at best.

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

x_search_tweetsA

Search recent tweets (last 7 days). Supports X search operators.

Args:
    query: Search query. Supports operators like 'from:user', 'has:links', '#hashtag', '-filter:retweets'
    count: Number of results (10-100, default 20)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the time constraint ('last 7 days') and search operator support, which are useful behavioral traits. However, it doesn't mention rate limits, authentication needs, pagination, or what the output contains (though an output schema exists), leaving some gaps in behavioral context.

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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by a concise 'Args' section with clear bullet points. Every sentence adds value without redundancy, making it efficient and well-structured.

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

Completeness4/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 (search with parameters), no annotations, and an existing output schema, the description is mostly complete. It covers purpose, usage context, and parameter details well. However, it lacks explicit guidance on when to use alternatives and some behavioral aspects like rate limits, leaving minor gaps.

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 adds significant meaning beyond the schema: it explains that 'query' supports operators like 'from:user' and provides examples, and specifies that 'count' has a range (10-100) and default (20), which the schema only partially covers with a default value. 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.

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 recent tweets') with resource scope ('last 7 days'), distinguishing it from siblings like x_user_tweets (user-specific) or x_home_timeline (personal feed). It provides a verb+resource combination that 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 Guidelines4/5

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

The description provides clear context ('last 7 days') and mentions support for X search operators, which helps differentiate from tools like x_get_tweet (single tweet) or x_user_tweets (user-specific). However, it doesn't explicitly state when NOT to use it or name specific alternatives, missing full explicit guidance.

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

x_send_dmA

Send a direct message to a user. Requires OAuth with dm.write scope.

Args:
    user_id: The recipient's user ID
    text: Message text
ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/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 successfully indicates this is a write operation ('Send') and specifies authentication requirements ('Requires OAuth with dm.write scope'), which are crucial behavioral traits. However, it doesn't mention other important aspects like rate limits, message length constraints, or what happens if the user_id is invalid.

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 with a clear purpose statement upfront, followed by authentication requirements, then parameter explanations. Every sentence earns its place - the first establishes what the tool does, the second provides critical usage context, and the parameter section adds necessary clarification. No wasted words.

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

Completeness4/5

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

Given this is a write operation with no annotations but with an output schema (which handles return values), the description provides good coverage of the essential aspects: purpose, authentication requirements, and parameter semantics. It could be more complete by mentioning behavioral constraints like message length limits or error conditions, but covers the core functionality adequately.

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 context for both parameters beyond the schema's 0% coverage. It explains that 'user_id' represents 'The recipient's user ID' and 'text' represents 'Message text,' providing essential semantic understanding that the schema alone (with just titles 'User Id' and 'Text') doesn't convey. This compensates well for the low schema coverage.

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 ('Send a direct message') and resource ('to a user'), distinguishing it from sibling tools like x_dm_inbox, x_list_dms, or x_read_dm which handle reading DMs rather than sending them. 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 Guidelines4/5

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

The description provides clear context by stating 'Requires OAuth with dm.write scope,' which indicates when this tool can be used (when proper authentication is available). However, it doesn't explicitly mention when NOT to use it or name alternatives like x_post_tweet for public messages, leaving some room for improvement in sibling differentiation.

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

x_summarize_threadB

Use Grok to find and summarize a tweet thread. Provides key points and analysis.

Args:
    tweet_id: ID of the first tweet in the thread (or any tweet in it)
ParametersJSON Schema
NameRequiredDescriptionDefault
tweet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 using 'Grok' (implying an external service or AI model) and that it 'Provides key points and analysis,' but lacks details on rate limits, authentication needs, error handling, or what 'find' entails (e.g., does it crawl replies?). For a tool with no annotations, this is insufficient to fully understand its 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 appropriately sized and front-loaded. The first sentence states the core purpose, and the second provides essential parameter details in a clear 'Args:' section. Every sentence earns its place with no redundant or vague language, making it efficient for an agent to parse.

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 (summarization with an external service), no annotations, and an output schema (which covers return values), the description is partially complete. It explains the purpose and parameter semantics well but lacks behavioral context like error cases or limitations. With an output schema, it doesn't need to detail return values, but other gaps keep it at a baseline adequacy.

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 input schema. The schema has 1 parameter (tweet_id) with 0% description coverage, only providing a title. The description explains that tweet_id is 'ID of the first tweet in the thread (or any tweet in it),' clarifying its role and flexibility. This compensates well for the low schema coverage, though it doesn't detail format constraints (e.g., numeric vs. string).

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: 'Use Grok to find and summarize a tweet thread. Provides key points and analysis.' It specifies the verb ('find and summarize'), resource ('tweet thread'), and method ('Use Grok'), but doesn't explicitly differentiate from sibling tools like x_get_tweet or x_search_tweets, which might also retrieve tweet content. The mention of 'key points and analysis' adds specificity beyond basic retrieval.

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 minimal guidance on when to use this tool. It states the tool summarizes a tweet thread given a tweet ID, but doesn't specify when to choose it over alternatives like x_get_tweet (for single tweets) or x_search_tweets (for broader searches). No exclusions or prerequisites are mentioned, leaving the agent to infer usage from the purpose alone.

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

x_user_infoB

Get detailed profile info for a user.

Args:
    username: X username (without @) or user ID
ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 this is a 'Get' operation, implying read-only behavior, but doesn't address important aspects like authentication requirements, rate limits, error conditions, or what 'detailed profile info' specifically includes. This leaves significant gaps for an agent to understand how to use it effectively.

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 concise with two sentences: one stating the purpose and another explaining the parameter. It's front-loaded with the core functionality, though the parameter explanation could be slightly more integrated rather than appearing as a separate 'Args' section.

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 an output schema (which should document return values), the description doesn't need to explain outputs. However, for a read operation with no annotations and 0% schema description coverage, it should provide more behavioral context about authentication, rate limits, or error handling to be fully complete.

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 context for the single parameter by explaining that 'username' can be either 'X username (without @) or user ID'. This clarifies the parameter's purpose beyond what the schema provides (which has 0% description coverage and only shows a string type), though it doesn't elaborate on format constraints or examples.

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 'detailed profile info for a user', making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like x_followers or x_user_tweets, which also retrieve user-related information but focus on different aspects.

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 to choose x_user_info over tools like x_followers (for follower lists) or x_user_tweets (for user's tweets), nor does it specify any prerequisites or exclusions for usage.

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

x_user_tweetsB

Get recent tweets from a specific user.

Args:
    username: X username (without @) or user ID
    count: Number of tweets (1-100, default 20)
ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 mentions 'recent tweets' but doesn't specify what 'recent' means (e.g., time range, pagination), whether it includes retweets or replies, or any rate limits or authentication requirements. This leaves significant gaps in understanding 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 sized and front-loaded, with the core purpose stated first followed by parameter details. It avoids unnecessary fluff, but the parameter explanations could be slightly more integrated into the flow rather than listed as 'Args:'.

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 (2 parameters, no annotations, but has an output schema), the description is partially complete. It covers the basic purpose and parameters but lacks behavioral details like response format, error cases, or usage context. The presence of an output schema mitigates some gaps, but more guidance is needed for 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?

The description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'username' is an 'X username (without @) or user ID' and 'count' is the 'Number of tweets (1-100, default 20)', providing crucial context that the schema lacks. However, it doesn't detail error handling or constraints beyond the count range.

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 'Get recent tweets from a specific user', specifying the verb ('Get') and resource ('recent tweets from a specific user'). However, it doesn't explicitly differentiate from siblings like x_home_timeline (general timeline) or x_search_tweets (keyword-based), leaving some ambiguity about its unique 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 is provided on when to use this tool versus alternatives. For example, it doesn't mention when to choose x_user_tweets over x_home_timeline for user-specific content or x_search_tweets for broader queries, nor does it specify prerequisites like authentication needs or rate limits.

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

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have distinct purposes with clear boundaries, such as x_analyze_account for account analysis and x_post_tweet for tweeting. However, there is some overlap between x_dm_inbox and x_list_dms (both list DM conversations) and between x_dm_send and x_send_dm (both send DMs), which could cause minor confusion for an agent.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a clear 'x_' prefix, and most use descriptive verb_noun combinations (e.g., x_analyze_account, x_search_tweets). The naming is highly predictable and uniform across all 23 tools.

Tool Count3/5

With 23 tools, the count is on the higher side for a Twitter/X-focused server, bordering on heavy. While it covers many aspects of the platform, it might feel overwhelming or slightly over-scoped compared to more streamlined servers, but it's not extreme.

Completeness5/5

The tool set provides comprehensive coverage for the Twitter/X domain, including account analysis, tweeting (post, delete, like), DMs (send, read, manage), user info, timelines, search, and advanced features like summarization and digests. There are no obvious gaps, and it supports full CRUD-like operations for tweets and DMs.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/olivier-motium/x-ai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server