Slander MCP
Leverages OpenAI's models to generate effective search queries for social media, evaluate the quality of humor and memes, and assist in nickname extraction for character analysis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Slander MCPFind the funniest roasts and memes about LeBron James"
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.
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 buildRelated MCP server: twitter-voice-mcp
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_hereUsage 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 queryloop_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 metricsiterations: Number of fetch loopsstopped_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_poststop_n(number, optional): Results per category (default: 3)target(string, optional): Target name for nickname extraction
Output:
text_posts: Top text posts ranked by engagementmedia_posts: Top media posts ranked by engagementnicknames: Extracted nicknames/slang for the target
Engagement Score Formula:
score = (likes * 1.0) + (retweets * 2.0) + (replies * 0.5)Example Workflow
Generate search queries:
generate_search_query({ target: "LeBron James" })Fetch posts for each query:
fetch_posts({ query: "LeChoke", target: "LeBron James" })Combine and rank results:
rank_posts({ posts: [...all_posts], top_n: 5, target: "LeBron James" })
License
MIT
Available Tools
3 toolsfetch_postsA
Fetch posts from Twitter for a given query, looping until quality threshold is met. Uses AI to evaluate batch quality and stops early when sufficient roast content is found. Returns posts with engagement metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Single search query to find posts | |
| loop_limit | No | Max fetch iterations (default: 5, max: 10) | |
| count | No | Posts per fetch (default: 10, max: 100) | |
| target | No | Target name for quality evaluation (optional, improves quality checking) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it involves looping until a quality threshold is met, uses AI for batch quality evaluation, stops early when sufficient content is found, and returns posts with engagement metrics. This covers iterative fetching, quality assessment, and output format, though it lacks details on rate limits or error handling.
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 front-loaded with the core purpose and efficiently details the iterative process, AI evaluation, and return values in three concise sentences. Every sentence earns its place by adding critical behavioral context without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (iterative fetching with AI evaluation), no annotations, and no output schema, the description is largely complete: it explains the purpose, behavior, and output. However, it could improve by detailing error cases or the exact format of 'engagement metrics', leaving minor gaps for a tool with such dynamic behavior.
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%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond the schema, such as explaining how 'target' relates to 'quality evaluation' or the interplay between 'loop_limit' and 'count'. Baseline 3 is appropriate as the schema does the heavy lifting without extra value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('fetch posts from Twitter'), identifies the resource ('posts'), and distinguishes from siblings by mentioning AI evaluation for quality threshold and roast content, which neither 'generate_search_query' nor 'rank_posts' imply. It goes beyond a basic fetch operation with its iterative quality-checking behavior.
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 for when to use this tool: for fetching Twitter posts with iterative quality evaluation until a threshold is met, specifically for finding 'roast content.' However, it does not explicitly state when not to use it or name alternatives like 'rank_posts' for post-processing or 'generate_search_query' for query creation, missing explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_search_queryC
Generate effective Twitter search queries for finding slander, roasts, jokes, and memes about a target character (real or fictional). Uses AI to produce creative, context-aware queries that capture character-specific slander.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Name of character to search for (e.g., 'LeBron James', 'Darth Vader') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool 'Uses AI to produce creative, context-aware queries,' which adds some context about the method. However, it doesn't disclose other behavioral traits such as rate limits, error handling, or what the output looks like (e.g., format, examples). For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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?
The description is appropriately sized with two sentences that efficiently convey the tool's purpose and method. It's front-loaded with the main function and avoids unnecessary details. However, it could be slightly more structured by explicitly separating usage guidelines or output expectations, but overall, it's concise with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (AI-driven query generation) and lack of annotations and output schema, the description is somewhat complete but has gaps. It explains what the tool does and how it works (using AI), but doesn't cover output format or behavioral aspects like limitations. For a tool with no structured output information, more detail on expected results would improve completeness.
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% description coverage, with the 'target' parameter well-documented as 'Name of character to search for (e.g., 'LeBron James', 'Darth Vader').' The description adds minimal value beyond this, mentioning 'target character' but not providing additional syntax or format details. With high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate effective Twitter search queries for finding slander, roasts, jokes, and memes about a target character.' It specifies the verb ('generate'), resource ('Twitter search queries'), and scope ('slander, roasts, jokes, and memes about a target character'). However, it doesn't explicitly differentiate from sibling tools like 'fetch_posts' or 'rank_posts', which likely handle different aspects of content retrieval or ranking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions the tool's function but doesn't specify prerequisites, exclusions, or compare it to sibling tools like 'fetch_posts' or 'rank_posts'. There's implied usage for creating search queries, but no explicit when/when-not instructions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_postsA
Rank fetched posts by engagement, separate text from media posts, and extract nicknames. Uses engagement formula: (likes * 1.0) + (retweets * 2.0) + (replies * 0.5). Retweets weighted highest because sharing is strong signal for humor.
| Name | Required | Description | Default |
|---|---|---|---|
| posts | Yes | Posts from fetch_posts (can combine multiple fetches) | |
| top_n | No | Results per category (default: 3, max: 20) | |
| target | No | Target name for nickname extraction (required for nicknames) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: the specific engagement formula with weighted components (likes*1.0 + retweets*2.0 + replies*0.5), the rationale for weighting ('retweets weighted highest because sharing is strong signal for humor'), and the separation logic (text vs media posts). However, it doesn't mention output format or potential limitations.
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 efficiently structured in two sentences: the first states the core functions, the second explains the engagement formula with rationale. Every element serves a purpose with zero wasted words, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description provides substantial context about the ranking algorithm and processing logic. It covers the core transformation behavior well but doesn't describe the output format or structure, leaving some ambiguity about what the tool returns. Given the complexity, it's mostly complete but has one notable gap.
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%, providing good parameter documentation. The description adds some value by mentioning 'posts from fetch_posts' and implying the target parameter is for nickname extraction, but doesn't significantly enhance parameter understanding beyond what the schema already provides. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs: 'rank fetched posts by engagement', 'separate text from media posts', and 'extract nicknames'. It distinguishes from sibling tools by specifying it operates on posts from fetch_posts rather than fetching or generating queries itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'posts from fetch_posts' and 'required for nicknames' in the schema, but doesn't explicitly state when to use this tool versus alternatives. It suggests a workflow (use after fetch_posts) but lacks explicit guidance on when-not scenarios or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose in the slander-finding workflow: generate_search_query creates queries, fetch_posts retrieves posts based on those queries, and rank_posts processes and ranks the fetched posts. There is no overlap or ambiguity between their functions.
All tool names follow a consistent verb_noun pattern (fetch_posts, generate_search_query, rank_posts) with clear, descriptive verbs that align with their actions. No deviations or mixed conventions are present.
Three tools is a minimal but reasonable count for this server's purpose of finding and ranking slander content. It covers the core workflow (query generation, fetching, ranking) without being overly sparse, though a few additional tools (e.g., for filtering or exporting) could enhance completeness.
The tool set covers the essential steps for slander discovery: generating queries, fetching posts, and ranking them. Minor gaps exist, such as lacking tools for saving results or refining searches, but agents can work around these with the provided tools to achieve the server's goal.
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
MCP server for AI dialogue using various LLM models via AceDataCloud
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that fetches jokes from multiple sources (Chuck Norris, Dad jokes, and Yo Mama jokes) and integrates with Microsoft Copilot Studio to create a humor-focused conversational experience.MIT
- FlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that analyzes your unique Twitter voice to generate, manage, and post AI-powered tweets and quote tweet drafts. It supports multiple AI providers and provides tools for draft management, voice profiling, and automated content creation from images.
- FlicenseAqualityNot gradedmaintenanceAn MCP server that integrates X (Twitter) API access with Grok-powered intelligence for real-time social media analysis and account management. It provides tools for reading and writing tweets, managing direct messages, and generating AI-powered topic summaries or daily briefings.23
- AlicenseNot gradedqualityDmaintenanceAn MCP server for interacting with the Twitter/X API v2, enabling AI assistants to retrieve tweets, post content, reply, quote, and more programmatically.2,01313MIT
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/Ebop14/slander_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server