Timefire MCP
A read-only MCP server providing access to Timefire's public record of AI stock forecasts, including graded books, track records, verification proofs, and performance data. It allows agents to query specific books, check verification hashes, and retrieve portfolio performance metrics.
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://api.timefire.ai/mcp/What its tools do
12 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 timefire.ai ·
- Passed Endpoint is on the registry namespace domain ·
- Warning Does not report a server version
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Verify the newest graded book and check its timestamp proof
- Retrieve the hit rate across every graded book
- Find every graded book that included a specific stock like Apple
- Show the equal-weighted portfolio value against RSP
Source and maintenance
Protocol and capabilities
- Server
- Timefire Record unreported
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 12 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
12 advertised
list_resolved_batches — Book history
List graded books, newest first, one summary row each: date, returns, alpha against SPY and RSP, and verdict. A book (or batch) is one trading day's full S&P 500 slate. Use this to find a trading_date, then get_resolved_batch for every forecast in that book or verify_batch for its proof. Dates with no graded book return an empty list.
{
"type": "object",
"title": "list_resolved_batchesArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 60,
"description": "Most books to return, 1 to 500. Default 60."
},
"to_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "To Date",
"default": null,
"description": "Latest date to include, as YYYY-MM-DD. Omit for no upper bound."
},
"from_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "From Date",
"default": null,
"description": "Earliest date to include, as YYYY-MM-DD. Omit for no lower bound."
}
}
}{
"type": "object",
"title": "list_resolved_batchesOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Result"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_resolved_batch — One book
Get one graded book with every forecast and its outcome. A book (or batch) is one trading day's full S&P 500 slate, served once its long picks are fully graded, so other rows can still have null outcomes. Use list_resolved_batches to find the date, verify_batch for the book's proof and get_book_portfolio for its portfolio. An ungraded or unknown date is an error.
{
"type": "object",
"title": "get_resolved_batchArguments",
"required": [
"trading_date"
],
"properties": {
"trading_date": {
"type": "string",
"title": "Trading Date",
"description": "The book's trading date, as YYYY-MM-DD. list_resolved_batches gives the graded dates."
}
}
}{
"type": "object",
"title": "get_resolved_batchDictOutput",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_track_record_stats — Headline stats
Get aggregates computed only from fully resolved books: forecast counts, returns and hit rates, and how many books beat, matched (flat) or trailed SPY, each book's verdict graded on its cap-weighted long picks. The hit rates count the books graded under the published rule, from published_rule_from on; the 69 backtest books before it follow a rule of their own and are reported apart in the backtest_ fields, verdicts included. Use this for overall performance, get_calibration to test the ranking itself, and get_book_portfolio for a single book.
{
"type": "object",
"title": "get_track_record_statsArguments",
"properties": {}
}{
"type": "object",
"title": "get_track_record_statsDictOutput",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_calibration — Calibration
Check whether forecasts matched outcomes: mean predicted against mean realized return by decile across every graded book, and hit rates by rank bucket and by side (long or short) across books graded under the published rule. Use this to judge how well the ranking held up, and get_track_record_stats for headline returns and the verdict tally.
{
"type": "object",
"title": "get_calibrationArguments",
"properties": {}
}{
"type": "object",
"title": "get_calibrationDictOutput",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_universe_and_scoring_spec — Record spec
Get the versioned scoring rules, the metric definitions and the latest graded book's universe of stocks. Use this before interpreting a stat or a verdict, to learn how books are graded and which stocks are covered.
{
"type": "object",
"title": "get_universe_and_scoring_specArguments",
"properties": {}
}{
"type": "object",
"title": "get_universe_and_scoring_specDictOutput",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_stock_resolved_history — One stock's history
Get one stock's rows from graded books only, newest first: its forecast, rank, pick side and outcome in each book. Use this to follow one ticker across books, explain_resolved_prediction for the evidence behind one row, and get_resolved_batch for a whole book. An unknown ticker returns an empty list.
{
"type": "object",
"title": "get_stock_resolved_historyArguments",
"required": [
"ticker"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 120,
"description": "Most rows to return, 1 to 500. Default 120."
},
"ticker": {
"type": "string",
"title": "Ticker",
"description": "Stock ticker, for example AAPL. Upper or lower case both work."
}
}
}{
"type": "object",
"title": "get_stock_resolved_historyOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Result"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}verify_batch — Verification record
Get the public proof for one graded book: signed payload, hash, signature, content address and timestamp material, with the steps to check them. The verified field is the server's own check; the evidence lets you repeat it yourself. Use this to check a book's signature and timestamp, and get_resolved_batch to read its forecasts and outcomes. An ungraded or unknown date is an error.
{
"type": "object",
"title": "verify_batchArguments",
"required": [
"trading_date"
],
"properties": {
"trading_date": {
"type": "string",
"title": "Trading Date",
"description": "The book's trading date, as YYYY-MM-DD. list_resolved_batches gives the graded dates."
}
}
}{
"type": "object",
"title": "verify_batchDictOutput",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_book_portfolio — Book portfolio
Get a resolved book's portfolio: market-cap-weighted vs SPY ("cap", the default, the portfolio the ledger's verdict grades) or equal-weighted vs RSP ("equal"), with each long pick's weight and graded return, the book return, the benchmark return and its evidence, alpha and verdict. Equal weights always pair with RSP and cap weights with SPY. Per prediction, books serve the two as equal_weight and market_cap_weight; never read a pick's cap_weight as either without checking inference_metadata.weighting. Use this for one book's result, and get_simulation_nav for the running portfolio across books. An ungraded or unknown date is an error.
{
"type": "object",
"title": "get_book_portfolioArguments",
"required": [
"trading_date"
],
"properties": {
"weighting": {
"type": "string",
"title": "Weighting",
"default": "cap",
"description": "\"cap\" for market-cap weights against SPY (the default), or \"equal\" for equal weights against RSP."
},
"trading_date": {
"type": "string",
"title": "Trading Date",
"description": "The book's trading date, as YYYY-MM-DD. list_resolved_batches gives the graded dates."
}
}
}{
"type": "object",
"title": "get_book_portfolioDictOutput",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}search_docs — Search the docs
Find the developer guides and site pages that match a few words. Each hit carries the page title, its canonical URL and a short excerpt. Use this for how Timefire works and what its terms mean, not for record data. No match returns an empty list, so try other words.
{
"type": "object",
"title": "search_docsArguments",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 5,
"description": "Most pages to return, 1 to 20. Default 5."
},
"query": {
"type": "string",
"title": "Query",
"description": "A few words to search for, at most 8 words and 200 characters."
}
}
}{
"type": "object",
"title": "search_docsOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"title": "Result"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_simulation_nav — Portfolio value
Get the paper portfolio's daily value (NAV), market-cap-weighted vs SPY ("cap", the default) or equal-weighted vs RSP ("equal"), with both benchmarks on every row. There is one row per resolved trading day. The series stops at the newest date by which every book is revealed, because a later value holds positions from books still sealed. Use this for portfolio value over time, and get_simulation_trades for the trades behind it.
{
"type": "object",
"title": "get_simulation_navArguments",
"properties": {
"to_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "To Date",
"default": null,
"description": "Latest date to include, as YYYY-MM-DD. Omit for no upper bound."
},
"from_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "From Date",
"default": null,
"description": "Earliest date to include, as YYYY-MM-DD. Omit for no lower bound."
},
"weighting": {
"type": "string",
"title": "Weighting",
"default": "cap",
"description": "\"cap\" for market-cap weights against SPY (the default), or \"equal\" for equal weights against RSP."
}
}
}{
"type": "object",
"title": "get_simulation_navOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Result"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}get_simulation_trades — Portfolio trades
Get the paper portfolio's closed trades from resolved books, newest first, market-cap-weighted ("cap", the default) or equal-weighted ("equal"): the two trade at the same prices and differ in weight, and so in size and P&L. Open positions never appear. Date bounds apply to the day a trade opened; narrow them to see past the limit. Use this for individual trades, and get_simulation_nav for portfolio value.
{
"type": "object",
"title": "get_simulation_tradesArguments",
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 500,
"description": "Most trades to return, 1 to 500. Default 500. Older trades are cut off; there is no paging."
},
"to_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "To Date",
"default": null,
"description": "Latest date to include, as YYYY-MM-DD. Omit for no upper bound."
},
"from_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "From Date",
"default": null,
"description": "Earliest date to include, as YYYY-MM-DD. Omit for no lower bound."
},
"weighting": {
"type": "string",
"title": "Weighting",
"default": "cap",
"description": "\"cap\" for market-cap weights against SPY (the default), or \"equal\" for equal weights against RSP."
}
}
}{
"type": "object",
"title": "get_simulation_tradesOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Result"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}explain_resolved_prediction — Explain a prediction
Get the stored evidence behind one stock's forecast in a graded book: its rank, side, market regime, 5- and 20-day lookback returns, news items and notes. Use this to see the context a stock was ranked in, and get_stock_resolved_history to find which books hold it. An ungraded date, or a ticker not in that book, is an error.
{
"type": "object",
"title": "explain_resolved_predictionArguments",
"required": [
"trading_date",
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"title": "Ticker",
"description": "Stock ticker, for example AAPL. Upper or lower case both work."
},
"trading_date": {
"type": "string",
"title": "Trading Date",
"description": "The book's trading date, as YYYY-MM-DD. list_resolved_batches gives the graded dates."
}
}
}{
"type": "object",
"title": "explain_resolved_predictionDictOutput",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}Prompts
0 advertised
Resources
0 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: 1 of 1 checks answered
- 2026-11-09: 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
- 2068 ms
- 95th percentile latency
- 2068 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 2068 ms · metadata changed · 12 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s); warnings: Does not report a server version
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http timefire-mcp https://api.timefire.ai/mcp/Codex
codex mcp add timefire-mcp --url https://api.timefire.ai/mcp/Cursor
{
"mcpServers": {
"timefire-mcp": {
"url": "https://api.timefire.ai/mcp/"
}
}
}Cline
{
"mcpServers": {
"timefire-mcp": {
"type": "streamableHttp",
"url": "https://api.timefire.ai/mcp/",
"disabled": false
}
}
}VS Code
{
"servers": {
"timefire-mcp": {
"type": "http",
"url": "https://api.timefire.ai/mcp/"
}
}
}Gemini CLI
gemini mcp add --transport http timefire-mcp https://api.timefire.ai/mcp/Claude Desktop
https://api.timefire.ai/mcp/Windsurf
{
"mcpServers": {
"timefire-mcp": {
"serverUrl": "https://api.timefire.ai/mcp/"
}
}
}Let your agent find its tools
Find servers like Timefire 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 Timefire 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.