ScrapeBadger MCP Server
OfficialClick 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., "@ScrapeBadger MCP ServerGet the profile of @elonmusk"
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.
What is this?
ScrapeBadger MCP Server is a Model Context Protocol (MCP) server that enables AI assistants like Claude, ChatGPT, Cursor, Windsurf, and other MCP-compatible clients to access Twitter/X data through the ScrapeBadger API.
With this MCP server, your AI can:
Get Twitter user profiles, followers, and following lists
Search and retrieve tweets
Access trending topics globally or by location
Explore Twitter lists and communities
Search for places and geolocated content
Related MCP server: Twitter MCP Server
Quick Start
1. Get Your API Key
Sign up at scrapebadger.com and get your API key.
2. Install
# Using uvx (recommended - no installation needed)
uvx scrapebadger-mcp
# Or install globally with pip
pip install scrapebadger-mcp
# Or with uv
uv tool install scrapebadger-mcp3. Configure Your AI Client
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"scrapebadger": {
"command": "uvx",
"args": ["scrapebadger-mcp"],
"env": {
"SCRAPEBADGER_API_KEY": "sb_live_your_api_key_here"
}
}
}
}Cursor
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"scrapebadger": {
"command": "uvx",
"args": ["scrapebadger-mcp"],
"env": {
"SCRAPEBADGER_API_KEY": "sb_live_your_api_key_here"
}
}
}
}Windsurf
Add to your Windsurf MCP configuration:
{
"mcpServers": {
"scrapebadger": {
"command": "uvx",
"args": ["scrapebadger-mcp"],
"env": {
"SCRAPEBADGER_API_KEY": "sb_live_your_api_key_here"
}
}
}
}VS Code with Copilot
Add to your VS Code settings (.vscode/mcp.json):
{
"mcpServers": {
"scrapebadger": {
"command": "uvx",
"args": ["scrapebadger-mcp"],
"env": {
"SCRAPEBADGER_API_KEY": "sb_live_your_api_key_here"
}
}
}
}4. Start Using It!
Once configured, simply ask your AI to fetch Twitter data:
"Get the profile of @elonmusk"
"Search for tweets about AI agents"
"What's trending on Twitter right now?"
"Find the top 10 Python developers on Twitter"
Available Tools
The MCP server provides 17 tools organized into categories:
User Tools
Tool | Description |
| Get a user's profile by username (bio, followers, following, etc.) |
| Get extended "About" info (account location, username history) |
| Search for users by query |
| Get a user's followers |
| Get accounts a user follows |
Tweet Tools
Tool | Description |
| Get a single tweet by ID |
| Get recent tweets from a user |
| Search for tweets (supports Twitter search operators) |
Trend Tools
Tool | Description |
| Get global trending topics (optionally by category) |
| Get trends for a specific location (by WOEID) |
Geo Tools
Tool | Description |
| Search for Twitter places by name |
List Tools
Tool | Description |
| Get details about a Twitter list |
| Search for Twitter lists |
| Get tweets from a list |
Community Tools
Tool | Description |
| Get details about a Twitter community |
| Search for communities |
Example Conversations
Research a Twitter Account
You: Get the profile and recent tweets from @sama
Claude: I'll fetch Sam Altman's Twitter profile and recent tweets.
Uses get_twitter_user_profile and get_twitter_user_tweets
Sam Altman (@sama)
- 3.2M followers, 1,847 following
- Bio: "ceo of openai"
- Joined: December 2008
Recent tweets:
1. "excited to share..." (245K likes)
2. "the future of ai..." (180K likes)
...Monitor Trending Topics
You: What's trending in tech on Twitter today?
Claude: I'll check the current trending topics.
Uses get_twitter_trends with category="news"
Top Tech Trends:
1. #GPT5 - 125,000 tweets
2. Apple Vision Pro - 89,000 tweets
3. #AGI - 45,000 tweets
...Competitive Analysis
You: Compare the Twitter engagement of Stripe, Square, and PayPal
Claude: I'll gather data on all three companies' Twitter profiles.
Uses get_twitter_user_profile for each company
| Company | Followers | Following | Engagement Rate |
|---------|-----------|-----------|-----------------|
| Stripe | 892K | 1,245 | 2.3% |
| Square | 1.2M | 567 | 1.8% |
| PayPal | 2.1M | 234 | 0.9% |Configuration Options
Environment Variables
Variable | Required | Description |
| Yes | Your ScrapeBadger API key |
Using with Docker
FROM python:3.12-slim
RUN pip install scrapebadger-mcp
ENV SCRAPEBADGER_API_KEY=your_key_here
CMD ["scrapebadger-mcp"]Using with Python Directly
# Set your API key
export SCRAPEBADGER_API_KEY="sb_live_your_key_here"
# Run the server
python -m scrapebadger_mcp.serverError Handling
The MCP server handles common errors gracefully:
Error | Description | Solution |
| Invalid API key | Check your |
| Too many requests | Wait and retry, or upgrade your plan |
| Out of credits | Purchase more at scrapebadger.com |
| User/tweet not found | Verify the username or tweet ID |
Development
Setup
# Clone the repository
git clone https://github.com/scrape-badger/scrapebadger-mcp.git
cd scrapebadger-mcp
# Install dependencies
uv sync --dev
# Set your API key
export SCRAPEBADGER_API_KEY="sb_live_your_key_here"Running Locally
# Run the MCP server directly
uv run python -m scrapebadger_mcp.server
# Or use the CLI
uv run scrapebadger-mcpTesting
# Run tests
uv run pytest
# Run with coverage
uv run pytest --cov=src/scrapebadger_mcpCode Quality
# Lint
uv run ruff check src/
# Format
uv run ruff format src/
# Type check
uv run mypy src/Troubleshooting
"SCRAPEBADGER_API_KEY environment variable is required"
Make sure you've set the API key in your MCP configuration:
{
"env": {
"SCRAPEBADGER_API_KEY": "sb_live_your_key_here"
}
}Server not showing in Claude Desktop
Restart Claude Desktop after changing the config
Check the config file path is correct for your OS
Verify JSON syntax is valid (no trailing commas)
"uvx: command not found"
Install uv first:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"Rate limit errors
ScrapeBadger has usage limits based on your plan. If you're hitting limits:
Reduce request frequency
Use pagination with smaller
max_resultsUpgrade your plan at scrapebadger.com
Related Projects
ScrapeBadger Python SDK - Official Python SDK
ScrapeBadger Node.js SDK - Official Node.js SDK
ScrapeBadger API Docs - Full API documentation
Support
Documentation: docs.scrapebadger.com
Issues: GitHub Issues
Email: support@scrapebadger.com
Discord: Join our community
License
MIT License - see LICENSE for details.
Available Tools
16 toolsget_twitter_community_detailB
Get details about a Twitter community including name, description, member count, rules, and admin information.
| Name | Required | Description | Default |
|---|---|---|---|
| community_id | Yes | Twitter community ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations available. Description implies a read operation but omits important behavioral details such as authentication requirements, rate limits, or whether the community must be public. Minimal disclosure beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence with no extraneous information. Every word is purposeful and directly conveys 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?
Despite no output schema, the description lists returned fields (name, description, member count, rules, admin info), compensating well. It could briefly mention how to obtain community_id, but for a simple tool, it is nearly 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 coverage is 100% with a single parameter 'community_id' described as 'Twitter community ID'. The tool description does not add any semantic value beyond the schema, so baseline of 3 is appropriate.
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?
Clearly states 'Get details about a Twitter community' with specific fields (name, description, member count, rules, admin info), distinguishing it from sibling tools that handle different resources like lists or 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?
No context on when to use this tool versus alternatives like search_twitter_communities. No prerequisites or exclusions provided, leaving the agent uninformed about the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twitter_followersA
Get followers of a Twitter/X user. Returns list of follower profiles with their bios and follower counts.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Twitter username (without @) | |
| max_results | No | Max results (1-200) |
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 disclosing behavioral traits. It only states the action and return type, but does not mention that the tool is read-only, requires authentication, has rate limits, or handles pagination.
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 two sentences long with no unnecessary words. It efficiently conveys the purpose and return value.
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 is no output schema, the description adequately explains the return value (list of follower profiles with bios and follower counts). However, it lacks detail on pagination or the effect of max_results beyond what the schema provides. For a straightforward list tool, it is reasonably 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?
The input schema has 100% parameter descriptions, so baseline is 3. The description adds value by stating that the returned list includes bios and follower counts, which is not in the schema. This provides context beyond the parameter 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 clearly states the verb (Get) and resource (followers of a Twitter/X user), and specifies the return value (list of follower profiles with bios and follower counts). This distinguishes it from sibling tools like get_twitter_following, which gets who the user follows.
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 explicit guidance on when to use this tool versus alternatives (e.g., get_twitter_following), nor does it mention prerequisites or limitations. It only implies usage by its name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twitter_followingA
Get accounts that a Twitter/X user is following. Returns list of following profiles with their bios and follower counts.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Twitter username (without @) | |
| max_results | No | Max results (1-200) |
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 return fields (profiles, bios, follower counts) but lacks details on pagination, rate limits, authentication needs, or data freshness. The max_results parameter hints at a limit but not pagination 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?
Two sentences, direct, no fluff. Front-loaded with the core action and resource. Every sentence adds value.
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 tool with 2 parameters, no output schema, and 15 siblings, the description covers the input and output well. It could mention ordering or default pagination, but overall it adequately describes what the tool does and returns.
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 coverage is 100% with clear parameter descriptions (username without @, max_results with range). The description adds context about return fields but does not add meaning to the parameters beyond what the schema provides.
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 'accounts that a Twitter/X user is following', and mentions return fields (bios, follower counts). It distinguishes from siblings like 'get_twitter_followers' (which gets followers, not following) and 'search_twitter_users' (search vs. specific user's following).
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 implies usage when needing a user's following list, but does not provide explicit guidance on when to use this vs siblings, nor any exclusions or prerequisites. No when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twitter_list_detailA
Get details about a Twitter list including name, description, member count, subscriber count, and owner information.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | Twitter list ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It implies a read-only operation (getting details) but does not explicitly state that it does not modify data or require specific permissions. The description is adequate but lacks explicit behavioral disclosure beyond the obvious.
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 that immediately conveys the tool's purpose and key details. No unnecessary words, front-loaded with the action and resource. Efficient 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 simple one-parameter input and no output schema, the description covers the main purpose and lists the types of details returned. It is complete enough for an agent to understand what information will be retrieved, though it could hint at the return structure (e.g., an object).
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 coverage is 100%—the single parameter 'list_id' is described as 'Twitter list ID' in the schema. The description does not add any additional meaning, such as format, source, or constraints. Baseline 3 is appropriate since the schema fully documents the parameter.
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 details' and specifies the resource 'a Twitter list', listing specific details returned (name, description, member count, subscriber count, owner information). This distinguishes it from sibling tools like get_twitter_list_tweets (fetches tweets) or search_twitter_lists (searches for lists).
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 does not provide any guidance on when to use this tool versus alternatives. There is no mention of prerequisites, limitations, or cases where other tools would be more appropriate. It only states what it does without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twitter_list_tweetsA
Get recent tweets from a Twitter list. Returns tweets from all list members with text, metrics, and media.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | Twitter list ID | |
| max_results | No | Max results (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fails to disclose rate limits, authentication needs, or data freshness beyond 'recent'. Does not state whether the tool is read-only or if it has side effects.
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?
Two sentences, front-loaded with purpose, no wasted words. Efficient and direct.
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?
Adequately describes functionality and return data but lacks details on pagination, ordering, or how 'recent' is defined. Without output schema, more clarity would be beneficial.
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 descriptions already clarify both parameters (100% coverage). Description adds value by specifying that returned tweets include 'text, metrics, and media', which is not in 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?
Clearly states verb 'Get' and resource 'recent tweets from a Twitter list', specifying returned data (text, metrics, media). Distinguishes from siblings like 'get_twitter_tweet' and 'get_twitter_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?
No explicit guidance on when to use this tool versus siblings such as 'search_twitter_tweets' or 'get_twitter_user_tweets'. Missing when-not-to-use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twitter_place_trendsA
Get trending topics for a specific location using WOEID. Common WOEIDs: US=23424977, UK=23424975, Japan=23424856.
| Name | Required | Description | Default |
|---|---|---|---|
| woeid | Yes | Where On Earth ID (e.g., 23424977 for US, 44418 for London) |
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 does not disclose any behavioral traits such as authentication requirements, rate limits, error behavior for invalid WOEIDs, or that it is a read-only operation. This is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second provides useful examples. No unnecessary words. Efficient and front-loaded.
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 simple one-parameter tool with full schema coverage and no output schema, the description is mostly complete but lacks behavioral transparency and usage guidance relative to siblings. It could mention when to prefer this over get_twitter_trends or what response format to expect.
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 coverage is 100% and the schema already describes the WOEID parameter with examples. The description adds different example WOEIDs (countries vs. city in schema), providing minor additional context. Baseline 3 is appropriate as the description complements but does not significantly exceed schema detail.
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 trending topics') and the resource ('for a specific location using WOEID'). It distinguishes from siblings like get_twitter_trends (general) and search_twitter_places (place lookup) by specifying location-specific trends.
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 clear context on when to use the tool (for location-specific trends) and gives common WOEID examples. However, it does not explicitly state when not to use it or name alternatives like get_twitter_trends for global trends.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twitter_trendsA
Get current trending topics on Twitter/X. Optionally filter by category (news, sports, entertainment). Returns trend names and tweet counts.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Trend category: 'news', 'sports', 'entertainment', or None for all |
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 accurately describes the behavior: fetching current trending topics, optional filtering, and returning trend names with tweet counts. It does not mention rate limits or authentication but for a simple read operation, the description is sufficiently transparent.
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?
Two sentences, no wasted words. The first sentence states the core purpose, the second adds optional parameters and return values. Information is front-loaded and efficient.
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?
With one optional parameter, no output schema, and no annotations, the description is fairly complete. It covers purpose, filtering options, and return content. It could mention number of trends or pagination, but these are not critical for a basic trends 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?
Schema coverage is 100%, so the baseline is 3. The description adds the enumeration of categories ('news, sports, entertainment') which matches the schema's description. No additional semantics are provided beyond what the schema already offers.
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 ('current trending topics on Twitter/X'), making the purpose obvious. It mentions optional filtering by category and what is returned. However, it does not explicitly specify that this tool provides global trends, leaving slight ambiguity versus the sibling tool get_twitter_place_trends which is for location-specific trends.
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 given on when to use this tool versus alternatives. Notably, there is a sibling tool get_twitter_place_trends for location-specific trends, but the description does not mention this or provide any exclusion criteria. The only usage clue is the optional category filter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twitter_tweetA
Get a single tweet by ID. Returns tweet text, author, metrics (likes, retweets, replies), media, polls, and quoted tweets.
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | Yes | Tweet ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses what data is returned (text, author, metrics, etc.) but omits behavioral aspects like rate limits, authentication requirements, or idempotency. Adequate for a simple read operation.
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?
Single sentence, front-loaded with key action and resource. Every word adds value; no fluff. Ideal structure for quick agent comprehension.
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 low complexity (1 param, no output schema), the description sufficiently covers the tool's purpose and output. Could optionally describe output structure more precisely, but current detail is 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?
Schema coverage is 100% for the single parameter tweet_id, which already describes it as 'Tweet ID'. The description adds no extra semantics beyond referencing the parameter implicitly. Baseline score of 3 is appropriate.
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?
Description clearly states it retrieves a single tweet by ID and lists specific return fields. Distinguishes from sibling tools like get_twitter_user_tweets (which returns a user's timeline) and search_twitter_tweets (for searching).
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 when-to-use or alternatives mentioned. The action is straightforward, but the description does not advise against using other tools (e.g., search_twitter_tweets) for similar purposes. Usage is implied by the function 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_twitter_user_aboutA
Get extended 'About' information for a Twitter/X user including account location, username change history, and verification details.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Twitter username (without @) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It indicates a read operation ('Get...information') but omits details like authentication requirements, rate limits, error handling (e.g., if user does not exist), or idempotency. It is adequate but not comprehensive.
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 that efficiently conveys the purpose and key output fields. It is front-loaded with the main action and resource, with no unnecessary words.
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 one parameter, no output schema, and no annotations, the description provides sufficient context about what information is retrieved. It lists examples of extended details, though it could mention default behavior (e.g., returns JSON) or limitations. Overall, it is mostly complete for its complexity.
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 coverage is 100% for the single parameter 'username', with the schema describing it as 'Twitter username (without @)'. The description adds value by listing example output fields (location, username change history, verification details), enhancing understanding beyond the schema. Baseline 3, raised to 4 for added context.
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 retrieves extended 'About' information for a Twitter/X user, listing specific fields like account location, username change history, and verification details. This distinguishes it from sibling tools like get_twitter_user_profile, which likely returns basic profile data.
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 such as get_twitter_user_profile or search_twitter_users. The description implies it is for extended details, but lacks when-not-to-use or context for alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twitter_user_profileA
Get a Twitter/X user's profile by username. Returns name, bio, follower count, following count, verified status, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Twitter username (without @) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It lists the return data fields (name, bio, follower count, etc.) but does not disclose behaviors like error handling (e.g., if username doesn't exist), rate limits, or authentication requirements. The 'and more' is vague.
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?
A single sentence that fully conveys the purpose and output. No wasted words; appropriately sized 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 straightforward tool with one parameter and no output schema, the description covers the main purpose and return fields. However, it could be more precise about the full list of returned attributes or error scenarios, but it's 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?
Schema description coverage is 100% for the single parameter 'username', and the description simply restates it as 'Twitter username (without @)'. No additional meaning beyond the schema, so baseline score of 3 applies.
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 tool name and description provide a specific verb ('get') and resource ('Twitter/X user's profile'), and it clearly distinguishes itself from sibling tools like get_twitter_user_tweets or get_twitter_followers by focusing on the profile data.
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 implies using this tool to retrieve a user's profile by username, but it does not provide explicit guidance on when to use it over alternatives like search_twitter_users (for searching) or get_twitter_user_about (which might have different scope). No when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_twitter_user_tweetsB
Get recent tweets from a Twitter/X user. Returns tweets with text, metrics, media, and engagement data.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Twitter username (without @) | |
| max_results | No | Max results (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions 'recent tweets' but does not disclose pagination, rate limits, authentication needs, or any side effects.
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?
Single sentence, no fluff. Information is front-loaded and efficient.
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?
Without an output schema or annotations, the description is too brief. It lacks details on pagination, rate limits, response format, and potential errors, making it incomplete for reliable 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 coverage is 100%, so parameters are documented. The description adds context about returned data but does not elaborate on parameter meaning beyond what the schema provides.
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 retrieves tweets from a user, specifying the returned data (text, metrics, media, engagement). It distinguishes from siblings like get_twitter_tweet (single tweet) and search_twitter_tweets (query-based).
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 implies use for getting recent tweets of a specific user but lacks explicit guidance on when to choose this over alternatives like search_twitter_tweets or get_twitter_tweet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_twitter_communitiesB
Search for Twitter communities by query. Returns matching communities with names, descriptions, and member counts.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for communities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses that it returns results with specific fields, but omits behavioral traits such as pagination, rate limits, authentication requirements, or if results are ordered or limited.
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?
Single sentence, no unnecessary words. Front-loaded with verb and resource. 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 simplicity (one parameter, no output schema), the description covers essential aspects: what it does and what it returns. Could mention search syntax or limits, but not critical for basic 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 coverage is 100% with one parameter 'query'. The description phrase 'search by query' merely restates the schema's purpose. Baseline score of 3 is appropriate as the description adds no additional meaning beyond 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 tool searches for Twitter communities by query and returns names, descriptions, and member counts. It distinguishes from sibling search tools (e.g., search_twitter_lists) by specifying 'communities', but does not explicitly differentiate from get_twitter_community_detail.
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 vs alternatives like 'get_twitter_community_detail' or other search tools. No mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_twitter_listsB
Search for Twitter lists by query. Returns matching lists with names, descriptions, and member counts.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for lists | |
| max_results | No | Max results (1-50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It only states a read operation and returned fields. Missing details on authentication, rate limits, pagination, sorting, or whether the search is fuzzy/exact. The agent learns little beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the essential action and output. It is front-loaded with the verb and resource, no redundant words. 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?
For a simple search tool with two well-documented parameters and no output schema, the description covers basic purpose and return fields. However, it lacks pagination behavior, error handling, or explanation of what happens when max_results is exceeded. Adequate but not thorough.
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 coverage is 100%, so the description adds minimal value: it reiterates that the tool returns matching lists with specific fields. The query parameter is adequately described in the schema, and max_results has default/range. The description does not clarify how the query is matched or the meaning of 'member counts'. Baseline 3 is appropriate.
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 (search), resource (Twitter lists), and what is returned (names, descriptions, member counts). It distinguishes itself from sibling tools like get_twitter_list_detail and search_twitter_tweets by focusing on list search. However, it could be more specific about the scope of the search (e.g., global vs. user-owned lists).
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 siblings like get_twitter_list_detail or get_twitter_list_tweets. No prerequisites, context, or alternative suggestions are provided, leaving the agent to infer usage from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_twitter_placesA
Search for Twitter places by name. Returns place names, types, and full location details for use with geolocated tweets.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Place name to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It explains the return format (names, types, location details), which is good, but it does not disclose limitations (e.g., result caps), error behavior, or authentication requirements. The description is adequate but not comprehensive.
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: two sentences that cover the action, target, and return value without any wasted words. It is efficiently front-loaded with the core 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?
With one parameter fully described in the schema and no output schema, the description provides sufficient context for the tool's purpose and output. It could benefit from mentioning result limits or pagination, but overall it is complete for a simple search 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 already provides a description for the single parameter 'query' ('Place name to search'). The tool description reinforces that the query is a place name, but adds no new semantic detail beyond the schema. Since schema coverage is 100%, the description's additional value is marginal.
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 ('Search for'), the resource ('Twitter places'), and the search criterion ('by name'). It distinguishes from sibling tools such as search_twitter_tweets or search_twitter_users, and mentions the return value including types and location details, which is specific and helpful.
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 implies usage when needing place information for geolocated tweets, but it does not explicitly state when to use this tool over alternatives like get_twitter_place_trends. There is no mention of prerequisites or when not to use it, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_twitter_tweetsA
Search for tweets by query. Returns matching tweets with text, authors, metrics, and media. Supports advanced Twitter search operators.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string | |
| max_results | No | Max results (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states the return content (text, authors, metrics, media) and supports advanced operators, which is adequate. However, it does not disclose rate limits, authentication needs, or potential limitations like tweet recency, which would improve 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 concise with three short sentences that front-load the core purpose and returns. No wasted words, and every sentence adds meaning.
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 simplicity (2 parameters, no output schema), the description is fairly complete: it covers purpose, return types, and advanced operators. It lacks details on pagination or error handling, but these are not critical for a basic search tool with a max_results parameter.
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 covers 100% of parameters with descriptions, but the tool description adds value by mentioning 'Supports advanced Twitter search operators', giving extra context for the query parameter beyond the schema's 'Search query string'. This justifies a score above baseline 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 (search), resource (tweets), and return fields (text, authors, metrics, media). It distinguishes from siblings like get_twitter_tweet (single tweet) and search_twitter_users (users) by specifying tweet-specific search and advanced operators.
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 implies use for general tweet search by query but does not explicitly guide when to use alternatives like get_twitter_user_tweets or search_twitter_communities. No exclusions or prerequisites are provided, though the tool name and context somewhat compensate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_twitter_usersB
Search for Twitter/X users by query. Returns matching profiles with bios, follower counts, and verification status.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string | |
| max_results | No | Max results (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only lists return fields but omits behavioral traits like pagination, authentication requirements, or rate limits. Minimal transparency for a search 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?
Two clear sentences, no wasted words. Front-loaded with verb and resource.
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?
Describes return fields but lacks details on sorting, pagination, or result limit beyond max_results. No output schema to compensate; adequate but not thorough.
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 100%; description adds no new parameter information beyond what schema provides (e.g., query string, max results with limits). Baseline score 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?
Description uses specific verb 'search' and resource 'users', clearly distinguishing from sibling tools like search_twitter_tweets or get_twitter_user_profile. Also specifies returned data (bios, follower counts, verification status).
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_tweets or search_twitter_communities. Agent must infer from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource or operation (e.g., community, followers, trends, user profile vs. about), and the descriptions clearly differentiate them. No two tools appear to perform the same function.
All names follow a consistent 'verb_twitter_noun' pattern using snake_case, with verbs either 'get' or 'search' and nouns clearly indicating the resource. No mixing of conventions.
With 16 tools covering various Twitter entities (users, tweets, trends, lists, communities, places), the count is well-scoped for a scraping-purpose server, providing sufficient breadth without being overwhelming.
The tool set covers most read operations for Twitter scraping (profiles, tweets, followers, trends, lists, communities), but minor gaps exist such as lack of tools for getting retweets, tweet replies, or list members.
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
X (formerly Twitter) posts, profiles, and search for AI agents. Free key, self-minted, no signup.
Twitter: Access real-time Twitter/X data as soon as it's posted! With the Twitter/X AIO API, you.
Twitter (X) API alternative for AI agents: tweet search, profiles, followers. $0.0002 per result.
Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI agents and coding assistants with Twitter data access including tweets, user profiles, followers, and search functionality.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to access Twitter/X data including user profiles, tweets, search, and follower events via a set of MCP tools.1MIT
- FlicenseAqualityDmaintenanceAllows AI assistants to query Twitter data including user info, tweets, trends, and more via twitterapi.io API.126
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to automate Twitter/X actions through the X API v2, supporting over 50 tools for posting, searching, user management, and more.1
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/scrape-badger/scrapebadger-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server