Skip to main content
Glama
ferdousbhai

WSB Analyst MCP Server

by ferdousbhai

WSB Analyst MCP Server

Trust Score

A Model Context Protocol (MCP) server that provides real-time WallStreetBets data for analysis with Claude or other LLM clients.

Features

  • Fetch WallStreetBets Posts: Filter posts by score, comment count, and content type

  • Detailed Post Analysis: Extract comments, links, and metadata from posts

  • External Link Collection: Gather links being shared in WSB discussions

  • Analysis Templates: Ready-to-use prompt templates for market analysis

  • Progress Reporting: Real-time progress updates during data collection

  • MCP Integration: Seamless integration with Claude Desktop and other MCP clients

Related MCP server: MCP Reddit Server

Requirements

  • Python 3.12 or higher

  • Reddit API credentials

  • Claude Desktop or another MCP client

Installation

Installing via Smithery

To install WSB Analyst for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @ferdousbhai/wsb-analyst-mcp --client claude

Clone this repository or download the source files:

git clone https://github.com/ferdousbhai/wsb-analyst-mcp
cd wsb-analyst-mcp

Create a virtual environment and install dependencies:

# Using uv (recommended)
uv sync

Setting Up Reddit API Credentials

To use this server, you need to create a Reddit application to get API credentials:

  1. Log in to your Reddit account

  2. Navigate to https://www.reddit.com/prefs/apps

  3. Scroll down and click "create another app..." or "create an app..."

  4. Fill in the following details:

    • name: WSB Analyst MCP (or any name you prefer)

    • app type: select "script"

    • description: Optional description of your application

    • about url: Can be left blank

    • redirect uri: Use http://localhost:8000 (any valid URL works as we don't use OAuth)

  5. Click "create app"

  6. After creation, note down:

    • client_id: The string under the app name (appears right under "personal use script")

    • client_secret: The string labeled "secret"

Configuration for Claude Desktop

Open Claude Desktop's configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the following configuration (adjust paths as needed):

{
  "mcpServers": {
    "wsb-analyst": {
      "command": "uvx",
      "args": [
        "run",
        "wsb-analyst"
      ],
      "env": {
        "REDDIT_CLIENT_ID": "your_client_id_here",
        "REDDIT_CLIENT_SECRET": "your_client_secret_here"
      }
    }
  }
}

Restart Claude Desktop

Using with Claude Desktop

Once configured, you can interact with the WSB Analyst server through Claude:

  1. Open Claude Desktop

  2. You should see a hammer icon in the bottom right corner of the message input box

  3. Click the hammer to see available tools

  4. Access prompt templates via slash commands (e.g., /analyze_wsb_market)

Example queries:

  • "What are the top trending stocks on WallStreetBets today?"

  • "Analyze recent WallStreetBets posts and tell me about potential market opportunities"

  • "What external resources are WSB users sharing about AMD stock?"

Available Tools

find_top_posts

Fetch and filter WSB posts based on criteria.

Parameters:

  • min_score (default: 100): Minimum score (upvotes) required

  • min_comments (default: 10): Minimum number of comments required

  • limit (default: 10): Maximum number of posts to return

  • excluded_flairs (default: ["Meme", "Shitpost", "Gain", "Loss"]): List of post flairs to exclude.

fetch_post_details

Fetch detailed information about a specific WSB post including top comments.

Parameters:

  • post_id: Reddit post ID

fetch_batch_post_details

Fetches details for multiple posts efficiently.

fetch_detailed_wsb_posts

Fetch and filter WSB posts, then get detailed information including top comments and links for each.

Collects all external links from top posts.

Identifies and returns a list of stock tickers frequently mentioned or discussed in recent top WSB posts.

Prompt Templates

/analyze_wsb_market

Provides a template prompt to guide an LLM in performing a comprehensive market analysis using the available tools (fetch_detailed_wsb_posts, get_external_links). It instructs the LLM on the structure and focus of the analysis.

/find_market_movers

Creates a prompt focused on what's moving specific stocks or the overall market. This prompt guides the LLM to use tools like find_top_posts and fetch_post_details or fetch_batch_post_details.

Integrating with Firecrawl MCP Server

For enhanced analysis capabilities, especially when dealing with external links found in WSB posts, you can integrate this server with the Firecrawl MCP Server. This allows your LLM agent to not only identify links shared on WSB but also scrape and analyze the content of those linked pages.

License

MIT

Available Tools

6 tools
fetch_batch_post_detailsC
Fetch details for multiple posts efficiently.

Args:
    post_ids: List of Reddit post IDs

Returns:
    Dictionary with details for all requested posts
