このMCPでできること
Provides point-in-time SEC EDGAR fundamentals, filings, ownership signals, financial analysis, valuation models, research reports, and related workbooks.
ツール
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['staged_action_id'], 'properties': {'staged_action_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of the staged action to approve, from stage_action or list_pending_approvals.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'staged_action', 'executed_now', 'tool_result'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'tool_result': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "The underlying tool's structuredContent, when available (executed now, or previously executed)."}, 'executed_now': {'type': 'boolean', 'description': 'True only if THIS call is the one that ran the underlying tool (won the approval race).'}, 'staged_action': {'type': 'object', 'required': ['id', 'customer_id', 'tool_name', 'tool_args', 'risk_tier', 'origin', 'status', 'result', 'reason', 'created_at', 'decided_at'], 'properties': {'id': {'type': 'string'}, 'origin': {'type': 'string'}, 'reason': {'type': ['string', 'null']}, 'result': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "The underlying tool's own structured result, set once status='executed'."}, 'status': {'enum': ['proposed', 'approved', 'rejected', 'executed', 'failed'], 'type': 'string'}, 'risk_tier': {'enum': ['green', 'amber', 'red'], 'type': 'string'}, 'tool_args': {'type': 'object', 'additionalProperties': {}}, 'tool_name': {'type': 'string'}, 'created_at': {'type': 'number'}, 'decided_at': {'type': ['number', 'null']}, 'customer_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'task_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the scheduled task to cancel.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'task_id', 'cancelled'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'task_id': {'type': 'string'}, 'cancelled': {'type': 'boolean', 'description': 'True if THIS call moved the task to cancelled; false if it was already completed/cancelled or not found.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'period_a', 'period_b'], 'properties': {'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'."}, 'period_a': {'type': 'string', 'maxLength': 10, 'minLength': 2, 'description': "Earlier fiscal period. Format: 'FY2023' for annual or 'Q1-2023' for quarterly."}, 'period_b': {'type': 'string', 'maxLength': 10, 'minLength': 2, 'description': "Later fiscal period. Format: 'FY2024' for annual or 'Q1-2024' for quarterly."}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time date (YYYY-MM-DD). Only returns facts with accepted_at on or before this date — eliminates look-ahead bias for backtesting.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'period_a', 'period_b', 'swapped', 'total_metrics', 'material_changes', 'changes'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'changes': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'description': 'Per-metric deltas: metric, label, period_a, period_b, delta, delta_pct, significance'}, 'swapped': {'type': 'boolean', 'description': 'True when inputs were reordered so period_b is the more recent period'}, 'period_a': {'type': 'object', 'properties': {}, 'description': 'Earlier period descriptor: label, fiscal_year, fiscal_period, period_end, filing_date', 'additionalProperties': True}, 'period_b': {'type': 'object', 'properties': {}, 'description': 'Later period descriptor, same shape as period_a', 'additionalProperties': True}, 'as_of_date': {'type': ['string', 'null']}, 'company_name': {'type': 'string'}, 'total_metrics': {'type': 'integer', 'description': 'Count of metrics compared across the two periods'}, 'material_changes': {'type': 'integer', 'description': 'Count of metrics flagged as a material change'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['acquirer_ticker', 'target_ticker', 'offer_price_per_share', 'cash_pct'], 'properties': {'cash_pct': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Fraction (0-1) of deal value paid in cash; the remainder (1 - cash_pct) is paid in acquirer stock.'}, 'tax_rate': {'type': 'number', 'default': 0.21, 'maximum': 1, 'minimum': 0, 'description': 'Effective tax rate applied to synergies and the interest drag. Default 0.21.'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "Point-in-time cutoff (YYYY-MM-DD) for both companies' fundamentals + prices. Omit to use the latest knowable data."}, 'target_ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': "Target's stock ticker symbol, e.g. ATVI."}, 'acquirer_ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': "Acquirer's stock ticker symbol, e.g. MSFT."}, 'synergies_pretax': {'type': 'number', 'default': 0, 'description': 'Pretax annual run-rate cost/revenue synergies (USD). Default 0.'}, 'cash_financing_source': {'enum': ['new_debt', 'balance_sheet_cash'], 'type': 'string', 'default': 'new_debt', 'description': 'Where the cash consideration is funded from. "new_debt" (default) applies an after-tax interest drag; "balance_sheet_cash" applies none.'}, 'offer_price_per_share': {'type': 'number', 'description': 'Offer price per target share (USD).', 'exclusiveMinimum': 0}, 'new_debt_interest_rate': {'type': 'number', 'default': 0.06, 'maximum': 0.5, 'minimum': 0, 'description': 'Annual interest rate on new acquisition debt (only used when cash_financing_source is "new_debt"). Default 0.06.'}, 'target_share_price_override': {'type': 'number', 'description': "Override the target's live EOD close (used only for the disclosed premium). Leave unset to use the latest R2-derived price.", 'exclusiveMinimum': 0}, 'acquirer_share_price_override': {'type': 'number', 'description': "Override the acquirer's live EOD close. Leave unset to use the latest R2-derived price.", 'exclusiveMinimum': 0}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'acquirer_ticker', 'target_ticker', 'result'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'result': {'type': 'object', 'additionalProperties': {}}, 'target_ticker': {'type': 'string'}, 'acquirer_ticker': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'stage1_growth_rate'], 'properties': {'wacc': {'type': 'number', 'default': 0.09, 'maximum': 0.5, 'minimum': 0.01, 'description': 'Discount rate. Default 0.09.'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol of the company to value, e.g. AAPL, MSFT, BRK.B.'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time cutoff (YYYY-MM-DD) for the auto-pulled inputs. Fundamentals are filtered by SEC accepted_at (strict PIT); valuation.parquet inputs are best-effort PIT (filtered by created_at, its accepted_at proxy — no SEC acceptance timestamp exists for pipeline-computed valuations). Omit to use the latest knowable inputs.'}, 'fcf_source': {'enum': ['trend', 'three_statement'], 'type': 'string', 'default': 'trend', 'description': '"trend" (default): compound fcf_base by stage1_growth_rate every year (unchanged original behavior). "three_statement": derive the FCF stream from a full linked 3-statement projection instead — see the tool description for details.'}, 'stage1_years': {'type': 'integer', 'default': 5, 'maximum': 15, 'minimum': 3, 'description': 'Number of explicit high-growth projection years before the terminal stage (3–15). Defaults to 5.'}, 'shares_override': {'type': 'number', 'description': 'Override shares outstanding. Leave unset to use R2-derived.', 'exclusiveMinimum': 0}, 'fcf_base_override': {'type': 'number', 'description': 'Override the auto-pulled FCF base (USD). Leave unset to use R2-derived.'}, 'stage1_growth_rate': {'type': 'number', 'maximum': 1, 'minimum': -0.5, 'description': 'Stage-1 FCF growth rate (e.g. 0.12 = 12%/yr).'}, 'terminal_growth_rate': {'type': 'number', 'default': 0.025, 'maximum': 0.1, 'minimum': -0.05, 'description': 'Long-run growth. Default 0.025.'}, 'three_statement_assumptions': {'type': 'object', 'properties': {'tax_rate': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Default 0.21.'}, 'cash_sweep_pct': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Default 0.'}, 'dividend_payout_pct': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Default 0.'}, 'interest_rate_on_debt': {'type': 'number', 'maximum': 0.5, 'minimum': 0, 'description': 'Default 0.06.'}}, 'description': 'Only used when fcf_source is "three_statement". Overrides for the underlying projection; unset fields use project_three_statement\'s defaults.', 'additionalProperties': False}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'result'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'result': {'type': 'object', 'additionalProperties': {}}, 'ticker': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'entry_multiple', 'leverage_multiple', 'revenue_growth_rate'], 'properties': {'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol of the LBO target, e.g. AAPL.'}, 'tax_rate': {'type': 'number', 'default': 0.21, 'maximum': 1, 'minimum': 0, 'description': 'Effective tax rate on positive pretax income. Default 0.21.'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time cutoff (YYYY-MM-DD) for the seed period. Omit to use the latest knowable annual period.'}, 'minimum_cash': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'Minimum operating cash left on the pro-forma opening balance sheet. Default 0.'}, 'exit_multiple': {'type': 'number', 'description': 'EV/EBITDA multiple assumed at exit. Defaults to entry_multiple (no multiple expansion/contraction) when omitted.', 'exclusiveMinimum': 0}, 'cash_sweep_pct': {'type': 'number', 'default': 1, 'maximum': 1, 'minimum': 0, 'description': "Fraction (0-1) of each year's FCF swept to debt paydown. Default 1.0 (standard LBO — 100% sweep)."}, 'entry_multiple': {'type': 'number', 'description': 'EV/EBITDA multiple paid at entry (e.g. 10 = 10x).', 'exclusiveMinimum': 0}, 'hold_period_years': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1, 'description': 'Hold period in years (1-10). Defaults to 5.'}, 'leverage_multiple': {'type': 'number', 'minimum': 0, 'description': 'Debt/EBITDA raised at entry (e.g. 5 = 5x leverage).'}, 'dividend_payout_pct': {'type': 'number', 'default': 0, 'maximum': 1, 'minimum': 0, 'description': 'Fraction (0-1) of net income distributed to the sponsor each year (dividend recap style). Default 0 — most LBOs return capital only at exit.'}, 'revenue_growth_rate': {'type': 'number', 'maximum': 1, 'minimum': -0.5, 'description': 'Flat annual revenue growth rate applied every year of the hold (e.g. 0.05 = 5%/yr).'}, 'entry_ebitda_override': {'type': 'number', 'description': 'Override the EBITDA figure used for both entry and exit multiples. Without this, EBITDA is proxied by operating income.', 'exclusiveMinimum': 0}, 'interest_rate_on_debt': {'type': 'number', 'default': 0.08, 'maximum': 0.5, 'minimum': 0, 'description': 'Annual interest rate on beginning-of-period LBO debt. Default 0.08 (leveraged debt typically prices above IG).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'seed_period_end', 'result'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'result': {'type': 'object', 'additionalProperties': {}}, 'ticker': {'type': 'string'}, 'seed_period_end': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_type'], 'properties': {'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Optional human-supplied title; auto-generated when omitted.'}, 'params': {'type': 'object', 'required': ['target_price_cents'], 'properties': {'wacc': {'type': 'number', 'default': 0.09, 'maximum': 0.5, 'minimum': 0.01, 'description': 'Discount rate. Default 0.09 (9%).'}, 'stage1_years': {'type': 'integer', 'default': 5, 'maximum': 15, 'minimum': 3, 'description': 'Length of the explicit forecast horizon. Default 5.'}, 'target_price_cents': {'type': 'integer', 'description': 'Per-share market price the model solves for (integer cents).', 'exclusiveMinimum': 0}, 'terminal_growth_rate': {'type': 'number', 'default': 0.025, 'maximum': 0.1, 'minimum': -0.05, 'description': 'Long-run growth assumption. Default 0.025 (2.5%).'}}, 'description': 'Reverse-DCF parameters — required for report_type=reverse_dcf.', 'additionalProperties': False}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'US-listed ticker — required for report_type=reverse_dcf. Case-insensitive.'}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of a saved thesis owned by the caller — required for report_type=thesis.'}, 'report_type': {'enum': ['reverse_dcf', 'thesis'], 'type': 'string', 'description': 'Subtype. `reverse_dcf` requires ticker + params; `thesis` requires thesis_id (from save_thesis / list_theses).'}, 'idempotency_key': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Optional key for at-most-once semantics. Same key from the same user always yields the same report id.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'report', 'sections', 'citations', 'structured', 'markdown'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'report': {'type': 'object', 'required': ['id', 'author_id', 'ticker', 'report_type', 'title', 'abstract', 'status', 'visibility', 'version', 'price_cents', 'currency', 'tier_required', 'r2_key_markdown', 'r2_key_pdf', 'r2_key_audio', 'vector_id', 'quality_score', 'lineage_verified', 'buyers_count', 'view_count', 'created_at', 'updated_at', 'published_at'], 'properties': {'id': {'type': 'string'}, 'title': {'type': 'string'}, 'status': {'enum': ['draft', 'ready', 'listed', 'delisted'], 'type': 'string'}, 'ticker': {'type': ['string', 'null']}, 'version': {'type': 'integer'}, 'abstract': {'type': ['string', 'null']}, 'currency': {'type': 'string'}, 'author_id': {'type': 'string'}, 'vector_id': {'type': ['string', 'null']}, 'created_at': {'type': 'number'}, 'r2_key_pdf': {'type': ['string', 'null']}, 'updated_at': {'type': 'number'}, 'view_count': {'type': 'integer'}, 'visibility': {'enum': ['private', 'unlisted', 'listed'], 'type': 'string'}, 'price_cents': {'type': ['number', 'null']}, 'report_type': {'enum': ['reverse_dcf', 'thesis'], 'type': 'string'}, 'buyers_count': {'type': 'integer'}, 'published_at': {'type': ['number', 'null']}, 'r2_key_audio': {'type': ['string', 'null']}, 'quality_score': {'type': ['number', 'null']}, 'tier_required': {'enum': ['sample', 'sp500', 'pro', 'full'], 'type': 'string'}, 'r2_key_markdown': {'type': ['string', 'null']}, 'lineage_verified': {'type': 'boolean'}}, 'additionalProperties': False}, 'markdown': {'type': 'string'}, 'sections': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'heading', 'markdown', 'citation_ids'], 'properties': {'id': {'type': 'string'}, 'heading': {'type': 'string'}, 'markdown': {'type': 'string'}, 'citation_ids': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['claim', 'fact_ids', 'accession_ids', 'sec_urls', 'evidence'], 'properties': {'claim': {'type': 'string'}, 'evidence': {'enum': ['primary', 'derived', 'external'], 'type': 'string'}, 'fact_ids': {'type': 'array', 'items': {'type': 'string'}}, 'sec_urls': {'type': 'array', 'items': {'type': 'string'}}, 'accession_ids': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'structured': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'trigger', 'action'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Human-readable label.'}, 'action': {'anyOf': [{'type': 'object', 'required': ['type', 'team_id'], 'properties': {'type': {'type': 'string', 'const': 'run_team'}, 'team_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "A standing_agent.id identifying which team to run — same identifier shape as a signal's agent_run channel target."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'channel'], 'properties': {'type': {'type': 'string', 'const': 'send_alert'}, 'channel': {'anyOf': [{'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'email'}, 'target': {'type': 'string', 'format': 'email', 'maxLength': 256}, 'hmac_secret': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'webhook'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512}, 'hmac_secret': {'type': 'string', 'maxLength': 128, 'minLength': 16, 'description': 'HMAC secret (≥16 chars) for webhook signature verification. Recommended for production.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'dashboard'}, 'target': {'type': 'string', 'default': '@self', 'maxLength': 16, 'description': "Always '@self' for dashboard channels. Routes to the in-app inbox keyed by the signal's owning customer."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'slack'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512, 'description': 'Slack incoming-webhook URL — must be on host hooks.slack.com (e.g. https://hooks.slack.com/services/T0000/B0000/XXXX). The URL itself is the secret, so no HMAC is used.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'agent_run'}, 'target': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A standing_agent.id identifying which standing agent team to run when this signal fires. NOT a URL — no outbound-URL validation applies to this field.'}}, 'additionalProperties': False}], 'description': 'Delivery channel — same discriminated union create_signal accepts (email/webhook/dashboard/slack/agent_run).'}, 'message': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Optional custom message; defaults to a summary of the trigger event.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'report_type'], 'properties': {'type': {'type': 'string', 'const': 'create_report'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'params': {'type': 'object', 'description': "reverse_dcf DCF params — see create_report's own schema.", 'additionalProperties': {}}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Required when report_type=reverse_dcf.'}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Required when report_type=thesis.'}, 'report_type': {'enum': ['reverse_dcf', 'thesis'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'thesis_id'], 'properties': {'type': {'type': 'string', 'const': 'score_thesis'}, 'as_of': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'task', 'wake_in_days'], 'properties': {'task': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'type': {'type': 'string', 'const': 'schedule_task'}, 'context': {'type': 'object', 'additionalProperties': {}}, 'wake_in_days': {'type': 'number', 'maximum': 90, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'title', 'message'], 'properties': {'type': {'type': 'string', 'const': 'post_inbox'}, 'title': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'message': {'type': 'string', 'maxLength': 2000, 'minLength': 1}}, 'additionalProperties': False}], 'description': 'Discriminated union — what happens when the rule fires.'}, 'trigger': {'anyOf': [{'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'alert_fired'}, 'alert_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Scope to one specific alert id. Omit to react to ANY of the rule owner's alerts firing."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'interval_minutes'], 'properties': {'type': {'type': 'string', 'const': 'schedule_tick'}, 'interval_minutes': {'type': 'integer', 'maximum': 10080, 'minimum': 5, 'description': 'Minimum minutes between fires (5 min – 7 days). Rounded up to the nearest 5-minute cron tick.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'inbox_item'}, 'condition_type_filter': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': 'Only consider inbox items whose condition_type equals this value. Omit to react to any inbox item.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker'], 'properties': {'type': {'type': 'string', 'const': 'price_threshold'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z][A-Za-z0-9.\\-]{0,9}$', 'maxLength': 10, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'filing_event'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25}, 'ticker': {'$ref': '#/properties/trigger/anyOf/3/properties/ticker'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'manual'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'scheduled_task_wake'}, 'task_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Scope to one specific scheduled_task id. Omit to react to ANY of the owner's tasks waking."}}, 'additionalProperties': False}], 'description': 'Discriminated union — which signal fires this rule.'}, 'condition_expr': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Optional single comparison against the trigger payload, e.g. "price_change_pct gt 5". Omit to fire on the trigger alone.'}, 'replaces_rule_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Optional. The id of a signal this call REPLACES — set it when saving an edit, which is stored as create-then-delete because neither engine has an update tool. A verified live record you own is discounted from the tier cap so an edit is cap-neutral; an unknown, deleted, or foreign id is ignored and the cap applies normally.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'rule'], 'properties': {'rule': {'type': 'object', 'required': ['id', 'name', 'trigger_type', 'trigger_params', 'condition_expr', 'action_type', 'action_params', 'enabled', 'last_fired_at', 'fire_count', 'created_at', 'trigger_wiring_status'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'created_at': {'type': 'number'}, 'fire_count': {'type': 'integer'}, 'action_type': {'enum': ['run_team', 'send_alert', 'create_report', 'score_thesis', 'schedule_task', 'post_inbox'], 'type': 'string'}, 'trigger_type': {'enum': ['alert_fired', 'schedule_tick', 'inbox_item', 'price_threshold', 'filing_event', 'manual', 'scheduled_task_wake'], 'type': 'string'}, 'action_params': {'anyOf': [{'type': 'object', 'required': ['type', 'team_id'], 'properties': {'type': {'type': 'string', 'const': 'run_team'}, 'team_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "A standing_agent.id identifying which team to run — same identifier shape as a signal's agent_run channel target."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'channel'], 'properties': {'type': {'type': 'string', 'const': 'send_alert'}, 'channel': {'anyOf': [{'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'email'}, 'target': {'type': 'string', 'format': 'email', 'maxLength': 256}, 'hmac_secret': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'webhook'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512}, 'hmac_secret': {'type': 'string', 'maxLength': 128, 'minLength': 16, 'description': 'HMAC secret (≥16 chars) for webhook signature verification. Recommended for production.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'dashboard'}, 'target': {'type': 'string', 'default': '@self', 'maxLength': 16, 'description': "Always '@self' for dashboard channels. Routes to the in-app inbox keyed by the signal's owning customer."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'slack'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512, 'description': 'Slack incoming-webhook URL — must be on host hooks.slack.com (e.g. https://hooks.slack.com/services/T0000/B0000/XXXX). The URL itself is the secret, so no HMAC is used.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'agent_run'}, 'target': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A standing_agent.id identifying which standing agent team to run when this signal fires. NOT a URL — no outbound-URL validation applies to this field.'}}, 'additionalProperties': False}], 'description': 'Delivery channel — same discriminated union create_signal accepts (email/webhook/dashboard/slack/agent_run).'}, 'message': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Optional custom message; defaults to a summary of the trigger event.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'report_type'], 'properties': {'type': {'type': 'string', 'const': 'create_report'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'params': {'type': 'object', 'description': "reverse_dcf DCF params — see create_report's own schema.", 'additionalProperties': {}}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Required when report_type=reverse_dcf.'}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Required when report_type=thesis.'}, 'report_type': {'enum': ['reverse_dcf', 'thesis'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'thesis_id'], 'properties': {'type': {'type': 'string', 'const': 'score_thesis'}, 'as_of': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'task', 'wake_in_days'], 'properties': {'task': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'type': {'type': 'string', 'const': 'schedule_task'}, 'context': {'type': 'object', 'additionalProperties': {}}, 'wake_in_days': {'type': 'number', 'maximum': 90, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'title', 'message'], 'properties': {'type': {'type': 'string', 'const': 'post_inbox'}, 'title': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'message': {'type': 'string', 'maxLength': 2000, 'minLength': 1}}, 'additionalProperties': False}]}, 'last_fired_at': {'type': ['number', 'null']}, 'condition_expr': {'type': ['string', 'null']}, 'trigger_params': {'anyOf': [{'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'alert_fired'}, 'alert_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Scope to one specific alert id. Omit to react to ANY of the rule owner's alerts firing."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'interval_minutes'], 'properties': {'type': {'type': 'string', 'const': 'schedule_tick'}, 'interval_minutes': {'type': 'integer', 'maximum': 10080, 'minimum': 5, 'description': 'Minimum minutes between fires (5 min – 7 days). Rounded up to the nearest 5-minute cron tick.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'inbox_item'}, 'condition_type_filter': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': 'Only consider inbox items whose condition_type equals this value. Omit to react to any inbox item.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker'], 'properties': {'type': {'type': 'string', 'const': 'price_threshold'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z][A-Za-z0-9.\\-]{0,9}$', 'maxLength': 10, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'filing_event'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25}, 'ticker': {'$ref': '#/properties/rule/properties/trigger_params/anyOf/3/properties/ticker'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'manual'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'scheduled_task_wake'}, 'task_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Scope to one specific scheduled_task id. Omit to react to ANY of the owner's tasks waking."}}, 'additionalProperties': False}]}, 'trigger_wiring_status': {'enum': ['live', 'not_yet_wired'], 'type': 'string', 'description': "'live' means a real event source calls evaluateRulesForEvent() for this trigger_type today — this rule CAN fire. 'not_yet_wired' means the trigger_type is accepted and persisted for forward-compatibility but no code path dispatches it yet — this rule will never fire until Valuein wires that trigger source. Check this before relying on a rule; use alert_fired/inbox_item/scheduled_task_wake/schedule_tick for a rule that fires today."}}, 'additionalProperties': False}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'warning': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'condition'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Human-readable label.'}, 'channel': {'anyOf': [{'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'email'}, 'target': {'type': 'string', 'format': 'email', 'maxLength': 256}, 'hmac_secret': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'webhook'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512}, 'hmac_secret': {'type': 'string', 'maxLength': 128, 'minLength': 16, 'description': 'HMAC secret (≥16 chars) for webhook signature verification. Recommended for production.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'dashboard'}, 'target': {'type': 'string', 'default': '@self', 'maxLength': 16, 'description': "Always '@self' for dashboard channels. Routes to the in-app inbox keyed by the signal's owning customer."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'slack'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512, 'description': 'Slack incoming-webhook URL — must be on host hooks.slack.com (e.g. https://hooks.slack.com/services/T0000/B0000/XXXX). The URL itself is the secret, so no HMAC is used.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'agent_run'}, 'target': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A standing_agent.id identifying which standing agent team to run when this signal fires. NOT a URL — no outbound-URL validation applies to this field.'}}, 'additionalProperties': False}], 'description': 'ONE delivery channel for a match — `email` (filing conditions: the morning digest; other conditions: one transactional email per signal per UTC day, the rest go to the inbox), `webhook` (HMAC-SHA256-signed POST to your URL), `slack` (POST to a hooks.slack.com incoming-webhook URL), `dashboard` (in-app inbox, readable via list_signal_inbox), or `agent_run` (runs a standing agent identified by its id, delivering the finished artifact to your inbox). Use `channels` instead to deliver to several at once; one of the two is required.'}, 'channels': {'type': 'array', 'items': {'$ref': '#/properties/channel'}, 'maxItems': 4, 'minItems': 1, 'description': "SEVERAL delivery channels for a match, in order (up to 4, each a distinct type+target) — e.g. `[{type:'dashboard'},{type:'email',target:'you@fund.com'}]` to get the inbox item AND the email. The first entry is what `channel` reports. Takes precedence over `channel` when both are given."}, 'condition': {'anyOf': [{'type': 'object', 'required': ['type', 'tickers', 'forms'], 'properties': {'type': {'type': 'string', 'const': 'filing_event'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to listen for, e.g. ['8-K', '10-K'] or ['SC 13D']. An EMPTY list means any filing. Amendments match their base form (a 10-K/A fires a 10-K signal) and EDGAR's two spellings of the schedules are equivalent ('SC 13D' === 'SCHEDULE 13D')."}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 50, 'minItems': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'ratio', 'comparator', 'threshold'], 'properties': {'type': {'type': 'string', 'const': 'ratio_threshold'}, 'ratio': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': "Ratio name (e.g. 'interest_coverage' or 'net_debt_to_ebitda')."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'threshold': {'type': 'number'}, 'comparator': {'enum': ['lt', 'gt', 'lte', 'gte'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_change'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to fire on, e.g. ['10-K', '10-Q']. Omit to keep the historical default set (8-K, 10-K, 10-Q, 20-F, 6-K, SC 13D, SC 13G, S-1, S-3); an empty list means any filing."}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'direction', 'threshold_pct', 'window_days'], 'properties': {'type': {'type': 'string', 'const': 'price_move'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'direction': {'enum': ['up', 'down', 'any'], 'type': 'string', 'description': "Which direction of move to fire on. 'any' fires on either direction."}, 'window_days': {'enum': [1, 5, 21], 'type': 'number', 'description': 'Trading-day lookback window: 1 (daily), 5 (weekly), or 21 (monthly).'}, 'threshold_pct': {'type': 'number', 'maximum': 50, 'minimum': 0.5, 'description': 'Minimum absolute close-to-close move, in percent (0.5–50), to fire.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'concept', 'change'], 'properties': {'type': {'type': 'string', 'const': 'fundamental_change'}, 'change': {'enum': ['new_period', 'restated', 'any'], 'type': 'string', 'description': "'new_period' fires only on a brand-new reporting period; 'restated' fires only when an already-reported period gets a new accepted_at vintage (an amendment); 'any' fires on either."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'concept': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "Standard concept name, e.g. 'TotalRevenue', 'NetIncome', 'OperatingCashFlow'."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_restatement'}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Fire when ANY company in this watchlist has a fact materially restated (>0.5% swing) by a later SEC filing — the Restatement Radar, scoped to a watchlist. Distinct from fundamental_change (one ticker + one concept).'}}, 'additionalProperties': False}], 'description': 'Condition evaluated each cron tick — a discriminated union of `filing_event` (a watched ticker files a new form), `ratio_threshold` (a financial ratio crosses a comparator/threshold), `watchlist_change` (any ticker in a named watchlist files), `price_move` (Pro+ — a close-to-close move crosses a percent threshold), or `fundamental_change` (Pro+ — a standard_concept reports a new period or gets restated).'}, 'replaces_signal_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Optional. The id of a signal this call REPLACES with a NEW one. Prefer `update_signal`, which edits in place and keeps the fire history; use this only when you deliberately want a fresh record. A verified live record you own is discounted from the tier cap so the swap is cap-neutral; an unknown, deleted, or foreign id is ignored and the cap applies normally.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'signal', 'cron_indexed'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'signal': {'type': 'object', 'required': ['id', 'name', 'condition', 'channel', 'channels', 'status', 'last_triggered_at', 'trigger_count', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'status': {'enum': ['active', 'paused', 'deleted'], 'type': 'string'}, 'channel': {'anyOf': [{'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'email'}, 'target': {'type': 'string', 'format': 'email', 'maxLength': 256}, 'hmac_secret': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'webhook'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512}, 'hmac_secret': {'type': 'string', 'maxLength': 128, 'minLength': 16, 'description': 'HMAC secret (≥16 chars) for webhook signature verification. Recommended for production.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'dashboard'}, 'target': {'type': 'string', 'default': '@self', 'maxLength': 16, 'description': "Always '@self' for dashboard channels. Routes to the in-app inbox keyed by the signal's owning customer."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'slack'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512, 'description': 'Slack incoming-webhook URL — must be on host hooks.slack.com (e.g. https://hooks.slack.com/services/T0000/B0000/XXXX). The URL itself is the secret, so no HMAC is used.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'agent_run'}, 'target': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A standing_agent.id identifying which standing agent team to run when this signal fires. NOT a URL — no outbound-URL validation applies to this field.'}}, 'additionalProperties': False}]}, 'channels': {'type': 'array', 'items': {'$ref': '#/properties/signal/properties/channel'}, 'maxItems': 4, 'minItems': 1}, 'condition': {'anyOf': [{'type': 'object', 'required': ['type', 'tickers', 'forms'], 'properties': {'type': {'type': 'string', 'const': 'filing_event'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to listen for, e.g. ['8-K', '10-K'] or ['SC 13D']. An EMPTY list means any filing. Amendments match their base form (a 10-K/A fires a 10-K signal) and EDGAR's two spellings of the schedules are equivalent ('SC 13D' === 'SCHEDULE 13D')."}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 50, 'minItems': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'ratio', 'comparator', 'threshold'], 'properties': {'type': {'type': 'string', 'const': 'ratio_threshold'}, 'ratio': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': "Ratio name (e.g. 'interest_coverage' or 'net_debt_to_ebitda')."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'threshold': {'type': 'number'}, 'comparator': {'enum': ['lt', 'gt', 'lte', 'gte'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_change'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to fire on, e.g. ['10-K', '10-Q']. Omit to keep the historical default set (8-K, 10-K, 10-Q, 20-F, 6-K, SC 13D, SC 13G, S-1, S-3); an empty list means any filing."}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'direction', 'threshold_pct', 'window_days'], 'properties': {'type': {'type': 'string', 'const': 'price_move'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'direction': {'enum': ['up', 'down', 'any'], 'type': 'string', 'description': "Which direction of move to fire on. 'any' fires on either direction."}, 'window_days': {'enum': [1, 5, 21], 'type': 'number', 'description': 'Trading-day lookback window: 1 (daily), 5 (weekly), or 21 (monthly).'}, 'threshold_pct': {'type': 'number', 'maximum': 50, 'minimum': 0.5, 'description': 'Minimum absolute close-to-close move, in percent (0.5–50), to fire.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'concept', 'change'], 'properties': {'type': {'type': 'string', 'const': 'fundamental_change'}, 'change': {'enum': ['new_period', 'restated', 'any'], 'type': 'string', 'description': "'new_period' fires only on a brand-new reporting period; 'restated' fires only when an already-reported period gets a new accepted_at vintage (an amendment); 'any' fires on either."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'concept': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "Standard concept name, e.g. 'TotalRevenue', 'NetIncome', 'OperatingCashFlow'."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_restatement'}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Fire when ANY company in this watchlist has a fact materially restated (>0.5% swing) by a later SEC filing — the Restatement Radar, scoped to a watchlist. Distinct from fundamental_change (one ticker + one concept).'}}, 'additionalProperties': False}]}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'last_error_at': {'type': ['number', 'null']}, 'trigger_count': {'type': 'integer'}, 'last_evaluated_at': {'type': ['number', 'null']}, 'last_triggered_at': {'type': ['number', 'null']}, 'last_error_message': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'cron_indexed': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id'], 'properties': {'agent_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the agent to delete.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'agent_id', 'status'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'deleted'}, 'agent_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key'], 'properties': {'key': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'The memory key to forget. Discover keys with get_agent_memory (no key = list all).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'key', 'deleted'], 'properties': {'key': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'deleted': {'type': 'boolean', 'description': 'true if an entry existed and was removed; false if the key was already absent.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['fact_id'], 'properties': {'fact_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Fact identifier whose citation override should be removed, as returned by save_citation_override or list_citation_overrides.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'fact_id', 'deleted'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'deleted': {'type': 'boolean'}, 'fact_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['claim_id'], 'properties': {'claim_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of the claim to archive.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'claim_id', 'archived'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'archived': {'type': 'boolean', 'const': True}, 'claim_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id'], 'properties': {'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Id from `create_report` or `list_my_reports`.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'report_id', 'status'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'delisted'}, 'report_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['rule_id'], 'properties': {'rule_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the rule to delete.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'rule_id', 'status'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'deleted'}, 'rule_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['signal_id'], 'properties': {'signal_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the signal to soft-delete, as returned by create_signal or list_signals.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'signal_id', 'status'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'deleted'}, 'signal_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['thesis_id'], 'properties': {'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id returned by `save_thesis` or `list_theses`.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'thesis_id', 'status'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'archived'}, 'thesis_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['upload_id'], 'properties': {'upload_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'The upload_id returned by POST /v1/uploads.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'deleted'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'deleted': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Watchlist name to soft-delete (case-insensitive, 1–80 chars); frees the name for reuse.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'watchlist_id', 'status'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'archived'}, 'watchlist_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'table': {'type': 'string', 'pattern': '^[a-z][a-z0-9_]*$', 'maxLength': 64, 'minLength': 1, 'description': "Filter to a single table name (e.g. 'fact', 'entity', 'references'). Omit to return the full schema for all tables."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'schema_version'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'table': {'type': 'string', 'description': 'Single-table mode: the requested table name'}, 'tables': {'type': 'object', 'description': 'Full-schema mode: map of table name → { description, column_count, columns }', 'additionalProperties': {}}, 'columns': {'type': 'object', 'description': 'Single-table mode: map of column name → definition', 'additionalProperties': {}}, 'project': {'type': ['string', 'null'], 'description': 'Full-schema mode: source project name'}, 'description': {'type': ['string', 'null'], 'description': "Single-table mode: the table's description"}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from the active R2 manifest'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['inbox_id'], 'properties': {'inbox_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the inbox item to dismiss (soft-delete), as returned by list_signal_inbox.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'inbox_id', 'dismissed', 'unread_count'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'inbox_id': {'type': 'string'}, 'dismissed': {'type': 'boolean'}, 'unread_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol of the company to audit, e.g. AAPL, MSFT, BRK.B.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'period_end', 'prior_period_end', 'source_filing', 'sec_url', 'result'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'result': {'type': 'object', 'additionalProperties': {}}, 'ticker': {'type': 'string'}, 'sec_url': {'type': ['string', 'null']}, 'period_end': {'type': ['string', 'null']}, 'source_filing': {'type': ['string', 'null']}, 'prior_period_end': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subject_ticker', 'peers'], 'properties': {'notes': {'type': 'string', 'maxLength': 500, 'description': 'Optional free-text note (≤500 chars) rendered on the Summary sheet.'}, 'peers': {'type': 'array', 'items': {'type': 'object', 'required': ['ticker'], 'properties': {'roe': {'type': ['number', 'null'], 'default': None}, 'roic': {'type': ['number', 'null'], 'default': None}, 'sector': {'anyOf': [{'type': 'string', 'maxLength': 60}, {'type': 'null'}], 'default': None}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'pb_ratio': {'type': ['number', 'null'], 'default': None}, 'pe_ratio': {'type': ['number', 'null'], 'default': None}, 'fcf_yield': {'type': ['number', 'null'], 'default': None}, 'market_cap': {'type': ['number', 'null'], 'default': None}, 'net_margin': {'type': ['number', 'null'], 'default': None}, 'company_name': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'default': None}, 'ev_to_ebitda': {'type': ['number', 'null'], 'default': None}, 'gross_margin': {'type': ['number', 'null'], 'default': None}, 'ev_to_revenue': {'type': ['number', 'null'], 'default': None}, 'operating_margin': {'type': ['number', 'null'], 'default': None}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1, 'description': "Peer companies to tabulate against the subject (1–50 rows); each row carries the peer's ticker, name, and comparable ratio values."}, 'subject_ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol of the subject company the comps sheet is built around, e.g. AAPL.'}, 'subject_company_name': {'type': 'string', 'maxLength': 120, 'description': 'Optional display name for the subject company; falls back to the ticker if omitted.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'url', 'r2_key', 'filename', 'content_type', 'size_bytes', 'expires_in_seconds', 'expires_at', 'verification'], 'properties': {'url': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'r2_key': {'type': 'string'}, 'filename': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'size_bytes': {'type': 'integer'}, 'content_type': {'type': 'string'}, 'verification': {'type': 'object', 'required': ['status', 'note'], 'properties': {'note': {'type': 'string'}, 'status': {'type': 'string', 'const': 'unverified'}}, 'description': "Server-trust record. Comps ratios are rendered as supplied and are NOT re-derived by Valuein, so the workbook carries a visible 'figures supplied by caller' watermark. Pull authoritative ratios via get_peer_comparables / get_financial_ratios.", 'additionalProperties': False}, 'expires_in_seconds': {'type': 'integer'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'dcf_result'], 'properties': {'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol of the company the DCF workbook is built for, e.g. AAPL.'}, 'dcf_result': {'type': 'object', 'required': ['value_per_share_cents', 'enterprise_value', 'equity_value', 'terminal_value_pct', 'inputs_echo', 'sensitivity_table', 'reason'], 'properties': {'reason': {'type': ['string', 'null']}, 'inputs_echo': {'type': 'object', 'required': ['fcf_base_total_usd', 'shares_outstanding', 'net_debt', 'stage1_growth_rate', 'wacc', 'terminal_growth_rate', 'stage1_years'], 'properties': {'wacc': {'type': 'number'}, 'net_debt': {'type': 'number'}, 'stage1_years': {'type': 'integer'}, 'fcf_base_total_usd': {'type': 'number'}, 'shares_outstanding': {'type': 'number', 'exclusiveMinimum': 0}, 'stage1_growth_rate': {'type': 'number'}, 'terminal_growth_rate': {'type': 'number'}}, 'additionalProperties': False}, 'equity_value': {'type': ['number', 'null']}, 'enterprise_value': {'type': ['number', 'null']}, 'sensitivity_table': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['wacc', 'terminal_growth_rate', 'value_per_share_cents'], 'properties': {'wacc': {'type': 'number'}, 'terminal_growth_rate': {'type': 'number'}, 'value_per_share_cents': {'type': ['number', 'null']}}, 'additionalProperties': False}}}, 'terminal_value_pct': {'type': ['number', 'null']}, 'value_per_share_cents': {'type': ['number', 'null']}}, 'description': 'Structured DCF result — typically the `result` field returned by `compute_dcf`.', 'additionalProperties': False}, 'company_name': {'type': 'string', 'maxLength': 120, 'description': 'Optional — surfaces on the cover row. Falls back to ticker only.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'url', 'r2_key', 'filename', 'content_type', 'size_bytes', 'expires_in_seconds', 'expires_at', 'verification'], 'properties': {'url': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'r2_key': {'type': 'string'}, 'filename': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'size_bytes': {'type': 'integer'}, 'content_type': {'type': 'string'}, 'verification': {'type': 'object', 'required': ['status', 'note', 'mismatches'], 'properties': {'note': {'type': 'string'}, 'status': {'enum': ['verified', 'corrected'], 'type': 'string'}, 'mismatches': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'claimed', 'derived'], 'properties': {'field': {'type': 'string'}, 'claimed': {'type': ['number', 'null']}, 'derived': {'type': ['number', 'null']}}, 'additionalProperties': False}}}, 'description': "Server-trust record. status='verified' when the caller's figures matched the server re-derivation; 'corrected' when they did not (the workbook shows the SERVER figures + a banner). `mismatches` lists every field that disagreed.", 'additionalProperties': False}, 'expires_in_seconds': {'type': 'integer'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'lbo_result'], 'properties': {'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol of the LBO target, e.g. AAPL.'}, 'lbo_result': {'type': 'object', 'required': ['entry_ebitda', 'entry_ebitda_is_proxy', 'entry_enterprise_value', 'entry_debt', 'sponsor_equity', 'exit_ebitda', 'exit_enterprise_value', 'exit_net_debt', 'exit_equity_value', 'total_distributions', 'moic', 'irr', 'projection', 'caveats', 'inputs_echo'], 'properties': {'irr': {'type': 'object', 'required': ['irr', 'converged', 'iterations'], 'properties': {'irr': {'type': ['number', 'null']}, 'converged': {'type': 'boolean'}, 'iterations': {'type': 'integer'}}, 'additionalProperties': False}, 'moic': {'type': 'number'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'entry_debt': {'type': 'number'}, 'projection': {'type': 'object', 'required': ['years'], 'properties': {'years': {'type': 'array', 'items': {'type': 'object', 'required': ['year', 'revenue', 'gross_profit', 'operating_income', 'interest_expense', 'pretax_income', 'tax', 'net_income', 'capex', 'noncash_adjustment', 'operating_cash_flow', 'free_cash_flow', 'debt_draw', 'debt_paydown', 'dividends_paid', 'ending_debt', 'ending_cash', 'ending_non_cash_assets', 'ending_total_assets', 'ending_non_debt_liabilities', 'ending_total_liabilities', 'ending_stockholders_equity', 'tie_out_diff', 'tie_out_ok'], 'properties': {'tax': {'type': 'number'}, 'year': {'type': 'integer'}, 'capex': {'type': 'number'}, 'revenue': {'type': 'number'}, 'debt_draw': {'type': 'number'}, 'net_income': {'type': 'number'}, 'tie_out_ok': {'type': 'boolean'}, 'ending_cash': {'type': 'number'}, 'ending_debt': {'type': 'number'}, 'debt_paydown': {'type': 'number'}, 'gross_profit': {'type': 'number'}, 'tie_out_diff': {'type': 'number'}, 'pretax_income': {'type': 'number'}, 'dividends_paid': {'type': 'number'}, 'free_cash_flow': {'type': 'number'}, 'interest_expense': {'type': 'number'}, 'operating_income': {'type': 'number'}, 'noncash_adjustment': {'type': 'number'}, 'ending_total_assets': {'type': 'number'}, 'operating_cash_flow': {'type': 'number'}, 'ending_non_cash_assets': {'type': 'number'}, 'ending_total_liabilities': {'type': 'number'}, 'ending_stockholders_equity': {'type': 'number'}, 'ending_non_debt_liabilities': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': True}, 'exit_ebitda': {'type': 'number'}, 'inputs_echo': {'type': 'object', 'required': ['seed', 'entry_multiple', 'exit_multiple', 'leverage_multiple', 'hold_period_years', 'revenue_growth_rate', 'interest_rate_on_debt', 'tax_rate', 'cash_sweep_pct', 'dividend_payout_pct', 'minimum_cash'], 'properties': {'seed': {'type': 'object', 'required': ['revenue', 'gross_margin_pct', 'operating_margin_pct', 'noncash_adj_pct_of_revenue', 'capex_pct_of_revenue', 'total_assets', 'total_liabilities', 'stockholders_equity', 'cash', 'total_debt'], 'properties': {'cash': {'type': 'number'}, 'revenue': {'type': 'number'}, 'total_debt': {'type': 'number'}, 'total_assets': {'type': 'number'}, 'gross_margin_pct': {'type': 'number'}, 'total_liabilities': {'type': 'number'}, 'stockholders_equity': {'type': 'number'}, 'capex_pct_of_revenue': {'type': 'number'}, 'operating_margin_pct': {'type': 'number'}, 'noncash_adj_pct_of_revenue': {'type': 'number'}}, 'additionalProperties': False}, 'tax_rate': {'type': 'number'}, 'minimum_cash': {'type': 'number'}, 'exit_multiple': {'type': 'number'}, 'cash_sweep_pct': {'type': 'number'}, 'entry_multiple': {'type': 'number'}, 'hold_period_years': {'type': 'integer'}, 'leverage_multiple': {'type': 'number'}, 'dividend_payout_pct': {'type': 'number'}, 'revenue_growth_rate': {'type': 'number'}, 'entry_ebitda_override': {'type': 'number'}, 'interest_rate_on_debt': {'type': 'number'}}, 'additionalProperties': False}, 'entry_ebitda': {'type': 'number'}, 'exit_net_debt': {'type': 'number'}, 'sponsor_equity': {'type': 'number'}, 'exit_equity_value': {'type': 'number'}, 'total_distributions': {'type': 'number'}, 'entry_ebitda_is_proxy': {'type': 'boolean'}, 'exit_enterprise_value': {'type': 'number'}, 'entry_enterprise_value': {'type': 'number'}}, 'description': 'Structured LBO result — typically the `result` field returned by `compute_lbo`.', 'additionalProperties': False}, 'company_name': {'type': 'string', 'maxLength': 120, 'description': 'Optional — surfaces on the cover row. Falls back to ticker only.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'url', 'r2_key', 'filename', 'content_type', 'size_bytes', 'expires_in_seconds', 'expires_at', 'verification'], 'properties': {'url': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'r2_key': {'type': 'string'}, 'filename': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'size_bytes': {'type': 'integer'}, 'content_type': {'type': 'string'}, 'verification': {'type': 'object', 'required': ['status', 'note', 'mismatches'], 'properties': {'note': {'type': 'string'}, 'status': {'enum': ['verified', 'corrected'], 'type': 'string'}, 'mismatches': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'claimed', 'derived'], 'properties': {'field': {'type': 'string'}, 'claimed': {'type': ['number', 'null']}, 'derived': {'type': ['number', 'null']}}, 'additionalProperties': False}}}, 'description': "Server-trust record. status='verified' when the caller's figures matched the server re-derivation; 'corrected' when they did not (the workbook shows the SERVER figures + a banner). `mismatches` lists every field that disagreed.", 'additionalProperties': False}, 'expires_in_seconds': {'type': 'integer'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'title', 'sections'], 'properties': {'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Document title rendered in the page-1 masthead (1–200 chars).'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol the brief covers, e.g. AAPL, MSFT, BRK.B.'}, 'abstract': {'type': 'string', 'maxLength': 2000, 'description': 'Optional executive-summary paragraph (≤2000 chars) shown after the masthead.'}, 'sections': {'type': 'array', 'items': {'type': 'object', 'required': ['heading', 'text'], 'properties': {'text': {'type': 'string', 'maxLength': 20000, 'minLength': 1}, 'heading': {'type': 'string', 'maxLength': 120, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1, 'description': 'Ordered body sections of the brief (1–20); each has a heading and body text.'}, 'snapshot': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'label': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'value': {'type': 'string', 'maxLength': 120, 'minLength': 1}}, 'additionalProperties': False}, 'default': [], 'maxItems': 20, 'description': 'Optional at-a-glance metric rows (≤20) rendered as the snapshot table.'}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['claim', 'source_filing', 'source_url', 'evidence'], 'properties': {'claim': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'evidence': {'enum': ['primary', 'derived', 'external'], 'type': 'string'}, 'source_url': {'type': 'string', 'maxLength': 500}, 'source_filing': {'type': 'string', 'maxLength': 40}}, 'additionalProperties': False}, 'default': [], 'maxItems': 60, 'description': 'Optional source citations (≤60) rendered as a table with clickable SEC EDGAR hyperlinks.'}, 'author_name': {'type': 'string', 'maxLength': 120, 'description': "Display name of the analyst producing this brief, shown as a named byline ('By {name}') on the masthead — the way a real research note credits an analyst. Omit to show just the date."}, 'company_name': {'type': 'string', 'maxLength': 120, 'description': 'Optional display name shown in the masthead subtitle; falls back to the ticker if omitted.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'url', 'r2_key', 'filename', 'content_type', 'size_bytes', 'expires_in_seconds', 'expires_at', 'verification'], 'properties': {'url': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'r2_key': {'type': 'string'}, 'filename': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'size_bytes': {'type': 'integer'}, 'content_type': {'type': 'string'}, 'verification': {'type': 'object', 'required': ['status', 'note'], 'properties': {'note': {'type': 'string'}, 'status': {'type': 'string', 'const': 'unverified'}}, 'description': "Server-trust record. Brief prose, snapshot rows, and citations are rendered as supplied and are NOT verified by Valuein, so the brief carries a visible 'figures supplied by caller' watermark. Resolve each citation via verify_fact_lineage for one-click SEC verification.", 'additionalProperties': False}, 'expires_in_seconds': {'type': 'integer'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id'], 'properties': {'agent_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Agent identifier, from save_agent or list_agents.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'found'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'agent': {'type': 'object', 'required': ['id', 'user_id', 'name', 'goal', 'tickers', 'agent_type', 'trigger_mode', 'is_system', 'cadence', 'hour_utc', 'minute_utc', 'day_of_week', 'day_of_month', 'timezone', 'enabled', 'last_run_at', 'last_run_id', 'next_run_at', 'created_at', 'updated_at', 'team_id', 'team_key', 'recipe_id', 'managed_model'], 'properties': {'id': {'type': 'string'}, 'goal': {'type': 'string'}, 'name': {'type': 'string'}, 'cadence': {'enum': ['daily', 'weekly', 'monthly', 'triggered'], 'type': 'string'}, 'enabled': {'type': 'boolean'}, 'team_id': {'type': ['string', 'null']}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'user_id': {'type': 'string'}, 'hour_utc': {'type': 'integer'}, 'team_key': {'type': ['string', 'null']}, 'timezone': {'type': ['string', 'null']}, 'is_system': {'type': 'boolean'}, 'recipe_id': {'type': ['string', 'null']}, 'agent_type': {'enum': ['workflow', 'autonomous'], 'type': 'string'}, 'created_at': {'type': 'number'}, 'minute_utc': {'type': 'integer'}, 'updated_at': {'type': 'number'}, 'day_of_week': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'last_run_at': {'type': ['number', 'null']}, 'last_run_id': {'type': ['string', 'null']}, 'next_run_at': {'type': 'number'}, 'day_of_month': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'trigger_mode': {'enum': ['manual', 'schedule', 'event', 'chat'], 'type': 'string'}, 'managed_model': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'found': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'key': {'anyOf': [{'type': 'string', 'maxLength': 128, 'minLength': 1}, {'type': 'null'}], 'description': 'A specific key to fetch, or omit/null to recall all memory (newest-first).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'memories'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'memories': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'value', 'created_at', 'updated_at'], 'properties': {'key': {'type': 'string'}, 'value': {'type': 'string'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'minLength': 1, 'description': 'Run identifier, from list_agent_runs.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'found'], 'properties': {'run': {'type': 'object', 'required': ['id', 'status', 'goal', 'tickers', 'cost_cents', 'artifact_ids', 'error', 'created_at', 'finished_at'], 'properties': {'id': {'type': 'string'}, 'goal': {'type': 'string'}, 'error': {'type': ['string', 'null']}, 'roles': {'anyOf': [{}, {'type': 'null'}]}, 'status': {'type': 'string'}, 'tickers': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'cost_cents': {'type': 'number'}, 'created_at': {'type': 'number'}, 'finished_at': {'type': ['number', 'null']}, 'artifact_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}}, 'additionalProperties': False}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'found': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol of the issuer — or a CIK (SEC identifier).'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'PIT filter on accepted_at — only filings on or before this date.'}, 'latest_only': {'type': 'boolean', 'default': True, 'description': 'When true (default), keep only the most recent filing per (filer, schedule prefix) — typically what analysts want. Set false to see the full filing history.'}, 'lookback_days': {'type': 'integer', 'default': 365, 'maximum': 3650, 'minimum': 7, 'description': 'Window for the going_active (13G → 13D) detection. Default 365 days.'}, 'lineage_detail': {'enum': ['off', 'compact', 'full'], 'type': 'string', 'default': 'compact', 'description': 'Per-row provenance envelope.'}, 'collapse_groups': {'type': 'boolean', 'default': False, 'description': 'When true, fold multi-reporting-person filings into a single row, with secondary persons in the ``persons[]`` field. Default false: each person stays as its own row.'}, 'schedule_filter': {'enum': ['13D', '13G', 'both'], 'type': 'string', 'default': 'both', 'description': "Which schedule(s) to return. '13D' = activist (intent to influence). '13G' = passive. 'both' = no filter."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'cik', 'company_name', 'data_age_days', 'staleness_warning', 'rows'], 'properties': {'cik': {'type': 'string'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['filing_date', 'accepted_at', 'as_of_date', 'filer_cik', 'filer_name', 'filer_type', 'schedule_type', 'is_activist', 'going_active', 'percent_owned', 'shares_owned', 'sole_voting_power', 'shared_voting_power', 'sole_dispositive_power', 'shared_dispositive_power', 'persons'], 'properties': {'lineage': {'type': 'object', 'required': ['source_filing', 'source_url'], 'properties': {'source_url': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'source_filing': {'type': 'string'}}, 'additionalProperties': False}, 'persons': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['name', 'cik'], 'properties': {'cik': {'type': ['string', 'null']}, 'name': {'type': 'string'}}, 'additionalProperties': False}}, {'type': 'null'}]}, 'filer_cik': {'type': ['string', 'null']}, 'as_of_date': {'type': ['string', 'null']}, 'filer_name': {'type': 'string'}, 'filer_type': {'type': ['string', 'null']}, 'accepted_at': {'type': 'string'}, 'filing_date': {'type': 'string'}, 'is_activist': {'type': 'boolean'}, 'going_active': {'type': 'boolean'}, 'shares_owned': {'type': ['number', 'null']}, 'percent_owned': {'type': ['number', 'null']}, 'schedule_type': {'type': 'string'}, 'sole_voting_power': {'type': ['number', 'null']}, 'shared_voting_power': {'type': ['number', 'null']}, 'sole_dispositive_power': {'type': ['number', 'null']}, 'shared_dispositive_power': {'type': ['number', 'null']}}, 'additionalProperties': False}}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'company_name': {'type': 'string'}, 'data_age_days': {'type': ['number', 'null']}, 'staleness_warning': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time date (YYYY-MM-DD). Only returns facts with accepted_at on or before this date — eliminates look-ahead bias.'}, 'lookback_years': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Number of fiscal years to look back from the most recent filing (1–20). Defaults to 5 years for a full capital allocation cycle.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'lookback_years', 'periods_returned', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'description': 'Per-period capital-allocation rows: capex, R&D, M&A, dividends, buybacks, debt, and deployment-mix flags'}, 'note': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'as_of_date': {'type': ['string', 'null']}, 'lookback_years': {'type': 'integer', 'description': 'Number of fiscal years summarized'}, 'periods_returned': {'type': 'integer'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['claim_id'], 'properties': {'claim_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id returned by save_claim or list_claims.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'claim', 'linked_thesis_ids', 'score_events'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'claim': {'type': 'object', 'required': ['id', 'statement', 'tickers', 'claim_type', 'tags', 'direction', 'confidence', 'eval_mode', 'verifiable_condition', 'antecedent', 'horizon_days', 'evidence', 'source_report_id', 'status', 'archived', 'visibility', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['open', 'confirmed', 'refuted', 'expired', 'stale', 'needs_review'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'archived': {'type': 'boolean'}, 'evidence': {'type': 'object', 'required': ['fact_ids', 'source_urls'], 'properties': {'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'fact_ids backing the claim. Verified against live SEC data at save time (rejected if unresolvable).'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 50, 'description': 'SEC EDGAR (or report) deep links for one-click human verification.'}, 'source_links': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'sec_url', 'document_url', 'inline_viewer_url'], 'properties': {'url': {'type': 'string', 'description': 'The original stored source_url (verbatim).'}, 'sec_url': {'type': 'string', 'description': 'EDGAR filing-index page — always resolves.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document, or null.'}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer on the rendered filing, or null when not iXBRL.'}}, 'additionalProperties': False}, 'description': 'On-read enrichment of source_urls with interactive SEC viewer links.'}}, 'additionalProperties': False}, 'direction': {'enum': ['bullish', 'bearish', 'neutral'], 'type': 'string'}, 'eval_mode': {'enum': ['auto', 'agent', 'manual'], 'type': 'string'}, 'statement': {'type': 'string'}, 'antecedent': {'type': ['string', 'null']}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string'}, 'confidence': {'type': 'number'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string'}, 'horizon_days': {'type': ['number', 'null']}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C resolved-metric breakdown ({evaluated, basis} from gradeClaim). Null when not yet resolved or resolved without a breakdown (manual); absent entirely on claims resolved before Phase C shipped — both mean 'no components recorded'."}, 'verifiable_condition': {'anyOf': [{'type': 'object', 'required': ['metric', 'op', 'threshold', 'unit'], 'properties': {'op': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq', 'approx'], 'type': 'string', 'description': 'Comparison operator the grader applies as: metric_value <op> threshold.'}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}], 'description': "Display unit ('%', 'x', 'usd') or null."}, 'metric': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Canonical metric key, e.g. 'gross_margin', 'revenue_yoy', 'net_debt_to_ebitda'."}, 'threshold': {'type': 'number', 'description': 'Numeric threshold the metric is compared against.'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}, 'score_events': {'type': 'array', 'items': {'type': 'object', 'required': ['claim_id', 'ts', 'prev_status', 'new_status', 'basis', 'score', 'resolution_id'], 'properties': {'ts': {'type': 'number'}, 'basis': {'type': 'string'}, 'score': {'type': ['number', 'null']}, 'claim_id': {'type': 'string'}, 'new_status': {'type': 'string'}, 'prev_status': {'type': 'string'}, 'resolution_id': {'type': 'string'}}, 'additionalProperties': False}}, 'linked_thesis_ids': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 40, 'minimum': 1, 'description': 'Maximum number of periods to return (1–40). Defaults to 5.'}, 'period': {'enum': ['annual', 'quarterly'], 'type': 'string', 'default': 'annual', 'description': 'Filing period granularity. Annual uses 10-K; quarterly uses 10-Q.'}, 'strict': {'type': 'boolean', 'default': False, 'description': "When true, fail with PLAN_LIMIT_EXCEEDED if the plan cannot satisfy the requested limit. Default false: return what's available and explain the gap in _meta.truncation."}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'."}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time date (YYYY-MM-DD). Only returns facts with accepted_at on or before this date — eliminates look-ahead bias for backtesting. Omit for the full dataset.'}, 'fiscal_year': {'type': 'integer', 'maximum': 2030, 'minimum': 1993, 'description': 'Fiscal year (YYYY). Omit to return the most recent available years.'}, 'lineage_detail': {'enum': ['off', 'compact', 'full'], 'type': 'string', 'default': 'compact', 'description': "Per-period provenance envelope + per-metric availability/provenance sidecars. 'compact' (default) returns source_filing + source_url (the SEC Inline-XBRL viewer with every tagged fact highlighted when the filing is iXBRL, else the rendered document, else the filing index) + sec_url/document_url/inline_viewer_url + restated flag, plus lean per-metric availability + fact_id + source_filing. 'full' adds first_filed_at + accepted_at + per-metric source_url + computed inputs[]. 'off' omits all provenance."}, 'min_confidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': "Withhold any metric whose backing fact scores below this confidence [0, 1]. The score is a PENALTY FROM EVIDENCE — every fact starts at 1.0 and is docked only for something checkable: a failed accounting identity (-0.40), a later filing that revised the number (-0.20), an unaudited filing (-0.05). It is NOT a function of age: a clean 1995 fact scores the same as a clean 2026 one. Guide: 0.95 = 'no evidence against this number' (the normal case — ~99.9% of facts, every year); 0.80 = tolerate a fact a later filing revised; 0.60 = tolerate a filing whose accounting identities failed. A withheld metric is reported as availability:'suppressed' — never dropped silently, and never as 'not_reported', which would claim the company did not file it. Facts with no confidence score are withheld too (fail closed)."}, 'response_format': {'enum': ['flat', 'envelope'], 'type': 'string', 'default': 'flat', 'description': 'Output shape. \'flat\' (default) returns the legacy `metrics` object plus the additive `metrics_availability`/`metrics_provenance`/`metrics_display` sidecars — `metrics_display` holds each figure already rendered for prose ("$402.83B"), and you should quote it verbatim rather than reformatting `metrics` yourself. \'envelope\' additionally attaches `metric_envelopes` — one canonical {metric,value,unit,scale,period,availability,provenance,display} object per metric. Both shapes carry the same display strings.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'company_name', 'period', 'as_of_date', 'years_returned', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['fiscal_year', 'fiscal_period', 'period_end', 'filing_date', 'accepted_at', 'metrics'], 'properties': {'lineage': {'type': 'object', 'required': ['source_filing', 'source_url', 'sec_url', 'document_url', 'inline_viewer_url', 'restated_in_warehouse'], 'properties': {'sec_url': {'type': 'string'}, 'source_url': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'document_url': {'type': ['string', 'null']}, 'source_filing': {'type': 'string'}, 'first_filed_at': {'type': 'string'}, 'inline_viewer_url': {'type': ['string', 'null']}, 'latest_accepted_at': {'type': 'string'}, 'restated_in_warehouse': {'type': 'boolean'}}, 'additionalProperties': False}, 'metrics': {'type': 'object', 'required': ['revenue', 'gross_profit', 'operating_income', 'net_income', 'eps_diluted', 'total_assets', 'total_liabilities', 'stockholders_equity', 'cash', 'short_term_investments', 'total_debt', 'operating_cash_flow', 'capex', 'shares_outstanding'], 'properties': {'cash': {'type': ['number', 'null']}, 'capex': {'type': ['number', 'null']}, 'revenue': {'type': ['number', 'null']}, 'net_income': {'type': ['number', 'null']}, 'total_debt': {'type': ['number', 'null']}, 'eps_diluted': {'type': ['number', 'null']}, 'gross_profit': {'type': ['number', 'null']}, 'total_assets': {'type': ['number', 'null']}, 'operating_income': {'type': ['number', 'null']}, 'total_liabilities': {'type': ['number', 'null']}, 'shares_outstanding': {'type': ['number', 'null'], 'description': 'Common shares outstanding (CommonSharesOutstanding) — equity-value→per-share divisor.'}, 'operating_cash_flow': {'type': ['number', 'null']}, 'stockholders_equity': {'type': ['number', 'null']}, 'short_term_investments': {'type': ['number', 'null'], 'description': 'Short-term / marketable investments (ShortTermInvestments). Non-overlapping with `cash`; Wall-Street net_debt subtracts (cash + short_term_investments).'}}, 'additionalProperties': False}, 'period_end': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'filing_date': {'type': 'string'}, 'fiscal_year': {'type': 'integer'}, 'fiscal_period': {'type': 'string'}, 'metrics_display': {'type': 'object', 'description': 'The figure rendered exactly as it should be quoted in prose ($402.83B, 59.65%, $6.11). QUOTE THESE VERBATIM. Do not re-render the raw number in `metrics` yourself: a figure you reformat no longer matches the string Valuein can bind to its filing, so it is reported to the reader as unverified even though the underlying fact was sound.', 'additionalProperties': {'type': ['string', 'null']}}, 'metric_envelopes': {'type': 'array', 'items': {'type': 'object', 'required': ['metric', 'value', 'unit', 'display', 'scale', 'period', 'availability', 'provenance'], 'properties': {'unit': {'type': 'string'}, 'scale': {'enum': ['absolute', 'thousands', 'millions', 'ratio', 'percent', 'fraction', 'shares'], 'type': 'string'}, 'value': {'type': ['number', 'null']}, 'metric': {'type': 'string'}, 'period': {'type': 'object', 'required': ['fiscal_year', 'fiscal_period', 'period_end'], 'properties': {'period_end': {'type': 'string'}, 'fiscal_year': {'type': 'integer'}, 'fiscal_period': {'type': 'string'}}, 'additionalProperties': False}, 'display': {'type': ['string', 'null'], 'description': 'The figure rendered exactly as it should be quoted in prose ($391.04B, 23.7%, $6.11). QUOTE THIS VERBATIM rather than re-rounding `value` yourself — re-rendering a raw number is how a stated figure drifts away from the filing it came from.'}, 'provenance': {'$ref': '#/properties/data/items/properties/metrics_provenance/additionalProperties'}, 'availability': {'$ref': '#/properties/data/items/properties/metrics_availability/additionalProperties'}}, 'additionalProperties': False}}, 'metrics_provenance': {'type': 'object', 'additionalProperties': {'type': 'object', 'required': ['origin'], 'properties': {'inputs': {'type': 'array', 'items': {'type': 'object', 'required': ['role'], 'properties': {'role': {'type': 'string'}, 'value': {'type': ['number', 'null']}, 'fact_id': {'type': 'string'}}, 'additionalProperties': False}}, 'origin': {'enum': ['dataset', 'computed'], 'type': 'string'}, 'fact_id': {'type': 'string'}, 'formula': {'type': 'string'}, 'source_url': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'source_filing': {'type': 'string'}}, 'description': "Provenance pointer: origin 'dataset' carries the SHA-256 fact_id + source filing; origin 'computed' carries the formula + the input fact_ids (verify with verify_fact_lineage).", 'additionalProperties': False}}, 'metrics_availability': {'type': 'object', 'additionalProperties': {'enum': ['available', 'not_reported', 'not_mapped', 'suppressed', 'error'], 'type': 'string', 'description': "Explicit availability status. A real reported zero is 'available' with value 0 — never null. 'not_reported' = filing omitted it; 'not_mapped' = XBRL mapping uncertain; 'suppressed' = below confidence; 'error' = compute/retrieval failed."}}}, 'additionalProperties': False}}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'period': {'enum': ['annual', 'quarterly'], 'type': 'string'}, 'ticker': {'type': 'string'}, 'as_of_date': {'type': ['string', 'null']}, 'company_name': {'type': 'string'}, 'years_returned': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dataset_type'], 'properties': {'ticker': {'type': 'string', 'pattern': '^([A-Za-z][A-Za-z0-9.\\-]{0,9}|\\d{1,10})$', 'maxLength': 10, 'minLength': 1, 'description': "Required when dataset_type is 'fact'. Resolves to the per-entity fact/{CIK}.parquet partition for that company."}, 'dataset_type': {'enum': ['fact', 'ratio', 'filing', 'references', 'index_membership'], 'type': 'string', 'description': "Dataset to access. 'fact' requires ticker (per-entity partition). All others are full-universe tables."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'dataset_type'], 'properties': {'url': {'type': 'string', 'description': 'Signed, time-limited (15-min) download URL for the Parquet object (Range-enabled)'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'scope': {'type': 'object', 'properties': {}, 'description': 'What the presigned URL is scoped to (method, object_key_only, etc.)', 'additionalProperties': True}, 'usage': {'type': 'object', 'properties': {}, 'description': 'Ready-to-run DuckDB / Polars snippets', 'additionalProperties': True}, 'bucket': {'type': 'string'}, 'format': {'type': 'string'}, 'ticker': {'type': ['string', 'null']}, 'url_hash': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'object_key': {'type': 'string'}, 'dataset_type': {'type': 'string'}, 'expires_in_seconds': {'type': 'integer'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 40, 'minimum': 1, 'description': 'Maximum number of periods to return (1–40), most recent first. Defaults to 8 — covers 2 years of quarterly signals plus their TTM equivalents. earnings_signals.parquet currently emits one row per (entity, period_end); older rows surface here as more historical periods are published.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time filter: only return signals with accepted_at on or before this date. Use for backtesting to avoid look-ahead bias.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'plan', 'periods_returned', 'note', 'estimate_basis', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}}, 'note': {'type': 'string'}, 'plan': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'as_of_date': {'type': 'string'}, 'estimate_basis': {'type': 'string'}, 'periods_returned': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1, 'description': 'Number of distinct period_end dates to return (1–20). Defaults to 5. Within each period, all matching ratio_names are included.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Historical cutoff (canonical cross-tool date param). PIT by SEC accepted_at when the ratio data carries it (latest value knowable on/before the date, zero look-ahead, _meta.pit_safe=true), else by ratio.period_end (pit_safe=false). For guaranteed accepted_at PIT use get_company_fundamentals.'}, 'categories': {'type': 'array', 'items': {'enum': ['profitability', 'liquidity', 'leverage', 'efficiency', 'per_share', 'owner_earnings', 'forensic', 'growth', 'rank', 'valuation'], 'type': 'string'}, 'maxItems': 10, 'description': "Ratio categories to include (see the enum). Omit to return every category this ticker has. `valuation` (pe_ratio, pb_ratio, ev_ebitda, market_cap, dividend_yield) is LIVE since schema 2.18.0 — price-derived, period-end-aligned, not strictly PIT. Availability is per-ticker (the envelope lists this ticker's available_categories)."}, 'fiscal_period': {'enum': ['FY', 'TTM', 'Q1', 'Q2', 'Q3', 'Q4'], 'type': 'string', 'description': "Filter to a specific fiscal period type. Use 'TTM' for trailing twelve months. Omit to return both annual (FY) and TTM rows."}, 'period_end_before': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Alias of as_of_date (as_of_date preferred — the canonical name). Returns ratios with period_end on or before this date.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'plan', 'note', 'periods_returned', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['period_end', 'fiscal_year', 'fiscal_period', 'is_ttm', 'is_calendar_aligned', 'computed_at', 'ratios'], 'properties': {'is_ttm': {'type': 'boolean'}, 'ratios': {'type': 'object', 'additionalProperties': {'type': 'object', 'required': ['value', 'unit', 'display', 'category'], 'properties': {'unit': {'type': 'string'}, 'value': {'type': ['number', 'null']}, 'detail': {'type': 'string'}, 'reason': {'type': 'string'}, 'display': {'type': ['string', 'null'], 'description': 'The ratio rendered exactly as it should be quoted (31.20%, 1.45x, $6.11). QUOTE THIS VERBATIM instead of converting `value` yourself.'}, 'category': {'type': 'string'}}, 'additionalProperties': False}}, 'period_end': {'type': 'string'}, 'computed_at': {'type': 'string'}, 'fiscal_year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'fiscal_period': {'type': 'string'}, 'is_calendar_aligned': {'type': ['boolean', 'null']}}, 'additionalProperties': False}}, 'note': {'type': 'string'}, 'plan': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'lineage': {'type': 'object', 'required': ['source_table', 'derivation', 'pit_safe', 'note', 'verify_with'], 'properties': {'note': {'type': 'string'}, 'pit_safe': {'type': 'boolean', 'const': False}, 'derivation': {'type': 'string', 'const': 'pipeline_computed'}, 'computed_at': {'type': 'string'}, 'verify_with': {'type': 'array', 'items': {'type': 'string'}}, 'source_table': {'type': 'string'}}, 'description': 'Provenance for pipeline-derived values (ratio.parquet / factor_scores.parquet): source table + pipeline computed_at, plus a pointer to the tools that return filing-level lineage. NOT point-in-time (recomputed on each pipeline run).', 'additionalProperties': False}, 'periods_returned': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': 'Issuer ticker symbol — or a CIK (SEC identifier).'}, 'lookback_days': {'type': 'integer', 'default': 180, 'maximum': 3650, 'minimum': 7, 'description': 'Days back from today to scan transactions for. Default 180.'}, 'cluster_window_days': {'type': 'integer', 'default': 30, 'maximum': 180, 'minimum': 7, 'description': 'Sliding window for the cluster_flag detection. Default 30 days.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'cik', 'company_name', 'lookback_days', 'sentiment_score', 'buy_count', 'sell_count', 'total_buy_shares', 'total_sell_shares', 'total_buy_usd', 'total_sell_usd', 'cluster_flag', 'top_contributors'], 'properties': {'cik': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'buy_count': {'type': 'integer', 'minimum': 0}, 'sell_count': {'type': 'integer', 'minimum': 0}, 'cluster_flag': {'type': 'boolean'}, 'company_name': {'type': 'string'}, 'lookback_days': {'type': 'integer'}, 'total_buy_usd': {'type': 'number'}, 'total_sell_usd': {'type': 'number'}, 'sentiment_score': {'type': 'number'}, 'top_contributors': {'type': 'array', 'items': {'type': 'object', 'required': ['insider_name', 'insider_cik', 'weighted_notional', 'net_direction', 'transaction_count'], 'properties': {'insider_cik': {'type': ['string', 'null']}, 'insider_name': {'type': 'string'}, 'net_direction': {'enum': ['buy', 'sell', 'neutral'], 'type': 'string'}, 'transaction_count': {'type': 'integer', 'minimum': 0}, 'weighted_notional': {'type': 'number'}}, 'additionalProperties': False}}, 'total_buy_shares': {'type': 'number'}, 'total_sell_shares': {'type': 'number'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 100, 'maximum': 500, 'minimum': 1, 'description': 'Maximum rows to return. Default 100, max 500.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'."}, 'roles_in': {'type': 'array', 'items': {'enum': ['Officer', 'Director', 'TenPercentOwner', 'Other'], 'type': 'string'}, 'description': 'Insider roles to keep. Omit to include any role.'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time date (YYYY-MM-DD). Only returns transactions with accepted_at <= this date — eliminates look-ahead bias. When set, lookback_days is ignored.'}, 'min_shares': {'type': 'number', 'minimum': 0, 'description': 'Minimum |shares| per transaction. Omit for no floor.'}, 'lookback_days': {'type': 'integer', 'default': 90, 'maximum': 3650, 'minimum': 1, 'description': 'How many days back from today to scan transactions for. Ignored when as_of_date is set.'}, 'lineage_detail': {'enum': ['off', 'compact', 'full'], 'type': 'string', 'default': 'compact', 'description': "Per-row provenance envelope. 'compact' (default) returns source_filing + source_url. 'full' adds accepted_at. 'off' omits lineage."}, 'transaction_codes': {'type': 'array', 'items': {'enum': ['P', 'S', 'A', 'M', 'F', 'G', 'J'], 'type': 'string'}, 'description': 'SEC transaction codes to keep (uppercase, single-letter): P=purchase, S=sale, A=grant, M=option exercise, F=tax withholding, G=gift, J=other. Unknown codes are rejected. Omit to include all codes.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'cik', 'company_name', 'data_age_days', 'staleness_warning', 'rows'], 'properties': {'cik': {'type': 'string'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['transaction_date', 'filing_date', 'accepted_at', 'insider_name', 'insider_cik', 'insider_role', 'officer_title', 'form_type', 'transaction_type', 'transaction_code', 'is_derivative', 'shares', 'price_per_share', 'post_transaction_shares', 'ownership_form', 'aggregate_market_value', 'broker_name', 'approximate_sale_date', 'notional_usd'], 'properties': {'shares': {'type': ['number', 'null']}, 'lineage': {'type': 'object', 'required': ['source_filing', 'source_url'], 'properties': {'source_url': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'source_filing': {'type': 'string'}}, 'additionalProperties': False}, 'form_type': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'broker_name': {'type': ['string', 'null']}, 'filing_date': {'type': 'string'}, 'insider_cik': {'type': ['string', 'null']}, 'insider_name': {'type': 'string'}, 'insider_role': {'type': 'array', 'items': {'type': 'string'}}, 'notional_usd': {'type': ['number', 'null']}, 'is_derivative': {'type': 'boolean'}, 'officer_title': {'type': ['string', 'null']}, 'ownership_form': {'type': ['string', 'null']}, 'price_per_share': {'type': ['number', 'null']}, 'transaction_code': {'type': ['string', 'null']}, 'transaction_date': {'type': 'string'}, 'transaction_type': {'type': 'string'}, 'approximate_sale_date': {'type': ['string', 'null']}, 'aggregate_market_value': {'type': ['number', 'null']}, 'post_transaction_shares': {'type': ['number', 'null']}}, 'additionalProperties': False}}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'company_name': {'type': 'string'}, 'data_age_days': {'type': ['number', 'null']}, 'staleness_warning': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'top_n': {'type': 'integer', 'default': 25, 'maximum': 200, 'minimum': 1, 'description': 'Maximum holders to return, ranked by market_value_usd. Default 25, max 200.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol of the issuer — or a CIK (SEC identifier).'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time cutoff (YYYY-MM-DD): only 13F filings ACCEPTED by SEC on or before this date are considered, applied BEFORE the latest period is resolved. A 13F/A amendment or late filing accepted after this date is excluded (zero look-ahead) — use this for survivorship-free backtests. Omit for the latest knowable book.'}, 'period_end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Quarter-end of the 13F reporting period (YYYY-MM-DD). Omit to use the latest period available. This is a REPORTING period, NOT a point-in-time cutoff — use as_of_date for that.'}, 'lineage_detail': {'enum': ['off', 'compact', 'full'], 'type': 'string', 'default': 'compact', 'description': 'Per-row provenance envelope. compact / full / off.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'cik', 'company_name', 'period_end', 'as_of_date', 'data_age_days', 'staleness_warning', 'total_institutional_shares', 'total_market_value_usd', 'hhi_concentration', 'holders_count', 'options_positions_count', 'aggregate', 'rows'], 'properties': {'cik': {'type': 'string'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['period_end', 'filer_cik', 'filer_name', 'shares', 'market_value_usd', 'put_call', 'investment_discretion', 'sole_voting', 'shared_voting', 'no_voting', 'accepted_at'], 'properties': {'shares': {'type': 'number'}, 'lineage': {'type': 'object', 'required': ['source_filing', 'source_url'], 'properties': {'source_url': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'source_filing': {'type': 'string'}}, 'additionalProperties': False}, 'put_call': {'type': ['string', 'null']}, 'filer_cik': {'type': 'string'}, 'no_voting': {'type': ['number', 'null']}, 'filer_name': {'type': 'string'}, 'period_end': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'sole_voting': {'type': ['number', 'null']}, 'shared_voting': {'type': ['number', 'null']}, 'market_value_usd': {'type': 'number'}, 'investment_discretion': {'type': ['string', 'null']}}, 'additionalProperties': False}}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'aggregate': {'type': 'object', 'required': ['basis', 'is_partial', 'has_incomplete_rows', 'covers_holders', 'note'], 'properties': {'note': {'type': 'string'}, 'basis': {'type': 'string', 'description': "How the aggregates were scoped, e.g. 'top_25_holders'"}, 'is_partial': {'type': 'boolean', 'description': "True when the top-N cap was hit, so the totals understate the issuer's true book"}, 'covers_holders': {'type': 'integer', 'minimum': 0}, 'has_incomplete_rows': {'type': 'boolean', 'description': 'True when ≥1 included holder reported a null shares/market_value — the totals sum only known values and UNDERSTATE the true figure (missing ≠ zero).'}}, 'additionalProperties': False}, 'as_of_date': {'type': ['string', 'null'], 'description': 'The point-in-time cutoff actually applied (echo of the as_of_date input). Null when no PIT cut was requested — never confuse this with the reporting period_end.'}, 'period_end': {'type': ['string', 'null'], 'description': 'The 13F REPORTING period the rows belong to — NOT a point-in-time cutoff.'}, 'company_name': {'type': 'string'}, 'data_age_days': {'type': ['number', 'null']}, 'holders_count': {'type': 'integer', 'minimum': 0}, 'hhi_concentration': {'type': ['number', 'null']}, 'staleness_warning': {'type': ['string', 'null']}, 'total_market_value_usd': {'type': 'number'}, 'options_positions_count': {'type': 'integer', 'minimum': 0, 'description': 'Option positions (put_call set) excluded from totals/HHI/rows. rows[] are common-stock 13F holdings only.'}, 'total_institutional_shares': {'type': 'number'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'top_n': {'type': 'integer', 'default': 25, 'maximum': 200, 'minimum': 1, 'description': 'Maximum positions to return, ranked by market_value_usd. Default 25.'}, 'filer_cik': {'type': 'string', 'pattern': '^\\d{1,10}$', 'description': 'CIK of the 13F filer (1-10 digits; will be zero-padded to 10). Preferred over filer_name when known.'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time cutoff (YYYY-MM-DD): only 13F filings ACCEPTED by SEC on or before this date are considered, applied BEFORE the latest + prior periods (and the QoQ basis) are resolved. A 13F/A amendment or late filing accepted after this date is excluded (zero look-ahead). Omit for the latest knowable portfolio.'}, 'filer_name': {'type': 'string', 'maxLength': 120, 'minLength': 2, 'description': 'Filer name to fuzzy-match against entity.name. Case-insensitive substring match. Multiple matches raise INVALID_ARGUMENT — use filer_cik in that case.'}, 'period_end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Quarter-end (YYYY-MM-DD). Omit to use latest available. This is a REPORTING period, NOT a point-in-time cutoff — use as_of_date for that.'}, 'lineage_detail': {'enum': ['off', 'compact', 'full'], 'type': 'string', 'default': 'compact', 'description': 'Per-row provenance envelope.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'filer_cik', 'filer_name', 'period_end', 'prior_period_end', 'as_of_date', 'data_age_days', 'staleness_warning', 'total_market_value_usd', 'positions_count', 'aggregate', 'rows'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['period_end', 'subject_entity_id', 'ticker', 'name_of_issuer', 'share_class_figi', 'title_of_class', 'shares', 'market_value_usd', 'put_call', 'shares_change_qoq', 'market_value_change_qoq_usd', 'position_type_qoq'], 'properties': {'shares': {'type': 'number'}, 'ticker': {'type': ['string', 'null']}, 'lineage': {'type': 'object', 'required': ['source_filing', 'source_url'], 'properties': {'source_url': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'source_filing': {'type': 'string'}}, 'additionalProperties': False}, 'put_call': {'type': ['string', 'null']}, 'period_end': {'type': 'string'}, 'name_of_issuer': {'type': 'string'}, 'title_of_class': {'type': ['string', 'null']}, 'market_value_usd': {'type': 'number'}, 'share_class_figi': {'type': ['string', 'null']}, 'position_type_qoq': {'anyOf': [{'enum': ['new', 'increased', 'decreased', 'exited', 'unchanged'], 'type': 'string'}, {'type': 'null'}]}, 'shares_change_qoq': {'type': ['number', 'null']}, 'subject_entity_id': {'type': ['string', 'null']}, 'market_value_change_qoq_usd': {'type': ['number', 'null']}}, 'additionalProperties': False}}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'aggregate': {'type': 'object', 'required': ['basis', 'is_partial', 'has_incomplete_rows', 'covers_positions', 'note'], 'properties': {'note': {'type': 'string'}, 'basis': {'type': 'string'}, 'is_partial': {'type': 'boolean'}, 'covers_positions': {'type': 'integer', 'minimum': 0}, 'has_incomplete_rows': {'type': 'boolean', 'description': 'True when ≥1 included position reported a null shares/market_value — the total sums only known values and UNDERSTATES the true book (missing ≠ zero).'}}, 'additionalProperties': False}, 'filer_cik': {'type': 'string'}, 'as_of_date': {'type': ['string', 'null'], 'description': 'The point-in-time cutoff actually applied (echo of the as_of_date input). Null when no PIT cut was requested — never confuse this with the reporting period_end.'}, 'filer_name': {'type': 'string'}, 'period_end': {'type': ['string', 'null'], 'description': 'The 13F REPORTING period the positions belong to — NOT a point-in-time cutoff.'}, 'data_age_days': {'type': ['number', 'null']}, 'positions_count': {'type': 'integer', 'minimum': 0}, 'prior_period_end': {'type': ['string', 'null']}, 'staleness_warning': {'type': ['string', 'null']}, 'total_market_value_usd': {'type': 'number'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'day': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Specific day to fetch (YYYY-MM-DD). Omit to get the most recent brief available for this customer.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'found', 'day'], 'properties': {'day': {'type': ['string', 'null']}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'found': {'type': 'boolean'}, 'model': {'type': ['string', 'null']}, 'status': {'type': 'string'}, 'provider': {'type': ['string', 'null']}, 'created_at': {'type': 'number'}, 'body_markdown': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1, 'description': 'Maximum number of peers to return alongside the subject company (1–10). Defaults to 5.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Subject company ticker or CIK, e.g. AAPL or '0000320193'. Peers are auto-selected by SIC code."}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Historical date (canonical cross-tool date param). Peers are the companies listed on this date, including ones delisted since, ranked by S&P 500 membership on this date. Figures are point-in-time by SEC acceptance time when the ratio data carries it (_meta.pit_safe=true), else limited to periods ending on or before this date (_meta.pit_safe=false).'}, 'categories': {'type': 'array', 'items': {'enum': ['profitability', 'liquidity', 'leverage', 'efficiency', 'per_share', 'owner_earnings', 'valuation'], 'type': 'string'}, 'default': ['profitability', 'valuation', 'leverage'], 'maxItems': 7, 'description': 'Ratio categories to include in the comparison. Defaults to profitability, valuation, and leverage.'}, 'period_end_before': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Alias of as_of_date (as_of_date preferred — the canonical name). Only include ratios with period_end on or before this date.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'subject', 'categories', 'peers_returned', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'description': 'One row per company (subject + peers): ticker, cik, name, sector, industry, is_subject, ratios'}, 'note': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'lineage': {'type': 'object', 'required': ['source_table', 'derivation', 'pit_safe', 'note', 'verify_with'], 'properties': {'note': {'type': 'string'}, 'pit_safe': {'type': 'boolean', 'const': False}, 'derivation': {'type': 'string', 'const': 'pipeline_computed'}, 'computed_at': {'type': 'string'}, 'verify_with': {'type': 'array', 'items': {'type': 'string'}}, 'source_table': {'type': 'string'}}, 'description': 'Provenance for pipeline-derived values (ratio.parquet / factor_scores.parquet): source table + pipeline computed_at, plus a pointer to the tools that return filing-level lineage. NOT point-in-time (recomputed on each pipeline run).', 'additionalProperties': False}, 'subject': {'type': 'string', 'description': 'Subject ticker the peer set is built around'}, 'as_of_date': {'type': ['string', 'null']}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ratio categories included in each peer panel'}, 'peers_returned': {'type': 'integer'}, 'subject_ratios': {'type': 'object', 'properties': {}, 'description': "The subject company's ratio panel", 'additionalProperties': True}, 'period_end_before': {'type': ['string', 'null']}, 'peers_omitted_no_data': {'type': 'integer', 'description': 'Candidate peers left out because they had no ratio figures for the period; each was replaced by the next-closest candidate'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'index': {'enum': ['sp500', 'russell1000', 'russell2000', 'russell3000'], 'type': 'string', 'description': "Index filter. 'sp500' (~500 large caps, curated history back to 1996), 'russell1000' (~1000 large/mid), 'russell2000' (~2000 small caps), 'russell3000' (~3000 broad market) — the three Russell indices carry fund-derived history back to 2000-09-30 at medium confidence, with observation spacing that widens before 2007. Omit for no index filter (sector-only or full universe queries)."}, 'limit': {'type': 'integer', 'default': 100, 'maximum': 3500, 'minimum': 1, 'description': 'Maximum companies to return (1–3500). Defaults to 100 — which is SMALLER THAN EVERY INDEX, so the default call returns a slice, reports `limit_truncated: true` and withholds `survivorship_free`. `universe_size` always states the full matched count whatever you set here. Raising it is NOT sufficient on its own: at most 250 rows are inlined per call, so a large limit still returns a page (`complete: false`) until you walk it with `offset`. Universe is deduped to one row per CIK, so for a usable backtest universe set this near the index size (SP500 ~505, Russell 3000 ~3050) and page with `offset`.'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Zero-based row offset for paging a large universe. At most 250 rows are inlined per call; when more match, the response carries a `truncation` envelope — pass its `next_offset` here (keeping the same `limit`) to fetch the next page. Defaults to 0.'}, 'sector': {'type': 'string', 'maxLength': 100, 'description': "Sector filter (case-insensitive substring) over the SIC-derived, GICS-aligned label (not licensed GICS — see tool description). E.g. 'Technology', 'Energy'."}, 'is_active': {'type': 'boolean', 'description': 'Filter to active (currently trading) companies only. Omit to include all. WARNING: setting this to true on a HISTORICAL query reintroduces survivorship bias — companies that were active on as_of_date but later went bankrupt or got acquired will be filtered out. Leave unset for true PIT backtests.'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Historical date (YYYY-MM-DD) for survivorship-free construction. Index queries use index_membership join/leave dates (entrants after the date excluded, later-removed members kept); sector queries use security valid_from/valid_to. Omit for the current universe.'}, 'as_of_basis': {'enum': ['effective', 'announcement'], 'type': 'string', 'default': 'effective', 'description': "Which date column drives historical construction. 'effective' (default) = effective_date/removal_date (first trading day; passive replication). 'announcement' = announcement_date/removal_announcement_date (S&P's public-announcement day; for inclusion-arb backtests) — rows with NULL announcement_date (mostly pre-2015) are skipped."}, 'include_share_classes': {'type': 'boolean', 'default': False, 'description': 'false (default) collapses to one row per CIK (index-provider convention — BRK counts once, not BRK-A + BRK-B). true returns every share-class row (GOOG and GOOGL separately) — for security-level analysis only.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'as_of_date', 'as_of_basis', 'index', 'sector', 'universe_size', 'returned_rows', 'complete', 'limit_truncated', 'survivorship_free', 'coverage_gap', 'coverage', 'confidence_summary', 'note', 'companies'], 'properties': {'note': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'index': {'type': ['string', 'null']}, 'sector': {'type': ['string', 'null']}, 'complete': {'type': 'boolean'}, 'coverage': {'anyOf': [{'type': 'object', 'required': ['expected_size', 'returned', 'completeness_pct', 'assessed', 'undercount'], 'properties': {'assessed': {'type': 'boolean'}, 'returned': {'type': 'integer'}, 'undercount': {'type': 'boolean'}, 'expected_size': {'type': 'integer'}, 'completeness_pct': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'companies': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}}, 'as_of_date': {'type': 'string'}, 'truncation': {'type': 'object', 'required': ['truncated', 'returned', 'total_available', 'next_offset', 'hint'], 'properties': {'hint': {'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'truncated': {'type': 'boolean', 'const': True}, 'next_offset': {'type': 'integer', 'minimum': 0}, 'total_available': {'type': 'integer', 'minimum': 0}}, 'description': 'Present only when the inline-row cap withheld rows. Page with `next_offset` (keep the same `limit`) or pull the full set via get_compute_ready_stream.', 'additionalProperties': False}, 'as_of_basis': {'type': ['string', 'null']}, 'coverage_gap': {'type': 'boolean'}, 'returned_rows': {'type': 'integer', 'minimum': 0}, 'universe_size': {'type': 'integer', 'minimum': 0}, 'limit_truncated': {'type': 'boolean'}, 'survivorship_free': {'type': 'boolean'}, 'confidence_summary': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'number'}}, {'type': 'null'}]}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'as_of_date'], 'properties': {'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "The historical date for the valuation snapshot (YYYY-MM-DD). The EOD close on the nearest prior trading day will be used. All financials are PIT-filtered to filings accepted on or before this date. Use a date in the recent past (within the last year) to get current-ish multiples; use any historical date back to 1993 (subject to your plan's history window) to get the multiples as they would have been observable on that date."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'cik', 'company_name', 'as_of_date', 'price_date', 'close', 'currency', 'is_exact_date_match', 'ttm_period_end', 'financials_accepted_at', 'ttm_revenue', 'ttm_gross_profit', 'ttm_operating_income', 'ttm_ebitda', 'ttm_net_income', 'ttm_ocf', 'ttm_capex', 'ttm_fcf', 'shares_diluted', 'cash', 'total_debt', 'net_debt', 'book_equity', 'market_cap', 'enterprise_value', 'pe_ratio', 'ps_ratio', 'pb_ratio', 'ev_ebitda', 'ev_revenue', 'fcf_yield_pct', 'gross_margin_pct', 'operating_margin_pct', 'net_margin_pct', 'note'], 'properties': {'cik': {'type': 'string'}, 'cash': {'type': ['number', 'null']}, 'note': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'pit_safe'], 'properties': {'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'close': {'type': 'number'}, 'ticker': {'type': 'string'}, 'ttm_fcf': {'type': ['number', 'null']}, 'ttm_ocf': {'type': ['number', 'null']}, 'currency': {'type': 'string', 'const': 'USD'}, 'net_debt': {'type': ['number', 'null']}, 'pb_ratio': {'type': ['number', 'null']}, 'pe_ratio': {'type': ['number', 'null']}, 'ps_ratio': {'type': ['number', 'null']}, 'ev_ebitda': {'type': ['number', 'null']}, 'ttm_capex': {'type': ['number', 'null']}, 'as_of_date': {'type': 'string'}, 'ev_revenue': {'type': ['number', 'null']}, 'market_cap': {'type': ['number', 'null']}, 'price_date': {'type': 'string'}, 'total_debt': {'type': ['number', 'null']}, 'ttm_ebitda': {'type': ['number', 'null']}, 'book_equity': {'type': ['number', 'null']}, 'ttm_revenue': {'type': ['number', 'null']}, 'company_name': {'type': 'string'}, 'fcf_yield_pct': {'type': ['number', 'null']}, 'net_margin_pct': {'type': ['number', 'null']}, 'shares_diluted': {'type': ['number', 'null']}, 'ttm_net_income': {'type': ['number', 'null']}, 'ttm_period_end': {'type': ['string', 'null']}, 'enterprise_value': {'type': ['number', 'null']}, 'gross_margin_pct': {'type': ['number', 'null']}, 'ttm_gross_profit': {'type': ['number', 'null']}, 'is_exact_date_match': {'type': 'boolean'}, 'operating_margin_pct': {'type': ['number', 'null']}, 'ttm_operating_income': {'type': ['number', 'null']}, 'financials_accepted_at': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 252, 'maximum': 360, 'minimum': 1, 'description': 'Maximum number of bars to return. Daily plans (Pro, Institutional): 1–252, default 252 ≈ 1 trading year. Free plans (sample, benchmark), which return month-end bars: 1–360, covering up to the full ~30-year monthly archive. When the range contains more bars than `limit`, the most recent `limit` bars within the range are returned.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."}, 'end_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Inclusive end of the date range (YYYY-MM-DD). Defaults to today (the latest available close). Weekends and holidays resolve to the last trading close on or before this date.'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Inclusive start of the date range (YYYY-MM-DD). Bars on or after this date are returned (up to `limit`). Omit to receive the `limit` most-recent bars before end_date.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'plan', 'cik', 'company_name', 'start_date', 'end_date', 'bar_count', 'granularity', 'bars', 'note'], 'properties': {'cik': {'type': 'string'}, 'bars': {'type': 'array', 'items': {'type': 'object', 'required': ['price_date', 'open', 'high', 'low', 'close', 'adjusted_close', 'total_return_index', 'volume', 'div_cash', 'split_factor'], 'properties': {'low': {'type': ['number', 'null']}, 'high': {'type': ['number', 'null']}, 'open': {'type': ['number', 'null']}, 'close': {'type': 'number'}, 'volume': {'type': ['number', 'null']}, 'div_cash': {'type': ['number', 'null']}, 'price_date': {'type': 'string'}, 'split_factor': {'type': ['number', 'null']}, 'adjusted_close': {'type': ['number', 'null']}, 'total_return_index': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'note': {'type': 'string'}, 'plan': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'pit_safe'], 'properties': {'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'end_date': {'type': ['string', 'null']}, 'bar_count': {'type': 'integer', 'minimum': 0}, 'start_date': {'type': ['string', 'null']}, 'granularity': {'enum': ['daily', 'monthly'], 'type': 'string'}, 'company_name': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id'], 'properties': {'format': {'enum': ['markdown', 'json', 'preview'], 'type': 'string', 'default': 'markdown', 'description': 'Response shape. Defaults to markdown.'}, 'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Id from `create_report` or `list_my_reports`.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'report', 'format', 'markdown', 'sections', 'citations', 'structured'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'format': {'enum': ['markdown', 'json', 'preview'], 'type': 'string'}, 'report': {'type': 'object', 'additionalProperties': {}}, 'markdown': {'type': ['string', 'null']}, 'sections': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, {'type': 'null'}]}, 'citations': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, {'type': 'null'}]}, 'structured': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id', 'version'], 'properties': {'version': {'type': 'integer', 'description': 'Version number to fetch (from list_report_versions).', 'exclusiveMinimum': 0}, 'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Identifier of the report whose archived version to fetch, as returned by create_report or list_my_reports.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'version', 'payload'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'payload': {'type': 'object', 'required': ['sections', 'citations', 'structured', 'markdown'], 'properties': {'markdown': {'type': 'string'}, 'sections': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'citations': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'structured': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}, 'version': {'type': 'object', 'required': ['report_id', 'version', 'author_id', 'title', 'abstract', 'r2_key_spec', 'r2_key_markdown', 'created_at', 'summary'], 'properties': {'title': {'type': 'string'}, 'summary': {'type': ['string', 'null']}, 'version': {'type': 'integer', 'exclusiveMinimum': 0}, 'abstract': {'type': ['string', 'null']}, 'author_id': {'type': 'string'}, 'report_id': {'type': 'string'}, 'created_at': {'type': 'number'}, 'r2_key_spec': {'type': 'string'}, 'r2_key_markdown': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'format': {'enum': ['json', 'pdf'], 'type': 'string', 'default': 'json', 'description': 'json (default) = the assembled file inline. pdf = a presigned download URL for the branded compliance PDF — the human-facing artifact; rendered fresh on every call, never cached.'}, 'run_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Run identifier, as returned by list_agent_runs. Pass this OR report_id, not both.'}, 'report_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Report identifier — from create_report, list_my_reports or search_reports. Resolves the run behind that report and adds the human_review + sources sections. Pass this OR run_id, not both.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'found'], 'properties': {'url': {'type': 'string'}, 'file': {'type': 'object', 'required': ['run_id', 'generated_at', 'prompt', 'steps', 'fact_ids', 'approvals', 'models', 'completeness'], 'properties': {'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['n', 'at', 'action', 'risk', 'status', 'fact_ids', 'approver', 'model'], 'properties': {'n': {'type': 'number'}, 'at': {'type': 'number'}, 'risk': {'type': 'string'}, 'model': {'type': ['string', 'null']}, 'action': {'type': 'string'}, 'status': {'type': 'string'}, 'approver': {'type': ['string', 'null']}, 'fact_ids': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'models': {'type': 'array', 'items': {'type': 'string'}}, 'prompt': {'type': ['string', 'null']}, 'run_id': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['fact_id', 'claim', 'ticker', 'form', 'period', 'filed_at', 'url'], 'properties': {'url': {'type': ['string', 'null']}, 'form': {'type': ['string', 'null']}, 'claim': {'type': ['string', 'null']}, 'period': {'type': ['string', 'null']}, 'ticker': {'type': ['string', 'null']}, 'fact_id': {'type': 'string'}, 'filed_at': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'fact_ids': {'type': 'array', 'items': {'type': 'string'}}, 'approvals': {'type': 'array', 'items': {'type': 'object', 'required': ['action', 'approver', 'at', 'risk'], 'properties': {'at': {'type': 'number'}, 'risk': {'type': 'string'}, 'action': {'type': 'string'}, 'approver': {'type': 'string'}}, 'additionalProperties': False}}, 'report_id': {'type': ['string', 'null']}, 'completeness': {'type': 'object', 'required': ['complete', 'gaps'], 'properties': {'gaps': {'type': 'array', 'items': {'type': 'string'}}, 'complete': {'type': 'boolean'}}, 'additionalProperties': False}, 'generated_at': {'type': 'number'}, 'human_review': {'type': 'array', 'items': {'type': 'object', 'required': ['figure', 'state', 'note', 'corrected_value', 'reviewed_by', 'reviewed_at', 'fact_id'], 'properties': {'note': {'type': ['string', 'null']}, 'state': {'type': 'string'}, 'figure': {'type': ['string', 'null']}, 'fact_id': {'type': ['string', 'null']}, 'reviewed_at': {'type': 'string'}, 'reviewed_by': {'type': 'string'}, 'corrected_value': {'type': ['string', 'null']}, 'reviewed_by_name': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'report_title': {'type': ['string', 'null']}}, 'additionalProperties': False}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'found': {'type': 'boolean'}, 'run_id': {'type': 'string'}, 'filename': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'size_bytes': {'type': 'integer'}, 'content_type': {'type': 'string'}, 'expires_in_seconds': {'type': 'integer'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of filings to return (1–50). Defaults to 10.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."}, 'end_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "Inclusive upper bound on filing_date (YYYY-MM-DD). E.g. '2023-12-31'."}, 'form_types': {'type': 'array', 'items': {'enum': ['10-K', '10-Q', '8-K', '20-F', '40-F', '10-K/A', '10-Q/A', '20-F/A', '40-F/A'], 'type': 'string'}, 'default': ['10-K', '10-Q'], 'maxItems': 9, 'description': 'Filing form types to include. Defaults to 10-K and 10-Q.'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "Inclusive lower bound on filing_date (YYYY-MM-DD). E.g. '2023-01-01'."}, 'event_types': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20}, 'maxItems': 30, 'description': "8-K item codes to filter by. E.g. ['1.01'] for material agreements, ['2.01'] for asset acquisitions, ['5.02'] for director/officer changes. Only relevant when form_types includes '8-K'."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'filings_returned', 'filings'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'filings': {'type': 'array', 'items': {'type': 'object', 'required': ['accession_id', 'form_type', 'filing_date', 'report_date', 'accepted_at', 'fiscal_year', 'fiscal_period', 'is_amendment', 'sec_url', 'viewer_url', 'inline_viewer_url', 'document_url'], 'properties': {'sec_url': {'type': 'string'}, 'form_type': {'type': 'string'}, 'viewer_url': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'filing_date': {'type': 'string'}, 'fiscal_year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'report_date': {'type': ['string', 'null']}, 'accession_id': {'type': 'string'}, 'document_url': {'type': ['string', 'null']}, 'is_amendment': {'type': 'boolean'}, 'fiscal_period': {'type': ['string', 'null']}, 'inline_viewer_url': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'filings_returned': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': 'Issuer ticker symbol — or a CIK (SEC identifier).'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time cutoff (YYYY-MM-DD) applied to all three legs (institutional, insider, blockholder) via SEC accepted_at — filings accepted after this date are excluded so the composite is computed with zero look-ahead. Omit for the latest knowable signal.'}, 'lookback_days': {'type': 'integer', 'default': 90, 'maximum': 3650, 'minimum': 30, 'description': 'Lookback window for insider + blockholder components. Default 90.'}, 'weight_insider': {'type': 'number', 'default': 0.2, 'maximum': 1, 'minimum': 0, 'description': 'Weight applied to the insider component (0–1).'}, 'weight_blockholder': {'type': 'number', 'default': 0.4, 'maximum': 1, 'minimum': 0, 'description': 'Weight applied to the blockholder component (0–1).'}, 'weight_institutional': {'type': 'number', 'default': 0.4, 'maximum': 1, 'minimum': 0, 'description': 'Weight applied to the institutional component (0–1).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'cik', 'company_name', 'period_end', 'as_of_date', 'composite_score', 'insider_component', 'institutional_component', 'blockholder_component', 'weights', 'components', 'coverage'], 'properties': {'cik': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'weights': {'type': 'object', 'required': ['institutional', 'blockholder', 'insider'], 'properties': {'insider': {'type': 'number'}, 'blockholder': {'type': 'number'}, 'institutional': {'type': 'number'}}, 'additionalProperties': False}, 'coverage': {'type': 'object', 'required': ['institutional_holders_covered', 'institutional_topn_cap', 'institutional_is_partial', 'institutional_component_basis', 'coverage_confidence', 'component_basis_filers_matched', 'data_age_days', 'staleness_warning', 'note'], 'properties': {'note': {'type': 'string'}, 'data_age_days': {'type': ['number', 'null']}, 'staleness_warning': {'type': ['string', 'null']}, 'coverage_confidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Fraction of the top-5 basis with an OBSERVABLE prior-quarter book (matched filers / 5). 0 → institutional_component is forced to 0 (no honest QoQ basis), so a 13F ingestion gap can never masquerade as a saturated buy signal.'}, 'institutional_topn_cap': {'type': 'integer'}, 'institutional_is_partial': {'type': 'boolean', 'description': 'True when the top-N cap was hit — the 13F book is only partially covered.'}, 'institutional_component_basis': {'type': 'string'}, 'institutional_holders_covered': {'type': 'integer', 'minimum': 0}, 'component_basis_filers_matched': {'type': 'integer', 'minimum': 0, 'description': 'Count of top-5 filers that had an observable prior-quarter book.'}}, 'description': "Honesty block: the institutional signal is computed from a top-N 13F slice with a top-5-filer matched basis. Surfaces holder coverage + staleness so the composite is never read as the issuer's complete book.", 'additionalProperties': False}, 'as_of_date': {'type': ['string', 'null'], 'description': 'The point-in-time cutoff actually applied (echo of the as_of_date input). Null when no PIT cut was requested — never the reporting period_end fabricated as a cutoff.'}, 'components': {'type': 'object', 'required': ['insider', 'institutional', 'blockholder'], 'properties': {'insider': {'type': 'object', 'required': ['buy_usd', 'sell_usd', 'net_weighted_usd'], 'properties': {'buy_usd': {'type': 'number'}, 'sell_usd': {'type': 'number'}, 'net_weighted_usd': {'type': 'number'}}, 'additionalProperties': False}, 'blockholder': {'type': 'object', 'required': ['net_percent_change', 'going_active_count'], 'properties': {'going_active_count': {'type': 'integer', 'minimum': 0}, 'net_percent_change': {'type': 'number'}}, 'additionalProperties': False}, 'institutional': {'type': 'object', 'required': ['covered_book_shares', 'component_basis_current_shares', 'component_basis_prior_shares', 'net_change_shares'], 'properties': {'net_change_shares': {'type': 'number', 'description': 'Top-5 matched-basis QoQ share change.'}, 'covered_book_shares': {'type': 'number', 'description': 'Sum of shares across all covered (top-N) 13F holders — informative.'}, 'component_basis_prior_shares': {'type': 'number', 'description': 'Prior-quarter shares of the SAME top-5 filers (matched basis).'}, 'component_basis_current_shares': {'type': 'number', 'description': 'Current shares of the top-5 filers — the basis used for the component.'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'period_end': {'type': ['string', 'null'], 'description': 'The institutional 13F REPORTING period — NOT a point-in-time cutoff.'}, 'company_name': {'type': 'string'}, 'composite_score': {'type': 'number'}, 'insider_component': {'type': 'number'}, 'blockholder_component': {'type': 'number'}, 'institutional_component': {'type': 'number'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'args': {'type': 'object', 'description': "Playbook arguments as string values, e.g. { ticker: 'AAPL', depth: 'full' }. Omit to read the generic template with {{ARG}} placeholders.", 'additionalProperties': {'type': 'string'}}, 'name': {'type': 'string', 'minLength': 1, 'description': "SOP slug from list_sops, e.g. 'equity_research_brief'."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'content_type', 'name', 'title', 'description', 'args', 'instantiated', 'placeholder_args', 'body'], 'properties': {'args': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'required', 'description'], 'properties': {'name': {'type': 'string'}, 'required': {'type': 'boolean'}, 'description': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'body': {'type': 'string', 'description': 'The playbook text to follow.'}, 'name': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'title': {'type': 'string'}, 'description': {'type': 'string'}, 'content_type': {'type': 'string', 'const': 'first_party_playbook'}, 'instantiated': {'type': 'boolean', 'description': 'True when every required argument was supplied; false = template mode.'}, 'placeholder_args': {'type': 'object', 'description': 'Values substituted for omitted required arguments. These are PLACEHOLDERS, not recommendations — replace each one before acting on the playbook.', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'As-of calendar date (YYYY-MM-DD). Returns the close of the most recent trading day on or before this date — a weekend/holiday resolves to the prior trading close. Omit to get the latest available close.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'plan', 'cik', 'company_name', 'requested_date', 'price_date', 'close', 'currency', 'is_exact_date_match', 'resolved_backward', 'div_cash', 'split_factor', 'granularity', 'note'], 'properties': {'cik': {'type': 'string'}, 'note': {'type': 'string'}, 'plan': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'pit_safe'], 'properties': {'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'close': {'type': 'number'}, 'ticker': {'type': 'string'}, 'currency': {'type': 'string'}, 'div_cash': {'type': ['number', 'null']}, 'price_date': {'type': 'string'}, 'granularity': {'enum': ['daily', 'monthly'], 'type': 'string'}, 'company_name': {'type': 'string'}, 'split_factor': {'type': ['number', 'null']}, 'requested_date': {'type': ['string', 'null']}, 'resolved_backward': {'type': 'boolean'}, 'total_return_index': {'type': ['number', 'null']}, 'is_exact_date_match': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['thesis_id'], 'properties': {'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id returned by `save_thesis` or `list_theses`.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'thesis'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'thesis': {'type': 'object', 'required': ['id', 'ticker', 'view', 'conviction', 'horizon_days', 'thesis_at_price_cents', 'notes', 'source_report_id', 'status', 'outcome_grade', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'view': {'enum': ['bull', 'bear', 'neutral'], 'type': 'string'}, 'notes': {'type': ['string', 'null']}, 'status': {'enum': ['active', 'closed', 'archived'], 'type': 'string'}, 'ticker': {'type': 'string'}, 'conviction': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string', 'description': "Phase 3 visibility: 'private' (owner-only), 'unlisted' (known URL), 'public' (surfaces on the author's /[handle] profile + reputation)."}, 'horizon_days': {'type': 'integer', 'exclusiveMinimum': 0}, 'outcome_grade': {'anyOf': [{'enum': ['correct', 'wrong', 'neutral', 'pending'], 'type': 'string'}, {'type': 'null'}]}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C fundamentals × price breakdown (fundamentals_score, price_score, price_return_pct, legs_used, basis, …). Null when not yet scored or scored without a breakdown; absent entirely on records graded before Phase C shipped — both mean 'no components recorded'."}, 'thesis_at_price_cents': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'top_n': {'type': 'integer', 'default': 25, 'maximum': 200, 'minimum': 1, 'description': 'Maximum holders to return, ranked by shares. Default 25.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': 'Issuer ticker symbol — or a CIK (SEC identifier).'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time cutoff (YYYY-MM-DD): only filings ACCEPTED by SEC on or before this date are considered across all three sources (institutional via accepted_at, insider via accepted_at, blockholders via accepted_at). Excludes amendments/late filings accepted after this date (zero look-ahead). Omit for the latest knowable cap table.'}, 'period_end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': '13F REPORTING period_end. Omit for latest. NOT a point-in-time cutoff — use as_of_date.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'cik', 'company_name', 'period_end', 'as_of_date', 'sources_breakdown', 'staleness', 'rows'], 'properties': {'cik': {'type': 'string'}, 'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['holder_class', 'holder_name', 'holder_cik', 'shares', 'market_value_usd', 'percent_owned', 'percent_basis', 'observation_date', 'source', 'going_active', 'co_filers'], 'properties': {'shares': {'type': ['number', 'null'], 'description': 'Null when the source filing did not report a share count — MISSING, not a real 0 (never emit 0 for an absent holding).'}, 'source': {'type': 'string'}, 'co_filers': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['name', 'cik'], 'properties': {'cik': {'type': ['string', 'null']}, 'name': {'type': 'string'}}, 'additionalProperties': False}}, {'type': 'null'}], 'description': 'Other members of the same group filing collapsed into this row (13D/G co-filers).'}, 'holder_cik': {'type': ['string', 'null']}, 'holder_name': {'type': 'string'}, 'going_active': {'type': 'boolean'}, 'holder_class': {'enum': ['insider', 'institutional', 'blockholder_13D', 'blockholder_13G'], 'type': 'string'}, 'percent_basis': {'anyOf': [{'enum': ['of_13f_institutional_float', 'of_shares_outstanding'], 'type': 'string'}, {'type': 'null'}], 'description': 'Denominator for percent_owned. 13F = share of covered 13F float; 13D/G = percent of shares outstanding. Not comparable across bases.'}, 'percent_owned': {'type': ['number', 'null']}, 'market_value_usd': {'type': ['number', 'null']}, 'observation_date': {'type': 'string', 'description': 'Date the holding was observed (13F period_end, 13D/G as-of/filing date, or insider transaction_date). NOT a point-in-time cutoff — see the top-level as_of_date.'}}, 'additionalProperties': False}}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string'}, 'staleness': {'type': 'object', 'required': ['institutional_data_age_days', 'institutional_staleness_warning', 'blockholder_data_age_days', 'blockholder_staleness_warning'], 'properties': {'blockholder_data_age_days': {'type': ['number', 'null']}, 'institutional_data_age_days': {'type': ['number', 'null']}, 'blockholder_staleness_warning': {'type': ['string', 'null']}, 'institutional_staleness_warning': {'type': ['string', 'null']}}, 'description': 'Each source has its own as-of date and lag (13F ~45-day lag; 13D/G snapshots can be years old). Percentages from different-dated denominators are NOT directly comparable.', 'additionalProperties': False}, 'as_of_date': {'type': ['string', 'null'], 'description': 'The point-in-time cutoff actually applied (echo of the as_of_date input). Null when no PIT cut was requested. NEVER equal to period_end unless explicitly supplied — a reporting period is not a knowable-as-of date.'}, 'period_end': {'type': ['string', 'null'], 'description': 'The institutional 13F REPORTING period — NOT a point-in-time cutoff.'}, 'company_name': {'type': 'string'}, 'sources_breakdown': {'type': 'object', 'required': ['insider_count', 'institutional_count', 'blockholder_13d_count', 'blockholder_13g_count', 'dedup_collisions'], 'properties': {'insider_count': {'type': 'integer', 'minimum': 0}, 'dedup_collisions': {'type': 'integer', 'minimum': 0}, 'institutional_count': {'type': 'integer', 'minimum': 0}, 'blockholder_13d_count': {'type': 'integer', 'minimum': 0}, 'blockholder_13g_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['upload_id'], 'properties': {'upload_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'The upload_id returned by POST /v1/uploads.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'upload'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'upload': {'type': 'object', 'required': ['upload_id', 'filename', 'mime_type', 'byte_size', 'char_count', 'truncated', 'extraction_status', 'extracted_text', 'created_at', 'expires_at'], 'properties': {'filename': {'type': 'string'}, 'byte_size': {'type': 'integer'}, 'mime_type': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'upload_id': {'type': 'string'}, 'char_count': {'type': 'integer'}, 'created_at': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'extracted_text': {'type': 'string'}, 'extraction_status': {'enum': ['ok', 'unsupported', 'failed'], 'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 40, 'minimum': 1, 'description': 'Maximum number of periods to return (1–40). Defaults to 5.'}, 'period': {'enum': ['annual', 'quarterly'], 'type': 'string', 'default': 'annual', 'description': 'Filing period granularity. Annual uses 10-K; quarterly uses 10-Q.'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time date (YYYY-MM-DD). Only returns data with accepted_at on or before this date. Eliminates look-ahead bias for backtesting.'}, 'fiscal_year': {'type': 'integer', 'maximum': 2030, 'minimum': 1993, 'description': 'Fiscal year (YYYY). Omit to return most recent periods.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'period', 'as_of_date', 'periods_returned', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['fiscal_year', 'fiscal_period', 'period_end', 'accepted_at', 'profitability', 'cash_flow', 'leverage', 'valuation_multiples', 'reference_points'], 'properties': {'leverage': {'type': 'object', 'required': ['debt_to_equity'], 'properties': {'debt_to_equity': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'cash_flow': {'type': 'object', 'required': ['free_cash_flow', 'fcf_margin'], 'properties': {'fcf_margin': {'type': ['number', 'null']}, 'free_cash_flow': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'period_end': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'fiscal_year': {'type': 'integer'}, 'null_reasons': {'type': 'object', 'additionalProperties': {'type': 'object', 'required': ['reason', 'detail'], 'properties': {'detail': {'type': 'string'}, 'reason': {'enum': ['INPUT_MISSING', 'DENOMINATOR_NEGATIVE', 'PIPELINE_NOT_AVAILABLE', 'PRICE_NOT_AVAILABLE'], 'type': 'string'}}, 'additionalProperties': False}}, 'fiscal_period': {'type': 'string'}, 'profitability': {'type': 'object', 'required': ['gross_margin', 'operating_margin', 'net_margin', 'roe', 'roa', 'roic'], 'properties': {'roa': {'type': ['number', 'null']}, 'roe': {'type': ['number', 'null']}, 'roic': {'type': ['number', 'null']}, 'net_margin': {'type': ['number', 'null']}, 'gross_margin': {'type': ['number', 'null']}, 'operating_margin': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'metrics_display': {'type': 'object', 'description': 'The figure rendered exactly as it should be quoted in prose ($402.83B, 59.65%, $6.11). QUOTE THESE VERBATIM. Do not re-render the raw number in `metrics` yourself: a figure you reformat no longer matches the string Valuein can bind to its filing, so it is reported to the reader as unverified even though the underlying fact was sound.', 'additionalProperties': {'type': ['string', 'null']}}, 'reference_points': {'type': 'object', 'required': ['graham_number', 'ncav_per_share'], 'properties': {'graham_number': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/unit'}, 'value': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/value'}}, 'description': 'sqrt(22.5 * diluted EPS * book value per share). A parameter-free screening threshold, NOT an intrinsic-value estimate — it takes no assumptions about growth or discount rate.', 'additionalProperties': False}, 'ncav_per_share': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/unit'}, 'value': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/value'}}, 'description': 'Graham net current asset value per share ((current assets − total liabilities) / diluted shares). A parameter-free liquidation-floor reference point, NOT an intrinsic-value estimate.', 'additionalProperties': False}}, 'additionalProperties': False}, 'metrics_provenance': {'type': 'object', 'additionalProperties': {'type': 'object', 'required': ['origin'], 'properties': {'inputs': {'type': 'array', 'items': {'type': 'object', 'required': ['role'], 'properties': {'role': {'type': 'string'}, 'value': {'type': ['number', 'null']}, 'fact_id': {'type': 'string'}}, 'additionalProperties': False}}, 'origin': {'enum': ['dataset', 'computed'], 'type': 'string'}, 'fact_id': {'type': 'string'}, 'formula': {'type': 'string'}, 'source_url': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'source_filing': {'type': 'string'}}, 'description': "Provenance pointer: origin 'dataset' carries the SHA-256 fact_id + source filing; origin 'computed' carries the formula + the input fact_ids (verify with verify_fact_lineage).", 'additionalProperties': False}}, 'valuation_multiples': {'type': 'object', 'required': ['current_price', 'market_cap', 'pe_ratio', 'pb_ratio', 'ev_ebitda', 'dividend_yield'], 'properties': {'pb_ratio': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/unit'}, 'value': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/value'}}, 'description': "P/B at this row's period_end — a historical multiple, not the current one.", 'additionalProperties': False}, 'pe_ratio': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/unit'}, 'value': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/value'}}, 'description': "P/E at this row's period_end — a historical multiple, not the current one.", 'additionalProperties': False}, 'ev_ebitda': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/unit'}, 'value': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/value'}}, 'description': "EV/EBITDA at this row's period_end — a historical multiple, not the current one.", 'additionalProperties': False}, 'market_cap': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/unit'}, 'value': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/value'}}, 'description': "Market cap at this row's period_end close — NOT the current market cap.", 'additionalProperties': False}, 'current_price': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'type': ['string', 'null']}, 'value': {'type': ['number', 'null']}}, 'description': "Period-end close for THIS fiscal period — NOT the current market price. Aligned to this row's period_end, so on a historical row it is a historical price. For the latest quote call get_stock_price; for current multiples call get_pit_valuation_ratios with as_of_date omitted.", 'additionalProperties': False}, 'dividend_yield': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/unit'}, 'value': {'$ref': '#/properties/data/items/properties/valuation_multiples/properties/current_price/properties/value'}}, 'description': "Dividend yield at this row's period_end — historical, not the current yield.", 'additionalProperties': False}}, 'additionalProperties': False}, 'metrics_availability': {'type': 'object', 'additionalProperties': {'enum': ['available', 'not_reported', 'not_mapped', 'suppressed', 'error'], 'type': 'string', 'description': "Explicit availability status. A real reported zero is 'available' with value 0 — never null. 'not_reported' = filing omitted it; 'not_mapped' = XBRL mapping uncertain; 'suppressed' = below confidence; 'error' = compute/retrieval failed."}}}, 'additionalProperties': False}}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'period': {'enum': ['annual', 'quarterly'], 'type': 'string'}, 'ticker': {'type': 'string'}, 'as_of_date': {'type': ['string', 'null']}, 'periods_returned': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Watchlist name to fetch (case-insensitive, 1–80 chars).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'watchlist'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'watchlist': {'type': 'object', 'required': ['id', 'name', 'tickers', 'criteria', 'status', 'ticker_count', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'status': {'enum': ['active', 'archived'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'weights': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'number'}}, {'type': 'null'}]}, 'criteria': {'type': ['string', 'null']}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'ticker_count': {'type': 'integer'}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['thesis_id', 'claim_id', 'role'], 'properties': {'role': {'enum': ['supports', 'refutes', 'context'], 'type': 'string', 'description': 'Relational role of the claim toward the thesis.'}, 'claim_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of the claim (from save_claim/list_claims).'}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of the thesis (from save_thesis/list_theses).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'link'], 'properties': {'link': {'type': 'object', 'required': ['thesis_id', 'claim_id', 'role', 'created_at'], 'properties': {'role': {'enum': ['supports', 'refutes', 'context'], 'type': 'string'}, 'claim_id': {'type': 'string'}, 'thesis_id': {'type': 'string'}, 'created_at': {'type': 'number'}}, 'additionalProperties': False}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max runs to return (1-50, default 10).'}, 'status': {'type': 'string', 'description': 'Filter to an exact status match.'}, 'agent_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Filter to runs belonging to one agent (from save_agent/list_agents).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'runs'], 'properties': {'runs': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'goal', 'cost_cents', 'created_at', 'finished_at', 'error'], 'properties': {'id': {'type': 'string'}, 'goal': {'type': 'string'}, 'error': {'type': ['string', 'null']}, 'status': {'type': 'string'}, 'cost_cents': {'type': 'number'}, 'created_at': {'type': 'number'}, 'finished_at': {'type': ['number', 'null']}}, 'additionalProperties': False}}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max agents to return (1-50, default 20).'}, 'agent_type': {'enum': ['workflow', 'autonomous'], 'type': 'string', 'description': 'Filter to one agent_type.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'agents'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'agents': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'user_id', 'name', 'goal', 'tickers', 'agent_type', 'trigger_mode', 'is_system', 'cadence', 'hour_utc', 'minute_utc', 'day_of_week', 'day_of_month', 'timezone', 'enabled', 'last_run_at', 'last_run_id', 'next_run_at', 'created_at', 'updated_at', 'team_id', 'team_key', 'recipe_id', 'managed_model'], 'properties': {'id': {'type': 'string'}, 'goal': {'type': 'string'}, 'name': {'type': 'string'}, 'cadence': {'enum': ['daily', 'weekly', 'monthly', 'triggered'], 'type': 'string'}, 'enabled': {'type': 'boolean'}, 'team_id': {'type': ['string', 'null']}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'user_id': {'type': 'string'}, 'hour_utc': {'type': 'integer'}, 'team_key': {'type': ['string', 'null']}, 'timezone': {'type': ['string', 'null']}, 'is_system': {'type': 'boolean'}, 'recipe_id': {'type': ['string', 'null']}, 'agent_type': {'enum': ['workflow', 'autonomous'], 'type': 'string'}, 'created_at': {'type': 'number'}, 'minute_utc': {'type': 'integer'}, 'updated_at': {'type': 'number'}, 'day_of_week': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'last_run_at': {'type': ['number', 'null']}, 'last_run_id': {'type': ['string', 'null']}, 'next_run_at': {'type': 'number'}, 'day_of_month': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'trigger_mode': {'enum': ['manual', 'schedule', 'event', 'chat'], 'type': 'string'}, 'managed_model': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of citation overrides to return (1–100). Defaults to 20.'}, 'cursor': {'type': 'integer', 'description': "Cursor from the previous response's `next_cursor` — the updated_at of the last row on that page. Omit for first page.", 'exclusiveMinimum': 0}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Optional ticker filter, case-insensitive. Uppercased internally.'}, 'fact_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional fact_id filter — returns at most one row.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'overrides', 'next_cursor', 'total_count'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'overrides': {'type': 'array', 'items': {'type': 'object', 'required': ['user_id', 'fact_id', 'corrected_value', 'ticker', 'source_report_id', 'notes', 'created_at', 'updated_at'], 'properties': {'notes': {'type': ['string', 'null']}, 'ticker': {'type': ['string', 'null']}, 'fact_id': {'type': 'string'}, 'user_id': {'type': 'string'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'corrected_value': {'type': 'string'}, 'source_report_id': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'next_cursor': {'anyOf': [{'type': 'integer', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'total_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tag': {'enum': ['financial', 'valuation', 'operational', 'competitive', 'structural', 'strategic', 'macro', 'behavioral', 'catalyst', 'risk', 'trend', 'comparison', 'causation', 'liquidity', 'governance', 'guidance'], 'type': 'string', 'description': 'Filter to claims carrying this topical tag.'}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Page size (max 100).'}, 'cursor': {'type': 'string', 'description': "Pagination cursor from a previous page's next_cursor."}, 'status': {'enum': ['open', 'confirmed', 'refuted', 'expired', 'stale', 'needs_review', 'all'], 'type': 'string', 'default': 'all', 'description': "Filter by lifecycle status, or 'all'."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Filter to claims referencing this ticker.'}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string', 'description': 'Filter by epistemic type.'}, 'include_archived': {'type': 'boolean', 'default': False, 'description': 'Include soft-deleted claims.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'claims', 'next_cursor', 'total_count'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'claims': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'statement', 'tickers', 'claim_type', 'tags', 'direction', 'confidence', 'eval_mode', 'verifiable_condition', 'antecedent', 'horizon_days', 'evidence', 'source_report_id', 'status', 'archived', 'visibility', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['open', 'confirmed', 'refuted', 'expired', 'stale', 'needs_review'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'archived': {'type': 'boolean'}, 'evidence': {'type': 'object', 'required': ['fact_ids', 'source_urls'], 'properties': {'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'fact_ids backing the claim. Verified against live SEC data at save time (rejected if unresolvable).'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 50, 'description': 'SEC EDGAR (or report) deep links for one-click human verification.'}, 'source_links': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'sec_url', 'document_url', 'inline_viewer_url'], 'properties': {'url': {'type': 'string', 'description': 'The original stored source_url (verbatim).'}, 'sec_url': {'type': 'string', 'description': 'EDGAR filing-index page — always resolves.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document, or null.'}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer on the rendered filing, or null when not iXBRL.'}}, 'additionalProperties': False}, 'description': 'On-read enrichment of source_urls with interactive SEC viewer links.'}}, 'additionalProperties': False}, 'direction': {'enum': ['bullish', 'bearish', 'neutral'], 'type': 'string'}, 'eval_mode': {'enum': ['auto', 'agent', 'manual'], 'type': 'string'}, 'statement': {'type': 'string'}, 'antecedent': {'type': ['string', 'null']}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string'}, 'confidence': {'type': 'number'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string'}, 'horizon_days': {'type': ['number', 'null']}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C resolved-metric breakdown ({evaluated, basis} from gradeClaim). Null when not yet resolved or resolved without a breakdown (manual); absent entirely on claims resolved before Phase C shipped — both mean 'no components recorded'."}, 'verifiable_condition': {'anyOf': [{'type': 'object', 'required': ['metric', 'op', 'threshold', 'unit'], 'properties': {'op': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq', 'approx'], 'type': 'string', 'description': 'Comparison operator the grader applies as: metric_value <op> threshold.'}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}], 'description': "Display unit ('%', 'x', 'usd') or null."}, 'metric': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Canonical metric key, e.g. 'gross_margin', 'revenue_yoy', 'net_debt_to_ebitda'."}, 'threshold': {'type': 'number', 'description': 'Numeric threshold the metric is compared against.'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'next_cursor': {'type': ['string', 'null']}, 'total_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['thesis_id'], 'properties': {'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of the thesis whose claims to list.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'items'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['claim', 'role'], 'properties': {'role': {'enum': ['supports', 'refutes', 'context'], 'type': 'string'}, 'claim': {'type': 'object', 'required': ['id', 'statement', 'tickers', 'claim_type', 'tags', 'direction', 'confidence', 'eval_mode', 'verifiable_condition', 'antecedent', 'horizon_days', 'evidence', 'source_report_id', 'status', 'archived', 'visibility', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['open', 'confirmed', 'refuted', 'expired', 'stale', 'needs_review'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'archived': {'type': 'boolean'}, 'evidence': {'type': 'object', 'required': ['fact_ids', 'source_urls'], 'properties': {'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'fact_ids backing the claim. Verified against live SEC data at save time (rejected if unresolvable).'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 50, 'description': 'SEC EDGAR (or report) deep links for one-click human verification.'}, 'source_links': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'sec_url', 'document_url', 'inline_viewer_url'], 'properties': {'url': {'type': 'string', 'description': 'The original stored source_url (verbatim).'}, 'sec_url': {'type': 'string', 'description': 'EDGAR filing-index page — always resolves.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document, or null.'}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer on the rendered filing, or null when not iXBRL.'}}, 'additionalProperties': False}, 'description': 'On-read enrichment of source_urls with interactive SEC viewer links.'}}, 'additionalProperties': False}, 'direction': {'enum': ['bullish', 'bearish', 'neutral'], 'type': 'string'}, 'eval_mode': {'enum': ['auto', 'agent', 'manual'], 'type': 'string'}, 'statement': {'type': 'string'}, 'antecedent': {'type': ['string', 'null']}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string'}, 'confidence': {'type': 'number'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string'}, 'horizon_days': {'type': ['number', 'null']}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C resolved-metric breakdown ({evaluated, basis} from gradeClaim). Null when not yet resolved or resolved without a breakdown (manual); absent entirely on claims resolved before Phase C shipped — both mean 'no components recorded'."}, 'verifiable_condition': {'anyOf': [{'type': 'object', 'required': ['metric', 'op', 'threshold', 'unit'], 'properties': {'op': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq', 'approx'], 'type': 'string', 'description': 'Comparison operator the grader applies as: metric_value <op> threshold.'}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}], 'description': "Display unit ('%', 'x', 'usd') or null."}, 'metric': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Canonical metric key, e.g. 'gross_margin', 'revenue_yoy', 'net_debt_to_ebitda'."}, 'threshold': {'type': 'number', 'description': 'Numeric threshold the metric is compared against.'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id'], 'properties': {'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Identifier of the report to list figure reviews for.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'report_id', 'reviews', 'summary'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'reviews': {'type': 'array', 'items': {'type': 'object', 'required': ['figure_key', 'state', 'note', 'corrected_value', 'reviewed_by', 'reviewed_at'], 'properties': {'note': {'type': ['string', 'null']}, 'state': {'enum': ['verified', 'corrected', 'external', 'rejected'], 'type': 'string'}, 'figure_key': {'type': 'string'}, 'reviewed_at': {'type': 'string'}, 'reviewed_by': {'type': 'string'}, 'corrected_value': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': ['verified', 'corrected', 'external', 'rejected', 'total'], 'properties': {'total': {'type': 'integer', 'minimum': 0}, 'external': {'type': 'integer', 'minimum': 0}, 'rejected': {'type': 'integer', 'minimum': 0}, 'verified': {'type': 'integer', 'minimum': 0}, 'corrected': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'report_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Page size.'}, 'cursor': {'type': 'string', 'maxLength': 64, 'description': 'Cursor from previous `next_cursor`.'}, 'status': {'enum': ['draft', 'ready', 'listed', 'delisted', 'all'], 'type': 'string', 'default': 'ready', 'description': "Filter by status. Default 'ready' (excludes drafts + delisted)."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Filter to a single ticker (case-insensitive).'}, 'report_type': {'enum': ['reverse_dcf'], 'type': 'string', 'description': 'Filter by report type.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'reports', 'next_cursor'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'reports': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'next_cursor': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Page size (max 100).'}, 'cursor': {'type': 'string', 'description': "Pagination cursor from a previous page's next_cursor."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'staged_actions', 'next_cursor', 'total_count'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'next_cursor': {'type': ['string', 'null']}, 'total_count': {'type': 'integer', 'minimum': 0}, 'staged_actions': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'customer_id', 'tool_name', 'tool_args', 'risk_tier', 'origin', 'status', 'result', 'reason', 'created_at', 'decided_at'], 'properties': {'id': {'type': 'string'}, 'origin': {'type': 'string'}, 'reason': {'type': ['string', 'null']}, 'result': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "The underlying tool's own structured result, set once status='executed'."}, 'status': {'enum': ['proposed', 'approved', 'rejected', 'executed', 'failed'], 'type': 'string'}, 'risk_tier': {'enum': ['green', 'amber', 'red'], 'type': 'string'}, 'tool_args': {'type': 'object', 'additionalProperties': {}}, 'tool_name': {'type': 'string'}, 'created_at': {'type': 'number'}, 'decided_at': {'type': ['number', 'null']}, 'customer_id': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['customer_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max public claims to return. Defaults to 20.'}, 'customer_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': "Target user's Stripe customer_id (resolved by the frontend from the handle)."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'claims', 'reputation'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'claims': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'statement', 'tickers', 'claim_type', 'tags', 'direction', 'confidence', 'eval_mode', 'verifiable_condition', 'antecedent', 'horizon_days', 'evidence', 'source_report_id', 'status', 'archived', 'visibility', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['open', 'confirmed', 'refuted', 'expired', 'stale', 'needs_review'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'archived': {'type': 'boolean'}, 'evidence': {'type': 'object', 'required': ['fact_ids', 'source_urls'], 'properties': {'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'fact_ids backing the claim. Verified against live SEC data at save time (rejected if unresolvable).'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 50, 'description': 'SEC EDGAR (or report) deep links for one-click human verification.'}, 'source_links': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'sec_url', 'document_url', 'inline_viewer_url'], 'properties': {'url': {'type': 'string', 'description': 'The original stored source_url (verbatim).'}, 'sec_url': {'type': 'string', 'description': 'EDGAR filing-index page — always resolves.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document, or null.'}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer on the rendered filing, or null when not iXBRL.'}}, 'additionalProperties': False}, 'description': 'On-read enrichment of source_urls with interactive SEC viewer links.'}}, 'additionalProperties': False}, 'direction': {'enum': ['bullish', 'bearish', 'neutral'], 'type': 'string'}, 'eval_mode': {'enum': ['auto', 'agent', 'manual'], 'type': 'string'}, 'statement': {'type': 'string'}, 'antecedent': {'type': ['string', 'null']}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string'}, 'confidence': {'type': 'number'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string'}, 'horizon_days': {'type': ['number', 'null']}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C resolved-metric breakdown ({evaluated, basis} from gradeClaim). Null when not yet resolved or resolved without a breakdown (manual); absent entirely on claims resolved before Phase C shipped — both mean 'no components recorded'."}, 'verifiable_condition': {'anyOf': [{'type': 'object', 'required': ['metric', 'op', 'threshold', 'unit'], 'properties': {'op': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq', 'approx'], 'type': 'string', 'description': 'Comparison operator the grader applies as: metric_value <op> threshold.'}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}], 'description': "Display unit ('%', 'x', 'usd') or null."}, 'metric': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Canonical metric key, e.g. 'gross_margin', 'revenue_yoy', 'net_debt_to_ebitda'."}, 'threshold': {'type': 'number', 'description': 'Numeric threshold the metric is compared against.'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'reputation': {'type': 'object', 'required': ['score', 'score_last_90d', 'n_total', 'n_graded', 'correct', 'wrong'], 'properties': {'score': {'type': ['number', 'null']}, 'wrong': {'type': 'integer', 'minimum': 0}, 'correct': {'type': 'integer', 'minimum': 0}, 'n_total': {'type': 'integer', 'minimum': 0}, 'n_graded': {'type': 'integer', 'minimum': 0}, 'score_last_90d': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['customer_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Max public theses to return. Defaults to 20.'}, 'customer_id': {'type': 'string', 'maxLength': 80, 'minLength': 4, 'description': "Target user's Stripe customer_id (resolved by the frontend from the handle)."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'theses', 'reputation'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'theses': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'ticker', 'view', 'conviction', 'horizon_days', 'thesis_at_price_cents', 'notes', 'source_report_id', 'status', 'outcome_grade', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'view': {'enum': ['bull', 'bear', 'neutral'], 'type': 'string'}, 'notes': {'type': ['string', 'null']}, 'status': {'enum': ['active', 'closed', 'archived'], 'type': 'string'}, 'ticker': {'type': 'string'}, 'conviction': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string', 'description': "Phase 3 visibility: 'private' (owner-only), 'unlisted' (known URL), 'public' (surfaces on the author's /[handle] profile + reputation)."}, 'horizon_days': {'type': 'integer', 'exclusiveMinimum': 0}, 'outcome_grade': {'anyOf': [{'enum': ['correct', 'wrong', 'neutral', 'pending'], 'type': 'string'}, {'type': 'null'}]}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C fundamentals × price breakdown (fundamentals_score, price_score, price_return_pct, legs_used, basis, …). Null when not yet scored or scored without a breakdown; absent entirely on records graded before Phase C shipped — both mean 'no components recorded'."}, 'thesis_at_price_cents': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'reputation': {'type': 'object', 'required': ['score', 'score_last_90d', 'n_total', 'n_graded', 'correct', 'wrong', 'neutral'], 'properties': {'score': {'type': ['number', 'null']}, 'wrong': {'type': 'integer', 'minimum': 0}, 'correct': {'type': 'integer', 'minimum': 0}, 'n_total': {'type': 'integer', 'minimum': 0}, 'neutral': {'type': 'integer', 'minimum': 0}, 'n_graded': {'type': 'integer', 'minimum': 0}, 'score_last_90d': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of archived versions to return (1–100). Defaults to 20.'}, 'cursor': {'type': 'integer', 'description': "Cursor from the previous response's `next_cursor` — the smallest version number on the previous page. Omit for the first page.", 'exclusiveMinimum': 0}, 'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Identifier of the report whose version history to list, as returned by create_report or list_my_reports.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'versions', 'next_cursor'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'versions': {'type': 'array', 'items': {'type': 'object', 'required': ['report_id', 'version', 'author_id', 'title', 'abstract', 'r2_key_spec', 'r2_key_markdown', 'created_at', 'summary'], 'properties': {'title': {'type': 'string'}, 'summary': {'type': ['string', 'null']}, 'version': {'type': 'integer', 'exclusiveMinimum': 0}, 'abstract': {'type': ['string', 'null']}, 'author_id': {'type': 'string'}, 'report_id': {'type': 'string'}, 'created_at': {'type': 'number'}, 'r2_key_spec': {'type': 'string'}, 'r2_key_markdown': {'type': 'string'}}, 'additionalProperties': False}}, 'next_cursor': {'anyOf': [{'type': 'integer', 'exclusiveMinimum': 0}, {'type': 'null'}]}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sort': {'enum': ['recent', 'significance'], 'type': 'string', 'default': 'recent', 'description': "'recent' = newest restating filing first (a market-wide radar). 'significance' = importance tier, then swing size (one company's history)."}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Page size (1-100, default 25).'}, 'cursor': {'type': 'string', 'pattern': '^\\d+$', 'maxLength': 20, 'description': "Opaque pagination cursor from a prior response's next_cursor."}, 'sector': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "Restrict to one GICS-style sector (e.g. 'Technology')."}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Restrict to one company — ticker (e.g. 'AAPL') or CIK (e.g. '0000320193')."}, 'event_id': {'type': 'string', 'pattern': '^[a-f0-9]+$', 'maxLength': 64, 'minLength': 1, 'description': 'Fetch exactly one event by its id (from a prior response).'}, 'severity': {'enum': ['high', 'medium', 'low'], 'type': 'string', 'description': 'high = |Δ|≥10%, medium = ≥2%, low = ≥0.5%.'}, 'disclosure': {'type': 'array', 'items': {'enum': ['non_reliance', 'amended', 'undisclosed'], 'type': 'string'}, 'maxItems': 3, 'minItems': 1, 'description': "Filter by HOW the company told the market. 'non_reliance' = it filed an 8-K Item 4.02 ('Non-Reliance on Previously Issued Financial Statements') — formally telling the SEC not to rely on what it already reported. The loudest signal in US disclosure, and rare. 'amended' = corrected in a 10-K/A or 10-Q/A. 'undisclosed' = the value changed inside a ROUTINE 10-Q or 10-K: no amendment, no 4.02, the old number is simply gone. ~94% of events. Anyone can parse an 8-K, so anyone can list what companies ANNOUNCED; finding what they didn't requires every vintage back to 1993."}, 'filed_since': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "Only restatements FILED on or after this date — the 'what changed recently' window."}, 'max_importance': {'type': 'integer', 'maximum': 3, 'minimum': 1, 'description': 'Only lines at or above this importance tier: 1 = headline only (revenue, net income, EPS, total assets, operating cash flow), 2 = + primary statement lines, 3 = everything incl. footnotes. Severity says how far a number moved; importance says whether anyone cares.'}, 'amendments_only': {'type': 'boolean', 'description': 'Only restatements that arrived in an AMENDED filing (10-K/A, 10-Q/A) — the company formally telling the SEC it got a number wrong. The sharpest cut there is: it separates real restatements from routine re-files (a next-year 10-K carrying a revised comparative).'}, 'min_abs_delta_pct': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Only events whose absolute restatement is at least this percent (e.g. 5 = ≥5% swings).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'events', 'total', 'next_cursor', 'note'], 'properties': {'note': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'total': {'type': 'integer'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['event_id', 'cik', 'ticker', 'company_name', 'sector', 'concept', 'standard_concept', 'concept_label', 'concept_importance', 'statement_type', 'period_start', 'period_end', 'fiscal_period', 'unit', 'first_value', 'current_value', 'delta_abs', 'delta_pct', 'version_count', 'first_filed_at', 'last_filed_at', 'first_accession', 'current_accession', 'restated_in_form', 'first_primary_doc', 'current_primary_doc', 'restated_in_amendment', 'disclosure_class', 'severity', 'company_rank'], 'properties': {'cik': {'type': 'string'}, 'unit': {'type': ['string', 'null']}, 'sector': {'type': ['string', 'null']}, 'ticker': {'type': 'string'}, 'concept': {'type': 'string'}, 'event_id': {'type': 'string'}, 'severity': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'delta_abs': {'type': 'number'}, 'delta_pct': {'type': 'number'}, 'period_end': {'type': 'string'}, 'first_value': {'type': 'number'}, 'company_name': {'type': 'string'}, 'company_rank': {'type': 'number'}, 'period_start': {'type': ['string', 'null']}, 'concept_label': {'type': 'string'}, 'current_value': {'type': 'number'}, 'fiscal_period': {'type': ['string', 'null']}, 'last_filed_at': {'type': 'string'}, 'version_count': {'type': 'number'}, 'first_filed_at': {'type': 'string'}, 'statement_type': {'type': ['string', 'null']}, 'first_accession': {'type': 'string'}, 'disclosure_class': {'enum': ['non_reliance', 'amended', 'undisclosed'], 'type': 'string'}, 'restated_in_form': {'type': ['string', 'null']}, 'standard_concept': {'type': 'string'}, 'current_accession': {'type': 'string'}, 'first_primary_doc': {'type': ['string', 'null']}, 'concept_importance': {'type': 'number'}, 'current_primary_doc': {'type': ['string', 'null']}, 'restated_in_amendment': {'type': 'boolean'}}, 'additionalProperties': False}}, 'next_cursor': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'cursor': {'type': 'integer', 'description': "Pagination cursor from a previous response's next_cursor."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'rules', 'next_cursor'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'rules': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'trigger_type', 'trigger_params', 'condition_expr', 'action_type', 'action_params', 'enabled', 'last_fired_at', 'fire_count', 'created_at', 'trigger_wiring_status'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'enabled': {'type': 'boolean'}, 'created_at': {'type': 'number'}, 'fire_count': {'type': 'integer'}, 'action_type': {'enum': ['run_team', 'send_alert', 'create_report', 'score_thesis', 'schedule_task', 'post_inbox'], 'type': 'string'}, 'trigger_type': {'enum': ['alert_fired', 'schedule_tick', 'inbox_item', 'price_threshold', 'filing_event', 'manual', 'scheduled_task_wake'], 'type': 'string'}, 'action_params': {'anyOf': [{'type': 'object', 'required': ['type', 'team_id'], 'properties': {'type': {'type': 'string', 'const': 'run_team'}, 'team_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "A standing_agent.id identifying which team to run — same identifier shape as a signal's agent_run channel target."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'channel'], 'properties': {'type': {'type': 'string', 'const': 'send_alert'}, 'channel': {'anyOf': [{'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'email'}, 'target': {'type': 'string', 'format': 'email', 'maxLength': 256}, 'hmac_secret': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'webhook'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512}, 'hmac_secret': {'type': 'string', 'maxLength': 128, 'minLength': 16, 'description': 'HMAC secret (≥16 chars) for webhook signature verification. Recommended for production.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'dashboard'}, 'target': {'type': 'string', 'default': '@self', 'maxLength': 16, 'description': "Always '@self' for dashboard channels. Routes to the in-app inbox keyed by the signal's owning customer."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'slack'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512, 'description': 'Slack incoming-webhook URL — must be on host hooks.slack.com (e.g. https://hooks.slack.com/services/T0000/B0000/XXXX). The URL itself is the secret, so no HMAC is used.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'agent_run'}, 'target': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A standing_agent.id identifying which standing agent team to run when this signal fires. NOT a URL — no outbound-URL validation applies to this field.'}}, 'additionalProperties': False}], 'description': 'Delivery channel — same discriminated union create_signal accepts (email/webhook/dashboard/slack/agent_run).'}, 'message': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Optional custom message; defaults to a summary of the trigger event.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'report_type'], 'properties': {'type': {'type': 'string', 'const': 'create_report'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'params': {'type': 'object', 'description': "reverse_dcf DCF params — see create_report's own schema.", 'additionalProperties': {}}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Required when report_type=reverse_dcf.'}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Required when report_type=thesis.'}, 'report_type': {'enum': ['reverse_dcf', 'thesis'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'thesis_id'], 'properties': {'type': {'type': 'string', 'const': 'score_thesis'}, 'as_of': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'task', 'wake_in_days'], 'properties': {'task': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'type': {'type': 'string', 'const': 'schedule_task'}, 'context': {'type': 'object', 'additionalProperties': {}}, 'wake_in_days': {'type': 'number', 'maximum': 90, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'title', 'message'], 'properties': {'type': {'type': 'string', 'const': 'post_inbox'}, 'title': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'message': {'type': 'string', 'maxLength': 2000, 'minLength': 1}}, 'additionalProperties': False}]}, 'last_fired_at': {'type': ['number', 'null']}, 'condition_expr': {'type': ['string', 'null']}, 'trigger_params': {'anyOf': [{'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'alert_fired'}, 'alert_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Scope to one specific alert id. Omit to react to ANY of the rule owner's alerts firing."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'interval_minutes'], 'properties': {'type': {'type': 'string', 'const': 'schedule_tick'}, 'interval_minutes': {'type': 'integer', 'maximum': 10080, 'minimum': 5, 'description': 'Minimum minutes between fires (5 min – 7 days). Rounded up to the nearest 5-minute cron tick.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'inbox_item'}, 'condition_type_filter': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': 'Only consider inbox items whose condition_type equals this value. Omit to react to any inbox item.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker'], 'properties': {'type': {'type': 'string', 'const': 'price_threshold'}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z][A-Za-z0-9.\\-]{0,9}$', 'maxLength': 10, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'filing_event'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25}, 'ticker': {'$ref': '#/properties/rules/items/properties/trigger_params/anyOf/3/properties/ticker'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'manual'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'scheduled_task_wake'}, 'task_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Scope to one specific scheduled_task id. Omit to react to ANY of the owner's tasks waking."}}, 'additionalProperties': False}]}, 'trigger_wiring_status': {'enum': ['live', 'not_yet_wired'], 'type': 'string', 'description': "'live' means a real event source calls evaluateRulesForEvent() for this trigger_type today — this rule CAN fire. 'not_yet_wired' means the trigger_type is accepted and persisted for forward-compatibility but no code path dispatches it yet — this rule will never fire until Valuein wires that trigger source. Check this before relying on a rule; use alert_fired/inbox_item/scheduled_task_wake/schedule_tick for a rule that fires today."}}, 'additionalProperties': False}}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'cursor': {'type': 'integer', 'description': "Pagination cursor from a previous response's next_cursor."}, 'status': {'enum': ['pending', 'completed', 'cancelled', 'cancelled_owner_inactive', 'all'], 'type': 'string', 'default': 'pending', 'description': 'Filter by lifecycle state; defaults to `pending`.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'tasks', 'next_cursor'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'tasks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'task', 'wake_at', 'wake_at_iso', 'context', 'status', 'created_at'], 'properties': {'id': {'type': 'string'}, 'task': {'type': 'string'}, 'status': {'enum': ['pending', 'completed', 'cancelled', 'cancelled_owner_inactive'], 'type': 'string'}, 'context': {'type': 'object', 'additionalProperties': {}}, 'wake_at': {'type': 'integer'}, 'created_at': {'type': 'number'}, 'wake_at_iso': {'type': 'string'}}, 'additionalProperties': False}}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of inbox items to return (1–100). Defaults to 20.'}, 'cursor': {'type': 'integer', 'description': 'Pagination cursor — the `fired_at` of the last item on the previous page.'}, 'unread_only': {'type': 'boolean', 'default': False, 'description': 'When true, return only items where read_at IS NULL.'}, 'include_dismissed': {'type': 'boolean', 'default': False, 'description': 'When true, also return items the caller previously dismissed.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'items', 'next_cursor', 'unread_count'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'alert_id', 'alert_name', 'condition_type', 'summary', 'payload', 'fired_at', 'read_at', 'dismissed_at', 'created_at', 'dedupe_key'], 'properties': {'id': {'type': 'string'}, 'payload': {'type': 'object', 'additionalProperties': {}}, 'read_at': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'summary': {'type': 'string'}, 'alert_id': {'type': 'string'}, 'fired_at': {'type': 'integer'}, 'alert_name': {'type': 'string'}, 'created_at': {'type': 'integer'}, 'dedupe_key': {'type': ['string', 'null'], 'description': 'Writer-supplied idempotency key; null for signal fires.'}, 'dismissed_at': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'condition_type': {'type': 'string', 'description': 'Event discriminator. Known values: filing_event, ratio_threshold, watchlist_change, test, score_resolved, approval_needed, run_completed, brief_ready, agent_skipped, rule_fired, scheduled_task_due, rule_blocked_loop_guard. Render unknown values generically.'}}, 'additionalProperties': False}}, 'next_cursor': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'unread_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of signals to return (1–100). Defaults to 20.'}, 'cursor': {'type': 'string', 'maxLength': 64, 'description': 'Opaque pagination cursor from a previous response; omit for the first page.'}, 'status': {'enum': ['active', 'paused', 'deleted', 'all'], 'type': 'string', 'default': 'active', 'description': 'Filter by lifecycle state; defaults to `active`. Use `all` to include paused and soft-deleted signals.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'signals', 'next_cursor', 'total_count'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'signals': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'condition', 'channel', 'channels', 'status', 'last_triggered_at', 'trigger_count', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'status': {'enum': ['active', 'paused', 'deleted'], 'type': 'string'}, 'channel': {'anyOf': [{'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'email'}, 'target': {'type': 'string', 'format': 'email', 'maxLength': 256}, 'hmac_secret': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'webhook'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512}, 'hmac_secret': {'type': 'string', 'maxLength': 128, 'minLength': 16, 'description': 'HMAC secret (≥16 chars) for webhook signature verification. Recommended for production.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'dashboard'}, 'target': {'type': 'string', 'default': '@self', 'maxLength': 16, 'description': "Always '@self' for dashboard channels. Routes to the in-app inbox keyed by the signal's owning customer."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'slack'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512, 'description': 'Slack incoming-webhook URL — must be on host hooks.slack.com (e.g. https://hooks.slack.com/services/T0000/B0000/XXXX). The URL itself is the secret, so no HMAC is used.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'agent_run'}, 'target': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A standing_agent.id identifying which standing agent team to run when this signal fires. NOT a URL — no outbound-URL validation applies to this field.'}}, 'additionalProperties': False}]}, 'channels': {'type': 'array', 'items': {'$ref': '#/properties/signals/items/properties/channel'}, 'maxItems': 4, 'minItems': 1}, 'condition': {'anyOf': [{'type': 'object', 'required': ['type', 'tickers', 'forms'], 'properties': {'type': {'type': 'string', 'const': 'filing_event'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to listen for, e.g. ['8-K', '10-K'] or ['SC 13D']. An EMPTY list means any filing. Amendments match their base form (a 10-K/A fires a 10-K signal) and EDGAR's two spellings of the schedules are equivalent ('SC 13D' === 'SCHEDULE 13D')."}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 50, 'minItems': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'ratio', 'comparator', 'threshold'], 'properties': {'type': {'type': 'string', 'const': 'ratio_threshold'}, 'ratio': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': "Ratio name (e.g. 'interest_coverage' or 'net_debt_to_ebitda')."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'threshold': {'type': 'number'}, 'comparator': {'enum': ['lt', 'gt', 'lte', 'gte'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_change'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to fire on, e.g. ['10-K', '10-Q']. Omit to keep the historical default set (8-K, 10-K, 10-Q, 20-F, 6-K, SC 13D, SC 13G, S-1, S-3); an empty list means any filing."}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'direction', 'threshold_pct', 'window_days'], 'properties': {'type': {'type': 'string', 'const': 'price_move'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'direction': {'enum': ['up', 'down', 'any'], 'type': 'string', 'description': "Which direction of move to fire on. 'any' fires on either direction."}, 'window_days': {'enum': [1, 5, 21], 'type': 'number', 'description': 'Trading-day lookback window: 1 (daily), 5 (weekly), or 21 (monthly).'}, 'threshold_pct': {'type': 'number', 'maximum': 50, 'minimum': 0.5, 'description': 'Minimum absolute close-to-close move, in percent (0.5–50), to fire.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'concept', 'change'], 'properties': {'type': {'type': 'string', 'const': 'fundamental_change'}, 'change': {'enum': ['new_period', 'restated', 'any'], 'type': 'string', 'description': "'new_period' fires only on a brand-new reporting period; 'restated' fires only when an already-reported period gets a new accepted_at vintage (an amendment); 'any' fires on either."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'concept': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "Standard concept name, e.g. 'TotalRevenue', 'NetIncome', 'OperatingCashFlow'."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_restatement'}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Fire when ANY company in this watchlist has a fact materially restated (>0.5% swing) by a later SEC filing — the Restatement Radar, scoped to a watchlist. Distinct from fundamental_change (one ticker + one concept).'}}, 'additionalProperties': False}]}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'last_error_at': {'type': ['number', 'null']}, 'trigger_count': {'type': 'integer'}, 'last_evaluated_at': {'type': ['number', 'null']}, 'last_triggered_at': {'type': ['number', 'null']}, 'last_error_message': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'next_cursor': {'type': ['string', 'null']}, 'total_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'filter': {'type': 'string', 'description': "Case-insensitive substring matched against each playbook's name, title, and description — e.g. 'smart money', 'thesis', 'backtest'. Omit to list all."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'content_type', 'sop_count', 'sops'], 'properties': {'sops': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'title', 'description', 'args'], 'properties': {'args': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'required', 'description'], 'properties': {'name': {'type': 'string'}, 'required': {'type': 'boolean'}, 'description': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'name': {'type': 'string', 'description': 'SOP slug — pass this to get_sop'}, 'title': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': False}}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'sop_count': {'type': 'integer', 'minimum': 0}, 'content_type': {'type': 'string', 'const': 'first_party_playbook'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'view': {'enum': ['bull', 'bear', 'neutral'], 'type': 'string', 'description': 'Filter to a single view.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Page size, 1–100. Defaults to 20.'}, 'cursor': {'type': 'string', 'maxLength': 64, 'description': "Pagination cursor returned by the previous `list_theses` call's `next_cursor`."}, 'status': {'enum': ['active', 'closed', 'archived', 'all'], 'type': 'string', 'default': 'active', 'description': "'active' (default) hides archived theses; pass 'all' to include them."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Filter to theses on this ticker (case-insensitive).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'theses', 'next_cursor', 'total_count'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'theses': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'ticker', 'view', 'conviction', 'horizon_days', 'thesis_at_price_cents', 'notes', 'source_report_id', 'status', 'outcome_grade', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'view': {'enum': ['bull', 'bear', 'neutral'], 'type': 'string'}, 'notes': {'type': ['string', 'null']}, 'status': {'enum': ['active', 'closed', 'archived'], 'type': 'string'}, 'ticker': {'type': 'string'}, 'conviction': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string', 'description': "Phase 3 visibility: 'private' (owner-only), 'unlisted' (known URL), 'public' (surfaces on the author's /[handle] profile + reputation)."}, 'horizon_days': {'type': 'integer', 'exclusiveMinimum': 0}, 'outcome_grade': {'anyOf': [{'enum': ['correct', 'wrong', 'neutral', 'pending'], 'type': 'string'}, {'type': 'null'}]}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C fundamentals × price breakdown (fundamentals_score, price_score, price_return_pct, legs_used, basis, …). Null when not yet scored or scored without a breakdown; absent entirely on records graded before Phase C shipped — both mean 'no components recorded'."}, 'thesis_at_price_cents': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'next_cursor': {'type': ['string', 'null']}, 'total_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': 'Max uploads to return (default 20, the same cap as MAX_ACTIVE_UPLOADS_PER_CUSTOMER).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'uploads'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'uploads': {'type': 'array', 'items': {'type': 'object', 'required': ['upload_id', 'filename', 'mime_type', 'byte_size', 'char_count', 'truncated', 'extraction_status', 'created_at', 'expires_at'], 'properties': {'filename': {'type': 'string'}, 'byte_size': {'type': 'integer'}, 'mime_type': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'upload_id': {'type': 'string'}, 'char_count': {'type': 'integer'}, 'created_at': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'extraction_status': {'enum': ['ok', 'unsupported', 'failed'], 'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of watchlists to return (1–100). Defaults to 20.'}, 'cursor': {'type': 'string', 'maxLength': 64, 'description': 'Opaque pagination cursor from a previous response; omit for the first page.'}, 'status': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'default': 'active', 'description': 'Filter by state; defaults to `active`. Use `all` to include archived watchlists.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'watchlists', 'next_cursor', 'total_count'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'watchlists': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'tickers', 'criteria', 'status', 'ticker_count', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'status': {'enum': ['active', 'archived'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'weights': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'number'}}, {'type': 'null'}]}, 'criteria': {'type': ['string', 'null']}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'ticker_count': {'type': 'integer'}}, 'additionalProperties': False}}, 'next_cursor': {'type': ['string', 'null']}, 'total_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['inbox_id'], 'properties': {'inbox_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the inbox item to mark read, as returned by list_signal_inbox or the signals feed resource.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'inbox_id', 'marked_read', 'unread_count'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'inbox_id': {'type': 'string'}, 'marked_read': {'type': 'boolean'}, 'unread_count': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'revenue_growth_rate'], 'properties': {'years': {'type': 'integer', 'default': 5, 'maximum': 15, 'minimum': 1, 'description': 'Projection horizon in years (1-15). Defaults to 5.'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Stock ticker symbol, e.g. AAPL, MSFT, BRK.B.'}, 'tax_rate': {'type': 'number', 'default': 0.21, 'maximum': 1, 'minimum': 0, 'description': 'Effective tax rate on positive pretax income. Default 0.21 (US statutory).'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time cutoff (YYYY-MM-DD) for the seed period. Omit to use the latest knowable annual period.'}, 'cash_sweep_pct': {'type': 'number', 'default': 0, 'maximum': 1, 'minimum': 0, 'description': "Fraction (0-1) of each year's free cash flow swept to debt paydown. Default 0 (going-concern; use ~1.0 for an LBO-style paydown)."}, 'dividend_payout_pct': {'type': 'number', 'default': 0, 'maximum': 1, 'minimum': 0, 'description': 'Fraction (0-1) of net income paid out as dividends each year. Default 0.'}, 'new_debt_draw_year1': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'New debt drawn at year 1 only (absolute USD) — e.g. acquisition financing. Default 0.'}, 'revenue_growth_rate': {'type': 'number', 'maximum': 1, 'minimum': -0.5, 'description': 'Flat annual revenue growth rate applied every year (e.g. 0.08 = 8%/yr).'}, 'interest_rate_on_debt': {'type': 'number', 'default': 0.06, 'maximum': 0.5, 'minimum': 0, 'description': 'Annual interest rate on beginning-of-period debt. Assumption — default 0.06.'}, 'new_equity_draw_year1': {'type': 'number', 'default': 0, 'minimum': 0, 'description': 'New equity contributed at year 1 only (absolute USD) — hits cash + equity symmetrically. Default 0.'}, 'gross_margin_pct_override': {'type': 'number', 'description': "Override the seed period's gross margin (held flat across all years). Leave unset to use the historical ratio."}, 'capex_pct_of_revenue_override': {'type': 'number', 'description': "Override the seed period's capex-as-%-of-revenue ratio. Leave unset to use the historical ratio."}, 'operating_margin_pct_override': {'type': 'number', 'description': "Override the seed period's operating margin. Leave unset to use the historical ratio."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ticker', 'seed_period_end', 'result'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'result': {'type': 'object', 'additionalProperties': {}}, 'ticker': {'type': 'string'}, 'seed_period_end': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['claim_id'], 'properties': {'claim_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id returned by `save_claim` or `list_claims`.'}, 'visibility': {'enum': ['unlisted', 'public'], 'type': 'string', 'default': 'public', 'description': '`public` (default) → profile + reputation; `unlisted` → direct-link-only, off the profile. To revert to private, use unpublish_claim.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'claim'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'claim': {'type': 'object', 'required': ['id', 'statement', 'tickers', 'claim_type', 'tags', 'direction', 'confidence', 'eval_mode', 'verifiable_condition', 'antecedent', 'horizon_days', 'evidence', 'source_report_id', 'status', 'archived', 'visibility', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['open', 'confirmed', 'refuted', 'expired', 'stale', 'needs_review'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'archived': {'type': 'boolean'}, 'evidence': {'type': 'object', 'required': ['fact_ids', 'source_urls'], 'properties': {'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'fact_ids backing the claim. Verified against live SEC data at save time (rejected if unresolvable).'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 50, 'description': 'SEC EDGAR (or report) deep links for one-click human verification.'}, 'source_links': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'sec_url', 'document_url', 'inline_viewer_url'], 'properties': {'url': {'type': 'string', 'description': 'The original stored source_url (verbatim).'}, 'sec_url': {'type': 'string', 'description': 'EDGAR filing-index page — always resolves.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document, or null.'}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer on the rendered filing, or null when not iXBRL.'}}, 'additionalProperties': False}, 'description': 'On-read enrichment of source_urls with interactive SEC viewer links.'}}, 'additionalProperties': False}, 'direction': {'enum': ['bullish', 'bearish', 'neutral'], 'type': 'string'}, 'eval_mode': {'enum': ['auto', 'agent', 'manual'], 'type': 'string'}, 'statement': {'type': 'string'}, 'antecedent': {'type': ['string', 'null']}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string'}, 'confidence': {'type': 'number'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string'}, 'horizon_days': {'type': ['number', 'null']}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C resolved-metric breakdown ({evaluated, basis} from gradeClaim). Null when not yet resolved or resolved without a breakdown (manual); absent entirely on claims resolved before Phase C shipped — both mean 'no components recorded'."}, 'verifiable_condition': {'anyOf': [{'type': 'object', 'required': ['metric', 'op', 'threshold', 'unit'], 'properties': {'op': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq', 'approx'], 'type': 'string', 'description': 'Comparison operator the grader applies as: metric_value <op> threshold.'}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}], 'description': "Display unit ('%', 'x', 'usd') or null."}, 'metric': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Canonical metric key, e.g. 'gross_margin', 'revenue_yoy', 'net_debt_to_ebitda'."}, 'threshold': {'type': 'number', 'description': 'Numeric threshold the metric is compared against.'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id'], 'properties': {'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'visibility': {'enum': ['unlisted', 'listed'], 'type': 'string', 'default': 'listed'}, 'price_cents': {'type': 'integer', 'minimum': 0, 'description': 'Currently must be omitted or 0 — all listings are free. A non-zero value is rejected until paid listings ship.'}, 'tier_required': {'enum': ['sample', 'sp500', 'pro', 'full'], 'type': 'string', 'description': "Minimum subscriber tier to read the full body. Defaults to the author's plan."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'report'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'report': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['thesis_id'], 'properties': {'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id returned by `save_thesis` or `list_theses`.'}, 'visibility': {'enum': ['unlisted', 'public'], 'type': 'string', 'default': 'public', 'description': '`public` (default) → profile + reputation; `unlisted` → direct-link-only, off the profile. To revert to private, use unpublish_thesis.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'thesis'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'thesis': {'type': 'object', 'required': ['id', 'ticker', 'view', 'conviction', 'horizon_days', 'thesis_at_price_cents', 'notes', 'source_report_id', 'status', 'outcome_grade', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'view': {'enum': ['bull', 'bear', 'neutral'], 'type': 'string'}, 'notes': {'type': ['string', 'null']}, 'status': {'enum': ['active', 'closed', 'archived'], 'type': 'string'}, 'ticker': {'type': 'string'}, 'conviction': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string', 'description': "Phase 3 visibility: 'private' (owner-only), 'unlisted' (known URL), 'public' (surfaces on the author's /[handle] profile + reputation)."}, 'horizon_days': {'type': 'integer', 'exclusiveMinimum': 0}, 'outcome_grade': {'anyOf': [{'enum': ['correct', 'wrong', 'neutral', 'pending'], 'type': 'string'}, {'type': 'null'}]}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C fundamentals × price breakdown (fundamentals_score, price_score, price_return_pct, legs_used, basis, …). Null when not yet scored or scored without a breakdown; absent entirely on records graded before Phase C shipped — both mean 'no components recorded'."}, 'thesis_at_price_cents': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['staged_action_id'], 'properties': {'reason': {'type': 'string', 'maxLength': 2000, 'description': 'Optional free-text reason recorded on the staged action.'}, 'staged_action_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of the staged action to reject.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'staged_action', 'transitioned'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'transitioned': {'type': 'boolean', 'description': 'True if this call moved the action proposed→rejected; false if it was already decided.'}, 'staged_action': {'type': 'object', 'required': ['id', 'customer_id', 'tool_name', 'tool_args', 'risk_tier', 'origin', 'status', 'result', 'reason', 'created_at', 'decided_at'], 'properties': {'id': {'type': 'string'}, 'origin': {'type': 'string'}, 'reason': {'type': ['string', 'null']}, 'result': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "The underlying tool's own structured result, set once status='executed'."}, 'status': {'enum': ['proposed', 'approved', 'rejected', 'executed', 'failed'], 'type': 'string'}, 'risk_tier': {'enum': ['green', 'amber', 'red'], 'type': 'string'}, 'tool_args': {'type': 'object', 'additionalProperties': {}}, 'tool_name': {'type': 'string'}, 'created_at': {'type': 'number'}, 'decided_at': {'type': ['number', 'null']}, 'customer_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id', 'format'], 'properties': {'format': {'enum': ['md', 'docx', 'pdf'], 'type': 'string', 'description': 'md = raw markdown (the same body the editor renders). docx = branded Word document; pdf = the same branded research-note design as a shareable PDF (Geist faces embedded, clickable citation links).'}, 'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Id from create_report or list_my_reports.'}, 'author_name': {'type': 'string', 'maxLength': 120, 'description': "Display name of the report's author, shown as a named byline ('By {name}') on the masthead — the way a real research note credits an analyst. Omit to show 'Valuein Research'. Only affects the binary formats; ignored on a cache hit (the cached file keeps whatever byline was baked in on first render — pass `force_regenerate: true` to refresh it)."}, 'force_regenerate': {'type': 'boolean', 'default': False, 'description': 'If true, ignore the cached DOCX/PDF and re-render. No effect on md (markdown is canonical).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'url', 'format', 'filename', 'content_type', 'size_bytes', 'expires_in_seconds', 'expires_at', 'from_cache'], 'properties': {'url': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'format': {'enum': ['md', 'docx', 'pdf'], 'type': 'string'}, 'filename': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'from_cache': {'type': 'boolean'}, 'size_bytes': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'content_type': {'type': 'string'}, 'expires_in_seconds': {'type': 'integer'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kind', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The record's id. For a watchlist this is the `watchlist_id` returned by `delete_watchlist` — NOT its name, because deleting a watchlist frees its name for reuse."}, 'kind': {'enum': ['thesis', 'watchlist', 'signal', 'claim', 'report'], 'type': 'string', 'description': 'Which record type to restore. Citation overrides are not restorable.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'kind', 'id', 'status', 'prior_status_known'], 'properties': {'id': {'type': 'string'}, 'kind': {'enum': ['thesis', 'watchlist', 'signal', 'claim', 'report'], 'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'status': {'type': 'string'}, 'prior_status_known': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['agent_id'], 'properties': {'agent_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the agent to run now.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'run_id'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'run_id': {'type': 'string'}, 'recipe_id': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tickers', 'rebalance_dates'], 'properties': {'factors': {'type': 'array', 'items': {'enum': ['pe_ratio', 'ps_ratio', 'pb_ratio', 'ev_ebitda', 'ev_revenue', 'fcf_yield_pct', 'gross_margin_pct', 'operating_margin_pct', 'net_margin_pct'], 'type': 'string'}, 'description': "Which of get_pit_valuation_ratios's own output fields to include as factor_values. One or more of: pe_ratio, ps_ratio, pb_ratio, ev_ebitda, ev_revenue, fcf_yield_pct, gross_margin_pct, operating_margin_pct, net_margin_pct. Omit to include all of them."}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'pattern': '^([A-Za-z][A-Za-z0-9.\\-]{0,9}|\\d{1,10})$', 'maxLength': 10, 'minLength': 1}, 'maxItems': 10, 'minItems': 1, 'description': '1-10 stock ticker symbols, e.g. ["AAPL","MSFT"].'}, 'rebalance_dates': {'type': 'array', 'items': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'maxItems': 12, 'minItems': 1, 'description': '1-12 historical dates (YYYY-MM-DD) to snapshot valuation multiples on. Order does not matter — the tool sorts them chronologically. Forward return is computed from each date to the NEXT one in the sorted list.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'method', 'grid_cells', 'cells_computed', 'pit_safe', 'capped', 'source_tools_used', 'caveats', 'tickers', 'rebalance_dates', 'factors', 'dropped', 'note'], 'properties': {'note': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'cells': {'type': 'array', 'items': {'type': 'object', 'required': ['rebalance_date', 'ticker', 'close', 'factor_values', 'forward_return_pct'], 'properties': {'close': {'type': ['number', 'null']}, 'ticker': {'type': 'string'}, 'factor_values': {'type': 'object', 'additionalProperties': {'type': ['number', 'null']}}, 'rebalance_date': {'type': 'string'}, 'forward_return_pct': {'type': ['number', 'null'], 'description': "(next rebalance date's close / this date's close - 1) x 100, using the RAW (unadjusted) close from queryPitValuationRatios. Null on the last rebalance date, or when the ticker has no computed cell at the next date."}}, 'additionalProperties': False}}, 'capped': {'type': 'boolean'}, 'method': {'enum': ['compose', 'stream_fallback'], 'type': 'string'}, 'caveats': {'type': 'array', 'items': {'type': 'string'}}, 'dropped': {'type': 'array', 'items': {'type': 'object', 'required': ['ticker', 'rebalance_date', 'reason'], 'properties': {'reason': {'type': 'string'}, 'ticker': {'type': 'string'}, 'rebalance_date': {'type': 'string'}}, 'additionalProperties': False}}, 'factors': {'type': 'array', 'items': {'type': 'string'}}, 'streams': {'type': 'array', 'items': {'type': 'object', 'required': ['ticker', 'bucket', 'object_key', 'url', 'expires_at', 'expires_in_seconds'], 'properties': {'url': {'type': 'string'}, 'bucket': {'type': 'string'}, 'ticker': {'type': 'string'}, 'expires_at': {'type': 'string'}, 'object_key': {'type': 'string'}, 'expires_in_seconds': {'type': 'number'}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'pit_safe': {'anyOf': [{'type': 'boolean', 'const': True}, {'type': 'boolean', 'const': False}, {'type': 'null'}]}, 'next_step': {'type': 'string'}, 'grid_cells': {'type': 'integer'}, 'cells_computed': {'type': 'integer'}, 'rebalance_dates': {'type': 'array', 'items': {'type': 'string'}}, 'source_tools_used': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workflow_id'], 'properties': {'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': "US-listed ticker the workflow should run against, e.g. 'AAPL'. Pass either `ticker` (single) or `tickers` (batch up to 50). Exactly one is required."}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': "Batch mode — array of US-listed tickers, up to 50. When provided, the response has `plans[]` (one plan per ticker) instead of `plan`. Parity with the frontend batch-runner so agents can request 'plan over my watchlist' in a single call."}, 'workflow_id': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'Workflow id returned by the frontend workflow builder.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['meta', 'workflow', 'ticker', 'plan', 'plans', 'instructions'], 'properties': {'meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'plan': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['step_id', 'position', 'kind', 'name', 'label', 'args', 'skip_if'], 'properties': {'args': {'type': 'object', 'additionalProperties': {}}, 'kind': {'enum': ['tool', 'sop'], 'type': 'string'}, 'name': {'type': 'string'}, 'label': {'type': ['string', 'null']}, 'skip_if': {'anyOf': [{'type': 'object', 'required': ['path', 'equals'], 'properties': {'path': {'type': 'string'}, 'equals': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'step_id': {'type': 'string'}, 'position': {'type': 'integer'}}, 'additionalProperties': False}}, {'type': 'null'}]}, 'plans': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['ticker', 'plan'], 'properties': {'plan': {'type': 'array', 'items': {'$ref': '#/properties/plan/anyOf/0/items'}}, 'ticker': {'type': 'string'}}, 'additionalProperties': False}}, {'type': 'null'}]}, 'ticker': {'type': ['string', 'null']}, 'workflow': {'type': 'object', 'required': ['id', 'name', 'description', 'step_count'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'step_count': {'type': 'integer'}, 'description': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'instructions': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'goal', 'tickers', 'agent_type', 'when'], 'properties': {'goal': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': "What this agent is trying to accomplish — drives an autonomous agent's AI-directed team, and documents intent for a workflow agent's fixed steps."}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Human-readable label.'}, 'when': {'enum': ['manual', 'schedule'], 'type': 'string', 'description': 'Trigger mode. "manual" fires only via run_agent/the UI; "schedule" requires the `schedule` object.'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'name', 'args'], 'properties': {'args': {'type': 'object', 'description': "Arguments for this step. Supports {{ticker}} substitution the same way run_workflow's plan does.", 'additionalProperties': {}}, 'kind': {'enum': ['tool', 'sop'], 'type': 'string', 'description': 'Whether `name` names an MCP tool or a SOP (playbook) slug.'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Tool name (e.g. "get_company_fundamentals") or SOP slug (e.g. "equity_research_brief").'}, 'label': {'type': 'string', 'maxLength': 200, 'description': 'Optional human-readable label for this step.'}}, 'additionalProperties': False}, 'maxItems': 50, 'description': 'Fixed step recipe for agent_type="workflow". Required + non-empty when CREATING a workflow agent; must be omitted for agent_type="autonomous".'}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 500, 'minItems': 1, 'description': 'US tickers this agent operates over. Normalised to uppercase.'}, 'agent_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Omit to create a new agent; pass an existing agent's id (from save_agent/list_agents/get_agent) to update it."}, 'schedule': {'type': 'object', 'required': ['cadence', 'hour_utc'], 'properties': {'minute': {'type': 'integer', 'maximum': 59, 'minimum': 0, 'description': 'UTC minute to fire at (0-59, default 0).'}, 'cadence': {'enum': ['daily', 'weekly', 'monthly'], 'type': 'string', 'description': 'How often this agent fires.'}, 'hour_utc': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'UTC hour to fire at (0-23).'}, 'timezone': {'type': 'string', 'maxLength': 64, 'description': 'IANA timezone (e.g. "America/New_York") for display only — hour_utc/minute above are authoritative and always UTC.'}, 'day_of_week': {'type': 'integer', 'maximum': 6, 'minimum': 0, 'description': '0=Sunday..6=Saturday. Required when cadence="weekly".'}, 'day_of_month': {'type': 'integer', 'maximum': 28, 'minimum': 1, 'description': '1-28 (clamped to avoid short-month skips). Required when cadence="monthly".'}}, 'description': 'Required when when="schedule"; ignored otherwise.', 'additionalProperties': False}, 'agent_type': {'enum': ['workflow', 'autonomous'], 'type': 'string', 'description': 'STRUCTURAL and immutable. "workflow" = fixed step recipe, free/deterministic, requires `steps`. "autonomous" = AI-directed team, charged, may set `managed_model`.'}, 'managed_model': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Managed-lane model override for agent_type="autonomous" only (e.g. when no BYO key is connected). Omit to use the account default.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'agent', 'created'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'agent': {'type': 'object', 'required': ['id', 'user_id', 'name', 'goal', 'tickers', 'agent_type', 'trigger_mode', 'is_system', 'cadence', 'hour_utc', 'minute_utc', 'day_of_week', 'day_of_month', 'timezone', 'enabled', 'last_run_at', 'last_run_id', 'next_run_at', 'created_at', 'updated_at', 'team_id', 'team_key', 'recipe_id', 'managed_model'], 'properties': {'id': {'type': 'string'}, 'goal': {'type': 'string'}, 'name': {'type': 'string'}, 'cadence': {'enum': ['daily', 'weekly', 'monthly', 'triggered'], 'type': 'string'}, 'enabled': {'type': 'boolean'}, 'team_id': {'type': ['string', 'null']}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'user_id': {'type': 'string'}, 'hour_utc': {'type': 'integer'}, 'team_key': {'type': ['string', 'null']}, 'timezone': {'type': ['string', 'null']}, 'is_system': {'type': 'boolean'}, 'recipe_id': {'type': ['string', 'null']}, 'agent_type': {'enum': ['workflow', 'autonomous'], 'type': 'string'}, 'created_at': {'type': 'number'}, 'minute_utc': {'type': 'integer'}, 'updated_at': {'type': 'number'}, 'day_of_week': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'last_run_at': {'type': ['number', 'null']}, 'last_run_id': {'type': ['string', 'null']}, 'next_run_at': {'type': 'number'}, 'day_of_month': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'trigger_mode': {'enum': ['manual', 'schedule', 'event', 'chat'], 'type': 'string'}, 'managed_model': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'created': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['fact_id', 'corrected_value', 'ticker'], 'properties': {'notes': {'type': 'string', 'maxLength': 500, 'description': 'Optional free-form rationale, ≤500 chars.'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': "Ticker the fact belongs to (REQUIRED) — scopes fact_id resolution against live SEC data and denormalises the row for fast filtering (the workspace UI's 'my corrections on AAPL' view)."}, 'fact_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': "Canonical fact identifier — usually returned in a citation's `fact_ids` array by get_report or any compute tool. Stable across report regenerations. Verified against live SEC data (scoped to `ticker`) before persistence — a fabricated or unresolvable fact_id is rejected."}, 'corrected_value': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': "User-corrected value, stringified. The frontend interprets it based on the fact's known datatype (number, string, ISO date)."}, 'source_report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Optional report id the user was viewing when they applied the correction (provenance).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'override', 'created', 'capacity'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'created': {'type': 'boolean'}, 'capacity': {'type': 'object', 'required': ['used', 'cap', 'remaining'], 'properties': {'cap': {'type': 'integer', 'minimum': 0}, 'used': {'type': 'integer', 'minimum': 0}, 'remaining': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'override': {'type': 'object', 'required': ['user_id', 'fact_id', 'corrected_value', 'ticker', 'source_report_id', 'notes', 'created_at', 'updated_at'], 'properties': {'notes': {'type': ['string', 'null']}, 'ticker': {'type': ['string', 'null']}, 'fact_id': {'type': 'string'}, 'user_id': {'type': 'string'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'corrected_value': {'type': 'string'}, 'source_report_id': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['statement', 'tickers', 'claim_type', 'direction', 'confidence'], 'properties': {'tags': {'type': 'array', 'items': {'enum': ['financial', 'valuation', 'operational', 'competitive', 'structural', 'strategic', 'macro', 'behavioral', 'catalyst', 'risk', 'trend', 'comparison', 'causation', 'liquidity', 'governance', 'guidance'], 'type': 'string'}, 'default': [], 'maxItems': 6, 'description': 'Topical labels (controlled vocab). Multi-valued; drives filtering + learning segmentation, not scoring.'}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 10, 'minItems': 1, 'description': 'Entities referenced (uppercased). 1 for most claims; 2+ for a comparison claim.'}, 'evidence': {'type': 'object', 'default': {'fact_ids': [], 'source_urls': []}, 'required': ['fact_ids', 'source_urls'], 'properties': {'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'fact_ids backing the claim. Verified against live SEC data at save time (rejected if unresolvable).'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 50, 'description': 'SEC EDGAR (or report) deep links for one-click human verification.'}, 'source_links': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'sec_url', 'document_url', 'inline_viewer_url'], 'properties': {'url': {'type': 'string', 'description': 'The original stored source_url (verbatim).'}, 'sec_url': {'type': 'string', 'description': 'EDGAR filing-index page — always resolves.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document, or null.'}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer on the rendered filing, or null when not iXBRL.'}}, 'additionalProperties': False}, 'description': 'On-read enrichment of source_urls with interactive SEC viewer links.'}}, 'description': 'Evidence grounding the claim.', 'additionalProperties': False}, 'direction': {'enum': ['bullish', 'bearish', 'neutral'], 'type': 'string', 'description': 'Directional polarity of the claim.'}, 'eval_mode': {'enum': ['auto', 'agent', 'manual'], 'type': 'string', 'default': 'agent', 'description': 'How the outcome is resolved: auto (deterministic grade vs data via verifiable_condition), agent (an LLM judges at resolution), manual (a human marks it).'}, 'statement': {'type': 'string', 'maxLength': 2000, 'minLength': 8, 'description': 'The atomic, falsifiable statement. One claim, not a paragraph.'}, 'antecedent': {'anyOf': [{'type': 'string', 'maxLength': 500}, {'type': 'null'}], 'default': None, 'description': 'Scenario precondition — the claim only resolves when this holds. Null = unconditional.'}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string', 'description': 'Epistemic type — drives scoring. assertion=true now (verified vs data); prediction=future (resolves at horizon via verifiable_condition); judgment=qualitative (not auto-scored).'}, 'confidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Author confidence in [0,1]. Used as the Brier/log-loss weight when scored.'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string', 'default': 'private', 'description': "'private' (default) owner-only; 'unlisted' visible at a direct URL; 'public' surfaces on the author's profile and contributes to the claim-accuracy reputation."}, 'horizon_days': {'anyOf': [{'type': 'integer', 'maximum': 1825, 'minimum': 1}, {'type': 'null'}], 'default': None, 'description': 'Resolution horizon in days (predictions). Null for assertions/judgments.'}, 'idempotency_key': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Optional client key for at-most-once semantics from a retrying agent.'}, 'source_report_id': {'type': 'string', 'maxLength': 128, 'description': 'Optional id of a report that contains the supporting analysis.'}, 'verifiable_condition': {'anyOf': [{'type': 'object', 'required': ['metric', 'op', 'threshold', 'unit'], 'properties': {'op': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq', 'approx'], 'type': 'string', 'description': 'Comparison operator the grader applies as: metric_value <op> threshold.'}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}], 'description': "Display unit ('%', 'x', 'usd') or null."}, 'metric': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Canonical metric key, e.g. 'gross_margin', 'revenue_yoy', 'net_debt_to_ebitda'."}, 'threshold': {'type': 'number', 'description': 'Numeric threshold the metric is compared against.'}}, 'additionalProperties': False}, {'type': 'null'}], 'default': None, 'description': "Machine-evaluable condition for eval_mode='auto'. Null otherwise."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'claim', 'deduplicated', 'capacity'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'claim': {'type': 'object', 'required': ['id', 'statement', 'tickers', 'claim_type', 'tags', 'direction', 'confidence', 'eval_mode', 'verifiable_condition', 'antecedent', 'horizon_days', 'evidence', 'source_report_id', 'status', 'archived', 'visibility', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['open', 'confirmed', 'refuted', 'expired', 'stale', 'needs_review'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'archived': {'type': 'boolean'}, 'evidence': {'type': 'object', 'required': ['fact_ids', 'source_urls'], 'properties': {'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'fact_ids backing the claim. Verified against live SEC data at save time (rejected if unresolvable).'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 50, 'description': 'SEC EDGAR (or report) deep links for one-click human verification.'}, 'source_links': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'sec_url', 'document_url', 'inline_viewer_url'], 'properties': {'url': {'type': 'string', 'description': 'The original stored source_url (verbatim).'}, 'sec_url': {'type': 'string', 'description': 'EDGAR filing-index page — always resolves.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document, or null.'}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer on the rendered filing, or null when not iXBRL.'}}, 'additionalProperties': False}, 'description': 'On-read enrichment of source_urls with interactive SEC viewer links.'}}, 'additionalProperties': False}, 'direction': {'enum': ['bullish', 'bearish', 'neutral'], 'type': 'string'}, 'eval_mode': {'enum': ['auto', 'agent', 'manual'], 'type': 'string'}, 'statement': {'type': 'string'}, 'antecedent': {'type': ['string', 'null']}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string'}, 'confidence': {'type': 'number'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string'}, 'horizon_days': {'type': ['number', 'null']}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C resolved-metric breakdown ({evaluated, basis} from gradeClaim). Null when not yet resolved or resolved without a breakdown (manual); absent entirely on claims resolved before Phase C shipped — both mean 'no components recorded'."}, 'verifiable_condition': {'anyOf': [{'type': 'object', 'required': ['metric', 'op', 'threshold', 'unit'], 'properties': {'op': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq', 'approx'], 'type': 'string', 'description': 'Comparison operator the grader applies as: metric_value <op> threshold.'}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}], 'description': "Display unit ('%', 'x', 'usd') or null."}, 'metric': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Canonical metric key, e.g. 'gross_margin', 'revenue_yoy', 'net_debt_to_ebitda'."}, 'threshold': {'type': 'number', 'description': 'Numeric threshold the metric is compared against.'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}, 'capacity': {'type': 'object', 'required': ['used', 'cap', 'remaining'], 'properties': {'cap': {'type': 'integer', 'exclusiveMinimum': 0}, 'used': {'type': 'integer', 'minimum': 0}, 'remaining': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'deduplicated': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id', 'figure_key', 'state'], 'properties': {'note': {'type': 'string', 'maxLength': 2000, 'description': 'Optional free-text reviewer note (e.g. what was checked, or why it was rejected).'}, 'state': {'enum': ['verified', 'corrected', 'external', 'rejected'], 'type': 'string', 'description': "verified = traced to its filing and correct. corrected = wrong (supply corrected_value). external = legitimately not from Valuein data (analyst's own source). rejected = unsupported, should be removed from the report."}, 'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Identifier of the report the figure belongs to, as returned by create_report / list_my_reports / save_freeform_report.'}, 'figure_key': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Opaque id you mint for one figure inside the report. Never parsed or validated beyond length — use the exact same key to update this figure's review later. Shape for a dataset-backed figure: 'fact:{fact_id}#{figure}', the figure lowercased and whitespace-collapsed as the report writes it ('fact:f_rev#$402.83b'); the Workspace mints 'raw:{hash}' for a figure with no fact, which only it can compute."}, 'corrected_value': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': "The correct value. REQUIRED when state='corrected'; must be omitted for every other state (a corrected_value on a non-corrected review is rejected)."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ok', 'review'], 'properties': {'ok': {'type': 'boolean', 'const': True}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'review': {'type': 'object', 'required': ['figure_key', 'state', 'note', 'corrected_value', 'reviewed_by', 'reviewed_at'], 'properties': {'note': {'type': ['string', 'null']}, 'state': {'enum': ['verified', 'corrected', 'external', 'rejected'], 'type': 'string'}, 'figure_key': {'type': 'string'}, 'reviewed_at': {'type': 'string'}, 'reviewed_by': {'type': 'string'}, 'corrected_value': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'markdown'], 'properties': {'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Report title.'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Optional ticker for context/catalog. Case-insensitive.'}, 'abstract': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Optional 1–2 sentence summary.'}, 'markdown': {'type': 'string', 'maxLength': 100000, 'minLength': 1, 'description': 'Free-form markdown body (≤100k chars). Headings become sections.'}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['claim', 'fact_ids'], 'properties': {'claim': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': "Plain-English claim, quoting the figure as the prose writes it (e.g. 'FY2024 revenue: $391.0B')."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Ticker the fact belongs to. Lets a figure be verified when the report has no ticker.'}, 'evidence': {'enum': ['primary', 'derived', 'external'], 'type': 'string', 'description': "Provenance class. Defaults to 'derived' — the weaker claim."}, 'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'maxItems': 50, 'description': 'Valuein fact_ids backing the claim, as returned by the data tools.'}, 'filed_at': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'SEC acceptance timestamp of the filing (ISO 8601) — when the figure became public.'}, 'sec_urls': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'maxItems': 50, 'description': 'Optional EDGAR URLs, one per accession.'}, 'form_type': {'type': 'string', 'maxLength': 20, 'minLength': 1, 'description': "SEC form the figure was reported on ('10-K', '10-Q', '20-F'), verbatim from the source."}, 'period_end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Last day of the period the figure COVERS (YYYY-MM-DD). Not the filing date.'}, 'period_label': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': "How the filer names that period: 'FY2025', 'Q3 2025'."}, 'accession_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'maxItems': 50, 'description': 'Optional SEC accession ids backing the claim.'}}, 'additionalProperties': False}, 'maxItems': 1000, 'description': 'Lineage you already hold for the figures in `markdown` — pass it rather than dropping it. Each claim should quote the figure exactly as the prose writes it, so figure review can link the two. Persisted as-is and NOT verified here; sign-off re-resolves every fact_id before certifying.'}, 'idempotency_key': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Optional key for at-most-once semantics. Same key from the same user always yields the same report id.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'report', 'report_id', 'status', 'version'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'report': {'type': 'object', 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'draft'}, 'version': {'type': 'integer'}, 'report_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker', 'view', 'conviction', 'horizon_days'], 'properties': {'view': {'enum': ['bull', 'bear', 'neutral'], 'type': 'string', 'description': 'Directional view: bull (expect outperformance), bear (under), neutral (mean-revert).'}, 'notes': {'type': 'string', 'maxLength': 4000, 'description': 'Free-form rationale, ≤4000 chars. Stored verbatim; trim before submitting.'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': "US-listed ticker. Case-insensitive — normalised to upper. E.g. 'AAPL'."}, 'conviction': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': '1 = low conviction (gut feel) → 5 = high conviction (deep analysis).'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string', 'default': 'private', 'description': "Phase 3: 'private' (default) is owner-only; 'unlisted' is visible at a known direct URL; 'public' surfaces on the author's /[handle] profile and contributes to their reputation score."}, 'horizon_days': {'type': 'integer', 'maximum': 1825, 'minimum': 1, 'description': 'Investment horizon in days. 1 day–5 years (1825d). The grader uses this to pick the as-of period.'}, 'idempotency_key': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Optional client-supplied key. If a previous `save_thesis` from the same user used this key, the existing thesis is returned instead of creating a duplicate.'}, 'source_report_id': {'type': 'string', 'maxLength': 128, 'description': 'Optional id of a report (from `create_report` / `publish_report`) that contains the supporting analysis.'}, 'thesis_at_price_cents': {'type': 'integer', 'minimum': 0, 'description': "Optional snapshot of the ticker's market price (integer cents) at thesis creation. Used by future versions of the grader that mix in price returns; null for now is fine."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'thesis', 'deduplicated', 'capacity'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'thesis': {'type': 'object', 'required': ['id', 'ticker', 'view', 'conviction', 'horizon_days', 'thesis_at_price_cents', 'notes', 'source_report_id', 'status', 'outcome_grade', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'view': {'enum': ['bull', 'bear', 'neutral'], 'type': 'string'}, 'notes': {'type': ['string', 'null']}, 'status': {'enum': ['active', 'closed', 'archived'], 'type': 'string'}, 'ticker': {'type': 'string'}, 'conviction': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string', 'description': "Phase 3 visibility: 'private' (owner-only), 'unlisted' (known URL), 'public' (surfaces on the author's /[handle] profile + reputation)."}, 'horizon_days': {'type': 'integer', 'exclusiveMinimum': 0}, 'outcome_grade': {'anyOf': [{'enum': ['correct', 'wrong', 'neutral', 'pending'], 'type': 'string'}, {'type': 'null'}]}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C fundamentals × price breakdown (fundamentals_score, price_score, price_return_pct, legs_used, basis, …). Null when not yet scored or scored without a breakdown; absent entirely on records graded before Phase C shipped — both mean 'no components recorded'."}, 'thesis_at_price_cents': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'capacity': {'type': 'object', 'required': ['used', 'cap', 'remaining'], 'properties': {'cap': {'type': 'integer', 'exclusiveMinimum': 0}, 'used': {'type': 'integer', 'minimum': 0}, 'remaining': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'deduplicated': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'tickers'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Unique-per-user display name.'}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 500, 'minItems': 1, 'description': 'US tickers. Normalised to uppercase, deduped.'}, 'weights': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'number', 'exclusiveMinimum': 0}}, {'type': 'null'}], 'description': 'Optional relative position weights, ticker → number (e.g. {"AAPL": 40, "MSFT": 60}). They need NOT sum to 1 or 100 — normalisation is a display decision. Any ticker not in `tickers` is dropped. Omit to leave existing weights untouched; pass null to clear them.'}, 'criteria': {'type': 'string', 'maxLength': 500, 'description': 'Optional free-form screening criteria description.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'watchlist', 'created'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'created': {'type': 'boolean'}, 'watchlist': {'type': 'object', 'required': ['id', 'name', 'tickers', 'criteria', 'status', 'ticker_count', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'status': {'enum': ['active', 'archived'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'weights': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'number'}}, {'type': 'null'}]}, 'criteria': {'type': ['string', 'null']}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'ticker_count': {'type': 'integer'}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task', 'wake_in_days'], 'properties': {'task': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Human-readable description of the deferred work.'}, 'context': {'type': 'object', 'description': 'Saved thesis/claim/report ids and any other state needed to reconstitute a fresh prompt at wake time. Set `managed: true` + `team_id: "<standing_agent id>"` to also kick off a live managed re-run of that team at wake time (see description).', 'additionalProperties': {}}, 'wake_in_days': {'type': 'number', 'maximum': 90, 'description': 'How many days from now this task becomes due (0 < n <= 90).', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'task_id', 'wake_at', 'status'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'scheduled'}, 'task_id': {'type': 'string'}, 'wake_at': {'type': 'string', 'description': 'ISO 8601 timestamp when this task becomes due.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['claim_id'], 'properties': {'as_of': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Snapshot date for the fundamentals window (auto mode). Defaults to today UTC.'}, 'claim_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of the claim to resolve.'}, 'manual_score': {'anyOf': [{'type': 'number', 'maximum': 1, 'minimum': -1}, {'type': 'null'}], 'description': 'Outcome score in [-1,1] for a manual resolution. Null for non-scored statuses.'}, 'manual_reason': {'type': 'string', 'maxLength': 2000, 'description': 'Explanation for a manual resolution.'}, 'manual_status': {'enum': ['confirmed', 'refuted', 'expired', 'stale', 'needs_review'], 'type': 'string', 'description': 'Provide to record a human/agent outcome instead of auto-grading.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'claim', 'mode', 'resolved_status', 'score', 'basis', 'reason', 'deduplicated'], 'properties': {'mode': {'enum': ['auto', 'manual'], 'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'basis': {'type': 'string'}, 'claim': {'type': 'object', 'required': ['id', 'statement', 'tickers', 'claim_type', 'tags', 'direction', 'confidence', 'eval_mode', 'verifiable_condition', 'antecedent', 'horizon_days', 'evidence', 'source_report_id', 'status', 'archived', 'visibility', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['open', 'confirmed', 'refuted', 'expired', 'stale', 'needs_review'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'archived': {'type': 'boolean'}, 'evidence': {'type': 'object', 'required': ['fact_ids', 'source_urls'], 'properties': {'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'fact_ids backing the claim. Verified against live SEC data at save time (rejected if unresolvable).'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 50, 'description': 'SEC EDGAR (or report) deep links for one-click human verification.'}, 'source_links': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'sec_url', 'document_url', 'inline_viewer_url'], 'properties': {'url': {'type': 'string', 'description': 'The original stored source_url (verbatim).'}, 'sec_url': {'type': 'string', 'description': 'EDGAR filing-index page — always resolves.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document, or null.'}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer on the rendered filing, or null when not iXBRL.'}}, 'additionalProperties': False}, 'description': 'On-read enrichment of source_urls with interactive SEC viewer links.'}}, 'additionalProperties': False}, 'direction': {'enum': ['bullish', 'bearish', 'neutral'], 'type': 'string'}, 'eval_mode': {'enum': ['auto', 'agent', 'manual'], 'type': 'string'}, 'statement': {'type': 'string'}, 'antecedent': {'type': ['string', 'null']}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string'}, 'confidence': {'type': 'number'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string'}, 'horizon_days': {'type': ['number', 'null']}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C resolved-metric breakdown ({evaluated, basis} from gradeClaim). Null when not yet resolved or resolved without a breakdown (manual); absent entirely on claims resolved before Phase C shipped — both mean 'no components recorded'."}, 'verifiable_condition': {'anyOf': [{'type': 'object', 'required': ['metric', 'op', 'threshold', 'unit'], 'properties': {'op': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq', 'approx'], 'type': 'string', 'description': 'Comparison operator the grader applies as: metric_value <op> threshold.'}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}], 'description': "Display unit ('%', 'x', 'usd') or null."}, 'metric': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Canonical metric key, e.g. 'gross_margin', 'revenue_yoy', 'net_debt_to_ebitda'."}, 'threshold': {'type': 'number', 'description': 'Numeric threshold the metric is compared against.'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}, 'score': {'type': ['number', 'null']}, 'reason': {'type': 'string'}, 'deduplicated': {'type': 'boolean'}, 'resolved_status': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'max': {'type': 'integer', 'maximum': 500, 'description': 'Soft cap on claims scored per call (default 100).', 'exclusiveMinimum': 0}, 'as_of': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Snapshot date for the fundamentals window. Defaults to today UTC.'}, 'customer_id': {'type': 'string', 'pattern': '^[a-zA-Z0-9_]{4,80}$', 'description': "Target user's Stripe customer_id. Defaults to the caller's own — leave it unset. Supplying a DIFFERENT customer_id is restricted to Valuein's internal scoring service and is rejected on every plan, Institutional included."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'target_customer_id', 'scanned', 'due', 'scored', 'needs_review', 'skipped', 'errors', 'results'], 'properties': {'due': {'type': 'integer', 'minimum': 0}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'errors': {'type': 'integer', 'minimum': 0}, 'scored': {'type': 'integer', 'minimum': 0, 'description': 'Resolved to confirmed/refuted.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['claim_id', 'ticker', 'claim_type', 'status', 'score', 'basis', 'error'], 'properties': {'basis': {'type': 'string'}, 'error': {'type': ['string', 'null']}, 'score': {'type': ['number', 'null']}, 'status': {'type': 'string'}, 'ticker': {'type': 'string'}, 'claim_id': {'type': 'string'}, 'claim_type': {'type': 'string'}}, 'additionalProperties': False}}, 'scanned': {'type': 'integer', 'minimum': 0}, 'skipped': {'type': 'integer', 'minimum': 0}, 'needs_review': {'type': 'integer', 'minimum': 0, 'description': 'Could not be auto-resolved; flagged for review.'}, 'target_customer_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'max': {'type': 'integer', 'maximum': 500, 'description': 'Soft cap on theses scored per call. Defaults to 100. The frontend cron walks users serially so a low cap per user keeps each MCP request bounded.', 'exclusiveMinimum': 0}, 'as_of': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "Snapshot date for the 'current' fundamentals window. Defaults to today UTC."}, 'customer_id': {'type': 'string', 'pattern': '^[a-zA-Z0-9_]{4,80}$', 'description': "Stripe customer_id of the target user. Defaults to the caller's own — leave it unset. Supplying a DIFFERENT customer_id is restricted to Valuein's internal scoring service and is rejected on every plan, Institutional included."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'target_customer_id', 'scanned', 'due', 'scored', 'skipped', 'errors', 'results'], 'properties': {'due': {'type': 'integer', 'minimum': 0, 'description': 'Subset that were past their horizon AND ungraded.'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'errors': {'type': 'integer', 'minimum': 0, 'description': 'Per-thesis errors caught + logged.'}, 'scored': {'type': 'integer', 'minimum': 0, 'description': 'Successfully scored + persisted.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['thesis_id', 'ticker', 'horizon_days', 'grade', 'score', 'error', 'overdue_ms'], 'properties': {'error': {'type': ['string', 'null']}, 'grade': {'anyOf': [{'enum': ['correct', 'wrong', 'neutral', 'pending'], 'type': 'string'}, {'type': 'null'}]}, 'score': {'type': ['number', 'null']}, 'ticker': {'type': 'string'}, 'thesis_id': {'type': 'string'}, 'overdue_ms': {'type': 'integer', 'minimum': 0}, 'horizon_days': {'type': 'integer'}}, 'additionalProperties': False}}, 'scanned': {'type': 'integer', 'minimum': 0, 'description': 'Total active theses inspected.'}, 'skipped': {'type': 'integer', 'minimum': 0, 'description': 'Skipped because already graded or not yet due.'}, 'target_customer_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['thesis_id'], 'properties': {'as_of': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "Snapshot date for the 'current' fundamentals window. Defaults to today UTC. The scorer picks the fiscal period closest to this date."}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id returned by `save_thesis` or `list_theses`.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'thesis', 'outcome'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'thesis': {'type': 'object', 'required': ['id', 'ticker', 'view', 'conviction', 'horizon_days', 'thesis_at_price_cents', 'notes', 'source_report_id', 'status', 'outcome_grade', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'view': {'enum': ['bull', 'bear', 'neutral'], 'type': 'string'}, 'notes': {'type': ['string', 'null']}, 'status': {'enum': ['active', 'closed', 'archived'], 'type': 'string'}, 'ticker': {'type': 'string'}, 'conviction': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string', 'description': "Phase 3 visibility: 'private' (owner-only), 'unlisted' (known URL), 'public' (surfaces on the author's /[handle] profile + reputation)."}, 'horizon_days': {'type': 'integer', 'exclusiveMinimum': 0}, 'outcome_grade': {'anyOf': [{'enum': ['correct', 'wrong', 'neutral', 'pending'], 'type': 'string'}, {'type': 'null'}]}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C fundamentals × price breakdown (fundamentals_score, price_score, price_return_pct, legs_used, basis, …). Null when not yet scored or scored without a breakdown; absent entirely on records graded before Phase C shipped — both mean 'no components recorded'."}, 'thesis_at_price_cents': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'outcome': {'type': 'object', 'required': ['grade', 'score', 'reason', 'signals'], 'properties': {'grade': {'enum': ['correct', 'wrong', 'neutral', 'pending'], 'type': 'string'}, 'score': {'type': ['number', 'null']}, 'reason': {'type': 'string'}, 'signals': {'type': 'object', 'required': ['revenue', 'operating_margin', 'eps_diluted', 'operating_cash_flow', 'baseline_period', 'current_period'], 'properties': {'revenue': {'anyOf': [{'type': 'object', 'required': ['baseline', 'current', 'pct_change', 'sub_score'], 'properties': {'current': {'type': 'number'}, 'baseline': {'type': 'number'}, 'sub_score': {'type': 'number'}, 'pct_change': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'eps_diluted': {'anyOf': [{'$ref': '#/properties/outcome/properties/signals/properties/revenue/anyOf/0'}, {'type': 'null'}]}, 'current_period': {'anyOf': [{'type': 'object', 'required': ['fiscal_year', 'fiscal_period', 'period_end'], 'properties': {'period_end': {'type': 'string'}, 'fiscal_year': {'type': 'number'}, 'fiscal_period': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'baseline_period': {'anyOf': [{'type': 'object', 'required': ['fiscal_year', 'fiscal_period', 'period_end'], 'properties': {'period_end': {'type': 'string'}, 'fiscal_year': {'type': 'number'}, 'fiscal_period': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'operating_margin': {'anyOf': [{'$ref': '#/properties/outcome/properties/signals/properties/revenue/anyOf/0'}, {'type': 'null'}]}, 'operating_cash_flow': {'anyOf': [{'$ref': '#/properties/outcome/properties/signals/properties/revenue/anyOf/0'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Number of results to return (1-100). Defaults to 25.'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0, 'description': 'Zero-based row offset for paging within the requested `limit` window. At most 250 rows are inlined per call; if the response carries a `truncation` envelope, pass its `next_offset` here. Defaults to 0.'}, 'sector': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Filter to a specific sector (case-insensitive partial match). E.g. 'Technology', 'Healthcare'."}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "If provided, show only this ticker's factor scores (single-entity mode). Omit to screen the full universe."}, 'sort_by': {'enum': ['roe_rank', 'gross_margin_rank', 'operating_margin_rank', 'net_profit_margin_rank', 'revenue_growth_yoy_rank', 'fcf_to_assets_rank', 'debt_to_equity_rank', 'asset_turnover_rank', 'current_ratio_rank', 'piotroski_f_score_rank', 'composite_rank'], 'type': 'string', 'default': 'composite_rank', 'description': 'Which factor rank to sort by (see the enum). Defaults to composite_rank. An unrecognized column is rejected with INVALID_ARGUMENT (no silent fallback).'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time cutoff (YYYY-MM-DD). When set, the screen is reconstructed as of this date via factor_scores.accepted_at — each entity ranked at its latest-knowable period, zero look-ahead, survivorship-free. Omit for the latest snapshot.'}, 'exclude_outliers': {'type': 'boolean', 'default': False, 'description': 'Optional data-quality guard (default false). When true, additionally drops rows with implausible raw factor values (non-finite, or e.g. asset_turnover > 50x, |FCF/assets| > 10) from shell companies with near-zero denominators. Rows that do not join to a company (null symbol) are ALWAYS omitted in full-universe mode, regardless of this flag.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'plan', 'sort_by', 'results_returned', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'properties': {}, 'additionalProperties': True}, 'description': 'Ranked factor-score rows for the screened universe'}, 'note': {'type': 'string'}, 'plan': {'type': 'string', 'description': "Caller's data plan used to scope the screen"}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'ticker': {'type': 'string', 'description': 'Present only when a single-ticker lookup was requested'}, 'lineage': {'type': 'object', 'required': ['source_table', 'derivation', 'pit_safe', 'note', 'verify_with'], 'properties': {'note': {'type': 'string'}, 'pit_safe': {'type': 'boolean', 'const': False}, 'derivation': {'type': 'string', 'const': 'pipeline_computed'}, 'computed_at': {'type': 'string'}, 'verify_with': {'type': 'array', 'items': {'type': 'string'}}, 'source_table': {'type': 'string'}}, 'description': 'Provenance for pipeline-derived values (ratio.parquet / factor_scores.parquet): source table + pipeline computed_at, plus a pointer to the tools that return filing-level lineage. NOT point-in-time (recomputed on each pipeline run).', 'additionalProperties': False}, 'sort_by': {'type': 'string'}, 'pit_safe': {'type': 'boolean', 'description': 'Present (and true) only when as_of_date was supplied — the screen was filtered by factor_scores.accepted_at with zero look-ahead'}, 'as_of_date': {'type': 'string', 'description': 'Present only when a point-in-time as_of_date was supplied'}, 'truncation': {'type': 'object', 'required': ['truncated', 'returned', 'total_available', 'next_offset', 'hint'], 'properties': {'hint': {'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'truncated': {'type': 'boolean', 'const': True}, 'next_offset': {'type': 'integer', 'minimum': 0}, 'total_available': {'type': 'integer', 'minimum': 0}}, 'description': 'Present only when the inline-row cap withheld rows. Page with `next_offset` (keep the same `limit`) or pull the full set via get_compute_ready_stream.', 'additionalProperties': False}, 'sector_filter': {'type': 'string', 'description': 'Present only when a sector filter was applied'}, 'results_returned': {'type': 'integer'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cik': {'type': 'string', 'pattern': '^\\d{1,10}$', 'description': "SEC CIK identifier (exact match). E.g. '0000320193' for Apple."}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of results to return (1–50). Defaults to 25.'}, 'query': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "Free-text search over company name and ticker. Case-insensitive. E.g. 'Apple', 'AAPL', 'Microsoft', 'semiconductor'."}, 'is_sp500': {'type': 'boolean', 'description': 'Filter to current S&P 500 members only.'}, 'sic_code': {'type': 'string', 'pattern': '^\\d{4}$', 'description': "4-digit SIC industry code. E.g. '7372' for Prepackaged Software."}, 'is_active': {'type': 'boolean', 'description': 'Filter on whether the LISTING is current. true = currently trading; false = superseded listings only (delisted, or a ticker that moved to a new registrant). Omit to return both.'}, 'include_inactive': {'type': 'boolean', 'default': True, 'description': 'Whether delisted / superseded listings may appear in results. Defaults to true — this is a survivorship-free product, so a search must not silently hide dead companies by default. Set to false to restrict to currently-active listings only (equivalent to `is_active: true`, but as a search-scope toggle rather than a hard filter). If `is_active` is also supplied, `is_active` wins.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'query', 'results_returned', 'companies'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'query': {'type': ['string', 'null']}, 'companies': {'type': 'array', 'items': {'type': 'object', 'required': ['cik', 'ticker', 'name', 'sector', 'industry', 'sic_code', 'exchange', 'status', 'is_active', 'listed_until', 'valid_from', 'valid_to', 'is_sp500'], 'properties': {'cik': {'type': 'string'}, 'name': {'type': 'string'}, 'sector': {'type': ['string', 'null']}, 'status': {'type': 'string', 'description': "Entity-level flag from entity.status. Kept for back-compat and NOT a reliable liveness signal — it is wrong in both directions on real data (American Electric Power, a current S&P 500 member, reads 'INACTIVE'). Read `is_active` instead."}, 'ticker': {'type': ['string', 'null']}, 'exchange': {'type': ['string', 'null']}, 'industry': {'type': ['string', 'null']}, 'is_sp500': {'type': 'boolean'}, 'sic_code': {'type': ['string', 'null']}, 'valid_to': {'type': ['string', 'null'], 'description': 'Same value as `listed_until`, under the CIK-first-resolution naming convention. Both are returned for back-compat.'}, 'is_active': {'type': 'boolean', 'description': 'Whether THIS listing is the current one for its ticker. When a company reincorporates or forms a holdco, SEC issues a new CIK and moves the ticker to it, so one symbol can return two rows — the superseded listing (false, with `listed_until` set) and the current one (true).'}, 'valid_from': {'type': ['string', 'null'], 'description': 'Date this listing became current, or null when unknown. Paired with valid_to/cik/is_active so an agent can disambiguate a RECYCLED ticker — two rows for one symbol, each covering a different window — without a second call.'}, 'listed_until': {'type': ['string', 'null'], 'description': 'Date this listing stopped being current, or null while it still is. Non-null means the ticker moved to another registrant or the security was delisted.'}, 'match_confidence': {'enum': ['exact', 'high', 'medium', 'low'], 'type': 'string', 'description': 'How confidently this result matches your query text: exact = exact ticker/name match, high = name starts with query, medium = word-boundary or ticker-prefix match, low = bare substring match. Omitted for filter-only calls with no text query.'}}, 'additionalProperties': False}}, 'results_returned': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sort': {'enum': ['newest', 'oldest'], 'type': 'string', 'default': 'newest'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Free-text query over title + abstract (case-insensitive).'}, 'cursor': {'type': 'string', 'maxLength': 128}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Filter to a single subject ticker.'}, 'report_type': {'enum': ['reverse_dcf'], 'type': 'string', 'description': 'Filter by report type.'}, 'price_max_cents': {'type': 'integer', 'minimum': 0, 'description': 'Reserved for future paid listings; currently ignored (all reports are free).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'reports', 'next_cursor'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'reports': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'next_cursor': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key', 'value'], 'properties': {'key': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Memory key (1–128 chars). Reusing an existing key overwrites its value.'}, 'value': {'type': 'string', 'maxLength': 8000, 'description': 'The note to remember (≤8000 chars). Never store a figure you would cite as a fact — those come from data tools.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'memory', 'created'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'memory': {'type': 'object', 'required': ['key', 'value', 'created_at', 'updated_at'], 'properties': {'key': {'type': 'string'}, 'value': {'type': 'string'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}}, 'additionalProperties': False}, 'created': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id'], 'properties': {'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Identifier of the report to certify, as returned by create_report / list_my_reports / save_freeform_report. Must be authored by the calling customer.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'ok'], 'properties': {'ok': {'type': 'boolean'}, 'code': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'reason': {'type': ['string', 'null']}, 'message': {'type': 'string'}, 'verdict': {'type': 'string'}, 'coverage': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'external': {'type': 'number'}, 'rejected': {'type': 'number'}, 'verified': {'type': 'number'}, 'corrected': {'type': 'number'}, 'unresolved': {'type': 'number'}}, 'additionalProperties': False}, 'certificate': {'type': 'object', 'required': ['certificate_id', 'verify_url', 'signature', 'key_id'], 'properties': {'key_id': {'type': 'string'}, 'signature': {'type': 'string'}, 'verify_url': {'type': 'string'}, 'certificate_id': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tool_name', 'origin'], 'properties': {'origin': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': "Free-form label identifying who/what is proposing this action — e.g. 'agent-runner:managed', 'claude-connector', 'cursor', or any caller-supplied identifier. Lets a human distinguish which session/agent proposed a given write."}, 'tool_args': {'type': 'object', 'default': {}, 'description': 'The exact arguments to replay through that tool if/when a human approves.', 'additionalProperties': {}}, 'tool_name': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': "The MCP tool this action would call once approved (e.g. 'save_thesis', 'create_signal', 'publish_report')."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'result', 'risk_tier', 'staged_action_id', 'staged_action'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'result': {'enum': ['not_required', 'staged'], 'type': 'string'}, 'risk_tier': {'enum': ['green', 'amber', 'red'], 'type': 'string'}, 'staged_action': {'anyOf': [{'type': 'object', 'required': ['id', 'customer_id', 'tool_name', 'tool_args', 'risk_tier', 'origin', 'status', 'result', 'reason', 'created_at', 'decided_at'], 'properties': {'id': {'type': 'string'}, 'origin': {'type': 'string'}, 'reason': {'type': ['string', 'null']}, 'result': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "The underlying tool's own structured result, set once status='executed'."}, 'status': {'enum': ['proposed', 'approved', 'rejected', 'executed', 'failed'], 'type': 'string'}, 'risk_tier': {'enum': ['green', 'amber', 'red'], 'type': 'string'}, 'tool_args': {'type': 'object', 'additionalProperties': {}}, 'tool_name': {'type': 'string'}, 'created_at': {'type': 'number'}, 'decided_at': {'type': ['number', 'null']}, 'customer_id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'staged_action_id': {'type': ['string', 'null']}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['target_type', 'target_id', 'sentiment'], 'properties': {'reason': {'enum': ['wrong_number', 'bad_citation', 'missing_data', 'wrong_company', 'formatting', 'hallucinated_fact', 'tool_error', 'coverage_gap', 'other'], 'type': 'string', 'description': "Optional structured error-mode: 'wrong_number', 'bad_citation', 'missing_data', 'wrong_company', 'formatting', 'hallucinated_fact', 'tool_error', 'coverage_gap', or 'other'."}, 'ticker': {'type': 'string', 'pattern': '^[A-Za-z][A-Za-z0-9.\\-]{0,9}$', 'maxLength': 10, 'minLength': 1, 'description': "Optional ticker the disputed figure belongs to (e.g. 'AAPL', 'BRK.B'). ALWAYS send this alongside `fact_id` — a `fact_id` is a one-way hash that does not contain the symbol, so without it nobody can locate the filing and your report cannot be checked against the source. Supplying it is what turns a complaint into a verifiable one."}, 'fact_id': {'type': 'string', 'maxLength': 256, 'description': 'Optional disputed `fact_id` (most useful for wrong_number / bad_citation).'}, 'message': {'type': 'string', 'maxLength': 4000, 'description': 'Optional free-text detail (≤4000 chars). What you expected and what happened.'}, 'sentiment': {'enum': ['positive', 'negative', 'correction'], 'type': 'string', 'description': "REQUIRED. How you judge the artifact: 'positive' (it was right/useful), 'negative' (it was wrong/unhelpful), or 'correction' (you are supplying the right value via `expected_value`)."}, 'target_id': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'REQUIRED. The id of the artifact this feedback targets (a report id, thesis id, claim id, message id, tool-call id, or table/schema name).'}, 'request_id': {'type': 'string', 'maxLength': 256, 'description': 'Optional `_meta` request id of the turn that produced the artifact. Folded into the idempotency key so a retried submission of the same judgement files once.'}, 'target_type': {'enum': ['chat_message', 'report', 'thesis', 'claim', 'tool_call', 'schema', 'other'], 'type': 'string', 'description': "REQUIRED. The kind of artifact this feedback is about: 'chat_message', 'report', 'thesis', 'claim', 'tool_call', 'schema', or 'other'."}, 'expected_value': {'type': 'string', 'maxLength': 4000, 'description': 'Optional: what the value SHOULD have been, in your own words. Stored verbatim for triage — NEVER computed, restated, or trusted as data by Valuein.'}, 'idempotency_key': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Optional explicit dedupe key (1–64 chars). Used to dedupe when no `request_id` is supplied; safe to retry on a network error.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'feedback_id', 'status'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'recorded'}, 'feedback_id': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['category', 'message'], 'properties': {'reason': {'enum': ['wrong_number', 'bad_citation', 'missing_data', 'wrong_company', 'formatting', 'hallucinated_fact', 'tool_error', 'coverage_gap', 'other'], 'type': 'string', 'description': "Optional structured error-mode reason: 'wrong_number', 'bad_citation', 'missing_data', 'wrong_company', 'formatting', 'hallucinated_fact', 'tool_error', 'coverage_gap', or 'other'."}, 'context': {'type': 'object', 'description': "Optional free-form context object (stored as JSON), e.g. { tool: 'get_company_fundamentals', ticker: 'AAPL', request_id: 'abc123' }. Avoid secrets.", 'additionalProperties': {}}, 'fact_id': {'type': 'string', 'maxLength': 256, 'description': 'Optional disputed `fact_id` (for wrong_number / bad_citation feedback).'}, 'message': {'type': 'string', 'maxLength': 4000, 'minLength': 1, 'description': "The feedback body (1–4000 chars). Be specific: what you expected, what happened, and any reproduction steps. May contain the user's own words — it is stored for triage and never used for arithmetic."}, 'subject': {'type': 'string', 'maxLength': 140, 'description': 'Optional short title (≤140 chars) summarizing the feedback.'}, 'surface': {'enum': ['mcp', 'workspace', 'sdk', 'dashboard', 'api'], 'type': 'string', 'description': "Optional product surface the feedback concerns: 'mcp', 'workspace', 'sdk', 'dashboard', or 'api'."}, 'category': {'enum': ['bug', 'feature_request', 'experience', 'data_quality', 'other'], 'type': 'string', 'description': "What kind of feedback this is: 'bug' (something broke), 'feature_request' (something missing), 'experience' (UX / clarity / docs), 'data_quality' (a wrong/missing/stale figure), or 'other'."}, 'severity': {'enum': ['low', 'medium', 'high'], 'type': 'string', 'description': "Optional impact classification: 'low', 'medium', or 'high'."}, 'sentiment': {'enum': ['positive', 'negative', 'correction'], 'type': 'string', 'description': "Optional sentiment of this feedback: 'positive' (worked well), 'negative' (something was wrong), or 'correction' (you are supplying the right value)."}, 'target_id': {'type': 'string', 'maxLength': 256, 'description': 'Optional id of the artifact this feedback targets (e.g. a report or thesis id).'}, 'request_id': {'type': 'string', 'maxLength': 256, 'description': 'Optional `_meta` request id of the turn that produced the artifact, for correlation.'}, 'target_type': {'enum': ['chat_message', 'report', 'thesis', 'claim', 'tool_call', 'schema', 'other'], 'type': 'string', 'description': "Optional kind of artifact the feedback targets: 'chat_message', 'report', 'thesis', 'claim', 'tool_call', 'schema', or 'other'."}, 'expected_value': {'type': 'string', 'maxLength': 4000, 'description': 'Optional caller-asserted correct value, in your own words. Stored verbatim for triage — NEVER computed or trusted as data.'}, 'idempotency_key': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Optional client-supplied key (1–64 chars). For authenticated callers, reusing the same key files the feedback exactly once — safe to retry on a network error. Ignored for guest/sample callers (no account to scope dedup to).'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'feedback', 'acknowledgment'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'feedback': {'type': 'object', 'required': ['id', 'category', 'status', 'created_at'], 'properties': {'id': {'type': 'string'}, 'status': {'enum': ['open', 'triaged', 'resolved', 'dismissed'], 'type': 'string'}, 'category': {'enum': ['bug', 'feature_request', 'experience', 'data_quality', 'other'], 'type': 'string'}, 'created_at': {'type': 'integer'}}, 'additionalProperties': False}, 'acknowledgment': {'type': 'string'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['rule_id'], 'properties': {'rule_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the rule to dry-run, from create_rule or list_rules.'}, 'sample_payload_override': {'type': 'object', 'description': "Merged over the built-in synthetic payload for this rule's trigger_type — lets you test a specific value.", 'additionalProperties': {}}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'rule_id', 'would_fire', 'reason', 'synthetic_payload', 'action_type', 'note'], 'properties': {'note': {'type': 'string'}, '_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'reason': {'type': 'string'}, 'rule_id': {'type': 'string'}, 'would_fire': {'type': 'boolean'}, 'action_type': {'type': 'string'}, 'synthetic_payload': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['signal_id'], 'properties': {'signal_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the signal to fire a synthetic test notification through, as returned by create_signal or list_signals.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'signal_id', 'outcome', 'channel_type', 'status_code', 'error_message', 'channel_results'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'outcome': {'enum': ['success', 'retry', 'dead', 'skipped'], 'type': 'string'}, 'signal_id': {'type': 'string'}, 'status_code': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'channel_type': {'enum': ['email', 'webhook', 'slack', 'dashboard', 'agent_run'], 'type': 'string'}, 'error_message': {'type': ['string', 'null']}, 'channel_results': {'type': 'array', 'items': {'type': 'object', 'required': ['outcome', 'channel_type', 'status_code', 'error_message'], 'properties': {'outcome': {'enum': ['success', 'retry', 'dead', 'skipped'], 'type': 'string'}, 'status_code': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}, 'channel_type': {'enum': ['email', 'webhook', 'slack', 'dashboard', 'agent_run'], 'type': 'string'}, 'error_message': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['thesis_id', 'claim_id'], 'properties': {'claim_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the claim to unlink, as returned by save_claim or list_claims.'}, 'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Identifier of the thesis to unlink the claim from, as returned by save_thesis or list_theses.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'unlinked'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'unlinked': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['claim_id'], 'properties': {'claim_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id returned by `save_claim` or `list_claims`.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'claim'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'claim': {'type': 'object', 'required': ['id', 'statement', 'tickers', 'claim_type', 'tags', 'direction', 'confidence', 'eval_mode', 'verifiable_condition', 'antecedent', 'horizon_days', 'evidence', 'source_report_id', 'status', 'archived', 'visibility', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'status': {'enum': ['open', 'confirmed', 'refuted', 'expired', 'stale', 'needs_review'], 'type': 'string'}, 'tickers': {'type': 'array', 'items': {'type': 'string'}}, 'archived': {'type': 'boolean'}, 'evidence': {'type': 'object', 'required': ['fact_ids', 'source_urls'], 'properties': {'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50, 'description': 'fact_ids backing the claim. Verified against live SEC data at save time (rejected if unresolvable).'}, 'source_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri'}, 'maxItems': 50, 'description': 'SEC EDGAR (or report) deep links for one-click human verification.'}, 'source_links': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'sec_url', 'document_url', 'inline_viewer_url'], 'properties': {'url': {'type': 'string', 'description': 'The original stored source_url (verbatim).'}, 'sec_url': {'type': 'string', 'description': 'EDGAR filing-index page — always resolves.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document, or null.'}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer on the rendered filing, or null when not iXBRL.'}}, 'additionalProperties': False}, 'description': 'On-read enrichment of source_urls with interactive SEC viewer links.'}}, 'additionalProperties': False}, 'direction': {'enum': ['bullish', 'bearish', 'neutral'], 'type': 'string'}, 'eval_mode': {'enum': ['auto', 'agent', 'manual'], 'type': 'string'}, 'statement': {'type': 'string'}, 'antecedent': {'type': ['string', 'null']}, 'claim_type': {'enum': ['assertion', 'prediction', 'judgment'], 'type': 'string'}, 'confidence': {'type': 'number'}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string'}, 'horizon_days': {'type': ['number', 'null']}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C resolved-metric breakdown ({evaluated, basis} from gradeClaim). Null when not yet resolved or resolved without a breakdown (manual); absent entirely on claims resolved before Phase C shipped — both mean 'no components recorded'."}, 'verifiable_condition': {'anyOf': [{'type': 'object', 'required': ['metric', 'op', 'threshold', 'unit'], 'properties': {'op': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq', 'approx'], 'type': 'string', 'description': 'Comparison operator the grader applies as: metric_value <op> threshold.'}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}], 'description': "Display unit ('%', 'x', 'usd') or null."}, 'metric': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Canonical metric key, e.g. 'gross_margin', 'revenue_yoy', 'net_debt_to_ebitda'."}, 'threshold': {'type': 'number', 'description': 'Numeric threshold the metric is compared against.'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id'], 'properties': {'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'report'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'report': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['thesis_id'], 'properties': {'thesis_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id returned by `save_thesis` or `list_theses`.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'thesis'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'thesis': {'type': 'object', 'required': ['id', 'ticker', 'view', 'conviction', 'horizon_days', 'thesis_at_price_cents', 'notes', 'source_report_id', 'status', 'outcome_grade', 'outcome_score', 'outcome_scored_at', 'outcome_reason', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'view': {'enum': ['bull', 'bear', 'neutral'], 'type': 'string'}, 'notes': {'type': ['string', 'null']}, 'status': {'enum': ['active', 'closed', 'archived'], 'type': 'string'}, 'ticker': {'type': 'string'}, 'conviction': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'visibility': {'enum': ['private', 'unlisted', 'public'], 'type': 'string', 'description': "Phase 3 visibility: 'private' (owner-only), 'unlisted' (known URL), 'public' (surfaces on the author's /[handle] profile + reputation)."}, 'horizon_days': {'type': 'integer', 'exclusiveMinimum': 0}, 'outcome_grade': {'anyOf': [{'enum': ['correct', 'wrong', 'neutral', 'pending'], 'type': 'string'}, {'type': 'null'}]}, 'outcome_score': {'type': ['number', 'null']}, 'outcome_reason': {'type': ['string', 'null']}, 'source_report_id': {'type': ['string', 'null']}, 'outcome_scored_at': {'type': ['number', 'null']}, 'outcome_components': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': "Phase C fundamentals × price breakdown (fundamentals_score, price_score, price_return_pct, legs_used, basis, …). Null when not yet scored or scored without a breakdown; absent entirely on records graded before Phase C shipped — both mean 'no components recorded'."}, 'thesis_at_price_cents': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id', 'sections'], 'properties': {'title': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Optional new title.'}, 'abstract': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Optional new abstract.'}, 'sections': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'markdown'], 'properties': {'id': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'heading': {'type': 'string', 'maxLength': 200}, 'markdown': {'type': 'string', 'maxLength': 20000}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1, 'description': 'Sections to replace. Sections not listed are preserved — to DELETE one, name it in `remove_section_ids`. Section ids must match the existing payload.'}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['claim', 'fact_ids'], 'properties': {'claim': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': "Plain-English claim, quoting the figure as the prose writes it (e.g. 'FY2024 revenue: $391.0B')."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1, 'description': 'Ticker the fact belongs to. Lets a figure be verified when the report has no ticker.'}, 'evidence': {'enum': ['primary', 'derived', 'external'], 'type': 'string', 'description': "Provenance class. Defaults to 'derived' — the weaker claim."}, 'fact_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'maxItems': 50, 'description': 'Valuein fact_ids backing the claim, as returned by the data tools.'}, 'filed_at': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'SEC acceptance timestamp of the filing (ISO 8601) — when the figure became public.'}, 'sec_urls': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'maxItems': 50, 'description': 'Optional EDGAR URLs, one per accession.'}, 'form_type': {'type': 'string', 'maxLength': 20, 'minLength': 1, 'description': "SEC form the figure was reported on ('10-K', '10-Q', '20-F'), verbatim from the source."}, 'period_end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Last day of the period the figure COVERS (YYYY-MM-DD). Not the filing date.'}, 'period_label': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': "How the filer names that period: 'FY2025', 'Q3 2025'."}, 'accession_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 32, 'minLength': 1}, 'maxItems': 50, 'description': 'Optional SEC accession ids backing the claim.'}}, 'additionalProperties': False}, 'maxItems': 1000, 'description': "Lineage for figures in the edited sections. MERGED into the report's existing citations (first claim wins), never replacing them — so an editor autosave that sends none preserves every citation the report already had."}, 'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Identifier of the report to update, as returned by create_report or list_my_reports.'}, 'expected_version': {'type': 'integer', 'description': "Optimistic concurrency check. If supplied and the current HEAD version is different, the call returns a `version_conflict` error WITHOUT writing. Pass the version you loaded so a concurrent agent edit produces a 'conflict — review' UX instead of silently overwriting (eng review A3A).", 'exclusiveMinimum': 0}, 'remove_section_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128, 'minLength': 1}, 'maxItems': 20, 'description': 'Section ids to DELETE outright. Without this, a merge-only update cannot express a deletion: an editor that drops a section simply omits it, the omitted section is preserved, and the caller sees a bumped version with the deleted content still there — a save that reports success and changed nothing. Ids must exist, and the last remaining section cannot be removed (a report with no sections is unreadable); remove the report instead with delete_report.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'report', 'version', 'previous_version', 'archived'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'report': {'type': 'object', 'additionalProperties': {}}, 'version': {'type': 'integer'}, 'archived': {'type': 'boolean'}, 'previous_version': {'anyOf': [{'type': 'integer'}, {'type': 'null'}]}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['alert_id'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'New human-readable label.'}, 'alert_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The signal's `id` from `list_signals` / `create_signal`."}, 'channels': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'email'}, 'target': {'type': 'string', 'format': 'email', 'maxLength': 256}, 'hmac_secret': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'webhook'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512}, 'hmac_secret': {'type': 'string', 'maxLength': 128, 'minLength': 16, 'description': 'HMAC secret (≥16 chars) for webhook signature verification. Recommended for production.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'dashboard'}, 'target': {'type': 'string', 'default': '@self', 'maxLength': 16, 'description': "Always '@self' for dashboard channels. Routes to the in-app inbox keyed by the signal's owning customer."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'slack'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512, 'description': 'Slack incoming-webhook URL — must be on host hooks.slack.com (e.g. https://hooks.slack.com/services/T0000/B0000/XXXX). The URL itself is the secret, so no HMAC is used.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'agent_run'}, 'target': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A standing_agent.id identifying which standing agent team to run when this signal fires. NOT a URL — no outbound-URL validation applies to this field.'}}, 'additionalProperties': False}]}, 'maxItems': 4, 'minItems': 1, 'description': 'New delivery list (up to 4, each a distinct type+target). Replaces the stored list entirely; the first entry becomes `channel`.'}, 'condition': {'anyOf': [{'type': 'object', 'required': ['type', 'tickers', 'forms'], 'properties': {'type': {'type': 'string', 'const': 'filing_event'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to listen for, e.g. ['8-K', '10-K'] or ['SC 13D']. An EMPTY list means any filing. Amendments match their base form (a 10-K/A fires a 10-K signal) and EDGAR's two spellings of the schedules are equivalent ('SC 13D' === 'SCHEDULE 13D')."}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 50, 'minItems': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'ratio', 'comparator', 'threshold'], 'properties': {'type': {'type': 'string', 'const': 'ratio_threshold'}, 'ratio': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': "Ratio name (e.g. 'interest_coverage' or 'net_debt_to_ebitda')."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'threshold': {'type': 'number'}, 'comparator': {'enum': ['lt', 'gt', 'lte', 'gte'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_change'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to fire on, e.g. ['10-K', '10-Q']. Omit to keep the historical default set (8-K, 10-K, 10-Q, 20-F, 6-K, SC 13D, SC 13G, S-1, S-3); an empty list means any filing."}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'direction', 'threshold_pct', 'window_days'], 'properties': {'type': {'type': 'string', 'const': 'price_move'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'direction': {'enum': ['up', 'down', 'any'], 'type': 'string', 'description': "Which direction of move to fire on. 'any' fires on either direction."}, 'window_days': {'enum': [1, 5, 21], 'type': 'number', 'description': 'Trading-day lookback window: 1 (daily), 5 (weekly), or 21 (monthly).'}, 'threshold_pct': {'type': 'number', 'maximum': 50, 'minimum': 0.5, 'description': 'Minimum absolute close-to-close move, in percent (0.5–50), to fire.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'concept', 'change'], 'properties': {'type': {'type': 'string', 'const': 'fundamental_change'}, 'change': {'enum': ['new_period', 'restated', 'any'], 'type': 'string', 'description': "'new_period' fires only on a brand-new reporting period; 'restated' fires only when an already-reported period gets a new accepted_at vintage (an amendment); 'any' fires on either."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'concept': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "Standard concept name, e.g. 'TotalRevenue', 'NetIncome', 'OperatingCashFlow'."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_restatement'}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Fire when ANY company in this watchlist has a fact materially restated (>0.5% swing) by a later SEC filing — the Restatement Radar, scoped to a watchlist. Distinct from fundamental_change (one ticker + one concept).'}}, 'additionalProperties': False}], 'description': 'New condition — the same discriminated union `create_signal` takes. Replaces the stored condition entirely.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'signal', 'cron_indexed'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'signal': {'type': 'object', 'required': ['id', 'name', 'condition', 'channel', 'channels', 'status', 'last_triggered_at', 'trigger_count', 'created_at', 'updated_at'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'status': {'enum': ['active', 'paused', 'deleted'], 'type': 'string'}, 'channel': {'anyOf': [{'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'email'}, 'target': {'type': 'string', 'format': 'email', 'maxLength': 256}, 'hmac_secret': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'webhook'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512}, 'hmac_secret': {'type': 'string', 'maxLength': 128, 'minLength': 16, 'description': 'HMAC secret (≥16 chars) for webhook signature verification. Recommended for production.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'dashboard'}, 'target': {'type': 'string', 'default': '@self', 'maxLength': 16, 'description': "Always '@self' for dashboard channels. Routes to the in-app inbox keyed by the signal's owning customer."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'slack'}, 'target': {'type': 'string', 'format': 'uri', 'maxLength': 512, 'description': 'Slack incoming-webhook URL — must be on host hooks.slack.com (e.g. https://hooks.slack.com/services/T0000/B0000/XXXX). The URL itself is the secret, so no HMAC is used.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'target'], 'properties': {'type': {'type': 'string', 'const': 'agent_run'}, 'target': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A standing_agent.id identifying which standing agent team to run when this signal fires. NOT a URL — no outbound-URL validation applies to this field.'}}, 'additionalProperties': False}]}, 'channels': {'type': 'array', 'items': {'$ref': '#/properties/signal/properties/channel'}, 'maxItems': 4, 'minItems': 1}, 'condition': {'anyOf': [{'type': 'object', 'required': ['type', 'tickers', 'forms'], 'properties': {'type': {'type': 'string', 'const': 'filing_event'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to listen for, e.g. ['8-K', '10-K'] or ['SC 13D']. An EMPTY list means any filing. Amendments match their base form (a 10-K/A fires a 10-K signal) and EDGAR's two spellings of the schedules are equivalent ('SC 13D' === 'SCHEDULE 13D')."}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 50, 'minItems': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'ratio', 'comparator', 'threshold'], 'properties': {'type': {'type': 'string', 'const': 'ratio_threshold'}, 'ratio': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': "Ratio name (e.g. 'interest_coverage' or 'net_debt_to_ebitda')."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'threshold': {'type': 'number'}, 'comparator': {'enum': ['lt', 'gt', 'lte', 'gte'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_change'}, 'forms': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'maxItems': 25, 'description': "SEC form types to fire on, e.g. ['10-K', '10-Q']. Omit to keep the historical default set (8-K, 10-K, 10-Q, 20-F, 6-K, SC 13D, SC 13G, S-1, S-3); an empty list means any filing."}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'direction', 'threshold_pct', 'window_days'], 'properties': {'type': {'type': 'string', 'const': 'price_move'}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'direction': {'enum': ['up', 'down', 'any'], 'type': 'string', 'description': "Which direction of move to fire on. 'any' fires on either direction."}, 'window_days': {'enum': [1, 5, 21], 'type': 'number', 'description': 'Trading-day lookback window: 1 (daily), 5 (weekly), or 21 (monthly).'}, 'threshold_pct': {'type': 'number', 'maximum': 50, 'minimum': 0.5, 'description': 'Minimum absolute close-to-close move, in percent (0.5–50), to fire.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'ticker', 'concept', 'change'], 'properties': {'type': {'type': 'string', 'const': 'fundamental_change'}, 'change': {'enum': ['new_period', 'restated', 'any'], 'type': 'string', 'description': "'new_period' fires only on a brand-new reporting period; 'restated' fires only when an already-reported period gets a new accepted_at vintage (an amendment); 'any' fires on either."}, 'ticker': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'concept': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "Standard concept name, e.g. 'TotalRevenue', 'NetIncome', 'OperatingCashFlow'."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'watchlist_name'], 'properties': {'type': {'type': 'string', 'const': 'watchlist_restatement'}, 'watchlist_name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Fire when ANY company in this watchlist has a fact materially restated (>0.5% swing) by a later SEC filing — the Restatement Radar, scoped to a watchlist. Distinct from fundamental_change (one ticker + one concept).'}}, 'additionalProperties': False}]}, 'created_at': {'type': 'number'}, 'updated_at': {'type': 'number'}, 'last_error_at': {'type': ['number', 'null']}, 'trigger_count': {'type': 'integer'}, 'last_evaluated_at': {'type': ['number', 'null']}, 'last_triggered_at': {'type': ['number', 'null']}, 'last_error_message': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'cron_indexed': {'type': 'boolean'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'."}, 'concept': {'enum': ['TotalRevenue', 'CostOfRevenue', 'GrossProfit', 'OperatingIncome', 'OperatingExpenses', 'ResearchAndDevelopment', 'NetIncome', 'EPSDiluted', 'TotalAssets', 'TotalLiabilities', 'StockholdersEquity', 'StockholdersEquityIncludingNCI', 'CashAndEquivalents', 'TotalDebt', 'OperatingCashFlow', 'CAPEX', 'Dividends', 'ShareBuyback', 'DebtIssuance', 'DebtRepayment', 'Acquisitions', 'Divestitures'], 'type': 'string', 'description': "Standard concept to look up the most recently known fact for (see the enum for the full fundamentals + capital-allocation set). Use this when you don't have a fact_id. Provide either concept OR fact_id."}, 'fact_id': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'description': 'Deterministic fact identity hash: SHA-256(entity_id|accession_id|concept|period_end|unit). 64-char lowercase hex. Use this when you already have the hash from a previous query. Provide either fact_id OR concept (not both required, but at least one must be set).'}, 'as_of_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Point-in-time cutoff (YYYY-MM-DD) used with `concept` — returns the latest fact whose 10-K/10-Q was accepted by SEC on or before this date (true PIT, no lookahead; any calendar date works). Canonical name across the suite; supersedes the legacy `period_end`.'}, 'period_end': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': "[DEPRECATED — pass `as_of_date` instead.] Filing-acceptance cutoff (YYYY-MM-DD) used with `concept`; despite the name it filters on filing accepted_at, not the returned fact's period_end. Kept one release for back-compat."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'verified', 'lookup_by'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'lineage': {'type': 'object', 'required': ['fact_id', 'entity_id', 'ticker', 'company_name', 'accession_id', 'concept', 'standard_concept', 'unit', 'numeric_value', 'derived_quarterly_value', 'display', 'derived_quarterly_display', 'accepted_at', 'source_url', 'inline_viewer_url', 'document_url', 'filing_date', 'form_type', 'period_start', 'period_end', 'period_span_days', 'period_type'], 'properties': {'unit': {'type': 'string', 'description': 'Unit of the value, e.g. USD, USD/share, shares.'}, 'ticker': {'type': 'string', 'description': 'Uppercase ticker the lookup resolved through.'}, 'concept': {'type': 'string', 'description': 'Raw XBRL tag as the filer used it, e.g. us-gaap:Revenues.'}, 'display': {'type': ['string', 'null'], 'description': '`numeric_value` ALREADY RENDERED — "$391.04B", "$6.11". QUOTE THIS character-for-character rather than re-rounding `numeric_value` yourself: the rendering also needs a scale, and `unit` alone cannot tell a fraction (0.5965 → "59.65%") from a percent (0.5965 → "0.60%"). Null when `numeric_value` is null.'}, 'fact_id': {'type': 'string', 'description': 'Deterministic fact identity: SHA-256(entity_id|accession_id|concept|period_end|unit), 64-char lowercase hex.'}, 'entity_id': {'type': 'string', 'description': 'Zero-padded 10-digit SEC CIK of the filer. (The key is named entity_id — there is no `cik` field.)'}, 'form_type': {'type': ['string', 'null'], 'description': 'Filing form type — 10-K, 10-Q, 8-K, 20-F. Null when the filing join found nothing.'}, 'period_end': {'type': ['string', 'null'], 'description': 'End of the reporting window (YYYY-MM-DD), or the instant date for balance-sheet facts.'}, 'source_url': {'type': ['string', 'null'], 'description': 'SEC filing-index URL. Null when the filing join found nothing.'}, 'accepted_at': {'type': ['string', 'null'], 'description': 'SEC acceptance timestamp (ISO 8601) — the moment this number became public. The PIT cut is taken on this.'}, 'filing_date': {'type': ['string', 'null'], 'description': 'Filing date (YYYY-MM-DD). Null when the filing join found nothing.'}, 'period_type': {'type': 'string', 'description': 'Coarse duration class: instant | quarterly | half_year | nine_month | annual | duration. A single 10-K tags BOTH a 12-month figure and a 3-month Q4 stub at the same period_end, so this is what stops a stub being quoted as the annual number.'}, 'accession_id': {'type': 'string', 'description': 'SEC accession number of the filing that reported this value, e.g. 0000320193-24-000123.'}, 'company_name': {'type': 'string', 'description': 'Registrant name as filed.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document (not the index page). Null when the primary document is unknown.'}, 'period_start': {'type': ['string', 'null'], 'description': 'Start of the reporting window (YYYY-MM-DD). Null for instant (balance-sheet) facts.'}, 'numeric_value': {'type': ['number', 'null'], 'description': 'The raw reported value. Null when the fact carries no numeric value.'}, 'period_span_days': {'type': ['number', 'null'], 'description': 'Length of the reporting window in days. Null when not derivable.'}, 'standard_concept': {'type': ['string', 'null'], 'description': "Valuein's standardized concept name (TotalRevenue, NetIncome, …); null when the raw tag is unmapped."}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer opened on the rendered primary document — the strongest one-click verification link. Null when the filing is not Inline-XBRL or the primary document is unknown.'}, 'derived_quarterly_value': {'type': ['number', 'null'], 'description': 'The three-month figure derived from a year-to-date filing. A Q2/Q3 10-Q states YTD, so THIS and `numeric_value` are different numbers for the same fact — a verifier comparing against whichever one it happened to read passes wrong numbers half the time. Null when no derivation applies.'}, 'derived_quarterly_display': {'type': ['string', 'null'], 'description': '`derived_quarterly_value` rendered the same way. Null when that value is null.'}}, 'description': 'Full provenance for one fact. Identity: fact_id, entity_id, ticker, company_name, concept, standard_concept, accession_id. Value: numeric_value (raw), `display` (the SAME number already rendered — "$391.04B" — QUOTE THIS rather than re-rounding numeric_value yourself), unit, plus derived_quarterly_value/derived_quarterly_display (a Q2/Q3 10-Q states year-to-date, so the quarter and the filing are different numbers). Filing: source_url, inline_viewer_url, document_url, filing_date, form_type, accepted_at. Duration: period_start, period_end, period_span_days, and period_type (instant | quarterly | half_year | nine_month | annual | duration) so a 3-month stub is never mistaken for the 12-month figure — a 10-K tags BOTH at the same period_end. ⚠️ There is no `value` key and no `cik` key; the fields are named exactly as emitted.', 'additionalProperties': False}, 'verified': {'type': 'boolean', 'description': 'True when the fact was located and its provenance resolved'}, 'lookup_by': {'type': 'string', 'description': "How the fact was located: 'fact_id' or 'concept'"}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['facts'], 'properties': {'facts': {'type': 'array', 'items': {'type': 'object', 'required': ['ticker', 'fact_id'], 'properties': {'ticker': {'type': 'string', 'pattern': '^[A-Za-z0-9.\\-]+$', 'maxLength': 10, 'minLength': 1, 'description': "Stock ticker symbol, e.g. AAPL, MSFT, BRK.B — or a CIK (SEC identifier), e.g. '0000320193'. The company the fact belongs to; a fact_id is only resolvable against its own filer."}, 'fact_id': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'description': 'Deterministic fact identity hash: SHA-256(entity_id|accession_id|concept|period_end|unit), 64-char lowercase hex, exactly as a previous tool result gave it to you. Never invent one.'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1, 'description': "The facts to verify, 1–50 of them. Group a report's whole citation list here rather than calling once per figure. Duplicate (ticker, fact_id) pairs are resolved once and returned once, in first-seen order."}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'results', 'summary'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'results': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['ticker', 'fact_id', 'found', 'lineage'], 'properties': {'found': {'type': 'boolean', 'const': True, 'description': 'The fact resolved; `lineage` carries its full provenance chain.'}, 'ticker': {'type': 'string', 'description': 'The uppercased ticker (or CIK) this item asked about.'}, 'fact_id': {'type': 'string', 'description': 'The fact_id this item asked about — echoed so a caller can key results without relying on order.'}, 'lineage': {'type': 'object', 'required': ['fact_id', 'entity_id', 'ticker', 'company_name', 'accession_id', 'concept', 'standard_concept', 'unit', 'numeric_value', 'derived_quarterly_value', 'display', 'derived_quarterly_display', 'accepted_at', 'source_url', 'inline_viewer_url', 'document_url', 'filing_date', 'form_type', 'period_start', 'period_end', 'period_span_days', 'period_type'], 'properties': {'unit': {'type': 'string', 'description': 'Unit of the value, e.g. USD, USD/share, shares.'}, 'ticker': {'type': 'string', 'description': 'Uppercase ticker the lookup resolved through.'}, 'concept': {'type': 'string', 'description': 'Raw XBRL tag as the filer used it, e.g. us-gaap:Revenues.'}, 'display': {'type': ['string', 'null'], 'description': '`numeric_value` ALREADY RENDERED — "$391.04B", "$6.11". QUOTE THIS character-for-character rather than re-rounding `numeric_value` yourself: the rendering also needs a scale, and `unit` alone cannot tell a fraction (0.5965 → "59.65%") from a percent (0.5965 → "0.60%"). Null when `numeric_value` is null.'}, 'fact_id': {'type': 'string', 'description': 'Deterministic fact identity: SHA-256(entity_id|accession_id|concept|period_end|unit), 64-char lowercase hex.'}, 'entity_id': {'type': 'string', 'description': 'Zero-padded 10-digit SEC CIK of the filer. (The key is named entity_id — there is no `cik` field.)'}, 'form_type': {'type': ['string', 'null'], 'description': 'Filing form type — 10-K, 10-Q, 8-K, 20-F. Null when the filing join found nothing.'}, 'period_end': {'type': ['string', 'null'], 'description': 'End of the reporting window (YYYY-MM-DD), or the instant date for balance-sheet facts.'}, 'source_url': {'type': ['string', 'null'], 'description': 'SEC filing-index URL. Null when the filing join found nothing.'}, 'accepted_at': {'type': ['string', 'null'], 'description': 'SEC acceptance timestamp (ISO 8601) — the moment this number became public. The PIT cut is taken on this.'}, 'filing_date': {'type': ['string', 'null'], 'description': 'Filing date (YYYY-MM-DD). Null when the filing join found nothing.'}, 'period_type': {'type': 'string', 'description': 'Coarse duration class: instant | quarterly | half_year | nine_month | annual | duration. A single 10-K tags BOTH a 12-month figure and a 3-month Q4 stub at the same period_end, so this is what stops a stub being quoted as the annual number.'}, 'accession_id': {'type': 'string', 'description': 'SEC accession number of the filing that reported this value, e.g. 0000320193-24-000123.'}, 'company_name': {'type': 'string', 'description': 'Registrant name as filed.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document (not the index page). Null when the primary document is unknown.'}, 'period_start': {'type': ['string', 'null'], 'description': 'Start of the reporting window (YYYY-MM-DD). Null for instant (balance-sheet) facts.'}, 'numeric_value': {'type': ['number', 'null'], 'description': 'The raw reported value. Null when the fact carries no numeric value.'}, 'period_span_days': {'type': ['number', 'null'], 'description': 'Length of the reporting window in days. Null when not derivable.'}, 'standard_concept': {'type': ['string', 'null'], 'description': "Valuein's standardized concept name (TotalRevenue, NetIncome, …); null when the raw tag is unmapped."}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer opened on the rendered primary document — the strongest one-click verification link. Null when the filing is not Inline-XBRL or the primary document is unknown.'}, 'derived_quarterly_value': {'type': ['number', 'null'], 'description': 'The three-month figure derived from a year-to-date filing. A Q2/Q3 10-Q states YTD, so THIS and `numeric_value` are different numbers for the same fact — a verifier comparing against whichever one it happened to read passes wrong numbers half the time. Null when no derivation applies.'}, 'derived_quarterly_display': {'type': ['string', 'null'], 'description': '`derived_quarterly_value` rendered the same way. Null when that value is null.'}}, 'description': 'Full provenance for one fact. Identity: fact_id, entity_id, ticker, company_name, concept, standard_concept, accession_id. Value: numeric_value (raw), `display` (the SAME number already rendered — "$391.04B" — QUOTE THIS rather than re-rounding numeric_value yourself), unit, plus derived_quarterly_value/derived_quarterly_display (a Q2/Q3 10-Q states year-to-date, so the quarter and the filing are different numbers). Filing: source_url, inline_viewer_url, document_url, filing_date, form_type, accepted_at. Duration: period_start, period_end, period_span_days, and period_type (instant | quarterly | half_year | nine_month | annual | duration) so a 3-month stub is never mistaken for the 12-month figure — a 10-K tags BOTH at the same period_end. ⚠️ There is no `value` key and no `cik` key; the fields are named exactly as emitted.', 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['ticker', 'fact_id', 'found', 'error'], 'properties': {'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string', 'description': 'Machine-readable reason: TICKER_NOT_FOUND (the company is outside the bucket your plan reads), DATA_NOT_AVAILABLE_FOR_PERIOD (the period is outside your history window), DATA_NOT_FOUND / FACT_NOT_FOUND (no fact carries that fact_id for that company), or any other code the lookup raised — the original code is preserved, never flattened.'}, 'message': {'type': 'string', 'description': 'Human-readable detail for this item.'}}, 'description': 'Why this item could not be resolved. Never fabricate a lineage for an item that carries this.', 'additionalProperties': False}, 'found': {'type': 'boolean', 'const': False, 'description': 'This one fact could not be resolved. The other items in the call are unaffected — read them.'}, 'ticker': {'type': 'string', 'description': 'The uppercased ticker (or CIK) this item asked about.'}, 'fact_id': {'type': 'string', 'description': 'The fact_id this item asked about.'}}, 'additionalProperties': False}]}, 'description': 'One entry per UNIQUE requested pair, in first-seen order. Check `found` before reading `lineage`.'}, 'summary': {'type': 'object', 'required': ['requested', 'found', 'missing'], 'properties': {'found': {'type': 'number', 'description': 'How many resolved to a filing.'}, 'missing': {'type': 'number', 'description': 'How many did not. Always `requested - found`; a non-zero value is a fact about your citations, not about this call.'}, 'requested': {'type': 'number', 'description': 'Unique (ticker, fact_id) pairs resolved — duplicates in your input are collapsed.'}}, 'description': 'Counts over `results`. Quote `missing` when reporting coverage — it is the number of figures you could NOT tie to a filing.', 'additionalProperties': False}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['report_id'], 'properties': {'report_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Identifier of the report to verify, as returned by create_report / list_my_reports / save_freeform_report. Must be authored by the calling customer.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'report_id', 'version', 'figures', 'coverage', 'summary', 'lineage'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'figures': {'type': 'array', 'items': {'type': 'object', 'required': ['figure_key', 'raw', 'section_id', 'fact_id', 'verdict', 'reviewed'], 'properties': {'raw': {'type': 'string', 'description': 'The token exactly as the prose writes it. Never reformatted.'}, 'fact_id': {'type': ['string', 'null'], 'description': 'The fact this figure resolved to; null when nothing traced it.'}, 'verdict': {'anyOf': [{'type': 'object', 'required': ['kind', 'against'], 'properties': {'kind': {'type': 'string', 'const': 'matches'}, 'against': {'type': 'string', 'description': "Which rendered string the prose matched: `display` (the filing's own figure) or `derived_quarterly_display` (the three-month figure derived from a year-to-date filing)."}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'figure', 'display', 'derived_quarterly_display', 'scope'], 'properties': {'kind': {'type': 'string', 'const': 'differs'}, 'scope': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Declared filing fields the lineage CONTRADICTS — `ticker`, `form_type`, `period_end`. Empty when only the value differs. A non-empty scope means the citation points at the wrong filing, so re-quoting `display` will not fix it.'}, 'figure': {'type': 'string', 'description': 'The figure EXACTLY as the report writes it — the string that is wrong.'}, 'display': {'type': ['string', 'null'], 'description': 'What the filing says, already rendered. QUOTE THIS character-for-character to fix the report.'}, 'derived_quarterly_display': {'type': ['string', 'null'], 'description': 'The derived three-month figure, rendered. If the report meant the QUARTER rather than the year-to-date number, this is the string to quote instead.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'reason'], 'properties': {'kind': {'type': 'string', 'const': 'not_checkable'}, 'reason': {'type': 'string', 'description': 'Why no comparison happened: `no_fact` (the figure was never traced to a fact), `no_display` (the fact carries no rendered string), `fact_not_found`, `lineage_unreadable`, `lookup_failed`, `rate_limited`. ⚠️ NOT A PASS — this figure needs a human, not a retry.'}}, 'additionalProperties': False}]}, 'reviewed': {'type': 'boolean', 'description': 'Does a human review mark already exist for this key? A mark ends the question — including for a `differs`.'}, 'figure_key': {'type': 'string', 'description': 'Stable identity of this figure — the exact key `save_figure_review` is written against.'}, 'section_id': {'type': 'string', 'description': 'The report section the figure appears in.'}}, 'additionalProperties': False}, 'description': "One entry per distinct figure in the report's prose. An empty array means the report states no numbers."}, 'lineage': {'type': 'object', 'description': "Every lineage that resolved, keyed by fact_id — the filing behind each figure, so you can cite it without a second call. A fact that did NOT resolve is absent; its figure's verdict already says why.", 'additionalProperties': {'type': 'object', 'required': ['fact_id', 'entity_id', 'ticker', 'company_name', 'accession_id', 'concept', 'standard_concept', 'unit', 'numeric_value', 'derived_quarterly_value', 'display', 'derived_quarterly_display', 'accepted_at', 'source_url', 'inline_viewer_url', 'document_url', 'filing_date', 'form_type', 'period_start', 'period_end', 'period_span_days', 'period_type'], 'properties': {'unit': {'type': 'string', 'description': 'Unit of the value, e.g. USD, USD/share, shares.'}, 'ticker': {'type': 'string', 'description': 'Uppercase ticker the lookup resolved through.'}, 'concept': {'type': 'string', 'description': 'Raw XBRL tag as the filer used it, e.g. us-gaap:Revenues.'}, 'display': {'type': ['string', 'null'], 'description': '`numeric_value` ALREADY RENDERED — "$391.04B", "$6.11". QUOTE THIS character-for-character rather than re-rounding `numeric_value` yourself: the rendering also needs a scale, and `unit` alone cannot tell a fraction (0.5965 → "59.65%") from a percent (0.5965 → "0.60%"). Null when `numeric_value` is null.'}, 'fact_id': {'type': 'string', 'description': 'Deterministic fact identity: SHA-256(entity_id|accession_id|concept|period_end|unit), 64-char lowercase hex.'}, 'entity_id': {'type': 'string', 'description': 'Zero-padded 10-digit SEC CIK of the filer. (The key is named entity_id — there is no `cik` field.)'}, 'form_type': {'type': ['string', 'null'], 'description': 'Filing form type — 10-K, 10-Q, 8-K, 20-F. Null when the filing join found nothing.'}, 'period_end': {'type': ['string', 'null'], 'description': 'End of the reporting window (YYYY-MM-DD), or the instant date for balance-sheet facts.'}, 'source_url': {'type': ['string', 'null'], 'description': 'SEC filing-index URL. Null when the filing join found nothing.'}, 'accepted_at': {'type': ['string', 'null'], 'description': 'SEC acceptance timestamp (ISO 8601) — the moment this number became public. The PIT cut is taken on this.'}, 'filing_date': {'type': ['string', 'null'], 'description': 'Filing date (YYYY-MM-DD). Null when the filing join found nothing.'}, 'period_type': {'type': 'string', 'description': 'Coarse duration class: instant | quarterly | half_year | nine_month | annual | duration. A single 10-K tags BOTH a 12-month figure and a 3-month Q4 stub at the same period_end, so this is what stops a stub being quoted as the annual number.'}, 'accession_id': {'type': 'string', 'description': 'SEC accession number of the filing that reported this value, e.g. 0000320193-24-000123.'}, 'company_name': {'type': 'string', 'description': 'Registrant name as filed.'}, 'document_url': {'type': ['string', 'null'], 'description': 'Direct link to the rendered primary document (not the index page). Null when the primary document is unknown.'}, 'period_start': {'type': ['string', 'null'], 'description': 'Start of the reporting window (YYYY-MM-DD). Null for instant (balance-sheet) facts.'}, 'numeric_value': {'type': ['number', 'null'], 'description': 'The raw reported value. Null when the fact carries no numeric value.'}, 'period_span_days': {'type': ['number', 'null'], 'description': 'Length of the reporting window in days. Null when not derivable.'}, 'standard_concept': {'type': ['string', 'null'], 'description': "Valuein's standardized concept name (TotalRevenue, NetIncome, …); null when the raw tag is unmapped."}, 'inline_viewer_url': {'type': ['string', 'null'], 'description': 'SEC Inline-XBRL viewer opened on the rendered primary document — the strongest one-click verification link. Null when the filing is not Inline-XBRL or the primary document is unknown.'}, 'derived_quarterly_value': {'type': ['number', 'null'], 'description': 'The three-month figure derived from a year-to-date filing. A Q2/Q3 10-Q states YTD, so THIS and `numeric_value` are different numbers for the same fact — a verifier comparing against whichever one it happened to read passes wrong numbers half the time. Null when no derivation applies.'}, 'derived_quarterly_display': {'type': ['string', 'null'], 'description': '`derived_quarterly_value` rendered the same way. Null when that value is null.'}}, 'description': 'Full provenance for one fact. Identity: fact_id, entity_id, ticker, company_name, concept, standard_concept, accession_id. Value: numeric_value (raw), `display` (the SAME number already rendered — "$391.04B" — QUOTE THIS rather than re-rounding numeric_value yourself), unit, plus derived_quarterly_value/derived_quarterly_display (a Q2/Q3 10-Q states year-to-date, so the quarter and the filing are different numbers). Filing: source_url, inline_viewer_url, document_url, filing_date, form_type, accepted_at. Duration: period_start, period_end, period_span_days, and period_type (instant | quarterly | half_year | nine_month | annual | duration) so a 3-month stub is never mistaken for the 12-month figure — a 10-K tags BOTH at the same period_end. ⚠️ There is no `value` key and no `cik` key; the fields are named exactly as emitted.', 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': ['matches', 'differs', 'not_checkable', 'untraced'], 'properties': {'differs': {'type': 'number', 'description': 'Figures the filing contradicts. Every one of these is a defect in the report.'}, 'matches': {'type': 'number', 'description': 'Figures whose quote is exactly what the filing says. The only affirmative count.'}, 'untraced': {'type': 'number', 'description': 'Figures that never had a fact to compare against. Counted apart from `not_checkable` so neither number misleads.'}, 'not_checkable': {'type': 'number', 'description': 'Figures that HAD a fact but could not be compared. ⚠️ Never report this as verified — it is expected to be large.'}}, 'additionalProperties': False}, 'version': {'type': ['number', 'null'], 'description': 'The report version verified. Null when unrecorded — a version we could not read is not version zero.'}, 'coverage': {'type': 'object', 'required': ['total', 'traced', 'reviewed', 'unresolved', 'differs', 'byState'], 'properties': {'total': {'type': 'number', 'description': 'Distinct figures in the report.'}, 'traced': {'type': 'number', 'description': 'Figures that resolved to a fact_id.'}, 'byState': {'type': 'object', 'description': 'Human review marks by state: verified, corrected, external, rejected.', 'additionalProperties': {'type': 'number'}}, 'differs': {'type': 'number', 'description': 'Traced, unreviewed, and the filing contradicts the quote — a SUBSET of `unresolved`.'}, 'reviewed': {'type': 'number', 'description': 'Figures carrying a human review mark, whatever its state.'}, 'unresolved': {'type': 'number', 'description': 'Outstanding: no evidence of any kind, OR traced to a fact whose filing says something else. These are what a human is shown and what blocks sign-off.'}}, 'additionalProperties': False}, 'report_id': {'type': 'string', 'description': 'The report these verdicts describe.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['since'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Name of a watchlist the caller has already saved. Pass this OR `tickers`, never both.'}, 'since': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Cutoff date (YYYY-MM-DD); the diff returns SEC filings whose filing_date is on or after this date.'}, 'tickers': {'type': 'array', 'items': {'type': 'string', 'maxLength': 10, 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': "Tickers or CIKs to scan, passed directly. Use this for an ad-hoc question — do NOT create a watchlist in order to ask one, since that writes a durable record into the user's account. Pass this OR `name`, never both."}, 'form_types': {'type': 'array', 'items': {'enum': ['10-K', '10-Q', '8-K', '20-F', '40-F', '10-K/A', '10-Q/A', '20-F/A', '40-F/A'], 'type': 'string'}, 'description': 'Filing forms to include. Defaults to 10-K + 10-Q + 8-K.'}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['_meta', 'watchlist_name', 'since', 'tickers_scanned', 'tickers_requested', 'truncated', 'tickers_failed', 'filings'], 'properties': {'_meta': {'type': 'object', 'required': ['data_plan', 'schema_version', 'snapshot', 'last_updated', 'source', 'pit_safe'], 'properties': {'source': {'type': 'string', 'const': 'SEC EDGAR'}, 'ticker': {'type': 'string'}, 'cost_usd': {'type': 'object', 'required': ['amount_usd', 'billed', 'basis'], 'properties': {'basis': {'enum': ['payg_charge', 'payg_rate_card'], 'type': 'string', 'description': 'payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.'}, 'billed': {'type': 'boolean', 'description': 'true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.'}, 'amount_usd': {'type': 'number', 'minimum': 0}}, 'description': 'Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.', 'additionalProperties': False}, 'pit_safe': {'type': 'boolean', 'description': 'true iff a zero-look-ahead point-in-time cut was applied to every returned figure'}, 'snapshot': {'type': 'string', 'description': 'Snapshot directory name (e.g. snapshot_20260420)'}, 'data_plan': {'type': 'string', 'description': 'Access plan: sample | sp500 | pro | full'}, 'as_of_date': {'type': ['string', 'null']}, 'latency_ms': {'type': 'integer', 'minimum': 0, 'description': 'Wall-clock milliseconds this tool call took, measured server-side around the handler.'}, 'rate_limit': {'type': 'object', 'required': ['limit', 'remaining', 'reset_at', 'window'], 'properties': {'limit': {'type': 'integer'}, 'window': {'enum': ['minute', 'hour'], 'type': 'string'}, 'reset_at': {'type': 'string', 'description': 'ISO 8601 timestamp when the window resets'}, 'remaining': {'type': 'integer'}}, 'description': "Caller's remaining budget", 'additionalProperties': False}, 'request_id': {'type': 'string', 'description': 'Per-request correlation id (8-char)'}, 'truncation': {'type': 'object', 'required': ['requested', 'returned', 'reason'], 'properties': {'reason': {'enum': ['PLAN_LIMIT', 'DATA_NOT_AVAILABLE', 'FISCAL_YEAR_BOUNDARY_FILTER', 'OTHER'], 'type': 'string'}, 'returned': {'type': 'integer', 'minimum': 0}, 'requested': {'type': 'integer', 'minimum': 0}, 'plan_limit': {'type': 'integer', 'minimum': 0}, 'upgrade_url': {'type': 'string'}, 'current_plan': {'type': 'string'}, 'upgrade_required_for': {'type': 'string'}}, 'description': 'Set when fewer rows were returned than requested — explains why and points to a remedy', 'additionalProperties': False}, 'price_as_of': {'type': 'string', 'description': 'ISO timestamp when the price surfaces were last refreshed.'}, 'data_quality': {'type': 'object', 'required': ['validation_passed', 'validation_failed', 'notes'], 'properties': {'notes': {'type': 'array', 'items': {'type': 'string'}}, 'validation_failed': {'type': 'array', 'items': {'type': 'object', 'required': ['rule', 'detail'], 'properties': {'rule': {'type': 'string'}, 'detail': {'type': 'string'}}, 'additionalProperties': False}}, 'validation_passed': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Server-side invariants run on this response', 'additionalProperties': False}, 'last_updated': {'type': 'string', 'description': 'ISO timestamp when the snapshot was exported'}, 'result_count': {'type': 'integer'}, 'payg_override': {'type': 'object', 'required': ['quote_id', 'tool', 'meter', 'amount_cents', 'ticker_count', 'entity_scope_hash', 'retry_token_hash'], 'properties': {'tool': {'type': 'string'}, 'meter': {'type': 'string'}, 'quote_id': {'type': 'string'}, 'amount_cents': {'type': 'number'}, 'ticker_count': {'type': 'number'}, 'retry_token_hash': {'type': 'string'}, 'entity_scope_hash': {'type': 'string'}}, 'description': 'Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.', 'additionalProperties': False}, 'limit_warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'subcode', 'limit_type', 'current_plan', 'remediation'], 'properties': {'code': {'type': 'string', 'const': 'LIMIT_EXCEEDED'}, 'subcode': {'type': 'string'}, 'extensions': {'type': 'object', 'additionalProperties': {}}, 'limit_type': {'type': 'string'}, 'limit_value': {}, 'remediation': {'type': 'object', 'required': ['options', 'default_action', 'pricing_page', 'contact_sales'], 'properties': {'options': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'pricing_page': {'type': 'string'}, 'contact_sales': {'type': 'string'}, 'default_action': {'type': 'string'}}, 'additionalProperties': True}, 'current_plan': {'type': 'string'}, 'returned_value': {}, 'requested_value': {}}, 'additionalProperties': True}, 'description': 'Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.'}, 'schema_version': {'type': 'string', 'description': 'Parquet schema version from manifest.json'}, 'fundamentals_as_of': {'type': 'string', 'description': 'ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export.'}}, 'description': 'Provenance envelope — data lineage for every MCP response', 'additionalProperties': False}, 'since': {'type': 'string'}, 'filings': {'type': 'array', 'items': {'type': 'object', 'required': ['ticker', 'accession_id', 'form_type', 'filing_date', 'accepted_at', 'sec_url'], 'properties': {'ticker': {'type': 'string'}, 'sec_url': {'type': 'string'}, 'form_type': {'type': 'string'}, 'accepted_at': {'type': 'string'}, 'filing_date': {'type': 'string'}, 'accession_id': {'type': 'string'}}, 'additionalProperties': False}}, 'truncated': {'type': 'boolean'}, 'tickers_failed': {'type': 'array', 'items': {'type': 'string'}}, 'watchlist_name': {'type': ['string', 'null']}, 'tickers_scanned': {'type': 'integer'}, 'tickers_requested': {'type': 'integer'}}, 'additionalProperties': False}
最近のツール変更
類似のMCPサーバー
equibles
Provides equity and market research tools covering SEC filings, company financials, portfolios, prices, options, macroeconomic da…
EventTrader Research (read-only)
Offers read-only research on funds, event markets, order books, arena markets, crypto pools, backtests, and related financial ana…
World Monitor
Delivers live geopolitical, conflict, country-risk, market, energy, climate, aviation, supply-chain, and macroeconomic intelligen…
Slacking.biz — SEC Financial Data + US Economics + Demographics + FX
Provides financial, economic, demographic, foreign-exchange, regulatory, and company research data from public sources.
TipRanks
Provides market research and investment data covering stocks, ETFs, commodities, crypto, forex, analyst ratings, news, earnings, …
welcome
Provides market data and educational investment research for stocks, ETFs, and crypto, including fundamentals, prices, macro indi…
Currencyformat
Formats localized numbers and currencies and also provides routed access to structured financial, market, government, and researc…
Unpaywall
Provides open-access scholarly paper lookup plus routed research and structured data queries across financial, economic, scientif…