货币政策数据服务

SwemoMCO是一个非官方的货币政策数据MCP服务器,将瑞典央行的开放API封装成MCP微服务,为LLM或人类用户提供类型化的Python工具。

  • by aerugo
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 aerugo/riksbank-mcp

使用说明

瑞典货币政策数据MCP服务器

SwemoMCO是一个非官方组织 货币政策数据MCP服务器 瑞典央行开业 API在 模型-上下文-协议 (MCP)微服务。它将原始REST端点转换为 类型化Python工具 其可以由LLM或人类通过任何MCP客户端调用。

本版README假定您正在使用 阿斯特拉uv 用于依赖性管理和执行。


目录

  1. 为什么存在
  2. 基础数据
  3. MCP服务器的工作原理
  4. 安装
  5. 快速开始
  6. 示例(分析师和记者)
  7. 码头工人
  8. 发展
  9. 许可证

为什么存在

处理货币政策数据可能很复杂:原始API 需要手工制作的查询和不同系列的知识。 本项目:

  • 隐藏HTTP管道 干净的异步Python接口,
  • 将每个系列作为 MCP工具 LLM可发现——允许 Claude Desktop和其他MCP客户端工具用于获取瑞典语 按需提供宏观数据。

截至2020年,瑞典央行的服务现在包括预测值和 已实现(观测)数据 一旦官方数据公布。这 使数据集适合 历史分析 (例如“什么 2022年的通货膨胀真的发生了吗?“)和 预测查询 (例如,“瑞典央行对明年GDP的预测是什么?”)。


基础数据

政策轮次

瑞典央行每年发布四到五次新的预测。 每份出版物都有标签 YYYY:I (例如2025:2 2025年第二次发布)。

系列标识符

每个时间序列名称都遵循以下模式

COUNTRY‑FREQUENCY‑AREA‑DECOMPOSITION‑UNIT‑ADJUSTED

例子: SEQGDPNAYCA → 瑞典(SE),季度(Q),国内生产总值(GDP), 国民账户分解(NA), y/y 改变(Y),日历 已调整(CA).探索目录

GET /forecasts/series_ids

预测年份和观察结果

每 政策回合 为关键业务的预测带来了新的“年份” 宏观经济变量。与此同时,随着实际结果数据的公布, 瑞典央行更新了其 已实现的观测。这意味着您可以:

  • 针 特定的政策回合(例如。 "2024:1")只看预测 从那一轮开始,以及通过那一轮可以获得的任何观察结果。
  • 使用 "latest" 检索 所有历史观察 (最终实现 当今已知的价值观) 加 最新的预测年份。这是理想的 历史分析——特别是如果你想看到最终的、修订的或 实际值而不是旧的预测。

预测元数据示例:

{
  "revision_dtm": "2024‑07‑02T08:55:00Z",
  "forecast_cutoff_date": "2024‑06‑18",
  "policy_round": "2024:3",
  "policy_round_end_dtm": "2024‑07‑02T09:30:00Z"
}

MCP服务器的工作原理

建筑

┌─────────────────────────────────────────────────────────┐
│  FastMCP Server (src/swemo_mcp/server.py)               │
│                                                         │
│  • registers ≈30 *tools* (one per economic series)      │
│  • exposes them on stdio / SSE / HTTP                   │
└───────────────▲──────────────────────────────▲──────────┘
                │                              │
         async httpx                     LLM / user
                │                              │
┌───────────────┴────────────┐        ┌────────┴──────────┐
│ Riksbank REST API          │        │ mcp‑cli / ChatGPT │
└────────────────────────────┘        └───────────────────┘
  • services/monetary_policy_api.py –瘦异步包装器 自动的 指数回退 (HTTP 429上的最大重试次数)。
  • tools/monetary_policy_tools.py –每个都有一个声明性函数 系列;docstring同时作为LLM提示。
  • Pydantic v2型号 在……里面 models.py 确保每个响应都有 预期的架构。

工具目录

工具 系列ID 描述
get_gdp_data SEQGDPNAYCA GDP同比,日历调整
get_unemployment_data SEQLABUEASA 劳动力调查失业率
get_cpi_data SEMCPINAYNA 标题CPI同比
… … 总共≈30个系列-运行 list_series_ids() 查看完整列表。

每个工具签名为:

async def get_<series>_data(policy_round: str | None = None) -> MonetaryPolicyDataResponse

通过 policy_round="2024:3" 用别针固定年份;省略以完成 历史。有关最终历史数据,请通过 policy_round="latest" 以便 该工具合并了所有已实现(观察到)的数据点。


安装

先决条件:

  • Python≥3.12(使用 typing.TypeAlias/PEP 604工会)
  • 星光大道uv ≥0.2.0

使用一个命令克隆并设置项目:

uv sync

uv sync 安装中声明的所有生产和开发依赖项 pyproject.toml,根据需要创建虚拟环境,并锁定 精确的版本,因此每个贡献者或CI管道都使用相同的堆栈。


Claude桌面集成

编辑您的 claude_desktop_config.json 要添加Kolada MCP服务器:

Docker镜像(本地构建)

"SwemoMCP": {
  "args": [
    "run",
    "-i",
    "--rm",
    "--name",
    "swemo-mcp-managed",
    "swemo-mcp:local"
  ],
  "command": "docker",
  "env": {}
}

通过PyPI预构建容器

"SwemoPyPI": {
  "args": ["swemo-mcp"],
  "command": "/Users/hugi/.cargo/bin/uvx"
}

本地UV执行(无Docker)

替换 [path to kolada-mcp] 使用您的本地目录:

"SwemoLocal": {
  "args": [
    "--directory",
    "[path to kolada-mcp]/src/kolada_mcp",
    "run",
    "kolada-mcp"
  ],
  "command": "uv"
}

更新后重新启动Claude Desktop。

用作图书馆

import asyncio
from swemo_mcp.tools import get_policy_rate_data

async def main():
    from swemo_mcp.query import ForecastRequest
    req = ForecastRequest(policy_round="2023:4", include_realised=True)
    data = await get_policy_rate_data(req)
    print(data.vintages[0].observations[:5])  # first 5 observations

asyncio.run(main())

因为所有内容都是类型化和异步的,所以您可以直接集成这些工具 进入笔记本电脑、仪表板或其他服务。


码头工人

该项目附带了一个多阶段的Dockerfile,它使用 uv 在期末考试中 层,因此容器构建受益于确定性依赖解析。

docker build -t swemo-mcp:latest .

docker run -i --rm swemo-mcp:latest | mcp chat

如果你愿意 Docker Compose 对于开发,示例 compose.yaml 说明了如何挂载源目录和热重载更改。


发展

  1. 设置环境:

    uv sync --dev
    
  2. 在开发模式下使用live-reload运行服务器 (要求 mcp dev):

    uv run mcp dev src/swemo_mcp/server.py
    
  3. 打开MCP检查器 测试和调试:

    http://localhost:5173

  4. 运行测试套件 (pytest+asyncio):

    uv run pytest -q
    
  5. 格式和lint 自动使用Ruff:

    uv run ruff check . --fix
    

许可证

根据 Apache 2.0 许可证。请参阅 LICENSE 为了 全文。


免责声明

  • 这是一个 非官方的 瑞典央行数据的MCP服务器。这 API的基础可能会发生变化,并且此项目可能并不总是 反映最新更新。
  • 瑞典央行没有参与这一项目的开发 项目。数据按“原样”提供,不提供任何形式的保证。
  • 瑞典央行的数据受其自身使用条款的约束。请参考 这 瑞典央行API门户网站 为了 更多信息。