ParametersJSON Schema
NameRequiredDescriptionDefault
post_idsYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but provides minimal behavioral context. It states it fetches details efficiently but doesn't disclose rate limits, authentication needs, error handling, or what happens if some post IDs are invalid. This is inadequate for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately brief with three sentences that are front-loaded (purpose first, then args, then returns). No wasted words, though the structure could be slightly improved by integrating usage context.

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?

Given no annotations, 0% schema coverage, and no output schema, the description is incomplete. It lacks details on return format (beyond 'dictionary'), error cases, performance characteristics, and differentiation from siblings, making it insufficient for reliable tool selection.

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 0%, but the description adds basic meaning by specifying 'post_ids' as 'List of Reddit post IDs'. However, it doesn't clarify format constraints, size limits, or provide examples, leaving significant gaps in parameter understanding.

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's purpose with specific verbs ('fetch details') and resource ('multiple posts'), and mentions efficiency. However, it doesn't distinguish this batch operation from the sibling 'fetch_post_details' tool, which likely fetches single posts.

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 is provided about when to use this tool versus alternatives like 'fetch_post_details' or 'fetch_detailed_wsb_posts'. The description mentions efficiency for multiple posts but doesn't specify thresholds or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_detailed_wsb_postsB
Fetch and filter WSB posts, then get detailed information including top comments and links for each.

Args:
    min_score: Minimum score (upvotes) required
    min_comments: Minimum number of comments required
    limit: Maximum number of posts to return
    excluded_flairs: List of post flairs to exclude. Defaults to ["Meme", "Shitpost", "Gain", "Loss"].

Returns:
    A dictionary with detailed data for the filtered posts.
ParametersJSON Schema
NameRequiredDescriptionDefault
min_scoreNo
min_commentsNo
limitNo
excluded_flairsNo

TDQS

B3.1/5.0
Behavior2/5

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 fetching, filtering, and returning detailed data but lacks critical information: whether this is a read-only operation, potential rate limits, authentication requirements, data freshness, error handling, or what 'detailed information' specifically includes beyond comments and links. For a tool with no annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It starts with a clear purpose statement, followed by an 'Args' section with parameter explanations and a 'Returns' section. Each sentence adds value without redundancy. However, the 'Returns' section is somewhat vague ('A dictionary with detailed data'), which slightly reduces efficiency.

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?

Given no annotations and no output schema, the description provides adequate basics: purpose and parameter semantics. However, it lacks details on behavioral traits (e.g., read-only status, rate limits), output structure beyond 'dictionary', and differentiation from sibling tools. For a tool with 4 parameters and no structured metadata, this is minimally viable but leaves gaps in usage context.

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 description coverage is 0%, so the description must compensate. It provides clear semantics for all four parameters: 'min_score' as minimum upvotes, 'min_comments' as minimum comment count, 'limit' as maximum posts to return, and 'excluded_flairs' with default values and purpose. This adds meaningful context beyond the bare schema, though it doesn't explain parameter interactions or validation rules.

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's purpose: 'Fetch and filter WSB posts, then get detailed information including top comments and links for each.' This specifies the verb (fetch and filter), resource (WSB posts), and scope (detailed information with comments and links). However, it doesn't explicitly differentiate from sibling tools like 'fetch_batch_post_details' or 'fetch_post_details' beyond mentioning 'detailed information'.

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 guidance on when to use this tool versus alternatives. With sibling tools like 'find_top_posts' and 'get_top_trending_tickers' available, there's no indication of how this tool differs in use cases, prerequisites, or appropriate contexts. The description only explains what the tool does, not when to choose it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_post_detailsB
Fetch detailed information about a specific WSB post including top comments. Caches results for 5 minutes.

Args:
    post_id: Reddit post ID

Returns:
    Detailed post data including comments and extracted links
ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYes

TDQS

B3.3/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 full burden. It discloses caching behavior ('Caches results for 5 minutes'), which is useful context beyond basic functionality. However, it lacks details on error handling, rate limits, authentication needs, or what happens if the post_id is invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the core purpose stated first, followed by caching info and parameter/return details. Every sentence adds value, though the structure could be slightly improved by integrating caching into the main sentence for better flow.

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?

Given no annotations and no output schema, the description does a decent job by explaining the parameter and return value in general terms. However, for a tool with caching and potential complexity in returns, it should provide more detail on output structure, error cases, or limitations to be fully 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?

