XMCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@XMCPSearch for recent tweets about AI and summarize the top discussions."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
XMCP
The most comprehensive MCP server for X/Twitter with permission-based access control, 70+ tools, and Playwright-powered article fetching.
Highlights
70+ tools across research, engagement, publishing, social, lists, DMs
Permission profiles with runtime enforcement
Playwright-powered article fetching for X articles
Full engagement metrics and thread support
Broad MCP client compatibility
Related MCP server: tweetly
Quick Start
1. Install
pip install "xmcp[articles] @ git+https://github.com/vibeforge1111/xmcp.git"
python -m playwright install chromiumNote: The package name is xmcp and the server command is xmcp-server.
2. Get API Keys (Required)
XMCP requires X/Twitter API credentials to run. If you see errors about missing API keys, follow this quick guide:
Go to https://developer.twitter.com and sign in.
Create a Project and App (or open an existing one).
In the App Keys and Tokens tab, generate:
API Key and API Secret
Access Token and Access Token Secret
Bearer Token
Copy
.env.exampleto.envand paste your keys.
Common error messages and fixes:
"Missing required environment variable" -> add the missing key to
.envor your MCP config."403 Forbidden" / "Error 453" -> your X API access tier does not include that endpoint.
Get your credentials from developer.twitter.com:
API Key & Secret
Access Token & Secret
Bearer Token
You can store them in a local .env file:
# Windows (PowerShell)
copy .env.example .env
# macOS/Linux
cp .env.example .envDo not commit .env. It is ignored by default.
3. Configure
Add to your Claude settings (~/.claude.json):
{
"mcpServers": {
"xmcp": {
"type": "stdio",
"command": "xmcp-server",
"env": {
"TWITTER_API_KEY": "your_key",
"TWITTER_API_SECRET": "your_secret",
"TWITTER_ACCESS_TOKEN": "your_token",
"TWITTER_ACCESS_TOKEN_SECRET": "your_token_secret",
"TWITTER_BEARER_TOKEN": "your_bearer",
"X_MCP_PROFILE": "researcher"
}
}
}
}If you name the server xmcp, tools will appear as mcp__xmcp__* in clients that show tool prefixes.
4. Use
"Search for tweets about AI" -> search_twitter
"Read this article: x.com/..." -> get_article (Playwright)
"Post: Hello world!" -> post_tweet (requires creator profile)Permission Profiles
Choose what capabilities to enable:
Profile | Tools | Use Case |
researcher | 23 | Monitoring, analysis, research (read-only) |
creator | 41 | Content creation, audience engagement |
manager | 55 | Full account management |
automation | 70 | Bots, full automation (including DMs) |
custom | varies | Pick exactly what you need |
Setting a Profile
"env": {
"X_MCP_PROFILE": "creator"
}Permissions are evaluated at runtime. You can switch profiles or groups without restarting the server.
Custom Profile
"env": {
"X_MCP_PROFILE": "custom",
"X_MCP_GROUPS": "research,engage,publish"
}Tool Groups
research (18 tools) - Read-only, safe
Search, user lookup, tweet details, timelines, trends, article fetching
engage (9 tools) - Low risk
Like, unlike, bookmark, retweet, unretweet
publish (7 tools) - Medium risk
Post tweet, delete, quote, create thread, polls
social (8 tools) - Medium-high risk
Follow, unfollow, block, unblock, mute, unmute
conversations (5 tools) - Safe
Get full threads, replies, quote tweets, hide/unhide replies
lists (14 tools) - Low risk
Create, delete, manage lists and members
dms (3 tools) - High risk
Send and read direct messages
account (1 tool) - High risk
Get authenticated user profile
Key Tools
Search & Discovery
Tool | Description |
| Search with full engagement metrics |
| Find tweets containing X articles |
| Worldwide trending topics |
| Fetch article content (Playwright) |
User & Tweet Info
Tool | Description |
| User by @handle |
| User by ID with metrics |
| Full tweet info |
| Complete thread |
| Replies to a tweet |
Engagement
Tool | Description |
| Like |
| Retweet |
| Bookmark |
| Quote with comment |
Publishing
Tool | Description |
| Post with media, tags, reply |
| Post multiple tweets as thread |
| Create a poll |
Social
Tool | Description |
| Follow management |
| Block management |
| Mute management |
Human-In-The-Loop Advisory
This MCP is designed to improve research and workflows, not to replace human judgment.
Publishing tools return an advisory field that recommends a human review for posts and replies.
Real-Time Use Cases (No Extra Telemetry)
You can drive real-time workflows by polling tools on a schedule from your client or a cron job. Common patterns:
Trend snapshots every hour using
get_trendsKeyword monitoring using
search_twitterArticle tracking using
search_articles+get_article
This keeps the server simple while still enabling real-time visibility.
Article Fetching
X articles require JavaScript to render. This MCP uses Playwright.
# Correct - uses Playwright internally
result = await get_article("https://x.com/user/status/123")
# Returns: {title, author, content, url}
# WRONG - will fail
WebFetch("https://x.com/...") # Returns empty contentSetup
pip install playwright
python -m playwright install chromiumConfiguration Reference
Environment Variables
Variable | Description | Default |
| Permission profile |
|
| Groups for custom profile |
|
| Tools to disable | none |
| Tools to force-enable | none |
Credentials are read locally and only used to authenticate requests to X/Twitter.
Examples
Research only (safest):
"X_MCP_PROFILE": "researcher"Content creator:
"X_MCP_PROFILE": "creator"Custom - research + likes only:
"X_MCP_PROFILE": "custom",
"X_MCP_GROUPS": "research,engage",
"X_MCP_DISABLED_TOOLS": "retweet,unretweet"Runtime Permissions
Permissions are evaluated at runtime. This means you can:
Switch profiles or groups without restarting the server
Use different profiles per request in HTTP mode
Error Responses
Errors return a consistent envelope:
{
"ok": false,
"error": {
"type": "rate_limit_exceeded",
"message": "Rate limit exceeded",
"status": 429,
"details": {
"action_type": "tweet_actions",
"retry_after_seconds": 10
}
},
"tool": "post_tweet",
"timestamp": "2026-02-03T12:00:00+00:00"
}Rate Limits
Built-in protection:
Action | Limit | Window |
Tweets | 300 | 15 min |
Likes | 1000 | 24 hours |
Follows | 400 | 24 hours |
DMs | 1000 | 15 min |
Note: These limits are local guardrails, not official Twitter API limits.
Limitations
get_user_followers_you_knowandget_highlights_tweetsare simulated with available API datavote_on_pollreturnsnot_supportedbecause the API does not support programmatic votingArticle fetching requires Playwright and a Chromium install
Compatible Clients
Works with all major MCP clients. See COMPATIBILITY.md for full setup guides.
Client | Config Location | Status |
Claude Desktop |
| Native |
Claude Code |
| Native |
Cursor |
| Native |
Cline |
| Native |
Windsurf |
| Native |
Continue.dev |
| Native |
OpenClaw |
| Native |
Zed |
| Native |
ChatGPT Desktop |
| Native |
Sourcegraph Cody | OpenCTX | Native |
Firebase Genkit | genkitx-mcp plugin | Plugin |
Taal |
| Sync |
VS Code + OpenMCP | Extension settings | Plugin |
Ollama + Continue | Continue config | Native |
Pre-made Config Files
Ready-to-use configs in configs/ directory:
configs/
|-- continue.yaml # Continue.dev (YAML)
|-- continue.json # Continue.dev (JSON)
|-- openclaw-skill.yaml # OpenClaw skill
|-- zed-settings.json # Zed editor
|-- chatgpt-mcp.json # ChatGPT Desktop
|-- taal.yaml # Taal cross-client sync
|-- sourcegraph-openctx.json # Sourcegraph Cody
|-- genkit-plugin.ts # Firebase Genkit
`-- vscode-openmcp.json # VS Code OpenMCPFor AI Agents
This package includes rules files for AI code editors:
File | Editor |
| Cursor |
| Cline |
| Windsurf |
| Claude Code |
| Any LLM (copy to prompt) |
| Comprehensive rules |
Key rule: Use get_article for X URLs, not WebFetch.
HTTP Server Mode
For cloud deployments:
xmcp-http # Runs on port 8081
PORT=8080 xmcp-http # Custom portInstallation Options
From GitHub (recommended)
pip install "xmcp[articles] @ git+https://github.com/vibeforge1111/xmcp.git"From PyPI (when published)
pip install xmcp[articles]From Source
git clone https://github.com/vibeforge1111/xmcp.git
cd xmcp
pip install -e .[articles]
python -m playwright install chromiumDocumentation
Document | Description |
This file - full documentation | |
5-minute setup guide | |
Instructions for AI agents | |
Context block for LLM prompts | |
Rules for all AI editors |
Credits
Built on the upstream project by Rafal Janicki:
https://github.com/rafaljanicki/x-twitter-mcp-server
Update Log
See CHANGELOG.md for a summary of enhancements made in XMCP.
Enhanced by VibeShip with:
Permission-based access control (5 profiles, 8 groups)
70+ tools (vs ~20 original)
Playwright article fetching
Thread creation and reading
Full Lists, DMs, Social actions
Comprehensive engagement metrics
AI agent documentation
License
MIT License - see LICENSE
Available Tools
63 toolsadd_list_memberC
Add a user to a list
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ||
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. 'Add a user to a list' implies a mutation operation, but it doesn't specify whether this requires authentication, what permissions are needed, if there are rate limits, or what happens on success/failure (e.g., duplicate adds). For a write tool with zero annotation coverage, this leaves critical behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action without unnecessary words. Every word ('Add', 'user', 'list') directly contributes to understanding the tool's purpose, making it optimally concise for such a straightforward operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) and the presence of an output schema (which should cover return values), the description is minimally adequate. However, with no annotations and low schema coverage, it lacks details on permissions, error handling, and parameter semantics, making it incomplete for safe and effective use without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, with parameters 'list_id' and 'user_id' undocumented in the schema. The description adds no semantic information about these parameters—it doesn't clarify what format they expect (e.g., numeric IDs, strings), where to obtain them, or if they reference specific resources. With low schema coverage and no compensation in the description, this falls short of the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add a user to a list' clearly states the action (add) and resource (user to list), making the purpose immediately understandable. It distinguishes this from sibling tools like 'remove_list_member' or 'get_list_members' by specifying the additive operation. However, it doesn't explicitly differentiate from other user-list operations like 'follow_list' or contextually similar 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing list ownership or permissions), compare it to 'follow_list' (which might have different semantics), or indicate when 'remove_list_member' would be more appropriate. Without such context, agents must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_userC
Block a user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Block a user' implies a destructive/mutative action but doesn't specify permissions required, whether it's reversible (though 'unblock_user' exists as sibling), rate limits, or what the output contains. It lacks critical context for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three words, front-loading the core action with zero wasted text. Every word earns its place, though this conciseness comes at the cost of completeness in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive user management tool with no annotations, 0% schema coverage, but with an output schema, the description is inadequate. It doesn't explain the mutation's impact, prerequisites, or output structure, leaving significant gaps despite the output schema potentially covering return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 doesn't mention the 'user_id' parameter at all, providing no semantic context beyond what the bare schema shows. However, with only one parameter, the baseline is higher; the description at least implies a user target, aligning with the parameter's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Block a user' clearly states the action (block) and target (user), making the purpose immediately understandable. It distinguishes from obvious siblings like 'mute_user' by specifying blocking rather than muting, though it doesn't explicitly differentiate from 'unblock_user' beyond the verb direction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 blocking is appropriate versus muting, hiding, or other user management actions, nor does it reference the sibling 'unblock_user' for reversal. Usage context is entirely implied from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bookmark_tweetB
Add a tweet to bookmarks
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Add') but doesn't describe any behavioral traits such as authentication requirements, rate limits, whether the operation is idempotent, or what happens on success/failure. This is a significant gap for a mutation tool with zero annotation coverage, though it doesn't contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Add a tweet to bookmarks') that front-loads the core action and resource with zero wasted words. Every part of the sentence directly contributes to understanding the tool's purpose, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter) and the presence of an output schema (which reduces the need to describe return values), the description is minimally adequate. However, with no annotations and incomplete parameter details, it lacks behavioral context and usage guidelines, making it insufficient for optimal agent operation but passable for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description implies a single parameter (tweet_id) by referencing 'a tweet', which aligns with the input schema's one required parameter. Since schema description coverage is 0%, the description adds meaningful context by specifying what the parameter represents, compensating for the lack of schema documentation. However, it doesn't detail the format or constraints of tweet_id, preventing a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add a tweet to bookmarks' clearly states the action (add) and resource (tweet to bookmarks), making the purpose immediately understandable. It distinguishes from siblings like delete_bookmark or get_bookmarks by specifying creation rather than removal or retrieval. However, it doesn't explicitly differentiate from all sibling tools (e.g., favorite_tweet might be conceptually similar), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication needs), when not to use it (e.g., for temporary saving vs. bookmarking), or direct alternatives like favorite_tweet for similar actions. This lack of context leaves the agent to infer usage based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_listC
Create a new list
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| private | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Create a new list' implies a write/mutation operation, but it doesn't disclose behavioral traits like required permissions, rate limits, whether the list is immediately visible, or what happens on duplicate names. This leaves significant gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just three words, front-loaded with the core action. There's no wasted verbiage or unnecessary elaboration, making it efficient in structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations, 0% schema coverage, and three parameters, the description is incomplete. While an output schema exists (which helps), the description lacks essential context about behavior, parameters, and usage compared to siblings like 'update_list'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for undocumented parameters. It mentions no parameters at all, failing to explain what 'name', 'description', or 'private' mean in context. This leaves three parameters without semantic clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool creates a new list, which is a clear verb+resource combination. However, it doesn't differentiate from sibling tools like 'update_list' or specify what type of list (e.g., Twitter list) is being created, making it somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'update_list' or 'get_user_lists'. There's no mention of prerequisites, constraints, or typical use cases for list creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_poll_tweetC
Create a tweet with a poll
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| choices | Yes | ||
| duration_minutes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Create') which implies a write operation, but doesn't mention authentication needs, rate limits, response format, or potential side effects. This leaves significant gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, front-loading the core functionality with zero wasted words. Every element ('Create', 'tweet', 'poll') earns its place, making it efficient though potentially under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with 3 parameters, 0% schema coverage, no annotations, but an output schema exists, the description is minimally adequate. The output schema reduces the need to explain return values, but the description lacks crucial context about parameters, behavior, and usage compared to siblings like 'post_tweet'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for undocumented parameters. It mentions 'a poll' which hints at 'choices' and possibly 'duration_minutes', but doesn't explain what these parameters mean, their formats, or constraints. The description adds minimal value beyond the schema's structural information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('a tweet with a poll'), making the purpose specific and understandable. It distinguishes from sibling tools like 'post_tweet' by specifying the poll feature, though it doesn't explicitly contrast with other tweet-creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'post_tweet' or 'quote_tweet'. It lacks context about prerequisites, constraints, or typical use cases, offering only a basic functional statement without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_threadC
Post a thread of multiple tweets
| Name | Required | Description | Default |
|---|---|---|---|
| tweets | Yes | ||
| media_paths_per_tweet | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Post' implies a write/mutation operation, the description doesn't disclose authentication requirements, rate limits, whether the thread is published immediately, error conditions, or what happens if media attachments fail. This is inadequate for a mutation tool with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for the tool's apparent complexity and front-loads the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 2 parameters and no annotations, the description is insufficiently complete. While an output schema exists (which reduces the need to describe return values), the description doesn't address authentication needs, error conditions, or parameter semantics. It provides basic purpose but lacks operational context needed for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for both parameters, the description provides no information about parameter meanings, formats, or constraints. It doesn't explain what 'tweets' array should contain, what 'media_paths_per_tweet' represents, or how these parameters interact. The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Post') and resource ('a thread of multiple tweets'), making the purpose immediately understandable. It distinguishes from sibling 'post_tweet' by specifying multiple tweets in a thread. However, it doesn't fully differentiate from 'quote_tweet' which also involves multiple tweets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'post_tweet' for single tweets or 'quote_tweet' for quoting existing tweets. There's no mention of prerequisites, constraints, or typical use cases for thread creation versus other posting methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_all_bookmarksB
Delete all bookmarks
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Delete all bookmarks' implies a destructive, irreversible mutation, but it doesn't disclose critical behavioral traits like whether this requires special permissions, confirmation steps, rate limits, or what happens on success/failure. For a destructive tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—'Delete all bookmarks' is front-loaded and perfectly concise for a tool with no parameters. Every word earns its place by clearly stating the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, lack of annotations, and presence of an output schema (which might handle return values), the description is incomplete. It fails to address safety concerns, usage context, or behavioral expectations, making it inadequate for a mutation tool that could have significant side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter semantics, but with no parameters, the baseline is 4 as it adequately handles the empty parameter case without introducing confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Delete') and resource ('all bookmarks'), making the purpose unambiguous. However, it doesn't distinguish this tool from its sibling 'delete_bookmark' (which likely deletes individual bookmarks), missing an opportunity for sibling differentiation that would warrant a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Given the sibling tool 'delete_bookmark', it's unclear whether this tool is for bulk operations, irreversible actions, or specific contexts. 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.
delete_bookmarkC
Remove a tweet from bookmarks
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action is to 'Remove,' implying a destructive mutation, but lacks details on permissions required, whether the operation is reversible, rate limits, or what happens on success/failure. The output schema exists but isn't described, leaving 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words, making it highly efficient and front-loaded. It immediately conveys the core action without unnecessary elaboration, which is appropriate for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and 0% schema coverage, the description is minimal but covers the basic action. The existence of an output schema reduces the need to explain return values, but the lack of parameter details and behavioral context leaves gaps. It's adequate as a bare minimum but lacks depth for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the single parameter 'tweet_id' is undocumented in the schema. The description adds no information about this parameter—no explanation of what 'tweet_id' represents, its format, or where to obtain it. This fails to compensate for the schema gap, leaving the parameter's meaning ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and target resource ('a tweet from bookmarks'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'delete_all_bookmarks' or 'delete_tweet', but the specificity of 'from bookmarks' provides some implicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'delete_all_bookmarks' for bulk removal or 'unfavorite_tweet' for similar tweet interactions. It mentions neither prerequisites (e.g., needing an existing bookmark) nor contextual constraints, leaving usage entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_listD
Delete a list
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but fails to disclose behavioral traits. It doesn't indicate if deletion is permanent, requires authentication, affects associated data (e.g., members or tweets), or has rate limits. 'Delete' implies a destructive mutation, but no details are given, leaving the agent uninformed about risks or outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, 'Delete a list,' which is front-loaded and wastes no words. It directly states the core function without unnecessary elaboration, making it efficient in structure despite its content shortcomings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature (implied by 'delete'), no annotations, and 0% schema coverage, the description is incomplete. It lacks critical context like permissions, irreversibility, or side effects. While an output schema exists, the description doesn't address behavioral aspects needed for safe and effective use in a complex Twitter API environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter information beyond what's implied by the name. It doesn't explain the 'list_id' parameter (e.g., format, source, or validation), leaving it undocumented. For a tool with one required parameter, this is inadequate compensation for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a list' restates the tool name 'delete_list' with minimal elaboration, making it tautological. It specifies the action (delete) and resource (list) but lacks detail on scope or effect, such as whether it's permanent or affects list members. Compared to siblings like 'create_list' or 'update_list', it doesn't differentiate beyond the obvious verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., needing list ownership), exclusions (e.g., cannot delete pinned lists), or related tools like 'remove_list_member' for partial removal. The description offers no context for decision-making in a server with many list-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tweetB
Delete a tweet by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing critical behavioral traits. It doesn't mention that deletion is destructive/irreversible, requires specific permissions, has rate limits, or what the output might indicate (success/failure). This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just five words, front-loading the key action and resource. Every word earns its place, and there's no wasted verbiage or redundancy, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a destructive mutation with no annotations) and the presence of an output schema (which likely handles return values), the description is incomplete. It covers the basic purpose but lacks usage guidelines, behavioral transparency, and parameter details needed for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, but the description adds minimal semantic context by specifying that the parameter is 'tweet_id' for deletion. However, it doesn't explain the ID format (e.g., numeric string), validation rules, or examples. With only one parameter, the baseline is higher, but the description doesn't fully compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a tweet by its ID'), making the purpose immediately understandable. However, it doesn't distinguish this tool from potential sibling tools like 'delete_bookmark' or 'delete_list' beyond the resource type, which is why it doesn't reach 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing authorization to delete tweets), exclusions (e.g., can't delete others' tweets), or related tools like 'unretweet' or 'unfavorite_tweet' that might be confused with deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
favorite_tweetC
Like a tweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Like a tweet' implies a write operation that modifies tweet state, but it does not disclose behavioral traits such as authentication requirements, rate limits, idempotency, or effects (e.g., notifications to the tweet author). This is a significant gap for a mutation tool with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—'Like a tweet' is front-loaded and directly conveys the core action. It earns its place by being maximally concise while stating the purpose, though it lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and an output schema (which handles return values), the description is minimally complete for a simple action tool. However, with no annotations and a mutation operation, it should ideally include more behavioral context (e.g., side effects, errors). The output schema mitigates some gaps, but overall completeness is adequate with clear room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the 'tweet_id' parameter at all. However, with only one parameter, the agent can infer it from context, and the schema defines it as a required string. The baseline is 3 because the schema provides minimal but adequate structure, though the description adds no semantic value beyond the action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Like a tweet' states the basic action (verb 'like') and resource ('a tweet'), making the purpose clear. However, it does not differentiate from sibling tools like 'bookmark_tweet' or 'retweet', which also involve tweet interactions, nor does it specify that 'favorite' is synonymous with 'like' in Twitter's context, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisites (e.g., authentication, tweet accessibility), exclusions (e.g., cannot like own tweet if restricted), or compare to siblings like 'unfavorite_tweet' for reversal, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follow_listC
Follow a list
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'Follow a list' implies a write/mutation operation (changing follow state), but the description doesn't mention authentication requirements, rate limits, side effects (e.g., notifications), error conditions, or what happens on success. For a mutation tool with zero annotation coverage, this represents a complete lack of behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, with no wasted language. However, this brevity comes at the cost of being under-specified rather than efficiently informative. While front-loaded (the entire description is the core action), it lacks the necessary elaboration for a mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations, 0% schema description coverage, and an output schema (which reduces need to describe returns), the description is incomplete. It doesn't address authentication needs, error cases, side effects, or parameter meaning. While the output schema might document return values, the description fails to provide essential context for safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the schema provides no semantic information about 'list_id'. The description 'Follow a list' doesn't mention the parameter at all, offering no compensation for the schema gap. It doesn't explain what a list_id is, where to find it, or format requirements, leaving the parameter completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Follow a list' is a tautology that essentially restates the tool name without adding meaningful context. It specifies the verb 'follow' and resource 'a list', but doesn't clarify what 'following a list' means operationally (e.g., subscribing to updates, adding to feed). While it distinguishes from obvious non-siblings like 'delete_tweet', it doesn't meaningfully differentiate from close siblings like 'unfollow_list' beyond the opposite action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing authentication, list accessibility), appropriate contexts, or relationships with similar tools like 'follow_user' or 'pin_list'. The presence of 'unfollow_list' as a sibling suggests a toggle relationship, but this isn't explicitly stated in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
follow_userC
Follow a user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. 'Follow a user' implies a mutation (creating a follow relationship), but it doesn't specify permissions required, rate limits, whether it's idempotent, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise ('Follow a user')—a single, front-loaded sentence with zero waste. It efficiently conveys the core action without unnecessary elaboration, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation with no annotations), 0% schema description coverage, and an output schema (which helps but isn't described), the description is incomplete. It lacks details on behavior, parameters, and usage context, making it insufficient for an AI agent to reliably invoke the tool without additional assumptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the schema provides no semantic information. The description doesn't mention the 'user_id' parameter at all, failing to compensate for the coverage gap. However, with only one parameter, the baseline is higher; the description implies a user target but doesn't add details like format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Follow a user' clearly states the verb ('follow') and resource ('a user'), making the basic purpose understandable. However, it doesn't differentiate from sibling tools like 'follow_list' or 'unfollow_user', nor does it specify what 'follow' means in this context (e.g., social media following vs. tracking). It's adequate but vague about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), exclusions (e.g., cannot follow oneself), or compare to siblings like 'unfollow_user' or 'get_user_following'. Without such context, usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articleB
Fetch full content of an X/Twitter article from a tweet or article URL
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic function without behavioral details. It doesn't disclose rate limits, authentication needs, error conditions, or what 'full content' entails (e.g., text, images, formatting). For a read operation with zero annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('Fetch full content', 'X/Twitter article', 'from a tweet or article URL') contributes directly to understanding, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defines return values), the description doesn't need to explain outputs. However, with no annotations, one parameter at 0% schema coverage, and complexity around article fetching, the description is minimal but adequate for basic use, though it lacks details on behavior and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds minimal semantics by implying the 'url' parameter accepts tweet or article URLs. However, it doesn't specify URL formats, validation rules, or examples. With one parameter and low schema coverage, the description provides some context but doesn't fully compensate, aligning with the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch full content') and resource ('X/Twitter article'), specifying it works from 'a tweet or article URL'. It distinguishes from siblings like 'get_tweet_details' or 'search_articles' by focusing on article content extraction rather than tweet metadata or search. However, it doesn't explicitly contrast with these siblings, keeping it at 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_tweet_details' for tweet metadata or 'search_articles' for finding articles. It mentions the input source ('tweet or article URL') but doesn't specify use cases, prerequisites, or exclusions, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blocked_usersC
Get list of blocked users
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 it's a 'Get' operation, implying read-only behavior, but doesn't cover critical aspects like authentication requirements, rate limits, pagination behavior (hinted by 'cursor' parameter), or what the output contains. This is inadequate for a tool with parameters and potential complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at four words, front-loaded with the core action, and wastes no space. It efficiently communicates the basic purpose without unnecessary elaboration, though this brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters with 0% schema coverage, no annotations, and an output schema (which helps but isn't described), the description is incomplete. It lacks details on usage, parameters, behavior, and context, making it insufficient for an agent to fully understand how to invoke it correctly beyond the basic action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate but adds no parameter information. It doesn't explain what 'count' or 'cursor' mean, their effects (e.g., pagination), defaults, or constraints. With 2 undocumented parameters, this falls short of the baseline needed for clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get list of blocked users' clearly states the verb ('Get') and resource ('blocked users'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_muted_users' or 'get_user_followers' beyond the resource name, and it lacks specificity about scope or format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There's no mention of prerequisites (e.g., authentication), use cases, or comparisons to siblings like 'get_muted_users' or 'unblock_user', leaving the agent to infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bookmarksC
Get your bookmarked tweets
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 it's a retrieval operation ('Get'), implying read-only behavior, but doesn't cover critical aspects like authentication requirements, rate limits, pagination behavior (implied by 'cursor' parameter but not explained), or what 'your' means in terms of user context. This leaves significant gaps for a tool with parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose ('Get your bookmarked tweets'), making it immediately scannable and appropriately sized for a simple retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 with an output schema), the description is minimally adequate. The output schema likely covers return values, reducing the need for description detail. However, the lack of parameter explanations and behavioral context (e.g., pagination, auth) leaves gaps that could hinder effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so parameters 'count' and 'cursor' are undocumented in the schema. The description adds no parameter semantics—it doesn't explain what 'count' controls (e.g., number of tweets per page), what 'cursor' is for (e.g., pagination token), or default behaviors. This fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get your bookmarked tweets' clearly states the verb ('Get') and resource ('your bookmarked tweets'), making the purpose immediately understandable. It distinguishes from siblings like 'bookmark_tweet' (create) and 'delete_bookmark' (delete), though it doesn't explicitly differentiate from other retrieval tools like 'get_liked_tweets' or 'get_user_tweets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication), compare it to similar tools like 'get_liked_tweets' or 'get_user_tweets', or indicate scenarios where it's preferred. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversationB
Get full conversation/thread for a tweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes | ||
| count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 retrieving a 'full conversation/thread' but lacks details on permissions required, rate limits, pagination (implied by 'count' parameter), error handling, or what 'full' entails. This is a significant gap for a read operation tool with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defines return values), the description doesn't need to explain outputs. However, with no annotations, 2 parameters (0% schema coverage), and complexity in defining 'full conversation', the description is incomplete—it lacks behavioral context and parameter semantics, making it only minimally adequate for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter details. The description does not explain the parameters 'tweet_id' or 'count', leaving their semantics unclear (e.g., format of tweet_id, what 'count' controls). Since parameters exist but are undocumented, the baseline is 3, as the description adds no value beyond the schema's structural information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('full conversation/thread for a tweet'), making the purpose understandable. It distinguishes this from siblings like 'get_replies' or 'get_tweet_details' by specifying it retrieves the entire conversation thread. However, it doesn't explicitly mention what constitutes a 'full conversation' (e.g., includes replies, quotes, retweets?), leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'get_replies' or 'get_tweet_details' is provided. The description implies usage for retrieving conversation threads, but it doesn't specify prerequisites, limitations, or comparative contexts with sibling tools, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dm_conversationsC
Get your DM conversations
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 'Get your DM conversations', implying a read-only operation, but doesn't specify permissions, rate limits, pagination behavior (though hinted by 'cursor' parameter), or what data is returned. For a tool with two parameters and no annotation coverage, this is inadequate, as it misses key operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description 'Get your DM conversations' is a single, efficient sentence that front-loads the core action. It wastes no words, making it appropriately concise. However, it could be more structured by including key details, but as-is, it earns a high score for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 an output schema exists), the description is incomplete. It doesn't cover parameter usage, behavioral traits, or differentiation from siblings, though the output schema mitigates the need to explain return values. This results in a minimal viable score, as it provides basic purpose but lacks depth for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so parameters 'count' and 'cursor' are undocumented. The description adds no meaning beyond the schema, failing to explain what 'count' limits (e.g., number of conversations) or how 'cursor' works for pagination. With low schema coverage and no compensation in the description, this falls below the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get your DM conversations' clearly states the verb ('Get') and resource ('DM conversations'), making the purpose understandable. However, it lacks specificity about what 'DM conversations' entails (e.g., metadata, messages, participants) and doesn't distinguish from sibling tools like 'get_dm_events', which might overlap in functionality. This vagueness prevents a higher score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_dm_events' or 'get_conversation'. It doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone. This lack of explicit or implied guidance results in a minimal score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dm_eventsC
Get messages in a DM conversation
| Name | Required | Description | Default |
|---|---|---|---|
| dm_conversation_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only operation ('Get') but doesn't disclose pagination behavior (cursor usage), rate limits, authentication requirements, error conditions, or what 'messages' include (e.g., text, media, timestamps). For a tool with 3 parameters and no annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action ('Get messages') and specifies the context ('in a DM conversation'), making it easy to parse quickly. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is minimally viable but has clear gaps. The output schema likely covers return values, reducing the burden, but the description lacks crucial context like pagination behavior, error handling, and differentiation from siblings. It's adequate for basic understanding but insufficient for robust agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 but adds no parameter details. It doesn't explain what 'dm_conversation_id' represents, how 'count' affects retrieval (default 100, max?), or how 'cursor' enables pagination. The baseline would be 1 for complete lack of parameter info, but the tool name implies the required ID, raising it slightly to 2.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('messages in a DM conversation'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_dm_conversations' (which likely lists conversations rather than messages within one) or 'get_conversation' (which might handle public conversations vs DMs), leaving some ambiguity about sibling relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid DM conversation ID), exclusions, or comparisons to similar tools like 'get_conversation' or 'send_dm', leaving the agent to infer usage context entirely from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_highlights_tweetsC
Retrieves highlighted tweets from a user's timeline
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 'retrieves' which implies a read operation, but doesn't mention authentication requirements, rate limits, pagination behavior (though cursor parameter hints at it), or what 'highlighted' means operationally. This leaves significant gaps for a tool with 3 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's appropriately sized for a retrieval tool and front-loads the core functionality immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters with 0% schema coverage and no annotations, the description is inadequate. However, the presence of an output schema reduces the need to describe return values. The description covers the basic purpose but misses critical parameter explanations and behavioral context needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 but adds no parameter information. It doesn't explain what 'user_id' format is expected, what 'count' controls, what 'cursor' does, or what 'highlighted tweets' means. The description fails to provide any semantic context beyond what's inferable from parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('retrieves') and resource ('highlighted tweets from a user's timeline'), making the purpose unambiguous. It distinguishes this tool from other tweet retrieval tools like get_timeline or get_user_tweets by specifying 'highlighted' tweets, though it doesn't explicitly contrast with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_timeline or get_user_tweets. It doesn't mention prerequisites, limitations, or typical use cases, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_timelineB
Get tweets from your home timeline (Following)
| Name | Required | Description | Default |
|---|---|---|---|
| count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action 'Get tweets' but doesn't disclose behavioral traits such as rate limits, authentication needs, pagination, or response format. It mentions 'home timeline (Following)' which adds some context about scope, but lacks details on what 'Following' entails or any operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It's appropriately sized for a simple tool, with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, with no annotations and 0% schema coverage, it lacks details on behavior and parameters, making it incomplete for full understanding despite the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description doesn't mention any parameters. The single parameter 'count' is undocumented in both schema and description, so the description adds no semantic value beyond the schema. With 1 parameter and low coverage, the baseline is 3 as it doesn't compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'tweets from your home timeline (Following)', specifying it retrieves content from the user's following feed. It distinguishes from siblings like 'get_timeline' (which might be broader) by explicitly mentioning 'home timeline' and 'Following', though it doesn't explicitly contrast with other timeline-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention when to choose it over 'get_timeline' or other tweet-fetching tools like 'get_user_tweets', nor does it specify prerequisites or exclusions. The description implies usage for home timeline tweets but lacks explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liked_tweetsC
Get tweets liked by a specific user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe any behavioral traits: no information about rate limits, authentication requirements, whether it returns partial/full data, pagination behavior (though cursor parameter hints at it), or error conditions. The description is minimal and lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for what it conveys. Every word earns its place in communicating the basic function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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's minimalism is somewhat acceptable. However, for a read operation with 3 parameters and no annotations, it should provide more context about usage constraints, authentication, and parameter meaning. The description is complete enough to understand what it does at a high level but inadequate for operational understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter documentation. The description mentions 'a specific user' which loosely maps to user_id, but doesn't explain what user_id format is expected, what count represents (number of tweets, with default 100), or what cursor is for (pagination). It adds minimal meaning beyond the bare parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'tweets liked by a specific user', making the purpose immediately understandable. It distinguishes this from siblings like get_user_tweets or get_bookmarks by specifying the 'liked' relationship. However, it doesn't explicitly contrast with get_favorites (if that were a sibling) or mention the exact scope of retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 whether this is for public likes only, if authentication is required, or how it differs from similar tools like get_user_tweets (which might include liked tweets in a different context). No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listB
Get details about a specific list
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 implies a read-only operation ('Get details'), but does not specify authentication needs, rate limits, error conditions, or what the output includes (though an output schema exists). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded with the core purpose, making it easy to parse quickly, though it lacks depth due to its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 reduces the need to describe return values) and only one parameter, the description is somewhat complete. However, with no annotations and minimal behavioral context, it falls short for a tool that might involve data retrieval with potential constraints like authentication or rate limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning beyond the input schema, which has 0% description coverage and only one parameter ('list_id'). Since there are 0 parameters with descriptions in the schema, the baseline is 4. The description implies the parameter is used to identify 'a specific list', which provides basic context but no format or validation details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Get details about a specific list', which provides a clear verb ('Get details') and resource ('a specific list'), making the purpose understandable. However, it does not differentiate from sibling tools like 'get_user_lists' (which likely lists multiple lists) or 'get_list_members' (which focuses on members), leaving the scope vague regarding what 'details' entail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not specify prerequisites (e.g., needing a list ID), exclusions, or compare to siblings like 'get_user_lists' for broader list retrieval, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_list_membersC
Get members of a list
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Get' which implies a read operation, but doesn't disclose behavioral traits like pagination (hinted by 'count' and 'cursor' parameters), rate limits, authentication needs, or what happens with invalid inputs. This leaves significant gaps for a tool with parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single, front-loaded sentence that states the core purpose without waste. It's appropriately sized for a simple retrieval tool, though this brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage, no annotations, and an output schema (which reduces need to describe returns), the description is incomplete. It doesn't address parameter meanings, usage context, or behavioral aspects like pagination, making it inadequate for a tool with multiple inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions 'list' which loosely relates to 'list_id', but doesn't explain the semantics of 'count' (e.g., pagination limit) or 'cursor' (e.g., for iterating results). With 3 parameters and no schema descriptions, this adds minimal value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get members of a list' clearly states the verb ('Get') and resource ('members of a list'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_user_followers' or 'get_list_tweets' which also retrieve related data, leaving the scope somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid list_id), exclusions, or comparisons to similar tools like 'get_user_followers' for non-list contexts, leaving usage entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_list_tweetsC
Get tweets from a list's timeline
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Get tweets' implies a read operation, but there's no information about rate limits, authentication requirements, pagination behavior (though cursor parameter hints at it), error conditions, or what format/quantity of tweets are returned. The description is minimally adequate but lacks important operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words, front-loading the core functionality with zero wasted words. Every word earns its place, making it easy for an agent to quickly understand the basic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 handles return values), the description's job is reduced. However, for a tool with 3 parameters (one required), no annotations, and 0% schema coverage, the description should provide more operational context about how the tool behaves and when to use it versus alternatives. The existence of an output schema prevents a lower score, but significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for all 3 parameters, the description provides no parameter information whatsoever. It doesn't explain what 'list_id' refers to, what 'count' controls (number of tweets? default behavior?), or what 'cursor' is for (pagination token?). The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get tweets') and the resource ('from a list's timeline'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from similar sibling tools like get_timeline, get_user_tweets, or get_latest_timeline, which prevents 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple tweet-retrieval tools in the sibling list (get_timeline, get_user_tweets, get_latest_timeline, get_conversation, etc.), there's no indication of when this list-specific retrieval is appropriate versus other tweet-fetching methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meB
Get your own user profile
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. 'Get' implies a read operation, but it doesn't specify authentication requirements, rate limits, error conditions, or what data is returned. For a user profile tool with zero annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Get your own user profile') that is front-loaded and wastes no words. It directly conveys the core functionality without unnecessary elaboration, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, it lacks behavioral details (e.g., authentication needs, return format hints) that would be helpful for an agent, especially since no annotations are provided to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter information, but that's acceptable given the lack of parameters, warranting a baseline score of 4 for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get your own user profile' clearly states the verb ('Get') and resource ('your own user profile'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_user_by_id' or 'get_user_by_screen_name', which are similar user retrieval tools but target different users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_user_by_id' or 'get_user_by_screen_name'. It doesn't mention prerequisites (e.g., authentication) or contextual constraints, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_muted_usersC
Get list of muted users
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Get list' implies a read-only operation, but it doesn't disclose behavioral traits like pagination behavior (cursor parameter), rate limits, authentication requirements, or what format the returned list takes. The description is minimal and lacks important operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, with zero wasted language. It's front-loaded with the core purpose and contains no unnecessary elaboration. This is an example of maximum efficiency in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a read operation with 2 parameters (0% schema coverage), no annotations, but has an output schema, the description is incomplete. While the output schema may document return values, the description doesn't provide enough context about the tool's behavior, parameter usage, or differentiation from similar list-retrieval tools among the many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for undocumented parameters. The description mentions no parameters at all, failing to explain what 'count' or 'cursor' mean or how they affect the list retrieval. This leaves two parameters completely unexplained beyond their schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'Get list of muted users', which is a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'get_blocked_users' or 'get_user_followers', which are similar list-retrieval operations, so it doesn't fully distinguish from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There are many sibling tools for retrieving user lists (e.g., get_blocked_users, get_user_followers, get_list_members), but no indication of when this specific muted users list is appropriate versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quote_tweetsC
Get tweets that quote a specific tweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 only states the basic function without mentioning pagination behavior (implied by cursor parameter), rate limits, authentication requirements, error conditions, or what the output contains. For a tool with 3 parameters and no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently communicates the core function without unnecessary words. It's front-loaded with the essential information and contains no redundant or verbose phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, 1 required), no annotations, and the presence of an output schema, the description is minimally adequate but incomplete. The output schema reduces the need to describe return values, but the description lacks crucial context about parameter usage, behavioral constraints, and differentiation from similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for all 3 parameters, the description provides no additional semantic information about tweet_id format, count limitations, cursor usage, or default values. The description doesn't compensate for the complete lack of parameter documentation in the schema, leaving all parameters semantically undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('tweets that quote a specific tweet'), making the purpose immediately understandable. It distinguishes from siblings like get_retweets or get_replies by specifying 'quote' tweets, though it doesn't explicitly contrast with those alternatives in the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_retweets, get_replies, or search_twitter. It states what it does but offers no context about appropriate use cases, prerequisites, or limitations compared to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_repliesB
Get replies to a specific tweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 'Get replies' but doesn't describe key traits like whether this is a read-only operation, rate limits, authentication needs, pagination behavior (implied by 'cursor' but not explained), or what the output contains. This is a significant gap for a tool with parameters and output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to scan and understand quickly, which is ideal for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) but no annotations and low parameter coverage, the description is minimally adequate. It states the purpose but lacks behavioral context and parameter details, making it incomplete for optimal agent use, though not entirely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'to a specific tweet', which hints at the 'tweet_id' parameter, but with 0% schema description coverage and 3 parameters total, it doesn't adequately explain 'count' (default 100) or 'cursor' (for pagination). It adds minimal value beyond the schema, so it meets the baseline for partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'replies to a specific tweet', making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_conversation' or 'get_quote_tweets', which might also retrieve tweet-related content, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_conversation' for broader context or 'get_quote_tweets' for different reply types, nor does it specify prerequisites or exclusions, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_retweetsC
Get users who retweeted a tweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. The description only states what the tool does ('Get users who retweeted a tweet') without revealing any behavioral traits such as pagination behavior (implied by the cursor parameter), rate limits, authentication requirements, or what the output contains. This leaves critical operational details unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose, making it easy to parse quickly. Every word earns its place by directly contributing to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, 1 required) and the presence of an output schema (which helps), the description is incomplete. It lacks behavioral context (no annotations), leaves parameters unexplained (0% schema coverage), and doesn't provide usage guidelines. While the output schema may cover return values, the description doesn't sufficiently address other critical aspects for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the parameters (tweet_id, count, cursor) are documented in the schema. The description adds no parameter information beyond the implied tweet_id from 'a tweet'. It doesn't explain what count controls (default 100, nullable), what cursor is for pagination, or format requirements for tweet_id. With low coverage, the description fails to compensate adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get users who retweeted a tweet' clearly states the verb ('Get') and resource ('users who retweeted a tweet'), making the purpose immediately understandable. It distinguishes this tool from other retrieval tools like get_liked_tweets or get_quote_tweets by specifying the retweet relationship. However, it doesn't explicitly differentiate from all siblings (e.g., get_user_followers might be conceptually similar for user retrieval).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid tweet_id), exclusions, or comparisons to similar tools like get_quote_tweets (which might overlap in retrieving engagement data). Without any usage context, the agent must infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timelineC
Get tweets from your home timeline (For You)
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 'Get tweets' which implies a read-only operation, but doesn't disclose behavioral traits like pagination (implied by cursor parameter), rate limits, authentication requirements, or what 'For You' entails algorithmically. For a tool with parameters and no annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get tweets from your home timeline') and adds clarifying context ('For You') without unnecessary details. Every word earns its place, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers return values), 2 parameters with 0% schema coverage, and no annotations, the description is minimally adequate. It states the purpose clearly but lacks parameter semantics and behavioral context. For a read operation with output schema, it's passable but incomplete due to missing guidance and transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 but adds no parameter information. It doesn't explain what 'count' (default 100) or 'cursor' (default null) mean, their formats, or how they affect the tweet retrieval. With 2 parameters undocumented in both schema and description, this falls short of compensating for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get tweets') and resource ('from your home timeline'), specifying it's for the 'For You' algorithmic feed. It distinguishes from siblings like get_latest_timeline (chronological) and get_user_tweets (user-specific), though not explicitly. However, it could be more specific about what 'home timeline' entails versus other timeline types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like get_latest_timeline or get_user_tweets. The description implies it's for the personalized 'For You' feed, but doesn't state when to choose it over other timeline or tweet-fetching tools, nor mention prerequisites like authentication needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trendsC
Retrieves trending topics on Twitter
| Name | Required | Description | Default |
|---|---|---|---|
| woeid | No | ||
| count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It lacks behavioral details such as rate limits, authentication requirements, data freshness, or response format, which are critical for a read operation in a social media API context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 optional parameters) and the presence of an output schema, the description is minimally adequate. However, with no annotations and 0% schema coverage, it should provide more context on parameters and behavior to fully compensate for these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 but adds no parameter information. It doesn't explain what 'woeid' (e.g., location code) or 'count' (e.g., number of trends) mean, leaving both parameters undocumented and reducing agent effectiveness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieves') and resource ('trending topics on Twitter'), providing a specific purpose. However, it doesn't differentiate from sibling tools like 'search_twitter' or 'get_latest_timeline' that might also retrieve Twitter content, missing 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.
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 context like real-time trends, geographic filtering via woeid, or how it differs from other retrieval tools in the sibling list, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tweet_detailsB
Get detailed information about a specific tweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 it 'gets' information, implying a read-only operation, but does not mention any constraints like rate limits, authentication needs, or what details are included (e.g., metadata, engagement stats). This leaves significant 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, front-loading the core action and resource. It is appropriately sized for a simple tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover return values) and low complexity, the description is minimally adequate. However, with no annotations and incomplete parameter guidance, it lacks depth for a tool that might have behavioral nuances, such as error handling or data scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the description must compensate. It implies the parameter is for identifying a specific tweet, adding meaning beyond the schema's bare type. However, it does not specify format (e.g., numeric ID, URL) or constraints, keeping it from a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 information about a specific tweet'), making the purpose unambiguous. However, it does not differentiate from siblings like 'get_conversation' or 'get_quote_tweets', which might also retrieve tweet-related data, so it misses 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.
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. For example, it does not specify if this is for single tweets versus batches, or how it differs from 'get_user_tweets' or 'get_conversation', leaving usage context implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_by_idB
Fetches a user by ID
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Fetches' which implies a read-only operation, but doesn't specify authentication needs, rate limits, error handling, or what the output contains (though an output schema exists). This leaves significant gaps for a tool that likely interacts with user data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter) and the presence of an output schema, the description is minimally adequate. However, with no annotations and multiple sibling tools for user retrieval, it lacks context on differentiation and behavioral traits, making it incomplete for optimal agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning by specifying that the parameter is used 'by ID', which clarifies the purpose of the 'user_id' parameter beyond the schema's basic type definition. With 0% schema description coverage and only one parameter, this compensates adequately, though it doesn't detail format constraints like ID structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetches') and resource ('a user by ID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_user_by_screen_name' or 'get_user_profile' that also retrieve user information, which prevents 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.
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 'get_user_by_screen_name' or 'get_user_profile'. It lacks context about prerequisites, such as needing a user ID, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_by_screen_nameB
Fetches a user by screen name
| Name | Required | Description | Default |
|---|---|---|---|
| screen_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. 'Fetches' implies a read operation, but it doesn't specify whether this requires authentication, rate limits, what data is returned, or error conditions. The description is minimal and lacks important 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words, front-loading the essential information with zero wasted words. Every word earns its place in conveying the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) and only one parameter, the description's minimalism is somewhat acceptable. However, as a read operation with no annotations, it should ideally mention authentication requirements or data scope. The presence of an output schema raises the baseline, but the description remains sparse for a user lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds minimal context by mentioning 'screen name' as the lookup key. However, it doesn't explain what constitutes a valid screen name (format, length, character restrictions) or provide examples. With only one parameter, the baseline is higher, but the description doesn't fully compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('fetches') and resource ('a user by screen name'), making the purpose immediately understandable. It doesn't specifically differentiate from sibling tools like 'get_user_by_id' or 'get_user_profile', but the verb+resource combination is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_user_by_id' or 'get_user_profile'. It doesn't mention prerequisites, limitations, or context for choosing this specific user lookup method.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_followersB
Retrieves a list of followers for a given user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 'retrieves a list' but doesn't disclose key behaviors: it doesn't mention pagination (implied by 'cursor' parameter), rate limits, authentication needs, or what the output contains (e.g., user objects). For a read operation with no annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by specifying the action and target, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, pagination), no annotations, and an output schema (which handles return values), the description is minimally adequate. It covers the basic purpose but lacks usage guidelines, behavioral details, and parameter explanations, leaving the agent to rely heavily on the schema and output schema for full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter details. The description adds minimal semantics by implying 'user_id' identifies the target user, but it doesn't explain 'count' (defaults, limits) or 'cursor' (pagination). With 3 parameters and low coverage, the description doesn't adequately compensate, but it at least hints at the primary parameter's role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieves') and resource ('list of followers for a given user'), making the purpose immediately understandable. It distinguishes from siblings like 'get_user_following' (which retrieves who the user follows) and 'get_user_followers_you_know' (which has a different scope). However, it doesn't specify the verb 'list' or mention pagination, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 siblings like 'get_user_followers_you_know' for a filtered list or 'get_user_following' for a different relationship. There are no exclusions, prerequisites, or context for usage, leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_followers_you_knowC
Retrieves common followers between you and a user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 but only states the basic action. It doesn't mention pagination behavior (implied by 'cursor' parameter), rate limits, authentication needs, or what the output contains (though an output schema exists). This leaves significant gaps for a tool that likely involves data retrieval and user context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence contributes directly to understanding the tool's function, making it optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (retrieving relational data), no annotations, and 0% schema coverage, the description is incomplete—it lacks parameter details and behavioral context. However, the existence of an output schema mitigates the need to describe return values, keeping it at a minimal viable level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 but adds no parameter information. It doesn't explain what 'user_id' represents, how 'count' affects results, or what 'cursor' is for pagination. This is inadequate given three parameters with no schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Retrieves') and resource ('common followers between you and a user'), making it immediately understandable. It distinguishes itself from sibling tools like 'get_user_followers' by specifying the 'common' relationship, though it doesn't explicitly contrast with all similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_user_followers' or 'get_user_following'. It lacks context about prerequisites, such as authentication requirements or when this tool is preferred over other follower-related tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_followingC
Retrieves users the given user is following
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 retrieves data (implying read-only), but doesn't mention pagination behavior (implied by 'cursor' parameter), rate limits, authentication requirements, or what the output contains. For a read operation with pagination, this leaves significant gaps in understanding how the tool behaves beyond basic retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a straightforward retrieval tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (pagination via cursor, default count), no annotations, and an output schema (which handles return values), the description is minimally adequate but incomplete. It covers the basic purpose but lacks behavioral details and parameter explanations that would help an agent use it correctly in context with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter documentation. The description mentions 'the given user' which hints at the 'user_id' parameter, but doesn't explain 'count' (defaults to 100) or 'cursor' (pagination). With 3 parameters and low coverage, the description adds minimal value beyond what's inferable from parameter names, failing to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Retrieves') and resource ('users the given user is following'), making it immediately understandable. It distinguishes from sibling tools like 'get_user_followers' by focusing on 'following' rather than 'followers', though it doesn't explicitly contrast with them in the description text itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_user_followers', 'get_user_followers_you_know', or other user-related tools. It doesn't mention prerequisites, context for usage, or any exclusions, leaving the agent to infer usage based solely on the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_listsC
Get lists owned by a user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. While 'Get' implies a read-only operation, it doesn't specify whether this requires authentication, what the return format looks like (e.g., list objects with metadata), or any rate limits. The description lacks details on pagination behavior (implied by 'cursor' parameter) or default limits (implied by 'count' default), leaving gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action ('Get lists owned by a user'), making it easy to parse quickly. Every word earns its place by conveying the essential purpose without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 should document return values), the description doesn't need to explain outputs. However, with no annotations and 0% schema description coverage, the description is too minimal for a tool with 3 parameters. It adequately states what the tool does but lacks context on usage, parameters, and behavioral traits, making it incomplete for optimal agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the parameters (user_id, count, cursor) are documented in the schema. The description only mentions 'a user', which loosely relates to 'user_id', but adds no meaning for 'count' (number of lists to retrieve) or 'cursor' (pagination token). This fails to compensate for the lack of schema documentation, leaving key parameters unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get lists owned by a user' clearly states the verb ('Get') and resource ('lists owned by a user'), making the purpose immediately understandable. It distinguishes this from other list-related tools like 'get_list' (which retrieves a specific list) or 'get_list_members' (which retrieves members of a list). However, it doesn't specify whether this returns all lists or paginated results, which keeps 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.
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. For example, it doesn't mention how this differs from 'get_list' (which requires a list_id) or 'get_user_following' (which retrieves users, not lists). There's also no mention of prerequisites, such as needing the user_id of the target user, leaving the agent to infer usage from the parameter schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_mentionsB
Get tweets mentioning a specific user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states basic functionality. It doesn't disclose rate limits, authentication requirements, pagination behavior (though cursor parameter hints at it), return format, or whether results are real-time vs historical. For a read operation with 3 parameters, this is insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Perfectly concise single sentence with zero wasted words. The description is front-loaded with the core purpose and couldn't be shorter while still conveying the basic function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) and a relatively simple input schema, the description covers the minimum purpose. However, with no annotations and 0% schema description coverage, it should provide more behavioral context about rate limits, authentication, and result characteristics to be truly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 but adds no parameter information. It doesn't explain what user_id represents (numeric ID vs screen name), what count default/range means, or cursor's pagination role. However, the schema itself is clear with required user_id and optional count/cursor, providing baseline documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'tweets mentioning a specific user', making the purpose unambiguous. It distinguishes from siblings like get_user_tweets (user's own tweets) and get_retweets (retweets of a tweet). However, it doesn't explicitly differentiate from search_twitter which could also find mentions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like search_twitter or get_quote_tweets. The description only states what it does, not when it's the appropriate choice among the many tweet retrieval tools available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_profileB
Get detailed profile information for a user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 only states what the tool does ('Get detailed profile information') without mentioning permissions, rate limits, error handling, or what 'detailed' entails. For a tool with no annotation coverage, this is insufficient to inform safe or effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly, which aligns well with best practices for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) and low complexity (1 parameter, no nested objects), the description is minimally adequate. However, with no annotations and incomplete parameter guidance, it lacks depth for safe agent operation, scoring at the baseline of viable but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, and the tool description adds no parameter-specific information beyond implying a 'user_id' is needed. Since there's only one parameter, the baseline is 4, but the description doesn't compensate for the lack of schema details (e.g., format of user_id), so it scores slightly lower at 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 information for a user'), making the purpose specific and understandable. However, it doesn't distinguish this tool from sibling tools like 'get_user_by_id' or 'get_user_by_screen_name', which appear to serve similar user lookup functions, preventing 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_user_by_id' and 'get_user_by_screen_name' available, there's no indication of how this tool differs in context, prerequisites, or specific use cases, leaving the agent without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_subscriptionsD
Retrieves users a user is subscribed to
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but provides none. It doesn't indicate whether this is a read-only operation, what permissions are required, whether results are paginated (though cursor parameter suggests it might be), rate limits, or what format the output takes. The description adds no behavioral context beyond the minimal action statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise - a single 6-word sentence that states the core action. There's no wasted language or unnecessary elaboration, though this conciseness comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters with 0% schema coverage, no annotations, but does have an output schema, the description is insufficient. While the output schema may document return values, the description fails to explain key aspects: what 'subscriptions' means in this platform context, how it differs from similar relationships, parameter purposes, or behavioral characteristics. For a tool with undocumented parameters in a crowded namespace, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 3 parameters, the description provides zero information about any parameters. It doesn't mention user_id (the required parameter), count (with its default of 100), or cursor (suggesting pagination). The schema must carry all parameter documentation burden with no assistance from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Retrieves users a user is subscribed to' is tautological - it essentially restates the tool name 'get_user_subscriptions' with minimal elaboration. While it indicates a retrieval action, it doesn't specify what 'subscribed to' means in this context or distinguish this from similar tools like 'get_user_following' or 'get_user_followers'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_user_following', 'get_user_followers', 'get_list_members', and 'get_user_lists', there's no indication of how 'subscriptions' differ from these other relationships or when this specific tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_tweetsC
Get tweets posted by a specific user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ||
| count | No | ||
| cursor | No | ||
| exclude_replies | No | ||
| exclude_retweets | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but reveals little beyond the basic operation. It doesn't mention rate limits, authentication requirements, pagination behavior (implied by 'cursor' parameter but not explained), or what data is returned. For a read operation with 5 parameters, this is insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the core purpose immediately. Every word earns its place in conveying the basic function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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's minimalism is somewhat acceptable. However, for a tool with 5 parameters and no annotations, it should provide more context about usage scenarios, parameter meanings, and behavioral constraints. The presence of an output schema raises the baseline but doesn't fully compensate for the lack of parameter and behavioral guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 but adds no parameter information. It doesn't explain what 'user_id' format is expected, what 'count' limits exist, how 'cursor' works for pagination, or what 'exclude_replies' and 'exclude_retweets' actually exclude. The description fails to provide meaningful parameter context beyond what's in the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'tweets posted by a specific user', making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'get_user_mentions' or 'get_liked_tweets', but the specificity is adequate for basic understanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_user_mentions' (for tweets mentioning the user) or 'get_liked_tweets' (for tweets the user liked). The description only states what it does, not when it's appropriate compared to other tweet-fetching tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hide_replyC
Hide a reply to your tweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 action ('hide') but doesn't explain what 'hide' means operationally (e.g., whether it's reversible, visible to others, affects notifications, or requires specific permissions). For a mutation tool with zero annotation coverage, this leaves critical behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It front-loads the core action and resource efficiently, making it easy to parse. Every word earns its place, adhering to ideal conciseness for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 with one parameter) and the presence of an output schema (which alleviates need to describe return values), the description is minimally adequate. However, with no annotations and poor parameter documentation, it lacks completeness for safe and effective use—critical details like reversibility and permissions are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, with one required parameter ('tweet_id') undocumented in the schema. The description adds no parameter information beyond what's implied by the action—it doesn't clarify what 'tweet_id' represents (e.g., the ID of the reply to hide, not the parent tweet) or provide format examples. This fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('hide') and target resource ('a reply to your tweet'), making the purpose immediately understandable. It distinguishes from sibling tools like 'unhide_reply' by specifying the opposite action, though it doesn't explicitly differentiate from other tweet-modification tools like 'delete_tweet' or 'mute_user'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., that the tweet must be your own), compare with similar tools like 'delete_tweet' or 'mute_user', or indicate when hiding is preferable to other actions. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mute_userD
Mute a user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 but fails completely. It doesn't mention that this is a destructive/mutative operation, what permissions are required, whether the effect is reversible, what happens to notifications or interactions, or any rate limits. The single phrase provides zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, which is appropriate for a simple action. There's no wasted language or unnecessary elaboration. However, this brevity comes at the cost of completeness, making it more under-specified than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutative tool with no annotations, 0% schema description coverage, and a single parameter, the description is completely inadequate. While an output schema exists (which reduces the need to describe return values), the description fails to address the tool's purpose differentiation, usage context, behavioral implications, or parameter meaning - all critical gaps for a tool that modifies user state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning the single parameter 'user_id' is completely undocumented in the schema. The description adds no information about this parameter - no format requirements, no examples, no explanation of what constitutes a valid user ID. While there's only one parameter, the description fails to provide any semantic clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Mute a user' is a tautology that essentially restates the tool name without adding meaningful context. While it clearly identifies the action (mute) and target (user), it doesn't differentiate this tool from its sibling 'unmute_user' or explain what muting entails beyond the basic verb-noun pairing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance on when to use this tool versus alternatives. It doesn't mention the sibling 'unmute_user' tool, nor does it indicate prerequisites, appropriate contexts, or any exclusions for when muting might not be applicable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pin_listC
Pin a list to your profile
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action but lacks behavioral details: it doesn't specify if this requires authentication, what happens if the list is already pinned, rate limits, or what the output contains. The description is minimal and doesn't compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, no annotations, and an output schema (which reduces need to describe returns), the description is minimally adequate but incomplete. It covers the basic purpose but lacks parameter details and behavioral context, leaving gaps for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, with one parameter ('list_id') undocumented in the schema. The description adds no parameter information—it doesn't explain what 'list_id' is, how to obtain it, or its format. This fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Pin a list to your profile' clearly states the action (pin) and target resource (list), with the destination (profile) providing context. It distinguishes from siblings like 'unpin_list' (opposite action) and 'get_user_lists' (read operation), though it doesn't explicitly contrast with all similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While the action is clear, there's no mention of prerequisites (e.g., needing an existing list), exclusions, or comparisons to related tools like 'update_list' or 'follow_list'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_tweetB
Post a tweet with optional media, reply, and tags
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| media_paths | No | ||
| reply_to | No | ||
| tags | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Post a tweet' which implies a write/mutation operation, but doesn't disclose behavioral traits like rate limits, authentication requirements, whether it's idempotent, or what happens on failure (e.g., partial media upload). For a mutation tool with zero annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and lists optional features concisely. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 4 parameters), no annotations, and an output schema (which reduces need to describe returns), the description is moderately complete. It covers the basic action and optional features but lacks critical context like behavioral risks (e.g., tweet visibility, deletion policies) and detailed parameter guidance, making it adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions 'optional media, reply, and tags,' which maps to three of the four parameters (media_paths, reply_to, tags), but doesn't explain the 'text' parameter or provide details like format constraints (e.g., character limits for text, file types for media). It adds some value but doesn't fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Post a tweet with optional media, reply, and tags.' It specifies the verb ('Post') and resource ('a tweet'), and distinguishes it from siblings like 'create_thread' or 'quote_tweet' by focusing on basic tweet creation. However, it doesn't explicitly differentiate from 'create_poll_tweet' or 'retweet', which slightly reduces specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 optional features (media, reply, tags) but doesn't specify when to choose this over 'create_thread' for threaded posts, 'quote_tweet' for quoting, or 'create_poll_tweet' for polls. There are no prerequisites or exclusions stated, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_tweetC
Quote tweet with your comment
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| quoted_tweet_id | Yes | ||
| media_paths | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose whether this requires authentication, has rate limits, affects tweet visibility, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just four words, front-loaded with the core action. Every word earns its place, though this conciseness comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 3 parameters (2 required), 0% schema coverage, no annotations, but with an output schema, the description is inadequate. It doesn't explain parameters, behavioral implications, or usage context. The presence of an output schema reduces the need to describe return values, but other gaps remain significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 but adds no parameter information. It doesn't explain what 'text', 'quoted_tweet_id', or 'media_paths' mean, their formats, or constraints. The description fails to provide any semantic context beyond the tool name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('quote tweet') and includes the key element ('with your comment'), which distinguishes it from simple retweeting. However, it doesn't explicitly differentiate from sibling tools like 'retweet' or 'post_tweet', which would require more specific language about the quoting functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'retweet', 'post_tweet', or 'create_thread'. There's no mention of prerequisites, context, or exclusions, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_list_memberC
Remove a user from a list
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ||
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states a destructive action ('Remove'), implying mutation, but lacks details on permissions required, whether removal is reversible, side effects (e.g., notifications), or error conditions. This is inadequate for a mutation tool with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and target, making it easy to parse quickly. No structural issues or redundancy are present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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's main gaps are in behavioral transparency and parameter semantics. For a simple 2-parameter mutation tool, the description is minimally adequate but lacks crucial context like permissions or error handling, making it incomplete for safe agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions 'list_id' and 'user_id' implicitly via 'list' and 'user', but doesn't explain parameter formats (e.g., numeric IDs, strings), validation rules, or examples. The description adds minimal semantic value beyond what's inferable from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and target ('a user from a list'), which is specific and unambiguous. It distinguishes from obvious siblings like 'add_list_member' by specifying removal, though it doesn't explicitly differentiate from other list-related tools like 'delete_list' or 'get_list_members'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., user must already be a list member), exclusions, or compare it to siblings like 'block_user' or 'unfollow_user' for user management. Usage is implied but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retweetC
Retweet a tweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 but offers minimal information. It doesn't mention whether this is a write operation (implied by 'retweet'), what permissions are required, rate limits, whether it's idempotent, or what happens if the tweet is already retweeted. The description fails to provide essential behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, with no wasted language. It's front-loaded with the core action, making it easy to parse quickly, though this brevity comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, 0% schema description coverage, and a sibling tool ('unretweet') that performs the inverse action, the description is insufficiently complete. While an output schema exists (which reduces the need to describe return values), the description lacks crucial context about behavior, parameters, and usage relative to alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the single parameter 'tweet_id', and the tool description provides no additional semantic information about this parameter. It doesn't explain what a tweet_id is, where to find it, or its format, leaving the parameter meaning unclear despite the schema defining its type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Retweet a tweet' clearly states the verb ('retweet') and resource ('a tweet'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'unretweet' or explain the relationship between retweeting and other tweet actions like quoting or favoriting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'quote_tweet' or 'favorite_tweet', nor does it mention prerequisites (e.g., authentication needs) or constraints. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_articlesC
Search for tweets that contain X articles on a topic
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 'Search for tweets that contain X articles on a topic', which implies a read-only operation but lacks details on permissions, rate limits, pagination (though cursor parameter hints at it), or return format. For a search tool with zero annotation coverage, this is insufficient behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it's front-loaded with confusion (mixing 'tweets' and 'articles'). While not verbose, the lack of clarity reduces its effectiveness, making it adequate but not efficient in conveying purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a search tool with 3 parameters), no annotations, and an output schema (which reduces the need to describe return values), the description is incomplete. It fails to clarify the tool's purpose or parameters adequately, but the presence of an output schema prevents it from being entirely inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter details. The description mentions 'query' and 'topic' but doesn't explain the three parameters (query, count, cursor) or their semantics. It adds minimal value beyond the schema, failing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Search for tweets that contain X articles on a topic' is vague and confusing. It mentions 'tweets' and 'articles' inconsistently (the tool name is 'search_articles'), and doesn't clearly specify what resource is being searched. It distinguishes from siblings like 'search_twitter' only by implying a focus on articles, but this distinction is muddled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'search_twitter' or 'get_article'. The description hints at searching for articles in tweets, but doesn't clarify the context or exclusions, leaving the agent to infer usage from the ambiguous purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_twitterC
Search Twitter with a query, includes engagement metrics and author info
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| product | No | Top | |
| count | No | ||
| cursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 that the search 'includes engagement metrics and author info,' which adds some context about the output. However, it fails to disclose critical behaviors such as rate limits, authentication needs, pagination (implied by 'cursor' parameter but not explained), or whether it's a read-only operation. This leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core function ('Search Twitter with a query') and adds supplementary details ('includes engagement metrics and author info'). There is no wasted language, making it appropriately concise and well-structured for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, 1 required) and the presence of an output schema, the description is partially complete. It hints at output content but lacks details on parameters, behavioral traits, and usage context. The output schema may cover return values, but the description doesn't fully address the tool's operational context, resulting in an adequate but incomplete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning parameters are undocumented in the schema. The description only implies the 'query' parameter and mentions output details but doesn't explain any parameters like 'product', 'count', or 'cursor'. It adds minimal semantic value beyond what the schema provides, failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search Twitter with a query, includes engagement metrics and author info.' It specifies the verb ('Search'), resource ('Twitter'), and scope ('engagement metrics and author info'), making the function evident. However, it doesn't explicitly differentiate from sibling tools like 'search_articles', which is why it scores 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools such as 'search_articles' or 'get_timeline', nor does it specify contexts or exclusions for its use. This lack of comparative guidance limits its utility for an AI agent in selecting the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_dmC
Send a direct message to a user
| Name | Required | Description | Default |
|---|---|---|---|
| participant_id | Yes | ||
| text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Send a direct message' implies a write operation, but it doesn't disclose behavioral traits like authentication requirements, rate limits, message length constraints, delivery confirmation, or whether messages are ephemeral. The description is minimal and lacks crucial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 6 words, front-loading the core functionality with zero wasted words. Every word earns its place in conveying the basic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with no annotations, 2 undocumented parameters, and an output schema (which helps but doesn't replace description), the description is inadequate. It doesn't address authentication needs, error conditions, or provide enough context for reliable tool invocation despite the output schema's presence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for both parameters, the description adds no semantic information about 'participant_id' (what format, how to obtain it) or 'text' (character limits, formatting options). The description doesn't compensate for the complete lack of schema documentation, leaving parameters essentially unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('send') and target ('direct message to a user'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'post_tweet' or 'create_thread' that also involve sending messages but in different contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'post_tweet' for public messages and 'get_dm_conversations' for retrieving DMs, there's no indication of when direct messaging is appropriate versus other communication methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unblock_userD
Unblock a user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'Unblock a user' implies a mutation operation but reveals nothing about permissions required, side effects, rate limits, error conditions, or what happens after unblocking (e.g., can the user interact again immediately?). This leaves critical behavioral aspects undocumented 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is maximally concise with just three words that directly state the tool's function. There's no wasted language, repetition, or unnecessary elaboration. It's appropriately sized for what it communicates, though what it communicates is insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, 0% parameter documentation, and multiple sibling tools in a social media context, the description is severely incomplete. While an output schema exists (which reduces the need to describe return values), the description fails to address critical context like permissions, side effects, relationships to 'block_user', or parameter guidance. It's inadequate for safe and effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for the single parameter 'user_id', the description provides no parameter information whatsoever. It doesn't explain what format the user_id should be (numeric ID, username, etc.), where to find it, or any validation requirements. The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unblock a user' is a tautology that restates the tool name without adding meaningful context. While it indicates the action (unblock) and target (user), it doesn't specify what 'unblock' means in this context or differentiate it from related tools like 'block_user' or 'get_blocked_users' beyond the obvious directional difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., user must be blocked first), related tools like 'block_user' or 'get_blocked_users', or any context about permissions or typical use cases. The agent receives no usage direction beyond the tool name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unfavorite_tweetB
Unlike a tweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Unlike a tweet' implies a mutation operation (removing a favorite), but it doesn't specify permissions needed, side effects (e.g., notification changes), error conditions, or response behavior. This is inadequate for a mutation tool with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with 'Unlike a tweet'—three words that directly convey the core action. It's front-loaded with zero wasted words, making it efficient and easy to parse, though this conciseness comes at the cost of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (mutation with one parameter) and the presence of an output schema (which handles return values), the description is minimally complete. However, with no annotations and sparse parameter guidance, it lacks context on behavioral aspects like error handling or side effects, making it only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't mention parameters, but with only one parameter (tweet_id) and 0% schema description coverage, the baseline is high. Since the tool name and description imply the action requires a tweet identifier, the minimal description is somewhat sufficient, though it doesn't add explicit meaning beyond what's inferred.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unlike a tweet' clearly states the action (unlike) and target resource (tweet), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'favorite_tweet' or 'delete_tweet' beyond the obvious opposite action, missing explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description doesn't mention prerequisites (e.g., the tweet must already be favorited), exclusions, or comparisons to sibling tools like 'favorite_tweet' or 'delete_tweet', leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unfollow_listC
Unfollow a list
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. 'Unfollow a list' implies a mutation operation, but it doesn't disclose any behavioral traits: no information about permissions required, whether the action is reversible, what happens to list visibility or access, rate limits, or error conditions. The description is completely inadequate for a mutation tool with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the core action and resource. While under-specified, every word earns its place by stating the essential operation. No structural issues exist given its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations, 0% schema description coverage, but with an output schema present, the description is incomplete. It doesn't explain what 'unfollowing' entails operationally, doesn't cover prerequisites or side effects, and relies entirely on the output schema for return values. For a tool that modifies state, this level of documentation is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the schema provides no semantic information. The description mentions 'a list' which hints at the 'list_id' parameter, but doesn't explain what format the ID should be, where to obtain it, or what constitutes a valid list. It adds minimal value beyond the parameter name itself, failing to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unfollow a list' is a tautology that restates the tool name without adding meaningful context. It specifies the verb ('unfollow') and resource ('a list'), but doesn't distinguish it from sibling tools like 'unfollow_user' or explain what 'unfollowing' means in this context. While it indicates the basic action, it lacks specificity about what happens when you unfollow a list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., you must be following the list first), doesn't explain the relationship to 'follow_list', and doesn't clarify what 'unfollowing' a list means compared to other list operations like 'delete_list' or 'remove_list_member'. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unfollow_userC
Unfollow a user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('unfollow') but doesn't explain what this entails (e.g., is it reversible, does it affect notifications or visibility, are there rate limits, or what permissions are required). For a mutation tool with zero annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just three words, front-loaded with the action. There's no wasted language or unnecessary elaboration, making it efficient for quick parsing by an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a mutation tool with no annotations, 0% schema description coverage, but an output schema exists, the description is incomplete. It doesn't address behavioral aspects like effects, permissions, or error cases, nor does it leverage the output schema to hint at return values. For a tool that modifies user relationships, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'user_id' with 0% description coverage, so the schema provides no semantic context. The description doesn't add any parameter details beyond implying a user is involved. Since there's only one parameter, the baseline is higher, but the description fails to clarify what 'user_id' represents (e.g., Twitter ID, username, or format).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unfollow a user' clearly states the action (unfollow) and target (user), which is better than a tautology. However, it doesn't differentiate from sibling tools like 'unfollow_list' or specify what 'unfollow' means in this context (e.g., removing from following list vs. blocking). It's vague about the exact effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'unfollow_list', 'block_user', or 'mute_user'. The description lacks context about prerequisites (e.g., must be following the user first) or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unhide_replyB
Unhide a previously hidden reply
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is to 'unhide,' implying a mutation that changes visibility, but doesn't specify permissions required, whether it's reversible, rate limits, or what the output contains. The description is minimal and lacks critical behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place in conveying the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) and only one parameter, the description is minimally adequate. However, as a mutation tool with no annotations, it lacks details on permissions, side effects, and error conditions. The context signals suggest simplicity, but the description could be more complete for safe agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'a previously hidden reply,' which implies the 'tweet_id' parameter refers to a reply's ID, adding some context beyond the schema's 0% coverage. However, it doesn't clarify format (e.g., numeric string) or how to identify a reply versus a tweet. With one parameter and low schema coverage, this provides basic but incomplete compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Unhide') and resource ('a previously hidden reply'), making the purpose immediately understandable. It distinguishes from siblings by specifying it operates on replies rather than tweets or users, though it doesn't explicitly differentiate from 'hide_reply' beyond the opposite action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., that the reply must already be hidden), nor does it reference the sibling 'hide_reply' tool for context. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unmute_userB
Unmute a user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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. 'Unmute a user' implies a mutation operation that reverses a mute, but it doesn't specify permissions required, whether it's idempotent (safe to call on an already unmuted user), rate limits, or what the output contains. For a mutation tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three words, front-loaded with the core action. There's no wasted language or redundancy, making it efficient for quick scanning, though this brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 with one parameter) and the presence of an output schema (which reduces the need to describe return values), the description is minimally adequate. However, with no annotations and low schema coverage, it lacks details on behavior, usage, and parameter meaning, making it incomplete for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't mention any parameters, and the schema description coverage is 0%, with one parameter ('user_id') undocumented in both schema and description. However, with only one parameter, the baseline is higher (4), but the description adds no value beyond the schema's structure. It implies the parameter identifies the user to unmute but provides no format or context details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Unmute a user' clearly states the verb ('unmute') and resource ('a user'), making the purpose immediately understandable. However, it doesn't differentiate from its sibling 'mute_user' beyond the obvious prefix difference, nor does it specify what platform or system this applies to, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the user must already be muted), context (e.g., after using 'mute_user'), or when not to use it (e.g., if the user isn't muted). With sibling tools like 'mute_user' and 'get_muted_users' available, this lack of guidance is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unpin_listB
Unpin a list from your profile
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the mutation action ('unpin') but doesn't address permissions needed, whether the action is reversible, what happens to the list after unpinning, or error conditions. This leaves significant behavioral gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states exactly what the tool does with zero wasted words. It's appropriately sized for a simple action and front-loads the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, the description is minimally adequate but lacks important context about permissions, side effects, and error handling. The existence of an output schema helps, but the description should do more to explain behavioral aspects given it's a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 doesn't provide any parameter details. However, the single parameter 'list_id' is self-explanatory in context, and the baseline for zero parameters is 4. The description doesn't add parameter semantics but doesn't need to compensate for complex undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('unpin') and resource ('a list from your profile'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'pin_list' beyond the obvious action reversal, which prevents 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.
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, prerequisites, or contextual constraints. While 'pin_list' is an obvious sibling, the description doesn't mention it or provide any usage context beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unretweetB
Remove a retweet
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like whether this requires authentication, if it's reversible, rate limits, error conditions, or what the output contains. 'Remove' implies a mutation but lacks details about consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with zero wasted words - just three words that directly convey the core function. It's perfectly front-loaded with no unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations, 0% schema coverage, but has an output schema, the description is minimally complete. The output schema will handle return values, but the description lacks important context about authentication needs, error cases, and behavioral implications for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 but doesn't add any parameter information. It doesn't explain what 'tweet_id' represents, its format, or where to find it. With 1 parameter and no schema descriptions, baseline is 3 as the description doesn't worsen understanding but adds no value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove a retweet' clearly states the action (remove) and target resource (retweet) with a specific verb. It distinguishes from siblings like 'retweet' (adds retweet) and 'delete_tweet' (deletes original tweet), though it doesn't explicitly mention this differentiation in the description text itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., must have retweeted first), exclusions, or compare to similar tools like 'delete_tweet' or 'unfavorite_tweet'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_listB
Update a list's name, description, or privacy
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | ||
| name | No | ||
| description | No | ||
| private | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 an update operation, implying mutation, but doesn't disclose critical behavioral traits such as required permissions, whether changes are reversible, what happens to unspecified fields, rate limits, or error conditions. The description is minimal and lacks necessary context for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and directly states the modifiable fields. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 4 parameters), lack of annotations, and presence of an output schema, the description is incomplete. It covers the basic purpose but misses behavioral context, detailed parameter guidance, and usage guidelines. The output schema may help with return values, but the description doesn't reference it or provide enough standalone information for confident use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter documentation. The description mentions 'name, description, or privacy', which maps to three of the four parameters (name, description, private), but doesn't explain the 'list_id' parameter or provide any syntax, format, or constraints. It adds some value but doesn't fully compensate for the coverage gap, especially for the required 'list_id'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and target resource ('a list'), along with specific fields that can be modified ('name, description, or privacy'). It distinguishes this from sibling tools like 'create_list' or 'delete_list' by focusing on modification rather than creation or deletion. However, it doesn't explicitly differentiate from other list-related tools like 'pin_list' or 'follow_list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing list), when not to use it (e.g., for creating new lists), or refer to sibling tools like 'create_list' for initial creation or 'get_list' for viewing. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vote_on_pollC
Vote on a poll (not supported by API)
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes | ||
| choice | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 only states the action and a limitation ('not supported by API'), but doesn't cover critical aspects like authentication needs, rate limits, side effects, or what the output entails. This leaves significant gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main action, but the parenthetical note 'not supported by API' adds useful context without unnecessary elaboration. It's efficient, though slightly under-specified for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations, 0% schema coverage, and an output schema (which helps but isn't described), the description is incomplete. It lacks details on behavior, parameters, and usage context, making it inadequate for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description adds no information about the parameters ('tweet_id' and 'choice'). It doesn't explain what these parameters mean, their formats, or valid values, failing to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('vote on a poll') but lacks specificity about what resource it operates on (e.g., a Twitter poll) and doesn't distinguish it from siblings like 'create_poll_tweet'. It's vague about the platform or context, though it implies a poll-related operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'create_poll_tweet' or other voting mechanisms. It mentions 'not supported by API', which hints at limitations but doesn't clarify usage scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes with clear boundaries, such as 'get_timeline' vs 'get_latest_timeline' for different feed types. However, some overlap exists, like 'get_user_by_id' and 'get_user_by_screen_name' both fetching user data, which could cause minor confusion. Overall, descriptions help clarify differences, but a few pairs might require careful selection.
Tool names follow a highly consistent verb_noun pattern throughout, such as 'create_list', 'delete_tweet', and 'get_user_followers'. All tools use snake_case uniformly, with no mixing of conventions. This predictability makes it easy for agents to understand and navigate the toolset.
With 63 tools, the count is excessive for the X/Twitter domain, leading to a bloated and potentially overwhelming interface. While the domain is broad, many tools could be consolidated or omitted without losing functionality. This high number increases complexity and may hinder agent efficiency.
The toolset provides comprehensive coverage of the X/Twitter domain, including full CRUD operations for tweets, lists, and user interactions, as well as advanced features like polls, threads, and direct messages. No significant gaps are apparent; agents can handle most workflows without dead ends.
Maintenance
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
Hosted MCP for X/Twitter and Reddit. 12 read-only tools, no API keys, free during beta.
Twitter/X read-only MCP server — 12 tools: search, users, tweets, followers, timelines, trends.
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
Paid MCP tools for onchain alpha research, X content analysis, and KOL distillation.
Related MCP Servers
- FlicenseAqualityDmaintenanceAn MCP server that provides AI agents with full access to the X (Twitter) API for posting, searching, and managing engagement through natural language. It supports comprehensive tools for tweet management, media uploads, and account analytics across multiple MCP-compatible clients.1552
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to automate actions on X (Twitter) through a real browser session, including posting, engaging, and reading via over 40 tools. It supports self-hosting and provides a panel for API key management.87MIT
- AlicenseNot gradedqualityBmaintenanceProvides programmatic X (Twitter) engagement via MCP, offering 24 tools for search, timelines, notifications, bookmarks, profiles, and tweet actions through a headless browser.MIT
- AlicenseBqualityAmaintenanceAn MCP server that enables AI assistants to interact with Twitter/X through a single authenticated session without an official API key, providing 27 tools for reading and writing tweets, user management, timeline access, trends, and direct messages.271MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/vibeforge1111/xmcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server