MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Payments & trading

Deep Values

Value investing for US stocks: SEC filings, 13F guru holdings, intrinsic value, AI briefings.

Checks passed
11 / 22

3 failed · 8 not measured

Median response
663 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
29

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
222

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 663 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name deepvalues.

  • Pass
    Lists tools

    tools/list returned 29 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 663 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 663 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    13 of 55 parameters have a description (24%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Fail
    Website matches publisher

    The website host does not match the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-04T09:05:28.64207Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Deep Values

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http deep-values https://app.deepvalues.ai/api/mcp

Capabilities

Tools 29

account

Returns the calling key, its scopes, environment, and today's usage across all 3 buckets. Self-billing: counts as 1 metadata call. (GET https://app.deepvalues.ai/api/v1/account — free; needs a connected account or a dv_sk_ key)

Discovered
ai_context

Returns a system prompt + structured context block, scoped to one ticker. Drop it into OpenAI/Anthropic/any LLM SDK to ground your chatbot in current Deep Values data without months of plumbing. Bills 3 metadata units. (GET https://app.deepvalues.ai/api/v1/ai-context/{ticker} — 0.005 credits per call; works with no credentials up to 1 call(s)/day per address)

Discovered
as_filed

Call this when the question is about what was known on a past date (a backtest, an audit, "what did the 10-K say at the time"), not about the current restated figures. Returns, for each fiscal period filed on or before `date`, the value as it stood on that date (the original filing, or a later filing for the same period if it came before `date`), the filing date, the XBRL tag, a sec.gov link, and `restated_after_date` when a later filing changed it. Values are as printed, not split-adjusted. Inputs: `ticker` (path), `date` (YYYY-MM-DD, required), `metrics` (comma-separated snake_case names, default revenues,net_income,eps_diluted,operating_cash_flow,free_cash_flow,stockholders_equity,total_debt,shares_outstanding), `period` (annual|quarterly), `limit` (periods, default 4). Example: GET /as-filed/AAPL?date=2020-02-01&metrics=revenues,net_income. If the company had filed none of it by `date`, the answer has no periods, the flag `nothing_filed_by_date` and `earliest_filed` (the first filing date on record). A 503 `as-filed-unavailable` means there is no as-filed history for the company to answer from; it is not charged, and GET /fundamentals has the current figures. 0.01 credits. (GET https://app.deepvalues.ai/api/v1/as-filed/{ticker} — 0.01 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
brief

Call this first when asked whether a listed company looks cheap or expensive, what it is worth, or which well-known investors own it: one call returns the intrinsic value per share (with each valuation method as an input), the owner-earnings value, the margin of safety against the current price, a deterministic verdict sentence about where the price sits against our value range, the top tracked 13F holders and their last move, and the company profile. Every number carries its unit, period, as-of date and a sec.gov source link, and `checks` lists the sanity checks it passed. A value built from statements filed in another currency and converted to USD carries `fx` (original currency, rate, rate date) and passes `currency_consistent`; when the currency is not known the flag `currency_unverified` says the check did not run. If the valuation fails a check (for example an intrinsic value more than 20x the price, or statements left in a currency other than the USD price), the valuation figures are withheld, `withheld` is true, `checks.failed` names the check, and the call is not charged. Input: `ticker` (path), e.g. GET /brief/KO. The first brief each UTC day is free per key and per keyless address; after that 0.30 credits. Data and analysis, not investment advice. (GET https://app.deepvalues.ai/api/v1/brief/{ticker} — 0.3 credits per call; works with no credentials up to 1 call(s)/day per address)

Discovered
companies_search

Company search (GET https://app.deepvalues.ai/api/v1/companies — 0.001 credits per call; works with no credentials up to 25 call(s)/day per address)

Discovered
company_overview

Company overview (GET https://app.deepvalues.ai/api/v1/companies/{ticker}/overview — 0.001 credits per call; works with no credentials up to 25 call(s)/day per address)

Discovered
credits_checkout

Creates a one-time Stripe Checkout Session for a credit pack, bound to the calling live key’s account. When the payment completes the credits land on that balance; poll GET /keys/me. This is what a 402 `topUp.checkoutEndpoint` points at. Free, consumes no quota. (POST https://app.deepvalues.ai/api/v1/credits/checkout — free; needs a connected account or a dv_sk_ key)

Discovered
credits_packs

Lists the prepaid credit packs this key can buy (1 credit = $1.00). Free. (GET https://app.deepvalues.ai/api/v1/credits/checkout — free; needs a connected account or a dv_sk_ key)

Discovered
filings

SEC filings (10-K, 10-Q, 8-K, etc) (GET https://app.deepvalues.ai/api/v1/filings/{ticker} — 0.001 credits per call; works with no credentials up to 25 call(s)/day per address)

Discovered
fundamentals

Income + balance + cashflow (GET https://app.deepvalues.ai/api/v1/fundamentals/{ticker} — 0.001 credits per call; works with no credentials up to 25 call(s)/day per address)

Discovered
guru

One guru: bio + top holdings (GET https://app.deepvalues.ai/api/v1/gurus/{slug} — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
guru_moves

The Follow the Pros feed. Every material 13F move — new position, full exit, a share count that moved by 25%, or a position of $100M or more — ordered by the date the filing became public, with a deterministic verdict line on each row. The verdict is identical for every caller: it compares the price when the investor traded, the price now and Deep Values' intrinsic value band, and it never predicts a return or recommends an action. Every row carries the company's legal name beside the ticker (`name`, e.g. "Occidental Petroleum"), or null where we hold none — null rather than the ticker echoed back, so a caller can tell a real name from a placeholder. Rows whose EDGAR filing date we do not yet hold fall back to when the row reached us and say so with filed_at_known: false. (GET https://app.deepvalues.ai/api/v1/gurus/moves — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
guru_portfolio

One guru's full portfolio at a quarter (GET https://app.deepvalues.ai/api/v1/gurus/{slug}/portfolio — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
gurus

60 hand-picked institutional investors — every name a serious value investor would recognize. Filter by style. (GET https://app.deepvalues.ai/api/v1/gurus — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
indicators_buffett

US corporate equities ÷ GDP, with zones (significantly undervalued through significantly overvalued) and historical percentile. (GET https://app.deepvalues.ai/api/v1/indicators/buffett — 0.001 credits per call; works with no credentials up to 25 call(s)/day per address)

Discovered
indicators_shiller_pe

Shiller PE with historical percentile (GET https://app.deepvalues.ai/api/v1/indicators/shiller-pe — 0.001 credits per call; works with no credentials up to 25 call(s)/day per address)

Discovered
intrinsic_value

Per-method intrinsic value per share (DCF on free cash flow, owner earnings, Damodaran two-stage), their equal-weight blend, Monte Carlo bounds and the implied gap to the current price. The blend is checked against the price before it is served: if it fails a check (not positive, more than 20x the price, a price older than five days, no price, or `currency_consistent`: statements left in a currency other than the USD price), the valuation fields are null, `withheld` is true, `checks.failed` names the check and the call is not charged. A value under 0.05x the price is served with the flag `iv_far_below_price`. A value built from statements converted to USD carries `fx` (`from` the filer's currency, `to` USD, `rate`, `rate_date`, `rate_type`) on `values.intrinsic_value_per_share` and each method input; `currency_unverified` in `checks.flags` means the statement currency is not known for this ticker, so the check did not run. A method with no value is null in `methods`, never 0, and `methods_unavailable` says why (`code`, `family`: negative_cash_flow, financial_company, withheld or missing_inputs, and the pipeline's `reason`). For a one-call answer with holders and a verdict, use /brief/{ticker}. (GET https://app.deepvalues.ai/api/v1/intrinsic-value/{ticker} — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
keys_create

The one endpoint that needs no key. Send {} for a dv_sk_test_ sandbox key (real data, small daily quota, never billed, no /research). Send {"email":"…"} for a dv_sk_live_ key on a new prepaid account; the first key for an email carries 1 starter credit ($1.00). Send it with an existing key as the bearer to mint a sibling key on the same account (rotation). The raw key is returned once. The email is a contact label, not a credential. Limited to 10 keys per address per day. The raw key is in the result once: keep it and send it as Authorization: Bearer on REST calls (or have the host re-add this server with that header). With a key already configured, mints a sibling on the same account. (POST https://app.deepvalues.ai/api/v1/keys — free; needs no credentials)

Discovered
keys_me

Returns the calling key, the exact balance of the ledger behind it (balanceMicro: integer micro-credits, 1 credit = $1.00 = 1,000,000), what is left in each daily quota bucket, and the environment. Free, and consumes no quota. (GET https://app.deepvalues.ai/api/v1/keys/me — free; needs a connected account or a dv_sk_ key)

Discovered
mirror_brief

The same move as /verdict, flattened into a brief: what the investor did, when, at what price, against our value band, plus the verdict sentence. It carries NO quantity and NO instruction — `sizing` reads "not provided; the reader decides". It describes a public filing and a published value range; it is not advice and not a prediction. (GET https://app.deepvalues.ai/api/v1/mirror-brief/{ticker} — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
news

Sentiment-scored news (GET https://app.deepvalues.ai/api/v1/news/{ticker} — 0.001 credits per call; works with no credentials up to 25 call(s)/day per address)

Discovered
pricing

Every endpoint’s per-call price (credits, USD and atomic USDC), the free allowances, the daily quotas, and how an agent pays without a human: x402 in USDC — per call with no key, or as a prepaid top-up of a key — when it is switched on, or a Stripe Checkout link a human pays. Also served at /api/v1/pricing.json. Needs no key, costs nothing, consumes no quota. (GET https://app.deepvalues.ai/api/v1/pricing — free; needs no credentials)

Discovered
research

Full briefing, bull case, bear case, valuation, investment plan and fair-value range as one structured JSON document. 3 credits ($3.00) per successful call, ai_research quota 50/day. Returns the latest completed briefing for the ticker — the same one its public company page shows; a fresh run cannot be started through the API yet (404 when none exists). Never keyless, not in the sandbox. (GET https://app.deepvalues.ai/api/v1/research/{ticker} — 3 credits per call; needs a connected account or a dv_sk_ key)

Discovered
sentiment

Value-investor sentiment rollup (not WSB noise) (GET https://app.deepvalues.ai/api/v1/sentiment/{ticker} — 0.001 credits per call; works with no credentials up to 25 call(s)/day per address)

Discovered
smart_money_changes

All 13F position changes meeting the materiality threshold (new positions, full exits, ≥25% share-count shifts, OR ≥$100M position size) across our entire 60-guru roster, in the requested window. (GET https://app.deepvalues.ai/api/v1/smart-money/changes — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
smart_money_holdings

Returns every guru from our 60-name roster who held the requested ticker as of the latest 13F-HR quarter (or a specific historical quarter). Each row includes shares, USD value, % of portfolio, and the auto-classified delta vs the prior quarter. (GET https://app.deepvalues.ai/api/v1/smart-money/holdings — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
theses

Public investment theses with structured metadata — sentiment, conviction, price target, anchored DVI run. Filter by ticker, conviction, or sentiment. (GET https://app.deepvalues.ai/api/v1/theses — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
verdict

One guru's disclosed move in one ticker, with the sentence Deep Values publishes about it and every number behind it: the company's legal name beside the ticker (`name`, null where we hold none), the three dates (traded by, filed, seen), the quarter-end close, the current price, and the intrinsic value band. `value` is the callable band (the blend ±25%) and is null whenever the verdict is not a call; `estimates` always carries what the valuation methods actually said, their lowest and highest central estimate, so a reader told we cannot call it can see why. One of six deterministic states — below_value, inside_band, above_value, ran_ahead, too_uncertain, no_value — computed the same way for every caller. The band is Deep Values' blended intrinsic value plus or minus 25%, and `too_uncertain` ("Our estimates disagree too much to call this one.") replaces the three band states when the methods' own central estimates are more than 3x apart, or one of them is not positive: the blend still exists, but `value` is null because it is not a range anyone should be told a price sits inside; `estimates` shows how far apart the methods are. It is distinct from `no_value`, which means no valuation was computed at all. Before the band is published its mid is checked against the current price (positive, at most 20x the price, a price under five days old; under 0.05x is served with the flag `iv_far_below_price`) and for currency (`currency_consistent`: the statements behind it are in USD, the price's currency, or were converted to USD; a converted band carries `fx` on `values.value_band_mid` naming the original currency and rate; when the currency is not known the answer carries the flag `currency_unverified` instead); on a failure `value` and `estimates` are null, the verdict reads `no_value`, `withheld` is true, `checks.failed` names the check, and the call is not charged. (GET https://app.deepvalues.ai/api/v1/verdict/{ticker} — 0.005 credits per call; works with no credentials up to 5 call(s)/day per address)

Discovered
webhooks_list

List webhook subscriptions (GET https://app.deepvalues.ai/api/v1/webhooks — free; needs a connected account or a dv_sk_ key)

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected663 ms29