Skip to main content
Glama

Slander MCP

An MCP server that finds humorous roasts, jokes, and memes about any character (real or fictional) by searching Twitter/X. Uses social proof (engagement metrics) to rank content, with targeted LLM involvement for query generation, batch quality assessment, and nickname extraction.

Installation

npm install
npm run build

Configuration

Create a .env file with:

# Twitter/X API credentials (required)
TWITTER_BEARER_TOKEN=your_twitter_bearer_token_here

# LLM API key (at least one required)
ANTHROPIC_API_KEY=your_anthropic_api_key_here
# or
OPENAI_API_KEY=your_openai_api_key_here

Usage with Claude Desktop

Add to your Claude Desktop MCP configuration:

{
  "mcpServers": {
    "slander": {
      "command": "node",
      "args": ["/path/to/slander_mcp/dist/index.js"],
      "env": {
        "TWITTER_BEARER_TOKEN": "your_token",
        "ANTHROPIC_API_KEY": "your_key"
      }
    }
  }
}

Tools

generate_search_query

Generate effective Twitter search queries for finding slander about a target.

Input:

  • target (string, required): Name of character to search for

Output:

  • queries: Array of search query strings

Example:

Input:  { "target": "LeBron James" }
Output: { "queries": ["LeBron James ratio", "LeChoke", "LeBron hairline", ...] }

fetch_posts

Fetch posts from Twitter for a given query, looping until quality threshold is met.

Input:

  • query (string, required): Search query

  • loop_limit (number, optional): Max fetch iterations (default: 5)

  • count (number, optional): Posts per fetch (default: 10)

  • target (string, optional): Target name for quality evaluation

Output:

  • posts: Array of post objects with engagement metrics

  • iterations: Number of fetch loops

  • stopped_reason: "quality_threshold" or "loop_limit"

rank_posts

Rank fetched posts by engagement, separate text from media, extract nicknames.

Input:

  • posts (array, required): Posts from fetch_posts

  • top_n (number, optional): Results per category (default: 3)

  • target (string, optional): Target name for nickname extraction

Output:

  • text_posts: Top text posts ranked by engagement

  • media_posts: Top media posts ranked by engagement

  • nicknames: Extracted nicknames/slang for the target

Engagement Score Formula:

score = (likes * 1.0) + (retweets * 2.0) + (replies * 0.5)

Example Workflow

  1. Generate search queries:

    generate_search_query({ target: "LeBron James" })
  2. Fetch posts for each query:

    fetch_posts({ query: "LeChoke", target: "LeBron James" })
  3. Combine and rank results:

    rank_posts({ posts: [...all_posts], top_n: 5, target: "LeBron James" })

License

MIT

Install Server
A
security – no known vulnerabilities
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/Ebop14/slander_mcp'

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