Talval MCP
An official MCP server for Talval that provides tools for stock research, screening, and comparison. It enables agents to access fair value estimates, valuation verdicts, quality and safety scores, 13F institutional holdings, and analyst accuracy data for value investing.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://talval.com/mcpWhat its tools do
7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to talval.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Screen for undervalued stocks based on intrinsic value estimates
- Access 13F holdings and recent buys/sells of superinvestors
- Compare side-by-side valuation and quality metrics for stocks
- Retrieve analyst accuracy rankings based on 5-year track records
Source and maintenance
Protocol and capabilities
- Server
- talval 1.0.0
- MCP protocol negotiated in check
- 2025-06-18
- Tools
- 7 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
search_stocks — Search stocks
Find a company in Talval's coverage by name or ticker. Typo tolerant. Use this first when you only have a company name.
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 8,
"maximum": 25,
"minimum": 1,
"description": "How many matches to return. Raise it when a name is ambiguous across listings — Shell and Unilever trade in more than one place."
},
"query": {
"type": "string",
"description": "Company name or ticker, e.g. 'Rheinmetall' or 'RHM.DE'."
}
}
}{
"type": "object",
"required": [
"query",
"matches"
],
"properties": {
"query": {
"type": "string"
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"ticker"
],
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"sector": {
"type": [
"string",
"null"
]
},
"ticker": {
"type": "string"
}
}
},
"description": "Empty when nothing in Talval's coverage matches."
}
}
}{
"title": "Search stocks",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_stock_research — Get stock research
Talval's valuation verdict, fair-value estimate, upside, quality/safety/value scores and latest filed results for one ticker. End-of-day snapshot with a date.
{
"type": "object",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Exact ticker as Talval lists it, e.g. 'AAPL', 'RHM.DE', 'PRU.L'."
}
}
}{
"type": "object",
"required": [
"ticker",
"covered"
],
"properties": {
"url": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"as_of": {
"type": [
"string",
"null"
],
"description": "Date of the verdict snapshot, YYYY-MM-DD."
},
"price": {
"type": [
"number",
"null"
]
},
"scores": {
"type": "object",
"properties": {
"value": {
"type": [
"number",
"null"
]
},
"safety": {
"type": [
"number",
"null"
]
},
"quality": {
"type": [
"number",
"null"
]
},
"dividend": {
"type": [
"number",
"null"
]
},
"composite": {
"type": [
"number",
"null"
]
},
"piotroski_f_score": {
"type": [
"integer",
"null"
],
"description": "0-9."
}
},
"description": "0-100, null where the inputs behind a score are missing."
},
"sector": {
"type": [
"string",
"null"
]
},
"ticker": {
"type": "string"
},
"country": {
"type": [
"string",
"null"
]
},
"covered": {
"type": "boolean",
"description": "False when Talval does not cover this ticker; every other field is then null."
},
"verdict": {
"type": [
"string",
"null"
],
"description": "Undervalued, Fairly valued or Overvalued."
},
"currency": {
"type": [
"string",
"null"
],
"description": "Trading currency of price and fair value."
},
"industry": {
"type": [
"string",
"null"
]
},
"conviction": {
"type": [
"integer",
"null"
],
"description": "1-10."
},
"fair_value": {
"type": [
"number",
"null"
],
"description": "Null when withheld — see fair_value_usable and withheld_reason."
},
"market_cap": {
"type": [
"number",
"null"
]
},
"risk_level": {
"type": [
"string",
"null"
]
},
"upside_pct": {
"type": [
"number",
"null"
],
"description": "Percent, not a fraction."
},
"pe_trailing": {
"type": [
"number",
"null"
]
},
"price_as_of": {
"type": [
"string",
"null"
]
},
"latest_annual": {
"type": [
"object",
"null"
],
"properties": {
"revenue": {
"type": [
"number",
"null"
]
},
"net_income": {
"type": [
"number",
"null"
]
},
"eps_diluted": {
"type": [
"number",
"null"
]
},
"fiscal_year": {
"type": [
"integer",
"null"
]
},
"free_cash_flow": {
"type": [
"number",
"null"
]
}
},
"description": "As reported in the company's own filings — not estimates."
},
"withheld_reason": {
"type": [
"string",
"null"
],
"description": "Why fair_value is null, when it is."
},
"fair_value_usable": {
"type": "boolean",
"description": "False when the company reports in a different currency than it trades in, which makes every price-to-fundamentals figure cross-currency nonsense. A false here is a deliberate suppression, not missing data."
},
"dividend_yield_pct": {
"type": [
"number",
"null"
],
"description": "Forward yield as a PERCENT, e.g. 2.9 for 2.9%."
}
}
}{
"title": "Get stock research",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}screen_stocks — Screen stocks
Run one of Talval's stock screens over the covered universe and return the ranked results with fair value, upside and scores.
{
"type": "object",
"required": [
"screen"
],
"properties": {
"limit": {
"type": "integer",
"default": 15,
"maximum": 50,
"minimum": 1,
"description": "How many ranked rows to return. The screen is already ranked, so a smaller number gives the strongest names rather than a sample."
},
"screen": {
"enum": [
"undervalued",
"high_quality",
"safe_dividend",
"undervalued_dividend"
],
"type": "string",
"description": "Which screen to run."
},
"sector": {
"type": "string",
"description": "Optional sector filter, e.g. 'Technology'."
}
}
}{
"type": "object",
"required": [
"screen",
"rows"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"ticker"
],
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"null"
]
},
"ticker": {
"type": "string"
},
"verdict": {
"type": [
"string",
"null"
],
"description": "Undervalued, Fairly valued or Overvalued."
},
"currency": {
"type": [
"string",
"null"
],
"description": "Trading currency of the price and fair value."
},
"fair_value": {
"type": [
"number",
"null"
]
},
"upside_pct": {
"type": [
"number",
"null"
],
"description": "Percent, not a fraction: 12.5 means +12.5%."
},
"quality_score": {
"type": [
"number",
"null"
]
}
}
},
"description": "Ranked. Empty when nothing clears the screen."
},
"label": {
"type": [
"string",
"null"
]
},
"screen": {
"type": "string"
},
"sector": {
"type": [
"string",
"null"
],
"description": "The sector filter applied, if any."
}
}
}{
"title": "Screen stocks",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}compare_stocks — Compare stocks
Put two or more tickers side by side on verdict, fair value, upside and scores.
{
"type": "object",
"required": [
"tickers"
],
"properties": {
"tickers": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 8,
"minItems": 2,
"description": "Tickers to compare."
}
}
}{
"type": "object",
"required": [
"companies",
"not_covered"
],
"properties": {
"companies": {
"type": "array",
"items": {
"type": "object",
"required": [
"ticker"
],
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"price": {
"type": [
"number",
"null"
]
},
"ticker": {
"type": "string"
},
"verdict": {
"type": [
"string",
"null"
],
"description": "Undervalued, Fairly valued or Overvalued."
},
"currency": {
"type": [
"string",
"null"
],
"description": "Trading currency of the price and fair value."
},
"conviction": {
"type": [
"integer",
"null"
]
},
"fair_value": {
"type": [
"number",
"null"
]
},
"upside_pct": {
"type": [
"number",
"null"
],
"description": "Percent, not a fraction: 12.5 means +12.5%."
},
"value_score": {
"type": [
"number",
"null"
]
},
"safety_score": {
"type": [
"number",
"null"
]
},
"quality_score": {
"type": [
"number",
"null"
]
},
"fair_value_usable": {
"type": "boolean"
},
"dividend_yield_pct": {
"type": [
"number",
"null"
],
"description": "Percent, e.g. 2.9."
}
}
}
},
"not_covered": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tickers asked for that Talval does not cover."
}
}
}{
"title": "Compare stocks",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_superinvestors — List superinvestors
The investors Talval tracks through their quarterly 13F filings — portfolio size, position count and largest holdings.
{
"type": "object",
"properties": {}
}{
"type": "object",
"required": [
"investors"
],
"properties": {
"investors": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Pass this to get_superinvestor."
},
"person": {
"type": [
"string",
"null"
]
},
"manager": {
"type": [
"string",
"null"
]
},
"n_positions": {
"type": [
"integer",
"null"
]
},
"quarter_end": {
"type": [
"string",
"null"
],
"description": "The reported quarter, YYYY-MM-DD."
},
"portfolio_value_usd": {
"type": [
"number",
"null"
]
}
}
}
}
}
}{
"title": "List superinvestors",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_superinvestor — Get a superinvestor's portfolio
One tracked investor's reported holdings and quarter-on-quarter activity. Call list_superinvestors first to get the slug.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Slug, e.g. 'berkshire'."
}
}
}{
"type": "object",
"required": [
"slug",
"found"
],
"properties": {
"slug": {
"type": "string"
},
"found": {
"type": "boolean",
"description": "False when no tracked investor has that slug."
},
"person": {
"type": [
"string",
"null"
]
},
"manager": {
"type": [
"string",
"null"
]
},
"activity": {
"type": [
"object",
"null"
],
"properties": {
"reduced": {
"type": "array",
"items": {
"type": "string"
}
},
"added_to": {
"type": "array",
"items": {
"type": "string"
}
},
"new_buys": {
"type": "array",
"items": {
"type": "string"
}
},
"sold_out": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Quarter on quarter. Null when there is no prior filing to compare against."
},
"holdings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"issuer": {
"type": [
"string",
"null"
]
},
"ticker": {
"type": [
"string",
"null"
]
},
"activity": {
"type": [
"string",
"null"
]
},
"pct_of_portfolio": {
"type": [
"number",
"null"
],
"description": "Percent, e.g. 12.4."
}
}
},
"description": "Largest first, capped at 30."
},
"n_positions": {
"type": [
"integer",
"null"
]
},
"quarter_end": {
"type": [
"string",
"null"
]
},
"portfolio_value_usd": {
"type": [
"number",
"null"
]
}
}
}{
"title": "Get a superinvestor's portfolio",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}stocks_of_the_week — Stocks of the week
Talval's current weekly picks — the latest Undervalued verdict per ticker, refreshed weekly.
{
"type": "object",
"properties": {}
}{
"type": "object",
"required": [
"picks"
],
"properties": {
"note": {
"type": [
"string",
"null"
],
"description": "This week's written note, when there is one."
},
"picks": {
"type": "array",
"items": {
"type": "object",
"required": [
"ticker"
],
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"integer",
"null"
]
},
"sector": {
"type": [
"string",
"null"
]
},
"ticker": {
"type": "string"
},
"verdict": {
"type": [
"string",
"null"
]
},
"conviction": {
"type": [
"integer",
"null"
]
}
}
},
"description": "Empty when nothing is published for this week yet."
},
"week_start": {
"type": [
"string",
"null"
]
}
}
}{
"title": "Stocks of the week",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 2 of 2 checks answered
- 2026-11-09: 1 of 1 checks answered
- 2026-11-10: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1226 ms
- 95th percentile latency
- 1226 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1226 ms · metadata changed · 7 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http talval-mcp https://talval.com/mcpCodex
codex mcp add talval-mcp --url https://talval.com/mcpCursor
{
"mcpServers": {
"talval-mcp": {
"url": "https://talval.com/mcp"
}
}
}Cline
{
"mcpServers": {
"talval-mcp": {
"type": "streamableHttp",
"url": "https://talval.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"talval-mcp": {
"type": "http",
"url": "https://talval.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http talval-mcp https://talval.com/mcpClaude Desktop
https://talval.com/mcpWindsurf
{
"mcpServers": {
"talval-mcp": {
"serverUrl": "https://talval.com/mcp"
}
}
}Let your agent find its tools
Find servers like Talval MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run Talval MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.