2026-09-09 · 原文发布日
追踪上市公司10-K风险因素变化并出周报
面向关注美股基本面的研究者:每周一自动对清单内每个股票代码,通过SEC EDGAR的MCP服务取最近两份10-K年报,抽取Item 1A风险因素章节清洗成段落列表,用词重合度比对识别新增、删除和重大改写,交给OpenAI生成简短主题化解读,汇总写进一篇Google Doc周报。数据表记录已报告的文件编号避免重复,设置里可改股票池和SEC访问身份邮箱。
原文要点
来源是n8n.io上的工作流模板19401。其设计为:每周一早晨(或手动)触发,从Settings读取MCP服务地址、股票清单、SEC User-Agent和上限;调用SEC EDGAR MCP服务验证工具后读risk_factor_watch数据表避免重复上报;对每个代码取最近三份10-K选最新与上一份,抓取两份HTML抽取Item 1A清洗成段落列表,用词重合度比对分类新增/删除/重大改写;有变化的股票计数写回数据表,变更段落交OpenAI生成简短主题化解读,最终汇总写入一篇新Google Doc周报。配置含mcp_url、sec_user_agent(需含本人联系邮箱避免SEC返回403)、docs_folder、逗号分隔股票池;数据表列含ticker、accession、filed_on、added、removed、rewritten。
这次做成什么
照着模板页的描述在自己的n8n实例里复现这条「周一定时→EDGAR取数→比对→OpenAI解读→Google Doc周报」流水线,并用一只股票的合成数据跑通去重与比对逻辑。本页按模板页的公开文字描述逐步搭建,节点命名与界面细节以你实际n8n版本和模板页实际内容为准。
准备什么
- 一个自托管或云端n8n实例,能安装社区节点并访问外网
- OpenAI API凭据(Chat模型,调用可能产生费用)与Google Docs OAuth凭据
- Node.js环境(用于启动SEC EDGAR MCP服务,需能访问sec.gov)
- 一个用于SEC User-Agent的可联系邮箱(SEC要求标识访问者)
具体怎么做
启动SEC EDGAR MCP服务
按模板页给出的示例命令运行:npx -y edgar-mcp@1.1.0 --http --host 0.0.0.0 --port 8932,确认服务起来后记下可访问的/mcp端点URL(如http://你的主机:8932/mcp)。该版本号与端口来自模板页示例,可按需调整。
建立去重数据表
在n8n的Data Tables中新建名为risk_factor_watch的表,按模板要求建六列:ticker(文本)、accession(文本,10-K的受理编号)、filed_on(日期/文本)、added(数值)、removed(数值)、rewritten(数值)。手工填入下方artifact中的合成测试行,用于验证「已报告过就跳过」的分支。
配置Settings与凭据
在n8n中新建工作流,按模板结构添加Settings(或Set节点)写入四个键:mcp_url=上一步的/mcp地址;sec_user_agent=形如「MyResearch admin@example.com」含真实邮箱的字符串(SEC对无标识请求会返回403);tickers=逗号分隔股票池(练习先放1个,如AAPL);docs_folder=目标Google Drive文件夹ID。再到Credentials分别创建OpenAI API凭据和Google Docs OAuth凭据。
搭建触发与取数链路
添加Schedule Trigger设为每周一早晨(Cron如0 8 * * 1),后接MCP Client节点指向mcp_url:第一步调用其工具清单验证服务可用,第二步读取risk_factor_watch全表,第三步对每个ticker请求最近三份10-K列表,用Code节点按filed_on排序取最新与上一份,若最新一份的accession已在数据表中则走「跳过」分支。
抽取Item 1A并比对
对未跳过的ticker,用HTTP Request节点带User-Agent头(值取sec_user_agent)抓取新旧两份10-K的HTML,用Code节点定位Item 1A与Item 1B之间的文本,按段落清洗成两个字符串数组;再用词重合度(每对段落计算共同词数占并集比例,本站练习阈值设为0.6,可在Settings里调)分类:新文档中找不到匹配的为新增,旧文档中找不到的为删除,相似但低于阈值的为重大改写,仅保留有变更的摘录且不超过Settings里的上限。
生成解读并写周报
把有变化的ticker计数(added/removed/rewritten)写回risk_factor_watch;把变更段落连同ticker送入OpenAI Chat节点,用下方artifact中的解读提示词生成简短主题化说明;最后用Google Docs节点在docs_folder新建一篇文档,追加合并所有ticker的段落与两份申报文件的EDGAR链接,形成一篇周报。手动执行一次,用合成测试数据确认跳过分支与写文档分支都走通。
可直接复制的材料
Settings配置示例
本站按模板描述整理的示例配置;admin@example.com和文件夹ID必须替换为你自己的;change_excerpt_cap与overlap_threshold为本站设定的练习参考值,模板页只提到有上限未给数值。
{
"mcp_url": "http://127.0.0.1:8932/mcp",
"sec_user_agent": "RiskWatch Research admin@example.com",
"tickers": "AAPL",
"docs_folder": "1AbCdEfGhIjKlMnOpQrStUvWxYz",
"change_excerpt_cap": 20,
"overlap_threshold": 0.6
}risk_factor_watch合成测试行
本站虚构的去重测试数据:accession为示意编号,导入后若MCP返回的最新10-K accession等于第一行,应触发跳过分支。
ticker,accession,filed_on,added,removed,rewritten
AAPL,0000320193-24-000096,2024-11-01,3,1,2
AAPL,0000320193-23-000106,2023-11-03,5,0,1OpenAI变更解读提示词
本站独立编写的示例提示词,花括号占位需在工作流中用表达式替换为实际数据。
你是证券研究助理。以下是上市公司{TICKER}最新10-K与上一份10-K中Item 1A风险因素章节的差异摘录,分为「新增」「删除」「重大改写」三类。请用中文写一段不超过150字的解读:1)按主题归类变化(如供应链、监管、网络安全);2)指出哪类变化最值得投资者关注及理由;3)只做中性描述,不给投资建议。文末附上新增{X}条、删除{Y}条、改写{Z}条。
新增:
{added_excerpts}
删除:
{removed_excerpts}
重大改写:
{rewritten_excerpts}输入与输出示例
本站虚构的周报示意,数字与输入对应,accession编号与链接为示例,非真实抓取结果。
输入
tickers=AAPL;数据表已含accession=0000320193-24-000096;MCP返回最新三份10-K中最新一份accession=0000320193-25-000078(未报告过),其Item 1A比对结果为新增2段、删除0段、改写1段。对应输出
【10-K风险因素周报】2026年第41周
AAPL(最新申报 2025-10-31,对比 2024-11-01)
本次风险因素章节的变化集中在供应链主题:新增了关于关键芯片代工产能集中的两段表述,并将原有「国际贸易政策」一段改写为包含具体关税情景的版本,显示公司对地缘供应链风险的披露明显细化,值得持续跟踪。删除项为零。
新增2条、删除0条、改写1条
申报文件:https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=AAPL&type=10-K
(另一支测试ticker的accession已在数据表中,本次跳过)做完检查这些
- Schedule Trigger手动执行后,MCP工具清单调用成功返回,否则先查mcp_url连通性
- 数据表中已有accession的ticker确实走跳过分支,不产生重复周报段落
- HTTP抓取10-K时携带含真实邮箱的User-Agent,未收到SEC的403响应
- Google Drive目标文件夹里生成一篇新Doc,包含变更计数、解读文字和申报链接
容易卡住的地方
- 本页是按模板页的文字描述复刻的搭建指引,节点命名、选项与是否提供可导入的工作流文件,以你的n8n版本和模板页实际内容为准。
- sec_user_agent不含有效联系邮箱时SEC会返回403,这是模板页明确点出的失败原因
- EDGAR MCP服务的版本与启动命令来自模板页示例,版本更新后参数可能变化,需以该包文档为准
- 词重合度阈值与摘录上限模板页未给数值,本页0.6与20是本站练习设定,需按股票池大小自行调
- OpenAI调用按量计费,股票池越大每周费用越高;免费模板本身不收费但模型服务另算
- 部分公司一年内可能只有一份10-K可比或 Item 1A版式特殊,抽取逻辑需对解析失败留空值分支
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Summarize 10-K risk factor changes with SEC EDGAR MCP, OpenAI, and Google Docs
- 原作者
- Daniel Shashko
- 原始发布日期
- 2026-09-08T16:14:37.780Z
- 来源
- https://n8n.io/workflows/19401