关于 ticker-scout
ticker-scout 是面向 Agent 的 SEC 财务数据 MCP 服务,为公开公司整理财务报表,并提供 SEC 文件的文本内容与摘要。数据无需 API 密钥或注册即可访问。
主要功能
- 01提供三类已整理的财务报表
- 02查询标准或公司自有的项目名称
- 03按财政年度和季度检索数据
- 04阅读申报文件的章节与主题
- 05比较公司并查询事件记录
- 06数值附带 SEC 文件引用
适用场景
- 01查询公司的季度或年度财务表现
- 02比较多家公司的收入或其他指标
- 03检索申报文件中的风险和战略
- 04追溯财务数字对应的 SEC 文件
MCP 相关
通过远程 MCP 服务向客户端提供 SEC 财务报表、申报文件内容及重大事件历史,包含 20 种工具。无需 API 密钥或注册。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.tickerscout.ai/mcpclaude mcp add --transport http ai-tickerscout-ticker-scout https://mcp.tickerscout.ai/mcp{"mcpServers":{"ai-tickerscout-ticker-scout":{"type":"http","url":"https://mcp.tickerscout.ai/mcp"}}}在 Cursor 中打开{"servers":{"ai-tickerscout-ticker-scout":{"type":"http","url":"https://mcp.tickerscout.ai/mcp"}}}在 VS Code 中打开{"mcpServers":{"ai-tickerscout-ticker-scout":{"type":"http","url":"https://mcp.tickerscout.ai/mcp"}}}{"mcpServers":{"ai-tickerscout-ticker-scout":{"serverUrl":"https://mcp.tickerscout.ai/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
20| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 否 | 可选筛选条件,与股票代码和公司名称进行不区分大小写的匹配。 |
详细介绍
Ticker Scout MCP 服务
基于模型上下文协议,为 Agent 提供原生数据层,涵盖 SEC 文件。上市公司的完整财务报表,以及已阅读并综合整理的文件。SEC 会以数据形式发布数字,但不会将其整理成报表。本服务已将这些数字整理完毕,并通过 20 个工具提供:任何财年的任何报表、任何季度的任何报表、按标准名称或公司自定义名称查询的任何行项目、所有已涵盖的财年和季度、所有引用的 accession number,以及按章节、主题或关键字检索的 10-K、10-Q 和 8-K 叙述内容。无需 API 密钥、无需注册、无需付费墙。
https://mcp.tickerscout.ai/mcp
它提供 tickerscout.ai (https://tickerscout.ai) 发布的数据:财务报表、已阅读并综合整理的年度和季度报告,以及 S&P 500 公司和向 SEC 提交文件的主要外国发行人的重大事件历史,所有内容均源自这些公司自己的文件。
已为你完成的工作
本服务与 EDGAR API 的区别在于数据是否经过整理,而非数据是否可用。SEC 提供事实数据,本服务提供报表。
- 三大报表以报表形式呈现。 损益表、资产负债表和现金流量表均按报告中的顺序列出行项目,而不是一堆需要你自行挑选概念并分组的标签化事实。
- 跨文件整理,因为单个文件无法涵盖完整记录。 年度数据来自年度报告,季度和年初至今数据来自季度报告;如果季度报告仅按年初至今口径列示现金流,则离散季度数据取自作为当前报告附件提交的业绩公告。对于美国申报公司,这意味着 10-K、10-Q 和 8-K;对于外国发行人,则意味着 20-F 或 40-F,以及 6-K。
- 遵循公司的财年日历。 包括 52 周和 53 周财年、长度为 13 周而非自然季度的季度,以及不在 12 月结束的财年。期间日期取自文件中印制的列标题。
- 使用实际美元和实际股数。 绝不使用千或百万为单位的数据,也无需推断倍率。股数已按拆股调整。外国发行人的数据会按各期间记录的汇率换算为美元;如果公司设有 ADR 计划,每股数据则按 ADS 计。
- 根据业务类型调整结构。 银行、保险公司、资产管理公司和零售商的报表各不相同,因此不会使用相同的章节结构。查询公司实际披露的内容,而不是假设所有公司都有固定结构。
- 明确指出缺失项。 如果文件未披露某个数据,该数据会被省略并说明原因,绝不会静默地设为零。每个数据都会注明对应的 SEC accession number。
- 数据链接至文件中列示该数据的具体位置。 只要文件为某个数据添加了标签,响应就会附带 sec.gov 链接,打开后可直接定位到该数字。
连接
Claude Code
claude mcp add --transport http ticker-scout https://mcp.tickerscout.ai/mcp
Claude 网页版或桌面版
依次选择 Settings、Connectors、Add custom connector,然后粘贴 URL。
Cursor,以及任何支持 mcpServers 配置的客户端
{
"mcpServers": {
"ticker-scout": {
"url": "https://mcp.tickerscout.ai/mcp"
}
}
}
仅支持 stdio 的客户端
{
"mcpServers": {
"ticker-scout": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.tickerscout.ai/mcp"]
}
}
}
从这里开始
前六个主要工具一次调用即可回答大多数问题;另外十四个工具各自回答一类问题,通过参数实现,而不是扩展出一堆近似工具。
| 问题 | 调用 |
|---|---|
| 是否涵盖某家公司?其股票代码是什么? | list_companies(query) |
| 上个季度的表现如何? | get_key_figures(ticker) |
| 任意一项或同时查询多项 | get_figure(ticker, "revenue")、get_figure(ticker, ["revenue", "net income", "eps"]) |
| 某项数据的完整历史 | get_figure(ticker, "free cash flow", period: "all") |
| 某一财年、季度、TTM 或 YTD 的报表 | get_statements(ticker, statement: "income_statement", period: "FY2025") |
| 数据最早可追溯到什么时候? | list_periods(ticker) |
| 分部、产品、地理区域 | get_segments(ticker, breakdown?) |
| KPI、非 GAAP、银行或保险指标 | get_company_metrics(ticker, kind?) |
| 利润率 | get_margins_and_ratios(ticker) |
| 某家公司特有的指标 | list_company_figures(ticker, query: "data center"),然后调用 get_figure |
| 比较公司 | compare_companies(["NVDA","AMD","AVGO"], "revenue") |
| 风险、战略、管理层讨论 | get_narrative(ticker, section: "risk factors")(或 business、md&a、current quarter、legal、subsequent events) |
| 公司宣布了什么? | get_events(ticker),或指定 section: "earnings"、"m&a"、"management changes"、…… |
| 在申报文件的任意位置查找某个主题 | search_text(ticker, query) |
| 某个数字来自哪份申报文件? | get_figure(每个已标记的值都带有 sec_link)、get_filings(ticker, accession?) |
| 货币、ADR 比率、拆股、财年日历 | get_reporting_conventions(ticker) |
| 不确定? | guide() |
股票代码不区分大小写,BRK.B 和 BRK-B 都能解析。
数据的组织方式
记录与期间
记录是公司提交一份 10-Q 或 10-K 时生成的完整快照,并按财务期间标记:FY27Q2 是根据 NVIDIA 的 2027 财年第二季度 10-Q 建立的记录;FY26 则是根据一份 10-K 建立的记录。每条记录包含多个期间:最多三个财年、最近一个季度及其上年同期、年初至今和过去十二个月。较早的记录保存更早的季度,因此公司的历史数据是其所有记录的并集,每条记录都会通过永久的带日期 URL 持续发布。
接收 period 的工具会自动搜索所有记录。接收 record 的工具读取一条快照,默认读取最新快照。
period 参数
| 传入值 | 返回结果 |
|---|---|
| 不传 | 最新记录中的所有期间 |
FY2025、FY25、fiscal 2025、2025 | 该财年(按公司自身的财年,而非日历年) |
Q2 FY2027、Q2 2027、FY27Q2、2027Q2、2Q27、second quarter 2027 | 该季度 |
Q2 | 当前保存的最新第二季度 |
latest、latest quarter、latest annual | 对应类型中最近的期间 |
ttm、ytd、prior ytd | 过去十二个月、年初至今、上一年的年初至今 |
annual、quarterly、all | 每个财年、每个季度,或每条记录中的所有期间 |
2026-07-26 | 截止日期为该日期的期间 |
早于现有数据范围的期间不会报错。答复会说明数据无法追溯到那么早,并准确列出已有数据。对于尚未报告的期间,答复会说明这一点,并给出预计提交下一份申报文件的时间。
记录中的名称
记录会根据各家企业的情况进行调整,因此同一项数据会有不同名称:Apple 的收入是 total_net_sales,JPMorgan 的是 total_net_revenue,Walmart 的净利润是 net_income_attributable_to_walmart。我们不会为了掩盖这种差异而重新命名。
- 图表工具返回的每个值都会以
name_in_record(记录自身使用的名称)、field(该字段在期间内的路径)和json_path(该字段在financials.json中的确切地址,例如annual[0].income_statement.total_net_sales)开头。 - 这些名称都可以按原样传给
get_figure,并准确返回对应字段。大小写、空格和下划线均不影响匹配:Data Center和revenue_by_market_platform.Data Center都可以使用。 - 使用通用词语(
revenue、net income、free cash flow)请求标准数据项时,会按下文所述的标准方式解析;每个值仍使用记录自身的名称。如果记录中还有其他同名字段(例如 NVIDIA 的各个分部表中都有一个revenue),这些字段会列在other_fields_with_this_name下,并可通过路径调用。 list_company_figures会将每个标准数据项映射到该公司使用的名称,然后按各自名称列出其余所有数据项。传入query可搜索这些名称。
标准数据项
get_figure 和 compare_companies 知道各家公司对每项数据的命名方式,并会按确定的规则解析:首先使用公司自身标题所采用的字段名称,其次依次尝试已知名称列表,最后仅在恰好有一个字段匹配时使用名称模式。不会通过估算、推导或求和来填补缺失值。同一报表中的相似字段会显示在 related 下;如果公司没有使用这些名称中的任何一个,则会直接显示“未报告”,并列出该公司实际拥有的最接近字段。
| 项目 | 可用以下名称查询 | 例如可从以下项目读取 |
|---|---|---|
| 营收 | revenue, sales | revenue, revenues, total_revenues, total_revenue, +19 more |
| 营收成本 | cost of revenue, cogs | cost_of_revenue, cost_of_sales, total_cost_of_revenue, cost_of_goods_sold, +10 more |
| 毛利润、毛利率 % | gross profit, gross margin | gross_profit, gross_margin, gross_margin_pct, +3 more |
| 研发 | r&d | research_and_development, research_and_development_expenses, +7 more |
| 销售、一般及行政费用 | sga | selling_general_and_administrative, sales_general_and_administrative, +7 more |
| 营业费用总额 | operating expenses, opex | total_operating_expenses, total_costs_and_expenses, total_noninterest_expense, +11 more |
| 营业收入 | operating income, ebit | operating_income, income_from_operations, operating_profit, +4 more |
| 利息支出 | interest expense | interest_expense, total_interest_expense, interest_expense_net, interest_and_debt_expense |
| 税前收入 | pretax income | income_before_income_taxes, earnings_before_income_taxes, +23 more |
| 所得税、有效税率 | income tax, effective tax rate | provision_for_income_taxes, income_tax_expense, effective_tax_rate_pct, +17 more |
| 净收入 | net income, earnings | net_income, net_earnings, net_income_attributable_to_<company>, +8 more |
| 摊薄及基本每股收益 | eps, basic eps | diluted_eps, eps_diluted, basic_eps, +11 more |
| 摊薄、基本及流通股数 | diluted shares, basic shares, shares outstanding | diluted_shares, basic_shares, shares_outstanding, +27 more |
| 折旧与摊销 | d&a | depreciation_and_amortization, depreciation_depletion_and_amortization, +7 more |
| 股份薪酬 | sbc | stock_based_compensation, share_based_compensation, +4 more |
| 净利息收入、非利息收入(银行) | net interest income, noninterest income | net_interest_income, total_noninterest_income, +7 more |
| 信用损失准备金(银行) | provision for credit losses | provision_for_credit_losses, provision_for_loan_losses, +4 more |
| 现金及现金等价物 | cash | cash_and_cash_equivalents, cash_and_equivalents, cash_and_due_from_banks, +5 more |
| 资产总额 | total assets | total_assets, assets.total_assets |
| 负债总额 | total liabilities | total_liabilities, liabilities.total_liabilities |
| 债务总额、长期债务及短期债务 | debt, long-term debt, short-term debt | total_debt, long_term_debt, short_term_debt, current_portion_of_long_term_debt, +32 more |
| 股东权益 | equity, book value | total_stockholders_equity, total_shareholders_equity, total_<company>_shareholders_equity, total_equity, +7 more |
| 流动资产及负债、营运资本 | current assets, current liabilities(营运资本:get_margins_and_ratios) | total_current_assets, total_current_liabilities |
| 商誉及无形资产 | goodwill, intangibles | goodwill, intangible_assets_net, other_intangible_assets_net, +11 more |
| 存货 | inventory | inventories, inventory, merchandise_inventories, +4 more |
| 应收账款 | receivables | accounts_receivable_net, receivables_net, trade_receivables_net, +7 more |
| 应付账款 | payables | accounts_payable, trade_accounts_payable, trade_payables, +3 more |
| 不动产、厂房及设备 | pp&e | property_plant_and_equipment_net, property_and_equipment_net, +7 more |
| 留存收益 | retained earnings | retained_earnings, accumulated_deficit, +3 more |
| 经营现金流 | operating cash flow, cfo | operating_cash_flow, net_cash_provided_by_operating_activities, +10 more |
| 资本支出 | capex | capex, capital_expenditures, purchases_of_property_and_equipment, +10 more |
| 自由现金流 | free cash flow, fcf | free_cash_flow, free_cash_flow_for_the_quarter, +2 more |
| 投资及融资现金流 | investing cash flow, financing cash flow | investing_cash_flow, financing_cash_flow, net_cash_used_in_investing_activities, +21 more |
| 已付股息、每股股息 | dividends, dividends per share | dividends_paid, cash_dividends_paid, dividends_per_share, dividends_declared_per_share, +14 more |
| 股票回购 | buybacks | share_repurchases, repurchases_of_common_stock, purchases_of_treasury_stock, +11 more |
| 收购(扣除收购所得现金) | acquisitions | acquisitions_net_of_cash_acquired, +7 more |
guide() 会返回完整目录,列出每个数字所对应的所有问题。 |
单位和来源
所有金额均以美元实际数值表示(非千或百万),每股数据以美元/股表示,股数为实际股数,并已按拆股调整。每个数字的响应都会附带该记录自己的单位说明,因此数值不会与其数量级分离。
每个数值都会附上其来源文件的 SEC accession number;如果文件为该数字添加了标签,还会附上可打开文件并定位到该数字所在行的 sec_link。没有链接的数值是在记录中计算得出的(利润率、自由现金流、过去 12 个月数据、通过相减得出的季度数据),或来自 SEC 不会添加标签的财报新闻稿。本服务计算的利润率和比率(get_margins_and_ratios)会标记为 calculated,并显示其公式和使用的确切字段。
全部 20 个工具
所有工具均为只读。股票代码不区分大小写。period 参数采用上述语法,并会搜索每条记录;record 参数则读取较早的快照。
主要六个工具
| 工具 | 参数 | 返回内容 |
|---|---|---|
list_companies | query? | 返回所有覆盖的公司及其最新财务期间、持有的每条记录、预计下次提交文件的时间,以及覆盖范围摘要。可将公司名称解析为股票代码。 |
get_company | ticker、record? | 身份信息和覆盖清单:名称、CIK、交易所、注册州、SIC 行业、构建该记录所依据的文件及其 accession number 和 EDGAR 链接、所有已发布记录、预计下次提交文件的时间,以及所有工具的映射。 |
get_key_figures | ticker、record? | 最新期间的核心数字,每项均附同比变化、确切金额、记录字段和来源 accession number,以及文字摘要和问答。 |
get_financials | ticker、sections?、record? | 完整财务记录,可按顶级章节筛选。仅在请求时提供 figure_sources(每个带标签数字对应的 sec.gov 链接)。 |
get_narrative | ticker、section?、record? | 10-K 和 10-Q 综合内容。默认返回章节和子章节索引;也可按标题、主题(business、risk factors、md&a、current quarter、subsequent events、legal)或 all 获取任意章节或子章节。 |
get_events | ticker、section?、index?、record? | 大约涵盖过去五个季度的 8-K 摘要:可获取完整内容、单个章节或主题(earnings、management changes、capital returns、debt and financing、m&a、governance、restructuring、legal),或按日期排列的单行索引。 |
报表和期间
| 工具 | 参数 | 返回内容 |
|---|---|---|
list_periods | ticker | 返回所有记录中涵盖的每个财年和季度,包括日期、时长、来源表格和 accession number、财年结束日期及 52/53 周识别结果,以及每条记录的永久 URL。 |
get_statements | ticker、statement?、period?、include_sources? | 返回任意期间的损益表、资产负债表或现金流量表(也可返回所有持有的报表),包括 ttm 和 ytd,并搜索较早的记录;超出范围时会明确说明“没有那么早的数据”或“尚未报告”。 |
get_segments | ticker、breakdown?、period? | 按公司报告口径返回分部业绩、按产品、服务或终端市场划分的收入,以及按地理区域划分的收入。 |
get_company_metrics | ticker、kind?、period? | 按公司自身定义返回运营 KPI、非 GAAP 指标、银行指标(CET1、净息差、效率比率)和保险指标(保费、综合比率、浮存金)。 |
get_margins_and_ratios | ticker、period? | 返回记录中存储的所有利润率和比率,以及毛利率、营业利润率、净利率和 FCF 利润率、营运资本和流动比率;计算所得指标均会标记并附上公式。 |
图表
| 工具 | 参数 | 返回内容 |
|---|---|---|
get_figure | ticker、figure(一个或最多十个)、period? | 按标准名称、记录名称、路径或词语查询任意图表;可查询每个期间、一个期间或完整历史记录(period: "all")。每个值均附有其记录名称、JSON 路径、日期、accession 和 sec.gov 链接。 |
list_company_figures | ticker、query?、block?、period? | 列出每项标准图表在该公司的对应名称及其值,然后列出其余图表及其各自名称和值;也可通过 query 查询名称中包含指定词语的字段。 |
compare_companies | tickers、figure、period? | 查询两到十家公司的同一项标准图表,每行都包含对应的期间、日期和记录名称。 |
搜索、申报文件与约定
| 工具 | 参数 | 返回内容 |
|---|---|---|
search_text | ticker、query、documents?、limit?、record? | 返回叙述内容、事件和记录说明中包含所有指定词语的完整段落与列表项,以及最常提及这些词语的章节。用引号括起短语可进行精确匹配。 |
get_filings | ticker、accession?、record? | 返回财务报表、叙述内容和事件中引用的所有 accession,包括表格类型、申报日期、EDGAR 链接和每处引用;也可完整返回一份申报文件及所有引用它的段落。 |
get_reporting_conventions | ticker、record? | 返回计量单位、报告货币、外国发行人各期间的汇率、ADR 比例、已调整的拆股、财年结束日期、会计基础,以及记录本身的定义。 |
get_data_notes | ticker、record? | 返回记录的来源说明、不确定性,以及最新期间缺少哪些标准图表。 |
list_upcoming_filings | days?、form? | 按预计申报时间从近到远,列出预计将在 N 天内申报的所有已覆盖公司。 |
guide | 无 | 介绍这些工具如何配合使用、期间语法、计量单位、引用、常见问题和标准图表目录。 |
示例
> What did NVIDIA earn last quarter?
get_key_figures(ticker: "NVDA")
> Apple's revenue for fiscal 2025, and where the 10-K prints it
get_figure(ticker: "AAPL", figure: "revenue", period: "FY2025")
name_in_record total_net_sales
json_path annual[0].income_statement.total_net_sales
value 416161000000 ($416.16 billion)
accession 0000320193-25-000079
sec_link https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/aapl-20250927.htm#f-78
> NVIDIA revenue in fiscal 2019
get_figure(ticker: "NVDA", figure: "revenue", period: "FY2019")
available: false
We don't have data going back that far: FY2019 is earlier than anything Ticker Scout
holds for NVDA. The earliest fiscal year held is FY2024. ...
> Microsoft's revenue, net income and EPS in one call
get_figure(ticker: "MSFT", figure: ["revenue", "net income", "eps"], period: "latest quarter")
> NVIDIA Data Center revenue, every quarter held
get_figure(ticker: "NVDA", figure: "Data Center", period: "all")
数据政策
- 所有内容均源自向 SEC 提交的公开报告,例如 Form 10-K 年报、Form 10-Q 季报和 Form 8-K 临时报告(外国发行人则包括 20-F、40-F 和 6-K)。所有数据均未经过估算,也未经过编造。如果申报文件未披露某项数据,则会将其省略并说明原因。
- 不提供市场价格数据。不含报价、市值或价格快照。本数据源专注于基本面。
- 每个季度都会更新数据,在公司提交文件后不久完成。
list_companies中列出了覆盖范围以及各公司的数据期间。 - 这是对公开申报文件的事实性整理,不构成投资建议。
可免费阅读和引用。请注明来源:“Ticker Scout (tickerscout.ai)”。
工作原理
这是一个无状态的 Cloudflare Worker,使用来自 @modelcontextprotocol/server 的 createMcpHandler,通过 /mcp 提供可流式传输的 HTTP 服务。
该服务不存储任何自有财务数据。每次工具调用都会通过 Cloudflare 边缘缓存从 https://tickerscout.ai 获取相应文件并整理响应;查询较早期间时,则会读取该记录带有永久日期的 URL。服务没有数据库、快照或备用副本:如果无法获取上游文件,工具会返回错误,并注明 URL 和状态,而不会提供过时数据。
系统会记录每次工具调用:调用的工具、调用时间、输入内容以及是否成功。记录不包含 IP 地址。请参阅 src/record.ts 和隐私政策。
src/
index.ts Worker entrypoint (exports the handler only)
server.ts Builds the tool definitions once per isolate, a server per request
upstream.ts Fetching, edge caching, the error policy
tickers.ts Ticker normalization, coverage search, near matches
records.ts A company's published records, and choosing which to read
periods.ts Fiscal periods: naming, the period syntax, out-of-range answers
figures.ts Standard figures, name resolution, figure_sources links
filings.ts Accession numbers, EDGAR links, citations in prose
topics.ts Narrative and events topics, keyword search
markdown.ts Section parsing for the .md documents
financials.ts Headline condensing and unit-safe slicing
respond.ts Result shaping, source URL and attribution
record.ts The per-call record (tool, inputs, outcome; no IP address)
tools/ Tool registration, one module per group
开发
npm install
npm test # unit tests for the pure modules
npm run type-check # wrangler deploy does not typecheck
npm run dev # local server on http://localhost:8787/mcp
npm run smoke -- <url> # live end-to-end check against a deployment
npm run sweep -- <site dir> # every tool, every company, against a local copy of the site
npm run deploy
npm test 会测试纯逻辑。test/smoke.mjs 会针对一组特征差异明显的公司(常规公司、银行、保险集团、远超日历年度的零售商、外国发行方)以及负面案例,调用运行中的服务上的工具。test/sweep.mjs 会在进程内对每家覆盖的公司运行每个工具,并遍历每个主题、报表、细分项和指标类型,同时从本地目录提供网站文件;任何错误都会导致测试失败。单元测试会确保 tools/list 小于 40 KB。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。