{"server":{"name":"com.meritvalue/meritvalue","title":"MeritValue","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://mcp.meritvalue.com/mcp","type":"streamable-http"}],"version":"2.1.0","websiteUrl":"https://www.meritvalue.com/api-keys","description":"Intrinsic stock value from SEC filings: DCF, EPV, Graham, moat signals. Deterministic, not guessed."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-08-09T08:29:58.842891Z","publishedAt":"2026-08-09T08:29:58.842891Z","statusChangedAt":"2026-08-09T08:29:58.842891Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://mcp.meritvalue.com/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2026-07-28"],"stateless":true},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":216,"consecutive_failures":0,"last_probe_at":"2026-10-20T04:03:28.695Z","last_ok_at":"2026-10-20T04:03:28.695Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"get_business_quality","title":"Moat and management signals","description":"Is this a good business? Return on invested capital (or equity) against its cost of capital, and what management has done with the share count. Returns the year-by-year series as well as the averages, so the reading can be disputed without losing the evidence. These are signals, not verdicts — present them that way.","annotations":{"readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-20T04:03:28.695Z"},{"name":"get_expected_return","title":"Expected return at a given price","description":"At a price you supply, the annual return the base case implies. MeritValue holds no market-data licence, so it never returns a live quote — the caller must provide the price. Ask the user for it, or have them check a broker; do not guess one, and do not present a guessed price as a real one.","annotations":{"readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-20T04:03:28.695Z"},{"name":"get_fundamentals","title":"Fundamentals with filing provenance","description":"Normalized fundamentals per fiscal year — revenue, earnings, cash flow, capex, debt, shares — each carrying the CIK, accession number and XBRL tag it came from. Use when the user wants the underlying numbers or asks where a figure came from. Foreign filers report in their home currency; read the currency field.","annotations":{"readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-20T04:03:28.695Z"},{"name":"get_intrinsic_value","title":"Intrinsic value across models","description":"Every valuation model's verdict plus the fair-value range: DCF (5Y/10Y), earnings-power value, Graham number, P/E reversion. Refusals are included and are meaningful — a DCF declining to value a bank is a result, not a gap. Never present a refused model as missing data, and never substitute another model's number for it.","annotations":{"readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-20T04:03:28.695Z"},{"name":"get_thesis","title":"Computed investment thesis","description":"The thesis for a company, computed from its SEC filings: business quality and fair value in one breath. Deterministic — the same filings always produce the same sentences — and byte-identical to what meritvalue.com shows. Returns null when the filings support neither a moat read nor a fair value, rather than inventing one. Use this first when asked whether a company is worth owning.","annotations":{"readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-20T04:03:28.695Z"},{"name":"screen_undervalued","title":"Screen the covered universe","description":"Rank covered companies by a chosen model's value. Requires a key with screening enabled — a 403 means the key lacks it, which is a plan limit and not an error to retry.","annotations":{"readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-20T04:03:28.695Z"},{"name":"search_companies","title":"Find a covered company","description":"Resolve a company name or partial ticker to covered companies — 'coca cola' finds KO. Use this before the other tools when you have a name rather than a symbol. Coverage is US filers with SEC filings.","annotations":{"readOnlyHint":true,"openWorldHint":false},"source":"probe","observed_at":"2026-10-20T04:03:28.695Z"}],"dev.protogrid/trust":{"score":80,"components":{"hygiene":80,"liveness":100,"freshness":85,"provenance":55},"drivers":["+dns-namespace","+website","+reachable","+uptime-100%","~updated-72d-ago","-no-repository"],"flags":["no-repository"],"blocked":false,"computed_at":"2026-10-20T03:41:45.983Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":94,"label":"strong","components":{"auth":null,"hygiene":86,"protocol":100,"stability":100,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"supports 2026-07-28 (server/discover)","status":"pass","category":"protocol"},{"id":"protocol.stateless","detail":"answers without a session","status":"pass","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"tool list is cacheable (ttlMs 3600000)","status":"pass","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"7 of 7 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_expected_return (destructiveHint, idempotentHint); get_business_quality (destructiveHint, idempotentHint); get_intrinsic_value (destructiveHint, idempotentHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 923 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"no tool changes in 30 days","status":"pass","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["-tools.directory_hints"],"flags":[],"tool_count":7,"token_estimate":923,"tools_hash":"a98777bcbe3a8d74e7650e0f5a5493e5","tools_changed_at":null,"computed_at":"2026-10-20T03:37:26.640Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"com.meritvalue/meritvalue","aliases":[],"alias_count":0,"repository_key":null,"owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/com.meritvalue%2Fmeritvalue/tools","arguments":{"name":"com.meritvalue/meritvalue"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/com.meritvalue%2Fmeritvalue/connection?target=mcpServers","arguments":{"name":"com.meritvalue/meritvalue","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}