Reported issues for stock-scanner-mcp
Pod holds 21 of 64 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to stock-scanner-mcp.
Most discussed
feat: add reddit_watchlist_scan tool — batch Reddit sentiment for workspace watchlists
Context
The workspace morning briefing scans a user's watchlist across multiple data sources. Adding Reddit sentiment per ticker currently requires N × 4 requests (N tickers × 4 subreddits), which is slow and hits rate limits. A single batch tool that scans all watchlist tickers in one pass would integrate cleanly with the briefing workflow.
Proposed Tool
reddit_watchlist_scan — Single-pass Reddit scan for multiple symbols
How it works
Instead of searching each ticker indivi
Read the thread · 2026-04-07 · closed · 12 comments
feat: unified market data layer with smart provider routing
Summary
Currently, stock-scanner-mcp couples every tool to a specific data provider (e.g., tradingview_quote, finnhub_quote, alphavantage_quote). The LLM must determine which data sources are active, which API keys are configured, and write conditional fallback logic on every call. This creates unnecessary complexity for the AI and leads to suboptimal provider selection.
This issue proposes a unified, provider-agnostic module (unified-market) that exposes 3 high-level tools wi
Read the thread · 2026-07-04 · closed · 6 comments
enhancement: add market_breadth tool (advance/decline, % above MAs)
Extracted from #87
Advance/decline ratio, % stocks above 50/200 SMA, new highs vs new lows. Gives broader context for day trade direction beyond just index levels.
Ref: #87 (item 7)
Read the thread · 2026-03-18 · closed · 4 comments
Broken data feeds + earnings estimate reliability gaps (day trade session 2026-03-18)
Context
Found during a real pre-market day trade options session on 2026-03-18. Built an earnings-focused watchlist for MU, NKE, JBL and momentum plays (WDC, UBER, META, VAL). Several tools returned broken/stale/wrong data that would have led to incorrect trade decisions.
Relates to #81 (LLM Integration Feedback) but these are distinct bugs + new tool proposals.
Bugs — Broken Data Feeds
1. options_put_call_ratio returning 2019 data (CRITICAL)
Expected: Recent 5 trading
Read the thread · 2026-03-18 · closed · 2 comments
install-skills command does not install any skills
Summary
Running npx stock-scanner-mcp install-skills starts the MCP server successfully but does not install any skills. The output shows all modules loading correctly and 45/49 tools registered, but no skills are added.
Steps to Reproduce
npx stock-scanner-mcp install-skills
Actual Behavior
Server starts, all modules load, tools register (45/49), but no skills are installed. The command appears to fall through to the normal server startup instead of performing skill
Read the thread · 2026-03-27 · closed · 1 comment
feat: add startup module log with enable/skip reasons
Summary
Improve startup logging to show which modules were enabled or skipped and why, helping users debug "why isn't tool X showing up?" issues.
Current behavior
Modules with missing keys are skipped with a generic startup log message.
Proposed behavior
[stock-scanner-mcp] Starting v1.9.0...
Modules:
✓ tradingview — enabled (no key required)
✓ tradingview-crypto — enabled (no key required)
✓ sec-edgar — enabled (no key required)
✓ coingecko —
[Read the thread](https://github.com/yyordanov-tradu/stock-scanner-mcp/issues/122) · 2026-03-21 · closed · 1 comment
### feat: add module structure validation to CI
## Summary
Add a validation script that verifies every module follows the required structure pattern. Runs in CI alongside lint, test, and build.
## What it validates
For each directory in `src/modules/`:
- [ ] Has `index.ts` (module factory)
- [ ] Has `client.ts` (HTTP + cache logic)
- [ ] Has `__tests__/client.test.ts` (test file)
- [ ] `index.ts` exports a `create{Name}Module()` factory function
- [ ] Tool names follow `{module}_{action}` naming convention
- [ ] All tools are wrapped with
[Read the thread](https://github.com/yyordanov-tradu/stock-scanner-mcp/issues/120) · 2026-03-21 · closed · 1 comment
### chore: add SECURITY.md with vulnerability reporting process
## Summary
Add `SECURITY.md` with a vulnerability reporting process. As an npm package that handles API keys, users need to know how to report security issues privately.
## Contents
### Supported versions
- Current major version receives security updates
### Reporting a vulnerability
- Report via GitHub private vulnerability reporting (preferred) or email
- Do NOT open public issues for security vulnerabilities
- Expected response: acknowledgment within 48 hours, update within 7 days
### Sc
[Read the thread](https://github.com/yyordanov-tradu/stock-scanner-mcp/issues/119) · 2026-03-21 · closed · 1 comment
## Most recent
### feat: add Reddit sentiment module — trending tickers, mentions, sentiment scoring
## Context
Gap analysis from the competitive MCP server review identified social sentiment as a strong fit for stock-scanner-mcp. Reddit's public JSON API requires no API key and fits our module pattern exactly. No competitor in our space combines Reddit sentiment with the breadth of data we already offer (options, SEC filings, FRED, forex, Fear & Greed).
## Proposed Module
src/modules/reddit/ ├── index.ts # createRedditModule() — 3 tools ├── client.ts # HTTP calls to red
Read the thread · 2026-04-07 · closed · 0 comments
Workspace minor findings from 4-expert review
Context
MINOR findings from the 4-expert review of Market Workspace (PR #165). These do not block merge but should be addressed over time.
TypeScript (m1-m5)
- m1: Conflict errors map to
INTERNAL_ERRORinstead of a recoverable error code - m2: Tests use
anytypes (workspaceTools: any[],getTool: any) - m3:
workspace_save_thesisschema missinginvalidation,nextReviewDate,confidencefields - m4:
WorkspaceSchemadefault duplicatesProfileSchemadefaults
Read the thread · 2026-04-07 · closed · 0 comments
Add error path tests for workspace module
Critical error paths have zero test coverage: (1) corrupted JSON file, (2) withMetadata error boundary, (3) schema validation failure, (4) file deleted between load and save. Add tests for each. Files: src/modules/workspace/tests/storage.test.ts, tools.test.ts. Source: QA Review (MAJOR M10).
Read the thread · 2026-04-07 · closed · 0 comments
Reject reserved object keys in watchlist/thesis names
Watchlist names and thesis keys are used directly as object property keys. Names like proto, constructor could cause prototype pollution. Reject reserved property names in create_watchlist and save_thesis handlers. Files: src/modules/workspace/index.ts. Source: Security Review (MAJOR M9).
Read the thread · 2026-04-07 · closed · 0 comments
Validate --data-dir path to prevent writes outside home directory
No path validation on --data-dir or STOCK_SCANNER_DATA_DIR. Arbitrary paths accepted — could write workspace files into unintended locations. Resolve with path.resolve() and reject paths outside home directory. Files: src/config.ts, src/index.ts. Source: Security Review (MAJOR M6).
Read the thread · 2026-04-07 · closed · 0 comments
Normalize workspace tool response shapes
Workspace module uses 3 distinct response shapes, violating the same-shape standard. Read tools return raw objects, write tools return { success, message }, get_thesis returns { found, symbol, thesis }. Normalize or document deviation. Files: src/modules/workspace/index.ts, docs/development-standards.md. Source: Architecture Review (MAJOR M5).
Read the thread · 2026-04-07 · closed · 0 comments
Set openWorldHint: false for workspace tools
Context
Found during 4-expert review of Market Workspace feature (PR #165).
Finding
Source: Architecture Reviewer — Severity: MAJOR (M4)
All tools are registered with openWorldHint: true. Workspace tools operate exclusively on local files — they should have openWorldHint: false. This is a semantic annotation MCP clients use for trust/safety decisions.
Required Action
Add openWorld?: boolean to ToolDefinition and set to false for workspace tools.
Files
- `src/sha
Read the thread · 2026-04-07 · closed · 0 comments
Eliminate buildModules() duplication — derive from MODULE_CATALOG
Context
Found during 4-expert review of Market Workspace feature (PR #165).
Finding
Source: Architecture Reviewer — Severity: MAJOR (M3)
buildModules() in src/index.ts manually instantiates every module with if/else logic (lines 57-86), while MODULE_CATALOG (lines 40-53) encodes the same decisions in factory lambdas. Adding workspace required touching both.
Required Action
Replace buildModules() with a loop over MODULE_CATALOG.
Files
src/index.ts(lines 40-8
Read the thread · 2026-04-07 · closed · 0 comments
Fix TOCTOU race in StorageManager.load() — use file handle
Context
Found during 4-expert review of Market Workspace feature (PR #165).
Finding
Source: TypeScript Expert — Severity: MAJOR (M2)
storage.ts load() calls readFile() and stat() as two separate operations (lines 47-48). Between the two calls, another writer could modify the file, making stat.mtimeMs reflect a newer write than what raw contains.
Required Action
Use fs.open() to get a file handle, then call fileHandle.readFile() and fileHandle.stat() on the s
Read the thread · 2026-04-07 · closed · 0 comments
Make readOnly required or default false in ToolDefinition
Context
Found during 4-expert review of Market Workspace feature (PR #165).
Finding
Source: TypeScript Expert — Severity: MAJOR (M1)
readOnlyHint: tool.readOnly ?? true in src/index.ts:184 means if any workspace tool forgets to set readOnly: false, the MCP client treats it as read-only. Dangerous default for a stateful module.
Required Action
Either make readOnly required in ToolDefinition (remove the ?) so the compiler forces every tool to declare it, OR change t
Read the thread · 2026-04-07 · closed · 0 comments
Remove dead wrapHandler with any types in workspace module
Context
Found during 4-expert review of Market Workspace feature (PR #165).
Finding
Source: TypeScript Expert — Severity: CRITICAL (C1)
wrapHandler is defined at src/modules/workspace/index.ts:10-16 but never called. All 7 tool handlers use withMetadata() instead. The function introduces two any types, violating the project rule: "no any in new code."
Required Action
Delete the wrapHandler function entirely. It duplicates what withMetadata() already provides (er
Read the thread · 2026-04-07 · closed · 0 comments
feat: add npx stock-scanner-mcp install-skills CLI command
Summary
Add an install-skills subcommand to the CLI entry point so users can install trading skills without manually cloning the repo and copying files.
Context
PR #144 added 16 trading skills that currently require manual installation:
git clone https://github.com/yyordanov-tradu/stock-scanner-mcp.git
cp -r stock-scanner-mcp/skills/*/ ~/.claude/skills/
This should be a single command:
npx stock-scanner-mcp install-skills
Requirements
CLI Interface
``
Read the thread · 2026-03-25 · closed · 0 comments
feat: add MCP tool annotations (readOnlyHint) to all tools
Summary
Add MCP tool annotations to all 47 tools declaring them as read-only. This helps LLM clients understand tool behavior and make better autonomous decisions.
What are MCP annotations?
MCP protocol supports metadata hints on tools:
annotations: {
readOnlyHint: true, // Tool only reads data, never modifies anything
destructiveHint: false, // Tool cannot destroy/delete anything
openWorldHint: true, // Tool accesses external services (APIs)
}
Why
Read the thread · 2026-03-21 · closed · 0 comments
The remaining reports are on the project's issue tracker.