Koskamo

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.

Timefire MCP logo, by TimefireVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Timefire
MCP endpoint (Streamable HTTP)
https://api.timefire.ai/mcp/
Vendor documentation

What its tools do

12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

12 of 12 have a description · 12 of 12 declare behavior hints · 9 of 9 with parameters document them all

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

Vendor evidenceRegistry 0.1.0

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
Server-advertised capabilities
{
  "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.

Use these tools to inspect Timefire's resolved record. A book (the tools also say batch) is one trading day's full S&P 500 slate, normally graded ten trading days later. Resolved means graded. No tool returns a batch, ticker observation, or proof until that book is fully resolved. No API key is required.

Tools

12 advertised

list_resolved_batches — Book history
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_resolved_batches input schema
{
  "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."
    }
  }
}
list_resolved_batches output schema
{
  "type": "object",
  "title": "list_resolved_batchesOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "title": "Result"
    }
  }
}
list_resolved_batches annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_resolved_batch — One book
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_resolved_batch input schema
{
  "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."
    }
  }
}
get_resolved_batch output schema
{
  "type": "object",
  "title": "get_resolved_batchDictOutput",
  "additionalProperties": true
}
get_resolved_batch annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_track_record_stats — Headline stats
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_track_record_stats input schema
{
  "type": "object",
  "title": "get_track_record_statsArguments",
  "properties": {}
}
get_track_record_stats output schema
{
  "type": "object",
  "title": "get_track_record_statsDictOutput",
  "additionalProperties": true
}
get_track_record_stats annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_calibration — Calibration
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_calibration input schema
{
  "type": "object",
  "title": "get_calibrationArguments",
  "properties": {}
}
get_calibration output schema
{
  "type": "object",
  "title": "get_calibrationDictOutput",
  "additionalProperties": true
}
get_calibration annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_universe_and_scoring_spec — Record spec
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_universe_and_scoring_spec input schema
{
  "type": "object",
  "title": "get_universe_and_scoring_specArguments",
  "properties": {}
}
get_universe_and_scoring_spec output schema
{
  "type": "object",
  "title": "get_universe_and_scoring_specDictOutput",
  "additionalProperties": true
}
get_universe_and_scoring_spec annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_stock_resolved_history — One stock's history
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_stock_resolved_history input schema
{
  "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."
    }
  }
}
get_stock_resolved_history output schema
{
  "type": "object",
  "title": "get_stock_resolved_historyOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "title": "Result"
    }
  }
}
get_stock_resolved_history annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
verify_batch — Verification record
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

verify_batch input schema
{
  "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."
    }
  }
}
verify_batch output schema
{
  "type": "object",
  "title": "verify_batchDictOutput",
  "additionalProperties": true
}
verify_batch annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_book_portfolio — Book portfolio
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_book_portfolio input schema
{
  "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."
    }
  }
}
get_book_portfolio output schema
{
  "type": "object",
  "title": "get_book_portfolioDictOutput",
  "additionalProperties": true
}
get_book_portfolio annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search_docs — Search the docs
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_docs input schema
{
  "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."
    }
  }
}
search_docs output schema
{
  "type": "object",
  "title": "search_docsOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "title": "Result"
    }
  }
}
search_docs annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_simulation_nav — Portfolio value
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_simulation_nav input schema
{
  "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."
    }
  }
}
get_simulation_nav output schema
{
  "type": "object",
  "title": "get_simulation_navOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "title": "Result"
    }
  }
}
get_simulation_nav annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_simulation_trades — Portfolio trades
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_simulation_trades input schema
{
  "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."
    }
  }
}
get_simulation_trades output schema
{
  "type": "object",
  "title": "get_simulation_tradesOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "title": "Result"
    }
  }
}
get_simulation_trades annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
explain_resolved_prediction — Explain a prediction
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

explain_resolved_prediction input schema
{
  "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."
    }
  }
}
explain_resolved_prediction output schema
{
  "type": "object",
  "title": "explain_resolved_predictionDictOutput",
  "additionalProperties": true
}
explain_resolved_prediction annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

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.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-07: 1 of 1 checks answered
  2. 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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http timefire-mcp https://api.timefire.ai/mcp/

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add timefire-mcp --url https://api.timefire.ai/mcp/

Cursor

Merge this server into .cursor/mcp.json in your project, then enable timefire-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "timefire-mcp": {
      "url": "https://api.timefire.ai/mcp/"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "timefire-mcp": {
      "type": "streamableHttp",
      "url": "https://api.timefire.ai/mcp/",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start timefire-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "timefire-mcp": {
      "type": "http",
      "url": "https://api.timefire.ai/mcp/"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http timefire-mcp https://api.timefire.ai/mcp/

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://api.timefire.ai/mcp/

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "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.

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.

Claim this listing