PtData
Server Details
Point-in-time US equity fundamentals for quants and AI agents. Free tier, no API key needed.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
get_fundamentals and get_earnings_event both involve as-reported financial figures and could be confused at first glance, but the descriptions distinguish event-level earnings data from point-in-time metric snapshots. get_filing_metadata and get_index_constituents are clearly separate.
All tools follow the same get_<resource> snake_case pattern, making the naming predictable and easy to parse. There are no mixed conventions or vague verb choices.
Four tools is a reasonable, focused surface for a point-in-time financial data server. It is slightly thin but each tool covers a distinct data category rather than being redundant.
The surface covers point-in-time fundamentals, SEC filings, earnings events, and index membership, which are core to the apparent domain. Minor gaps such as direct price history or ticker search exist but can likely be worked around.
Available Tools
4 toolsget_earnings_eventGet earnings eventBRead-onlyIdempotentInspect
Earnings event: 8-K acceptance timestamp, as-reported figures, and the derived realized
price reaction. fiscal_period is FY or Q1..Q4.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ||
| fiscal_year | Yes | ||
| fiscal_period | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds the returned data components, but does not disclose behavior for missing events, partial data, or error conditions, so it adds only moderate context beyond annotations and the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no wasted wording. The content summary is front-loaded, and the lone parameter clarification is appended efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values and annotations cover safety, so the description needn't repeat those. However, it omits usage guidance and leaves ticker/fiscal_year semantics unspecified, which are meaningful gaps for a three-required-parameter lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description clarifies only fiscal_period ('FY or Q1..Q4'). It says nothing about ticker formatting or fiscal_year semantics, leaving two required parameters dependent on name and type alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('Earnings event') and enumerates the specific contents it returns: 8-K acceptance timestamp, as-reported figures, and derived realized price reaction. This distinguishes it from siblings like get_fundamentals or get_filing_metadata, though the verb is implied rather than stated as 'Retrieve'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. An agent must infer usage from the tool name and sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filing_metadataGet filing metadataBRead-onlyIdempotentInspect
SEC filings for ticker available on as_of_date, newest first, with amendment linkage.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ||
| form_type | No | ||
| as_of_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: results are ordered newest first, amendments are linked to their originals, and the as_of_date defines availability rather than filing date. It stops short of saying whether the result set is paginated or bounded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded clause with zero filler; every element (resource, ticker, availability date, ordering, amendment linkage) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover the safety profile, so return values and side effects need no elaboration. However, for a tool with completely undocumented parameters, omitting form_type's semantics and the date format leaves a real gap an agent could trip over.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, so the description must carry the load. It clarifies ticker and as_of_date in passing (availability cutoff) but says nothing about form_type, the only optional filter, leaving the agent to guess whether it is an exact match, a prefix, or a list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (SEC filings) scoped by ticker and as_of_date, plus two distinguishing traits: newest-first ordering and amendment linkage. An agent can distinguish it from get_earnings_event, get_fundamentals and get_index_constituents by resource domain alone, though the description never states which sibling it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not-to-use, or alternative routing; the agent must infer that this is the filings tool and the siblings cover other data. Nothing says what happens if form_type is omitted or whether to prefer a different tool for a point-in-time snapshot.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fundamentalsGet point-in-time fundamentalsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ||
| metrics | Yes | ||
| as_of_date | Yes | ||
| fiscal_year | No | ||
| fiscal_period | No | FY |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond: request metrics with no value are never silently dropped but returned under `unavailable` with reason, alternatives, and docs_url, including the bank/broker/insurer revenue-family example. That is exactly the kind of non-obvious behavior an agent needs to interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core scope, then the failure-mode behavior. The parenthetical enumeration of revenue-family members is long but earns its place by making the `unavailable` semantics concrete; overall it is dense but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the description still usefully frames the return structure (metrics vs unavailable, with source/knowledge time/lineage). The only shortfall is the unexplained fiscal_year/fiscal_period parameters, which leaves a small hole for a point-in-time tool where period selection matters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the load: it does clarify the YYYY-MM-DD format for `as_of_date` and the role of `metrics` as a requested-metric list. However, `fiscal_year` and `fiscal_period` (with its 'FY' default) are never explained, leaving meaningful gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-resource pair ('point-in-time fundamentals') plus the exact scoping axes (ticker, as_of_date). This is plainly distinct from the siblings (earnings events, filing metadata, index constituents), so an agent can select it without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a strong operational rule — inspect `unavailable` before concluding a figure does not exist — which is a real usage directive. It does not explicitly compare itself to the sibling tools or state exclusions, but the scope is narrow enough that the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_constituentsGet index constituentsARead-onlyIdempotentInspect
S&P 500 (or other index) constituents as understood on as_of_date (YYYY-MM-DD),
survivorship-free. Point-in-time, with lineage.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| as_of_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description adds genuinely non-obvious behavioral guarantees beyond that: results are survivorship-free, reflect the index as understood on the as_of_date, and carry lineage — all material to trusting the data. It does not discuss pagination or result size, but the output schema covers structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the resource stated first and the data-quality qualifiers front-loaded; every phrase ('survivorship-free', 'point-in-time', 'with lineage') adds information. The fragmentary style without a verb is slightly clipped but costs no clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with a full annotation set and an output schema, most needs are met. The remaining gap is the index identifier format, which is the single most likely source of a failed call, and 'with lineage' is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It does specify the as_of_date format (YYYY-MM-DD) and pins its meaning to point-in-time index membership, and it gives 'S&P 500' as an example index value. However, it never clarifies the expected index identifier format (e.g., 'SPX' vs '^GSPC' vs 'S&P 500'), which is a real ambiguity for a required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (index constituents) and the key dimension (as of a given date), which cleanly distinguishes it from siblings like get_fundamentals or get_filing_metadata that return entirely different data. It lacks an explicit verb ('returns'/'fetches'), but the resource+qualifier framing leaves no ambiguity about what is produced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Phrases like 'survivorship-free' and 'point-in-time' strongly imply the intended use case (historical/backtest analysis rather than current snapshot lookups), but the description never states when to use this tool versus alternatives or any exclusions. Usage is inferred rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_earnings_event - First observed
get_filing_metadata - First observed
get_fundamentals - First observed
get_index_constituents
Publisher details
- Operator
- PtData S.A.
- Operator website
- https://ptdata.io
- Vendor relationship
- First-party
- Documentation
- https://api.ptdata.io/docs
- Trust center
- Not available
- Restrictions
- Free tier needs no key (200 requests/day per IP). Higher limits and commercial use need a paid plan (Pro $49/mo, Scale $199/mo).
Related MCP Connectors
Point-in-time, survivorship-free SEC EDGAR fundamentals + smart-money signals for AI agents.
- mcpOAuthsh.opencapital
Give your AI deep fundamentals on US public companies — metrics, segments, peers. Free.
Verified SEC filing data for US equities: fundamentals, point-in-time values, 13F holders, insiders
Point-in-time SEC financials API + MCP: XBRL as first reported, EDGAR times. 100 free/day.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides free SEC filing fundamentals for US public companies, including financial statements, 10-K/10-Q summaries, and 8-K event histories. No API key or signup required.MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with clean, normalized access to financial data including company fundamentals, insider trades, SEC filings, macro series from FRED, real-time quotes, and ETF holdings.MIT

akyla-mcpofficial
AlicenseAqualityDmaintenanceProvides as-reported US equity fundamentals, live quotes, financial statements, valuation comps, and a screener from SEC filings, with per-cell filing provenance for citations.7MIT- AlicenseNot gradedqualityBmaintenanceFinancial data and research MCP for AI agents: filings with full-text and fact search, statements as reported, earnings, insider and institutional ownership, corporate events, executives, analyst data, company discovery and research signals for US, China and Japan equities. Every figure traced to its filing. Browser sign-in.9MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.