With 0% schema description coverage and only one parameter, the description adds significant value by explaining that 'post_id' is a 'Reddit post ID', clarifying its format and source. This compensates well for the lack of schema documentation, though it could specify format constraints like length or pattern.

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 verb ('Fetch') and resource ('detailed information about a specific WSB post including top comments'), making the purpose explicit. However, it doesn't distinguish this tool from its siblings like 'fetch_detailed_wsb_posts' or 'fetch_batch_post_details', which likely have overlapping functionality.

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 guidance on when to use this tool versus alternatives. With siblings like 'fetch_batch_post_details' and 'fetch_detailed_wsb_posts', there's no indication of differences in scope, filtering, or use cases, leaving the agent without contextual direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_top_postsB
Fetch and filter WSB posts based on criteria. Caches results for 5 minutes.

Args:
    min_score: Minimum score (upvotes) required
    min_comments: Minimum number of comments required
    limit: Maximum number of posts to return
    excluded_flairs: List of post flairs to exclude. Defaults to ["Meme", "Shitpost", "Gain", "Loss"].

Returns:
    A dictionary with filtered posts data
ParametersJSON Schema
NameRequiredDescriptionDefault
min_scoreNo
min_commentsNo
limitNo
excluded_flairsNo

TDQS

B3.4/5.0
Behavior3/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 behavioral disclosure. It usefully mentions the 5-minute caching behavior, which is valuable operational context. However, it doesn't address other important behavioral aspects like error handling, rate limits, authentication requirements, or what happens when no posts match criteria.

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 efficiently structured with a clear purpose statement upfront, followed by well-organized parameter explanations in an 'Args' section and a 'Returns' section. Every sentence adds value with no wasted words, making it easy to scan and understand.

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 tool with 4 parameters, no annotations, and no output schema, the description does an adequate job explaining the parameters and caching behavior. However, it lacks information about return format details (beyond 'dictionary with filtered posts data'), error conditions, and how it differs from sibling tools, leaving some gaps in understanding.

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 description provides clear semantic meaning for all 4 parameters beyond what the schema offers (which has 0% description coverage). It explains what 'min_score' and 'min_comments' represent, clarifies that 'limit' controls maximum returns, and provides the default excluded flairs with examples. This compensates well for the schema's lack of descriptions.

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 ('Fetch and filter WSB posts') and the resource ('WSB posts'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its siblings like 'fetch_detailed_wsb_posts' or 'get_top_trending_tickers', which appear to operate on similar data.

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 guidance on when to use this tool versus its siblings. While it mentions caching behavior, it doesn't specify scenarios where this filtering approach is preferred over alternatives like 'fetch_detailed_wsb_posts' or 'get_top_trending_tickers'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updates
    • First observedfetch_batch_post_details
    • First observedfetch_detailed_wsb_posts
    • First observedfetch_post_details
    • First observedfind_top_posts
    • First observedget_external_links
    • First observedget_top_trending_tickers

TDQS

B3.2/5.0
Disambiguation2/5

There is significant overlap between tools, particularly fetch_detailed_wsb_posts and find_top_posts which both fetch and filter WSB posts with identical parameters, causing confusion. Additionally, fetch_batch_post_details and fetch_post_details both retrieve post details, though one handles multiple IDs and the other a single ID, which could be consolidated into a single tool with an optional list parameter.

Naming Consistency4/5

Tool names follow a consistent snake_case pattern with clear verb_noun structures (e.g., fetch_post_details, get_external_links), making them readable and predictable. However, the naming is not perfectly consistent as some tools use 'fetch' while others use 'get' for similar actions, which is a minor deviation.

Tool Count4/5

With 6 tools, the count is reasonable for a server focused on WSB analysis, covering post fetching, filtering, link extraction, and ticker trending. It is slightly under-scoped as it could benefit from additional tools for deeper analysis or data manipulation, but the core functionality is adequately represented.

Completeness3/5

The toolset covers key aspects like fetching posts, extracting links, and getting trending tickers, but there are notable gaps. For example, there is no tool for updating or deleting data, and advanced features such as sentiment analysis or historical data tracking are missing, which limits comprehensive analysis workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

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
    B
    quality
    B
    maintenance
    A Model Context Protocol server providing real-time stock data and options analysis through Yahoo Finance, enabling LLMs to access market data, analyze stocks, and evaluate options strategies.
    3
    25
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI assistants like Claude to browse and analyze Reddit content, including searching subreddits, retrieving post details with comments, and viewing trending posts.
    9
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A server that implements the Model Context Protocol for Schwab API, allowing access to account information, positions, stock quotes, and order/transaction history designed for integration with Large Language Models.
    60
    MIT
  • F
    license
    B
    quality
    F
    maintenance
    A read-only MCP server that provides access to financial news, Wall Street Bets sentiment analysis, and detailed options data from sellthenews.org. It enables LLMs to retrieve real-time news feeds, search historical data, and analyze options chains or Greek exposure for specific tickers.
    5
    -

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/ferdousbhai/wsb-analyst-mcp'

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