mcpField
P
pequod-mcp

pequod-mcp

本地服务
github.com/ABWerks金融数据011 周前更新

关于 pequod-mcp

pequod-mcp 是供 Agent 使用的本地 MCP 服务,可提供完整的美国 ETF 持仓和经核验的证券标识符映射。持仓取自 SEC EDGAR 的 N-PORT 文件,标识符映射使用 OpenFIGI 和 SEC 参考数据。

主要功能

  1. 01从 N-PORT 获取完整美国 ETF 持仓
  2. 02将股票代码、CUSIP、SEDOL 和 FIGI 映射为代码
  3. 03依据 SEC 参考数据核验映射
  4. 04返回申报日期和来源 URL
  5. 05通过 stdio 提供只读工具

适用场景

  1. 01查看 ETF 的全部持仓及权重
  2. 02比较不同 ETF 的持仓重合情况
  3. 03解析 13F 中的证券标识符
  4. 04追溯持仓数据对应的 SEC 文件

MCP 相关

通过本地 stdio 向 MCP 客户端提供只读 ETF 持仓查询和标识符解析工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"abwerks-pequod": {
"command": "uvx",
"args": [
"pequod-mcp"
],
"env": {
"API_OpenFIGI": "<API_OpenFIGI>"
}
}
}
}
启动命令uvx pequod-mcp
需要配置的环境变量
API_OpenFIGI密钥OpenFIGI API key (optional — raises rate limits for the identifier-resolution tools; keyless tier works)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypipequod-mcp0.2.2

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
tickerstring是股票或 ETF 代码(例如 'SCHD'、'QQQ'、'AAPL')。

详细介绍

pequod-mcp — “the Gam”

面向 Agent 的 SEC 一手来源 ETF 持仓数据与标识符交叉映射。

一个 MCP(Model Context Protocol)服务,为 AI Agent 提供任意美国注册 ETF 的完整持仓,数据直接来自 SEC EDGAR N-PORT 文件——不是只抓取前 10 大持仓——还提供一组标识符交叉映射工具(ticker、CUSIP/SEDOL、FIGI → 已解析的 symbol),数据由 OpenFIGI 和 SEC 参考数据支持。通过 stdio 在本地运行;无需订阅供应商的市场数据服务。

工具

工具功能数据源
lookup_cikTicker → SEC CIK + 实体元数据(名称、SIC、交易所、财年结束日期)SEC company_tickers.json + submissions API
resolve_ticker原始 ticker + 可选交易所代码 → Yahoo 约定格式的 symbol,并经过验证交易所后缀映射(纯字符串映射)+ SEC + OpenFIGI
resolve_cusipCUSIP(或 SEDOL)→ symbol,并通过多个数据源交叉验证OpenFIGI(一次批量请求)+ SEC 名称/ticker 一致性
resolve_figiBloomberg FIGI → symbol,并通过多个数据源交叉验证OpenFIGI + SEC 名称/ticker 一致性
get_etf_holdings任意美国 ETF → 其最新月度 N-PORT 文件中的完整持仓列表(名称、ticker、ISIN、FIGI、LEI、份额、美元价值、占净资产比例、国家、货币)SEC EDGAR N-PORT XML

所有工具均为只读。

验证方式

交叉映射结果无需任何市场数据供应商即可验证:

  1. SEC 注册信息核查 — 如果映射出的 ticker 是美国 SEC 注册实体,company_tickers.json 中的实体名称必须与 OpenFIGI 证券名称一致。名称明显不符时会否决该映射(verification: "name_veto"),而不是返回看似合理的错误 symbol。
  2. OpenFIGI 映射 — 对于 SEC 注册信息中没有的非美国 symbol,直接依据 OpenFIGI 映射进行验证,并标记为 verification: "openfigi",方便区分不同的置信度等级。

Yahoo Finance symbol 格式(.SW、.T、.L 等后缀)仅通过字符串约定处理——默认流程不会调用 Yahoo 网络接口。

安装

# with uv
uv pip install pequod-mcp

# or with pip
pip install pequod-mcp

直接运行(stdio):

pequod-mcp
可选:OpenFIGI API 密钥

不设置密钥也可使用该服务(但会受到 OpenFIGI 匿名速率限制)。如需更高用量,可在 https://www.openfigi.com/api 免费获取密钥并设置:

