Skip to main content
Glama
scrape-badger

ScrapeBadger MCP Server

Official

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-mcp

3. 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_twitter_user_profile

Get a user's profile by username (bio, followers, following, etc.)

get_twitter_user_about

Get extended "About" info (account location, username history)

search_twitter_users

Search for users by query

get_twitter_followers

Get a user's followers

get_twitter_following

Get accounts a user follows

Tweet Tools

Tool

Description

get_twitter_tweet

Get a single tweet by ID

get_twitter_user_tweets

Get recent tweets from a user

search_twitter_tweets

Search for tweets (supports Twitter search operators)

Trend Tools

Tool

Description

get_twitter_trends

Get global trending topics (optionally by category)

get_twitter_place_trends

Get trends for a specific location (by WOEID)

Geo Tools

Tool

Description

search_twitter_places

Search for Twitter places by name

List Tools

Tool

Description

get_twitter_list_detail

Get details about a Twitter list

search_twitter_lists

Search for Twitter lists

get_twitter_list_tweets

Get tweets from a list

Community Tools

Tool

Description

get_twitter_community_detail

Get details about a Twitter community

search_twitter_communities

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)
...

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

SCRAPEBADGER_API_KEY

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.server

Error Handling

The MCP server handles common errors gracefully:

Error

Description

Solution

AuthenticationError

Invalid API key

Check your SCRAPEBADGER_API_KEY

RateLimitError

Too many requests

Wait and retry, or upgrade your plan

InsufficientCreditsError

Out of credits

Purchase more at scrapebadger.com

NotFoundError

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-mcp

Testing

# Run tests
uv run pytest

# Run with coverage
uv run pytest --cov=src/scrapebadger_mcp

Code 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

  1. Restart Claude Desktop after changing the config

  2. Check the config file path is correct for your OS

  3. 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:

  1. Reduce request frequency

  2. Use pagination with smaller max_results

  3. Upgrade your plan at scrapebadger.com



Support


License

MIT License - see LICENSE for details.


Available Tools

16 tools
get_twitter_community_detailB

Get details about a Twitter community including name, description, member count, rules, and admin information.

ParametersJSON Schema
NameRequiredDescriptionDefault
community_idYesTwitter community ID

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesTwitter username (without @)
max_resultsNoMax results (1-200)

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of 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.

Conciseness5/5

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.

Completeness4/5

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

Given that there is no output schema, 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.

Parameters4/5

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.

Purpose5/5

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

The description clearly states the verb (Get) and resource (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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesTwitter username (without @)
max_resultsNoMax results (1-200)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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

The description clearly states the verb 'Get' and 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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesTwitter list ID

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYesTwitter list ID
max_resultsNoMax results (1-100)

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus 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_tweetA

Get a single tweet by ID. Returns tweet text, author, metrics (likes, retweets, replies), media, polls, and quoted tweets.

ParametersJSON Schema
NameRequiredDescriptionDefault
tweet_idYesTweet ID

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesTwitter username (without @)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesTwitter username (without @)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesTwitter username (without @)
max_resultsNoMax results (1-100)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for communities

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for lists
max_resultsNoMax results (1-50)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPlace name to search

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query string
max_resultsNoMax results (1-100)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query string
max_resultsNoMax results (1-100)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives 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

A3.8/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents and coding assistants with Twitter data access including tweets, user profiles, followers, and search functionality.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to access Twitter/X data including user profiles, tweets, search, and follower events via a set of MCP tools.
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Allows AI assistants to query Twitter data including user info, tweets, trends, and more via twitterapi.io API.
    12
    6
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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

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