Skip to main content
Glama
equity-intel-mcp

equity-intel-mcp

equity-intel-mcp

equity-intel-mcp MCP server

License: MIT Python MCP

equity-intel-mcp - composite verdict demo

Institutional-grade equity analysis for any LLM, over the Model Context Protocol.

Most "stock" integrations just echo a price. This one gives an AI agent the signals professionals actually look at — insider buying from SEC filings, what renowned value investors are holding, analyst consensus, options-implied moves, and valuation — and blends them into a single, confidence-weighted verdict.

It runs entirely on free / public data (Yahoo Finance, SEC EDGAR, Dataroma), fails gracefully when a source is missing, and never fabricates a signal it doesn't have.

# Equity Intelligence — MSFT

## Verdict: Neutral → HOLD
[........|#.......] +11/100  · confidence 69%  · 5 source(s)

| Source        | Signal       | Score  | Conf | Weight |
|---------------|--------------|-------:|-----:|-------:|
| insider       | Bearish      |   -77  |  70% |   0.25 |
| superinvestor | Lean bullish |   +33  | 100% |   0.30 |
| analysts      | Bullish      |   +64  |  75% |   0.15 |
| valuation     | Bullish      |   +91  |  60% |   0.09 |
| options       | Lean bullish |   +19  |  40% |   0.04 |

- insider: Insiders net selling $13.5M over 180d (62 filings).
- superinvestor: 38 tracked superinvestors hold MSFT; 19 buys / 18 sells.
- analysts: 66 analysts: 23 strong buy / 38 buy / 5 hold.
- valuation: Fair value ~$569 vs $391 (+46% upside); health 84/100.
- options: 1-month implied move +/-7.6%; put/call OI 0.53.

Tools

Tool

What it does

Source

Status

equity_analyze_ticker

Hero tool. Runs every source in parallel and returns one scored verdict (BUY → AVOID) with a per-source breakdown.

composite

✅

equity_insider_activity

Net insider buying vs. selling from SEC Form 4 filings (180-day window), weighted by USD value.

SEC EDGAR

✅

equity_superinvestors

Which of ~80 tracked value investors hold the stock, plus recent net buying/selling.

Dataroma

✅

equity_get_quote

Live price snapshot + position in the 52-week range.

Yahoo Finance

✅

equity_analyst_consensus

Wall Street buy/hold/sell consensus — scored from distribution of strong-buy to strong-sell ratings.

Finnhub

✅

equity_options_signal

1-month implied move (straddle/spot) + put/call OI skew. Primary use: risk-sizing.

Yahoo Finance

✅

equity_valuation

Fair-value estimate (forward EPS × sector P/E) + financial-health score (debt, liquidity, margins).

Yahoo Finance

✅

Every tool returns Markdown (human-readable, default) or JSON (response_format="json") for programmatic use.


Related MCP server: financial-datasets

Quick start

git clone https://github.com/cstamigo-droid/equity-intel-mcp equity-intel-mcp
cd equity-intel-mcp
python -m venv .venv && .venv\Scripts\activate     # Windows
pip install -r requirements.txt

copy .env.example .env        # then edit .env (set EDGAR_IDENTITY)
python -m equity_intel_mcp    # starts the MCP server over stdio

Smoke test (hits the live sources and prints each signal):

python tests/test_smoke.py AAPL

Configure (.env)

# Required by SEC fair-access policy — any "Name email@example.com"
EDGAR_IDENTITY=Your Name you@example.com
# Required by equity_analyst_consensus (free key at finnhub.io)
FINNHUB_API_KEY=your-key-here

Use it in Claude Desktop

Add this to claude_desktop_config.json (%APPDATA%\Claude\ on Windows, ~/Library/Application Support/Claude/ on macOS), then restart Claude Desktop:

{
  "mcpServers": {
    "equity-intel": {
      "command": "python",
      "args": ["-m", "equity_intel_mcp"],
      "cwd": "C:/path/to/equity-intel-mcp",
      "env": { "EDGAR_IDENTITY": "Your Name you@example.com" }
    }
  }
}

Then just ask Claude: "Give me a full read on NVDA" or "Are insiders buying PLTR?"


Why it's built this way

  • Uniform signal contract. Every source returns the same shape (score -100..+100, confidence 0..1, data, summary). That's what lets an LLM reason across heterogeneous evidence instead of parsing five formats.

  • Graceful degradation. A stock with no Form 4 activity returns "no signal", not a fake bearish score. Missing data lowers confidence; it never invents a call.

  • Confidence-weighted blending. The composite weights each source by its importance × its own confidence, so thin signals don't outvote strong ones.

  • Resilient + cached. Short per-source TTL caches avoid hammering rate-limited endpoints when an agent calls several tools on the same ticker in one turn.

See ROADMAP.md for what's next.


Disclaimer

For research and educational use only. Not investment advice. Data comes from third-party public sources and may be delayed or incomplete. Do your own due diligence.

License

MIT

Available Tools

7 tools
equity_analyst_consensusA
Read-onlyIdempotent

Get Wall Street buy/hold/sell consensus for a stock (Finnhub).

Returns a directional score from the distribution of analyst ratings. Requires FINNHUB_API_KEY; returns "no signal" if unset or no coverage.

Args: params: ticker (str) and response_format ('markdown'|'json').

Returns: str: Markdown or JSON with score, confidence, and data: strong_buy, buy, hold, sell, strong_sell, analysts_count, period.

Examples: - "What do analysts think of AMD?" -> ticker='AMD' - "Is MSFT a buy according to Wall Street?" -> ticker='MSFT'

Inputs: params (required). Returns: result

equity_analyze_tickerA
Read-onlyIdempotent

Run a full multi-source analysis of a stock and return one scored verdict.

Fans out to every available source in parallel (price context, insider Form 4 activity, superinvestor holdings) and blends the directional signals into a confidence-weighted verdict from -100 (Bearish/AVOID) to +100 (Bullish/BUY), with a per-source breakdown. Sources that have no data are reported as "no signal" and excluded from the score rather than guessed.

This is the primary tool — prefer it for "should I look at X?" questions; use the individual tools when you only need one dimension.

Args: params: ticker (str) and response_format ('markdown'|'json').

Returns: str: Markdown verdict with gauge, action, signal-breakdown table, and each source's one-line takeaway; or JSON with the full verdict + raw signals.

Examples: - "Give me a full read on Microsoft" -> ticker='MSFT' - "Should I be looking at PLTR?" -> ticker='PLTR'

Inputs: params (required). Returns: result

equity_get_quoteA
Read-onlyIdempotent

Get a current price snapshot for a stock, with 52-week range context.

Informational (not a buy/sell signal). Use this to anchor any analysis with live price, daily change, market cap, volume, and where price sits inside its 52-week range (0% = at the low, 100% = at the high).

Args: params: ticker (str) and response_format ('markdown'|'json').

Returns: str: Markdown report or JSON with fields: price, previous_close, open, day_low, day_high, year_low, year_high, market_cap, volume, currency, change_pct, pct_of_52w_range.

Examples: - "What's Apple trading at?" -> ticker='AAPL' - "Is NVDA near its 52-week high?" -> ticker='NVDA'

Inputs: params (required). Returns: result

equity_insider_activityA
Read-onlyIdempotent

Measure net insider buying vs. selling from SEC Form 4 filings (last 180 days).

Aggregates open-market Purchase (P) and Sale (S) transactions by USD value and returns a directional score from -100 (heavy net selling) to +100 (heavy net buying). Insider buying is among the more predictive public signals. If a company has no qualifying Form 4 activity, returns "no signal" rather than a fabricated score.

Requires the EDGAR_IDENTITY env var (any 'Name email@example.com') per SEC fair-access policy.

Args: params: ticker (str) and response_format ('markdown'|'json').

Returns: str: Markdown or JSON with score, confidence, and data: net_usd, buys_usd, sells_usd, n_filings, net_selling, window_days.

Examples: - "Are insiders buying Tesla?" -> ticker='TSLA' - "Insider sentiment for PLTR" -> ticker='PLTR'

Inputs: params (required). Returns: result

equity_options_signalA
Read-onlyIdempotent

Get the 1-month implied move and put/call OI skew for a stock (yfinance).

The implied move (straddle / spot) is primarily a risk-sizing tool — it tells you how much the market expects the stock to move before the nearest ~30-day expiration. The directional score from put/call OI skew is LOW conviction (options flow is noisy); treat this as a weak secondary indicator only.

Args: params: ticker (str) and response_format ('markdown'|'json').

Returns: str: Markdown or JSON with implied_move_pct, expiry, pc_oi_ratio, score.

Examples: - "How volatile is NVDA expected to be?" -> ticker='NVDA' - "What does options flow say about AAPL?" -> ticker='AAPL'

Inputs: params (required). Returns: result

equity_superinvestorsA
Read-onlyIdempotent

Check which renowned value investors hold a stock and their recent activity.

Reads Dataroma's tracking of ~80 superinvestors' 13F portfolios. Returns a directional score blending ownership breadth (how many hold it) with recent net buying/selling. A widely-held, recently-bought name scores positive.

Args: params: ticker (str) and response_format ('markdown'|'json').

Returns: str: Markdown or JSON with score, confidence, and data: count_owners, recent_buys, recent_sells, avg_hold_price, owners_sample.

Examples: - "Do any famous investors own Berkshire?" -> ticker='BRK.B' - "Smart-money interest in GOOGL" -> ticker='GOOGL'

Inputs: params (required). Returns: result

equity_valuationA
Read-onlyIdempotent

Estimate fair value and financial health for a stock (Yahoo Finance).

Computes a fair-value range using forward EPS × sector P/E band, then measures balance-sheet health (debt/equity, current ratio, gross margin). Score: positive = stock trades below fair value, negative = expensive. A cheap-but-fragile balance sheet halves any positive score.

Args: params: ticker (str) and response_format ('markdown'|'json').

Returns: str: Markdown or JSON with score, fair_value, upside_pct, tag, health_score, and underlying fundamentals.

Examples: - "Is KO undervalued right now?" -> ticker='KO' - "What's the intrinsic value of AAPL?" -> ticker='AAPL'

Inputs: params (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool targets a distinct data source: analyst consensus, comprehensive analysis, price quote, insider activity, options signals, superinvestor holdings, and valuation. There is no overlap in purpose.

    Naming Consistency4/5

    All tools start with 'equity_' and use snake_case, but the verb/noun order varies (e.g., 'analyze_ticker' vs. 'analyst_consensus' vs. 'superinvestors'). Still, the pattern is clear and predictable.

    Tool Count5/5

    Seven tools provide a focused yet comprehensive set for equity analysis, covering key signals (price, valuation, sentiment, insider activity). The number is appropriate for the domain.

    Completeness4/5

    The tools cover major analysis dimensions: fundamental valuation, price context, analyst consensus, insider activity, options flow, and superinvestor holdings. Minor gaps like technical analysis or news sentiment are absent but not critical for the stated purpose.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to query financial datasets, including institutional holders, insider transactions, investor portfolios, and SEC filings, via MCP tools.
      157 npm
      MIT
    • F
      license
      Not graded
      quality
      A
      maintenance
      Enables natural-language financial research across SEC filings, earnings transcripts, financial metrics, stock and crypto market data, stock news, and prediction markets, returning structured, source-backed answers within MCP clients.
      -
    • F
      license
      Not graded
      quality
      A
      maintenance
      Enables AI agents and backends to access standardized financial market data and analysis tools across A-shares, US equities, ETFs, indices, and crypto, including technical indicators, fundamentals, news, filings, and money flow. It exposes these capabilities through MCP tools and HTTP endpoints, with agent-friendly artifacts and CSV/JSON exports.
      -