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

-
security - not tested
F
license - not found
-
quality - not tested

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