FRED(联邦储备经济数据)API与模型上下文协议(MCP)集成
MCP-FREDAPI通过模型上下文协议提供了访问圣路易斯联邦储备银行(FRED)经济数据的功能。此集成允许像Claude这样的AI助手在使用Cursor或其他兼容MCP的环境中直接检索经济时间序列数据。
该包与官方FRED API集成,特别关注于提供经济指标时间序列数据的series_observations端点。
有两种安装方法:
安装所需依赖项:
pip install "mcp[cli]" httpx python-dotenv
克隆此仓库:
git clone https://github.com/Jaldekoa/mcp-fredapi.git
cd mcp-fredapi
推荐使用此方法,因为它匹配mcp.json中显示的配置。
pip install uv
git clone https://github.com/Jaldekoa/mcp-fredapi.git
cd mcp-fredapi
uv run --with mcp --with httpx mcp run server.py
你需要一个FRED API密钥,可以从FRED API获取。
在项目根目录创建一个.env文件:
FRED_API_KEY=your_api_key_here
要配置Cursor以使用此MCP服务器,请在你的~/.cursor/mcp.json文件中添加以下内容:
{
"mcpServers": {
"mcp-fredapi": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-fredapi", "run", "--with", "mcp", "--with", "httpx", "mcp", "run", "server.py"]
}
}
}
将/path/to/mcp-fredapi替换为你系统上仓库的实际路径。例如:
{
"mcpServers": {
"mcp-fredapi": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-fredapi", "run", "--with", "mcp", "--with", "httpx", "mcp", "run", "server.py"]
}
}
}
注意:在Windows上,你可以使用正斜杠/或双反斜杠\\作为路径分隔符。
从FRED检索经济时间序列观测值。
当在Cursor中使用Claude时,你可以直接使用以下方式访问此工具:
@mcp-fredapi:get_fred_series_observations
get_fred_series_observations工具接受以下参数。有关每个参数的完整技术细节,请参阅官方FRED API文档。
| 参数 | 类型 | 描述 | 允许的值 | 默认值 | 状态 |
|---|---|---|---|---|---|
| series_id | str | 经济系列的ID | - | 必填 | ✅ 工作正常 |
| sort_order | str | 观测值排序顺序 | 'asc', 'desc' | 'asc' | ✅ 工作正常 |
| units | str | 数据值转换 | 'lin', 'chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log' | 'lin' | ✅ 工作正常 |
| frequency | str | 观测值频率 | 'd', 'w', 'bw', 'm', 'q', 'sa', 'a', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem' | 无 | ✅ 工作正常 |
| aggregation_method | str | 频率聚合方法 | 'avg', 'sum', 'eop' | 'avg' | ✅ 工作正常 |
| output_type | int | 观测值输出类型 | 1, 2, 3, 4 | 1 | ✅ 工作正常 |
| realtime_start | str | 实时期开始日期(YYYY-MM-DD) | - | 无 | ❌ 不工作 |
| realtime_end | str | 实时期结束日期(YYYY-MM-DD) | - | 无 | ❌ 不工作 |
| limit | int/str | 返回的最大观测值数量 | 在1到100000之间 | 10 | ❌ 不工作 |
| offset | int/str | 从开头跳过的观测值数量 | - | 0 | ❌ 不工作 |
| observation_start | str | 观测值开始日期(YYYY-MM-DD) | - | 无 | ❌ 不工作 |
| observation_end | str | 观测值结束日期(YYYY-MM-DD) | - | 无 | ❌ 不工作 |
| vintage_dates | str | 逗号分隔的版本日期列表 | - | 无 | ❌ 不工作 |
[!警告]
由于当前MCP实现的限制,只有某些参数工作正常:
- ✅ 工作正常的参数:
series_id,sort_order,units,frequency,aggregation_method和output_type。- ❌ 不工作的参数:
realtime_start,realtime_end,limit,offset,observation_start,observation_end和vintage_dates。为了获得最佳结果,请在查询中仅使用工作正常的参数。未来的更新可能会解决这些限制。
当在Cursor中使用Claude时,你可以这样请求GDP数据:
你能从FRED获取最新的GDP数据吗?
@mcp-fredapi:get_fred_series_observations
{
"series_id": "GDP"
}
你能按降序获取GDP数据(最新在前)吗?
@mcp-fredapi:get_fred_series_observations
{
"series_id": "GDP",
"sort_order": "desc"
}
你能获取年度GDP数据吗?
@mcp-fredapi:get_fred_series_observations
{
"series_id": "GDP",
"frequency": "a"
}
要获取消费者价格指数数据并计算百分比变化:
最近美国的通货膨胀率是多少?
@mcp-fredapi:get_fred_series_observations
{
"series_id": "CPIAUCSL",
"units": "pch",
"frequency": "m"
}
展示给我不同格式的GDP数据。
@mcp-fredapi:get_fred_series_observations
{
"series_id": "GDP",
"output_type": 2
}
欢迎贡献。请遵循以下步骤:
git checkout -b feature/amazing-feature)git commit -m '添加一个惊人的功能')git push origin feature/amazing-feature)本项目根据MIT许可发布 - 查看LICENSE文件了解详情。