equity-intel-mcp
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., "@equity-intel-mcpAnalyze AAPL"
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.
equity-intel-mcp

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 |
| Hero tool. Runs every source in parallel and returns one scored verdict (BUY → AVOID) with a per-source breakdown. | composite | ✅ |
| Net insider buying vs. selling from SEC Form 4 filings (180-day window), weighted by USD value. | SEC EDGAR | ✅ |
| Which of ~80 tracked value investors hold the stock, plus recent net buying/selling. | Dataroma | ✅ |
| Live price snapshot + position in the 52-week range. | Yahoo Finance | ✅ |
| Wall Street buy/hold/sell consensus — scored from distribution of strong-buy to strong-sell ratings. | Finnhub | ✅ |
| 1-month implied move (straddle/spot) + put/call OI skew. Primary use: risk-sizing. | Yahoo Finance | ✅ |
| 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-research-agent
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 stdioSmoke test (hits the live sources and prints each signal):
python tests/test_smoke.py AAPLConfigure (.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-hereUse 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 toolsequity_analyst_consensusARead-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'
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds critical context: the API key requirement and the 'no signal' fallback, as well as detailing the return fields (score, confidence, data with subfields). This goes beyond the annotations.
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 well-structured with separate paragraphs for purpose, requirements, args, returns, and examples. It is not overly verbose, but the 'Args' section partly repeats the input schema. Overall, it is efficient and front-loaded with the key purpose sentence.
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 has an output schema (not shown), the description still provides a clear list of return fields. The single required parameter is explained, and the dependencies (API key) are noted. All necessary information for an agent to select and invoke the tool is present.
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 0%, but the description includes an 'Args' section that explains both ticker and response_format. It also provides examples (e.g., ticker='AMD') that add practical meaning beyond the schema's own descriptions, which are already present. The description compensates adequately for the coverage gap.
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 begins with 'Get Wall Street buy/hold/sell consensus for a stock (Finnhub).' This clearly specifies the action (Get), the resource (consensus), and the data source (Finnhub). It is easily distinguishable from sibling tools such as equity_get_quote or equity_valuation.
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 states 'Requires FINNHUB_API_KEY; returns "no signal" if unset or no coverage,' providing clear conditions for use. However, it does not explicitly compare to sibling tools or give when-not-to-use advice, which would elevate the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
equity_analyze_tickerARead-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'
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context: it fans out to sources in parallel, blends signals, and reports missing sources as 'no signal' without guessing. No contradictions.
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 well-structured with a clear main purpose, detailed explanation, and separate sections for args and returns. Every sentence adds value, and it's appropriately sized without being verbose.
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 and available schema/annotations/output schema, the description provides sufficient context: it explains the composite analysis, handling of missing data, and output formats. No gaps.
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 coverage is high (both parameters have descriptions in schema). The description adds value by providing usage examples and clarifying the ticker case-insensitivity and output format options, but it does not introduce new parameter semantics beyond what schema already provides.
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 runs a full multi-source analysis of a stock and returns a scored verdict. It specifies the output range (-100 to +100), the sources used (price context, insider Form 4 activity, superinvestor holdings), and how missing data is handled. It also distinguishes itself from sibling tools.
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?
Explicitly states 'prefer it for "should I look at X?" questions; use the individual tools when you only need one dimension.' This provides clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
equity_get_quoteARead-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'
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive. The description adds valuable behavioral context: 'Informational (not a buy/sell signal)' and explains the 52-week range calculation. No contradiction with annotations.
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 well-structured, front-loaded with purpose, followed by an informational note, args, returns, and examples. Every sentence adds value, and there is no redundancy.
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 simplicity and the presence of output schema (implied by detailed return field listing), the description fully covers what the agent needs: purpose, parameters, return format, and usage examples. Annotations provide safety signals.
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 description explains both parameters (ticker and response_format) with examples, adding meaning beyond the schema. For instance, it clarifies that response_format can be 'markdown' or 'json' and provides example queries.
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 gets a current price snapshot with 52-week range context, using specific verbs and resource. It distinguishes itself from sibling tools like equity_analyst_consensus or equity_valuation by focusing solely on price data.
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: 'Use this to anchor any analysis with live price...' and explicitly states it is informational, not a buy/sell signal. However, it does not explicitly mention when not to use or provide alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
equity_insider_activityARead-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'
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses aggregation of P and S transactions, directional score range -100 to +100, env var requirement, and 'no signal' case. Annotations already indicate read-only, idempotent, non-destructive; description adds valuable behavioral context without contradiction.
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?
Well-structured with clear sections. Each sentence is informative, though slightly verbose. Could be tightened but overall effective.
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?
Covers the score calculation, edge case (no signal), env var requirement, and return format. Combined with schema and output schema, provides complete guidance for agent usage.
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?
Input schema already provides detailed descriptions for 'ticker' and 'response_format' (100% coverage). The description merely restates parameter names and types, adding no additional semantic value beyond the schema.
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?
Clearly states the tool measures net insider buying vs selling from SEC Form 4 filings over 180 days. The verb 'measure' and resource 'SEC Form 4 filings' are specific, and the scope distinguishes it from sibling tools like equity_analyst_consensus.
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?
Provides context that insider buying is a predictive signal and specifies behavior when no data ('no signal'). However, it does not explicitly compare to alternative tools or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
equity_options_signalARead-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'
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds that data comes from yfinance and warns about noise in options flow, enriching the behavioral understanding beyond annotations.
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?
Well-structured with a summary, explanatory paragraph, and Args/Returns/Examples. Front-loaded with main purpose. Slightly verbose but each part adds value.
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 and presence of output schema, description covers input, output fields, and behavioral caveats. No significant gaps.
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 0%, but description compensates by listing Args with ticker and response_format, giving examples (e.g., 'NVDA', 'AAPL'), and explaining output format. This adds value over the schema's basic descriptions.
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?
Description clearly states 'Get the 1-month implied move and put/call OI skew for a stock' with source (yfinance). It uses specific verbs and resource, and distinguishes from sibling tools like equity_analyze_ticker by focusing on options signals.
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?
Description provides usage context: implied move as risk-sizing tool, and directional score as low conviction secondary indicator. It implies when to use (when needing options market sentiment) but does not explicitly contrast with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
equity_superinvestorsARead-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'
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, destructiveHint) already indicate a safe, read-only operation. Description adds rich behavioral details: tracks ~80 investors, computes directional score blending ownership breadth and net activity, lists returned fields. No contradictions.
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?
Description is concise and well-structured: purpose paragraph, usage context, clearly labeled Args/Returns/Examples sections. No unnecessary words; every sentence adds value.
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 a single-ticker tool with two parameters and an existing output schema, the description fully covers purpose, data source, scoring logic, output fields, and usage examples. No gaps remain.
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?
Input schema already provides clear descriptions for both parameters (ticker format, response_format options). Description does not add significant meaning beyond restating schema and providing usage examples. With high schema coverage, baseline of 3 is appropriate.
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?
Clearly states 'Check which renowned value investors hold a stock and their recent activity', using a specific verb and resource. Easily distinguishes from sibling tools like analyst consensus, options signals, etc.
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?
Provides explicit context with examples ('Do any famous investors own Berkshire?') and explains the tool's data source (Dataroma) and output (directional score). Lacks explicit when-not-to-use guidance, but implied by sibling coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
equity_valuationARead-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'
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and idempotentHint=true. The description adds useful behavioral context: the scoring logic (positive/negative), the effect of a fragile balance sheet halving positive scores, and the output structure. No contradictions with annotations.
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 well-structured with sections, concisely explains the methodology, and provides examples. Every sentence contributes useful information. Slightly verbose on the 'Args' section which duplicates schema info, but overall efficient.
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 (single parameter with two fields, output schema exists), the description is fairly complete: it explains the return values, scoring, and examples. However, it lacks latency or data freshness info, which would be helpful for an agent planning calls.
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 reported as 0%, but the actual schema does contain descriptions for parameters. However, the description text only restates the parameter names and types without adding any new meaning beyond the schema. The description does not compensate for the low coverage by explaining the significance of parameters or their usage.
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 estimates fair value and financial health for a stock, using specific methodology (forward EPS × sector P/E band). It also names the data source (Yahoo Finance). This distinguishes it from sibling tools like equity_get_quote or equity_analyst_consensus.
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 outlines the tool's function and provides examples, but does not explicitly state when to use this tool over alternatives like equity_get_quote for current price or equity_analyst_consensus for analyst targets. Usage context is implied but not directly compared.
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.
7 tool updates
v0.1.0- First observed
equity_analyst_consensus - First observed
equity_analyze_ticker - First observed
equity_get_quote - First observed
equity_insider_activity - First observed
equity_options_signal - First observed
equity_superinvestors - First observed
equity_valuation
TDQS
Scored across 7 tools
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.
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.
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.
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
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
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
SEC & financial-data MCP: filings, financials, ownership, factors, fund letters, prompts.
13-model stock valuation engine for AI agents - fair values for 5,900+ US stocks, updated daily.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides real-time stock analysis tools including price lookup, comprehensive investment scoring, and company-to-ticker conversion through a MCP interface.1-
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes stock research tools (fundamentals, news, technicals, analyst ratings) to AI clients, enabling autonomous generation of structured investment briefs.-
- AlicenseNot gradedqualityDmaintenanceProvides 10 financial data tools (market data, economic indicators, news, insider trades, and calendars) via a single MCP layer, enabling any MCP-compatible LLM to access diverse financial data through a unified interface.MIT
- AlicenseAqualityAmaintenanceInstitutional-grade quantitative stock analysis and research signals for AI agents via the Model Context Protocol (MCP).91MIT