Point-in-time US equity fundamentals for quants and AI agents. Free tier, no API key needed.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. Bearer <your PtData API key> for Pro/Scale limits. Leave empty for the free tier.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Earnings event: 8-K acceptance timestamp, as-reported figures, and the derived realized price reaction. `fiscal_period` is FY or Q1..Q4.
Earnings event: 8-K acceptance timestamp, as-reported figures, and the derived realized price reaction. `fiscal_period` is FY or Q1..Q4.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | |
| fiscal_year* | integer | |
| fiscal_period* | string |
{
"type": "object",
"required": [
"ticker",
"fiscal_year",
"fiscal_period"
],
"properties": {
"ticker": {
"type": "string"
},
"fiscal_year": {
"type": "integer"
},
"fiscal_period": {
"type": "string"
}
},
"additionalProperties": false
}SEC filings for `ticker` available on `as_of_date`, newest first, with amendment linkage.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | |
| form_type | any | |
| as_of_date* | string |
{
"type": "object",
"required": [
"ticker",
"as_of_date"
],
"properties": {
"ticker": {
"type": "string"
},
"form_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"as_of_date": {
"type": "string"
}
},
"additionalProperties": false
}Point-in-time fundamentals for `ticker` as known on `as_of_date` (YYYY-MM-DD). Returns each available metric's value for the fiscal period with source + knowledge time + lineage under `metrics`. Any requested metric with no value appears under `unavailable` with `{reason, available_alternatives, docs_url}` instead of being silently dropped — e.g. asking a bank/broker/insurer for `revenue` explains that financials report an as-reported revenue FAMILY and lists the populated members (net_interest_income, noninterest_income, total_net_revenue, premiums_earned, net_investment_income, total_revenue). Check `unavailable` before concluding a figure does not exist.
| Argument | Type | Description |
|---|---|---|
| ticker* | string | |
| metrics* | array | |
| as_of_date* | string | |
| fiscal_year | any | |
| fiscal_period | string |
{
"type": "object",
"required": [
"ticker",
"as_of_date",
"metrics"
],
"properties": {
"ticker": {
"type": "string"
},
"metrics": {
"type": "array",
"items": {
"type": "string"
}
},
"as_of_date": {
"type": "string"
},
"fiscal_year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"fiscal_period": {
"type": "string",
"default": "FY"
}
},
"additionalProperties": false
}S&P 500 (or other index) constituents as understood on `as_of_date` (YYYY-MM-DD), survivorship-free. Point-in-time, with lineage.
| Argument | Type | Description |
|---|---|---|
| index* | string | |
| as_of_date* | string |
{
"type": "object",
"required": [
"index",
"as_of_date"
],
"properties": {
"index": {
"type": "string"
},
"as_of_date": {
"type": "string"
}
},
"additionalProperties": false
}