export API_OpenFIGI="your-key-here"
可选:Yahoo 增强组件

可选择启用一个附加组件,为交叉映射结果添加实时 Yahoo 行情信息块。该功能默认关闭,除此之外不会使用 Yahoo;启用即表示你自行接受 Yahoo Finance 使用条款。

pip install 'pequod-mcp[yahoo]'
export PEQUOD_YAHOO_VERIFY=1

在 Claude 中配置

Claude Desktop(claude_desktop_config.json)或任何使用 stdio 传输的 MCP 客户端:

{
  "mcpServers": {
    "pequod": {
      "command": "pequod-mcp",
      "env": {
        "API_OpenFIGI": "your-key-here"
      }
    }
  }
}

Claude Code:

claude mcp add pequod -e API_OpenFIGI=your-key-here -- pequod-mcp

Agent 工作流示例

1. “SCHD 实际持有哪些资产?”

Agent: lookup_cik("SCHD")
  → { cik: "0000884394", entity_name: "SCHWAB STRATEGIC TRUST", found: true }
Agent: get_etf_holdings("SCHD", cik="0000884394")
  → { fund_name, report_date, source_url (the actual EDGAR filing),
      total_holdings: ~100, holdings: [ { name, ticker, isin, figi,
      balance, value_usd, pct_val, ... } ] }

Agent 会获取每项持仓及其权重,以及可用于引用的 EDGAR URL——可追溯至一手来源,方便审计。

2. “我有一个来自 13F 的 CUSIP——这是什么股票?”

Agent: resolve_cusip("594918104")
  → { yahoo_symbol: "MSFT", verified: true, verification: "openfigi+sec",
      company_name: "MICROSOFT CORP", cik: "0000789019",
      openfigi: { figi: "BBG000BPH459", ... } }

如果 OpenFIGI 的映射与 SEC 注册信息中 ticker 所属实体不一致,该工具会拒绝返回结果(verification: "name_veto"),而不是给出错误的 symbol。

3. “比较两只股息 ETF 的持仓重合情况。”

Agent: get_etf_holdings("SCHD")   → complete holdings A
Agent: get_etf_holdings("VYM")    → complete holdings B
Agent: joins on isin (or ticker), computes overlap weight, reports the
       shared names — all from two tool calls, both citing SEC filings.

数据来源

  • 所有持仓数据均来自 SEC EDGAR 一手来源(Form N-PORT 文件、submissions API 和 company_tickers.json)。标识符交叉映射来自 OpenFIGI API(FIGI 是一项开放的 OMG 标准)。
  • 输出中不包含 CUSIP。 工具输出包含 ticker、ISIN、FIGI 和 LEI;底层文件中的 CUSIP 字段会被刻意剔除。
  • 遵守 SEC 公平访问政策: 每个请求都声明 User-Agent;请求频率远低于 EDGAR 公布的速率限制;并在磁盘上缓存 company_tickers.json(24 小时)和 N-PORT 文档(30 天——已提交的文档不可更改)。缓存位于模块旁的 .cache/ 中,可通过 PEQUOD_CACHE_DIR 覆盖。
  • 出错即明确报错: 如果无法访问 EDGAR,或无法解析文件,工具会返回错误。不会使用降级或部分回退数据源——你要么获取有文件依据的数据,要么收到明确的失败信息。
  • N-PORT 文件有发布延迟(持仓数据通常滞后约 1–2 个月)。report_date 和 source_url 字段会明确指出所查看的具体期间。
  • 不构成投资建议。 此服务转发公开的监管文件和开放的标识符映射;请在做出投资决策前独立核实。

环境变量

变量默认值用途
API_OpenFIGI(未设置)OpenFIGI API 密钥(可提高速率限制)
PEQUOD_CACHE_DIR模块旁的 .cache/磁盘缓存位置
PEQUOD_YAHOO_VERIFY(关闭)选择启用 Yahoo 数据补充(需要 [yahoo] extra)
LOG_LEVELINFO服务日志详细程度

开发

pip install -e '.[dev]'
pytest            # fully offline — fixture filings, no live network

许可证

Apache-2.0——详见 LICENSE。版权所有 2026 AB Evergreen Analytics LLC。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。