mcpField
F
ferric-fred-mcp

ferric-fred-mcp

本地服务
github.com/ojhermann-org金融数据010 周前更新

关于 ferric-fred-mcp

ferric-fred-mcp 是基于 Rust FRED 客户端构建的 MCP 服务,通过 34 个工具向 MCP 客户端提供 FRED 的只读数据接口,涵盖 GeoFRED 区域数据。

主要功能

  1. 01覆盖 FRED 全部读取端点
  2. 02提供 GeoFRED 区域数据工具
  3. 03支持系列、观察值与 vintage 数据
  4. 04查询分类、发布、来源和标签
  5. 05工具包含输入输出 schema 与注释

适用场景

  1. 01查询经济数据系列及观察值
  2. 02获取历史 vintage 数据
  3. 03检索区域数据用于地理分析

MCP 相关

通过 stdio 向 MCP 客户端提供 34 个工具,覆盖 FRED 读取接口及 GeoFRED 区域数据;地理形状文件接口不包含在 MCP 层。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
cargoferric-fred-mcp0.3.11

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ferric-fred

CI License: MIT OR Apache-2.0 ferric-fred MCP server

一个类型安全性强的 Rust 客户端,用于访问 FRED——圣路易斯联邦储备银行提供的联邦储备经济数据服务——此外还包含一个带 TUI 图表的 CLI,以及基于它构建的 MCP 服务。

ferric(氧化铁 → rust)+ FRED。坚如铁石、类型安全的经济数据访问。

工作区

一个包含 3 个 Crate 的 Cargo 工作区——每个 Crate 都有自己的 README(即 crates.io / docs.rs 展示页),其中包含完整的用法说明:

Crate二进制文件说明详情
ferric-fred—类型安全性强的异步 FRED 客户端README · docs.rs
ferric-fred-clifred带有 ratatui TUI 图表的命令行工具README
ferric-fred-mcpfred-mcp向 MCP 客户端提供 FRED 访问能力的 MCP 服务README

已发布的版本(这些徽章是权威信息来源——各个 Crate 独立发布版本,因此版本可能不同步):

ferric-fred ferric-fred-cli ferric-fred-mcp

使用者通过工作区路径依赖此库,这样一来,库中的破坏性变更若未同步更新使用者,就无法通过编译——这种编译期耦合是确保“保持同步”的主要保障(版本管理在此基础上进行;详见 ADR)。

涵盖范围

该库封装了 FRED 的所有读取端点——序列和观测值 (包括通过实时窗口获取 ALFRED 的时间点 / 版本数据)、 搜索、类别、发布(包括嵌套的发布表树,可选择内嵌观测值)、来源 和标签——以及 GeoFRED / Maps API(区域数据和用于绘制地图的地理形状 文件,ADR-0025),并提供易用的构建器、新类型标识符、 针对 FRED 封闭值集的类型化枚举、不致引发恐慌的错误分类,以及 自动分页 (Paginate::send_all 遍历端点直至全部取完,Paginate::stream 惰性地产出结果;CLI 中的 --all)。参见 ADR-0020 和 ADR-0021。

GeoFRED 支持涵盖 库、CLI(fred geofred)和 MCP (get_regional_data、get_series_data、get_series_group)层。唯一的 例外是地理 shapes/file 端点,它仅支持库 / CLI——对于 MCP 工具调用者来说, 大型投影 GeoJSON 数据块并不易用 (ADR-0025)。

选择一个入口:

  • 库 — cargo add ferric-fred;在你自己的代码中进行类型化异步访问。 参见 crate README 和 docs.rs。
  • CLI(fred)— cargo install ferric-fred-cli;搜索、查看元数据、 在终端中打印或绘制图表展示观测值、浏览类别、 发布、来源和标签,并获取 GeoFRED 区域数据和地图形状 (fred geofred)。参见 crate README 或运行 fred <command> --help。
  • MCP 服务(fred-mcp)— cargo install ferric-fred-mcp;通过 stdio 提供 34 个工具, 涵盖相同的读取范围,供支持 MCP 的客户端使用(ADR-0010)。 每个工具都声明输入和输出架构,以及行为注解 (ADR-0023)。参见 crate README。

该 MCP 服务已在 Glama 上列出并评分:

ferric-fred MCP 服务

开发

Nix flake 提供可复现的工具链(运行 nix develop,或只需运行一次 direnv allow),但该项目也可通过普通 Rust 工具链构建——Nix 提供的是 环境,而非构建过程(ADR-0008)。

贡献者设置、fmt/clippy/test/文档门禁、已跟踪的 git 钩子,以及添加端点的 工作流,详见 CONTRIBUTING.md。 CI(ci.yml)会在每次推送和 PR 上运行相同的离线门禁;休眠的 live.yml 会在配置好 Infisical 机器身份后运行实时 FRED 测试 (ADR-0016)。

基准测试

来自组织 Tech Radar 试点的性能工具 (ADR-0026,问题 #42):

# Deserialization microbenches (divan) — the observations parse hot path.
cargo bench -p ferric-fred --bench deserialization
# Same workload under criterion (the divan-vs-criterion baseline).
cargo bench -p ferric-fred --bench deserialization_criterion

# Headless `fred chart` render cost (divan + ratatui TestBackend, no tty).
cargo bench -p ferric-fred-cli --bench render

# CLI wall-clock timing (hyperfine): startup + a live fetch-and-render.
# The fetch benchmark needs FRED_API_KEY; startup runs offline.
scripts/bench-cli.sh                    # add --json DIR to export hyperfine JSON

CI 会在每个 PR 上确保基准测试仍可编译(cargo bench --no-run),另有一个 单独的 bench.yml 会将结果上传到 Bencher(托管项目 ferric-fred),以便长期跟踪并标记 PR 中的性能回退。 Bencher 没有 divan 适配器,因此会导入 criterion 镜像 (rust_criterion)和 hyperfine 启动测试(shell_hyperfine);divan 仍是 快速的本地测试框架。BENCHER_API_TOKEN 来自 Infisical,因此在配置 机器身份之前,上传操作不会执行任何操作——参见 ADR-0026。

密钥

客户端会从 FRED_API_KEY 环境变量读取免费的 FRED API 密钥(可在 https://fredaccount.stlouisfed.org/apikeys 获取)。本地密钥通过 Infisical + direnv 注入 (ADR-0009):

cp .envrc.example .envrc     # local, git-ignored entry point
infisical login             # user auth (opens a browser)
infisical init              # link this dir → project
direnv allow                # load the shell + inject secrets on cd-in

使用 infisical secrets set FRED_API_KEY="…" --env=dev --path=/shared 存储密钥。 没有 Infisical?直接在已加入 Git 忽略列表的 .envrc 中设置即可: export FRED_API_KEY="…"——此库只读取环境变量,不依赖 Infisical。

架构决策

设计决策以 ADR 的形式记录在 docs/adr/ 中。请从 索引开始。

许可证

采用 MIT OR Apache-2.0 双重许可,你可以自行选择——这是 Rust 生态系统 的默认做法(ADR-0006)。请参阅 LICENSE-MIT 和 LICENSE-APACHE。除非你另有说明,否则你提交的任何 贡献均遵循相同的双重许可条款(参见 CONTRIBUTING.md)。

这适用于我们的代码;FRED 数据本身受 St. Louis Fed 使用条款约束,你需要提供自己的 API 密钥——本项目不附带数据或密钥。

评论

支持 Markdown

第一次接触 MCP?

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

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