Skip to main content
Glama
ferdousbhai

WSB Analyst MCP Server

by ferdousbhai

WSBアナリストMCPサーバー

鍛冶屋のバッジ

Claude またはその他の LLM クライアントによる分析用にリアルタイムの WallStreetBets データを提供する Model Context Protocol (MCP) サーバー。

特徴

  • WallStreetBetsの投稿を取得: スコア、コメント数、コンテンツタイプで投稿をフィルタリング

  • 詳細な投稿分析:投稿からコメント、リンク、メタデータを抽出します

  • 外部リンクコレクション: WSBのディスカッションで共有されているリンクを収集します

  • 分析テンプレート: 市場分析にすぐに使えるプロンプトテンプレート

  • 進捗レポート: データ収集中の進捗状況をリアルタイムで更新

  • MCP 統合: Claude Desktop およびその他の MCP クライアントとのシームレスな統合

Related MCP server: MCP Reddit Server

要件

  • Python 3.12以上

  • Reddit API 認証情報

  • Claude Desktopまたは他の MCP クライアント

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop 用の WSB Analyst を自動的にインストールするには:

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

このリポジトリをクローンするか、ソース ファイルをダウンロードします。

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

仮想環境を作成し、依存関係をインストールします。

# Using uv (recommended)
uv sync

Reddit API認証情報の設定

このサーバーを使用するには、API 資格情報を取得するための Reddit アプリケーションを作成する必要があります。

  1. Redditアカウントにログイン

  2. https://www.reddit.com/prefs/appsに移動します

  3. 下にスクロールして、「別のアプリを作成...」または「アプリを作成...」をクリックします。

  4. 以下の詳細を入力してください。

    • 名前: WSB アナリスト MCP (または任意の名前)

    • アプリの種類:「スクリプト」を選択

    • 説明: アプリケーションの説明(オプション)

    • urlについて: 空白のままにすることができます

    • リダイレクト URI : http://localhost:8000を使用します (OAuth は使用しないため、有効な URL であればどれでも機能します)

  5. 「アプリを作成」をクリック

  6. 作成後、以下の点をメモします。

    • client_id : アプリ名の下の文字列(「個人用スクリプト」のすぐ下に表示されます)

    • client_secret : 「secret」というラベルの付いた文字列

Claudeデスクトップの設定

Claude Desktop の設定ファイルを開きます。

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

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

次の構成を追加します (必要に応じてパスを調整します)。

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

Claudeデスクトップを再起動します

Claude Desktopでの使用

設定が完了すると、Claude を通じて WSB アナリスト サーバーと対話できるようになります。

  1. クロードデスクトップを開く

  2. メッセージ入力ボックスの右下にハンマーアイコンが表示されます。

  3. ハンマーをクリックすると利用可能なツールが表示されます

  4. スラッシュコマンドでプロンプトテンプレートにアクセスする(例: /analyze_wsb_market )

クエリの例:

  • 「今日のWallStreetBetsで最もトレンドになっている株は何ですか?」

  • 「最近のWallStreetBetsの投稿を分析し、潜在的な市場機会について教えてください」

  • 「WSB ユーザーは AMD 株についてどのような外部リソースを共有していますか?」

利用可能なツール

find_top_posts

基準に基づいて WSB 投稿を取得およびフィルタリングします。

パラメータ:

  • min_score (デフォルト: 100): 必要な最小スコア(賛成票)

  • min_comments (デフォルト: 10): 必要なコメントの最小数

  • limit (デフォルト:10):返される投稿の最大数

  • excluded_flairs (デフォルト: ["Meme", "Shitpost", "Gain", "Loss"] ): 除外する投稿フレアのリスト。

fetch_post_details

トップコメントを含む特定の WSB 投稿に関する詳細情報を取得します。

パラメータ:

  • post_id : Redditの投稿ID

fetch_batch_post_details

複数の投稿の詳細を効率的に取得します。

fetch_detailed_wsb_posts

WSB の投稿を取得してフィルタリングし、それぞれのトップコメントやリンクなどの詳細情報を取得します。

トップ投稿からすべての外部リンクを収集します。

最近の WSB のトップ投稿で頻繁に言及または議論されている株価ティッカーのリストを識別して返します。

プロンプトテンプレート

/analyze_wsb_market

LLMが利用可能なツール( fetch_detailed_wsb_posts 、 get_external_links )を用いて包括的な市場分析を実施するためのテンプレートプロンプトを提供します。LLMに分析の構造と焦点を指示します。

/find_market_movers

特定の銘柄や市場全体の動向に焦点を当てたプロンプトを作成します。このプロンプトは、LLMがfind_top_postsやfetch_post_details 、 fetch_batch_post_detailsなどのツールを使用するようにガイドします。

Firecrawl MCPサーバーとの統合

分析機能を強化するために、特にWSB投稿内の外部リンクを処理する場合、このサーバーをFirecrawl MCPサーバーと統合することができます。これにより、LLMエージェントはWSBで共有されているリンクを識別するだけでなく、リンクされたページのコンテンツをスクレイピングして分析できるようになります。

ライセンス

マサチューセッツ工科大学

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.

  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

Scored across 6 tools

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

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
    27
    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.
    10
    MIT
  • A
    license
    Not graded
    quality
    A
    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.
    62
    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
    -