返回市场
瑞克斯银行-MCP

瑞克斯银行-MCP

作者:aerugo2 星标更新:2025-07-26

项目介绍

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

License: Apache-2.0 https://modelcontextprotocol.io

SwemoMCO是一个非官方的货币政策数据MCP服务器,它封装了瑞典中央银行的开放API,并将其转换为一个模型上下文协议(MCP)微服务。它将原始的REST端点转换为可以由LLMs或通过任何MCP客户端调用的类型化的Python工具

本README假定您正在使用**Astral的uv**进行依赖管理和执行。


目录

  1. 为什么存在这个项目
  2. 基础数据
  3. MCP服务器如何工作
  4. 安装
  5. 快速开始
  6. 示例(分析师与记者)
  7. Docker
  8. 开发
  9. 许可证

为什么存在这个项目

处理货币政策数据可能会很复杂:原始API需要手工编写的查询以及对不同系列的理解。此项目:

  • 在一个干净、异步的Python接口后面隐藏了HTTP管道,
  • 将每个系列暴露为一个可被LLMs发现的MCP工具——允许Claude Desktop和其他MCP客户端工具按需获取瑞典宏观经济数据。

自2020年起,瑞典中央银行的服务现在包括预测值和实际(观测)数据,一旦官方数字发布。这使得该数据集适合于历史分析(例如,“2022年通货膨胀实际上发生了什么?”)和预测查询(例如,“瑞典中央银行对未来一年的GDP有何预期?”)。


基础数据

政策周期

瑞典中央银行每年发布四到五次新的预测。每次发布都标记为YYYY:I(例如,2025:2表示2025年的第二次发布)。

系列标识符

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

国家-频率-区域-分解-单位-调整

示例:SEQGDPNAYCA → 瑞典(SE),季度(Q),GDP(GDP),国民账户分解(NA),同比变化(Y),日历调整(CA)。通过以下HTTP请求发现目录:

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服务器如何工作

架构

┌─────────────────────────────────────────────────────────┐
│  快速MCP服务器(src/swemo_mcp/server.py)               │
│                                                         │
│  • 注册约30个*工具*(每个经济系列一个)                 │
│  • 通过标准输入/ SSE / HTTP公开它们                    │
└───────────────▲──────────────────────────────▲──────────┘
                │                              │
         异步httpx                     LLM / 用户
                │                              │
┌───────────────┴────────────┐        ┌────────┴──────────┐
│ 瑞典中央银行REST API       │        │ mcp-cli / ChatGPT │
└────────────────────────────┘        └───────────────────┘
  • services/monetary_policy_api.py – 薄薄的异步包装器,具有自动指数退避(在HTTP 429时最大重试)。
  • tools/monetary_policy_tools.py – 每个系列一个声明性函数;文档字符串作为LLM提示。
  • Pydantic v2模型models.py中确保每个响应都有预期的模式。

工具目录

工具系列ID描述
get_gdp_dataSEQGDPNAYCAGDP同比,日历调整
get_unemployment_dataSEQLABUEASA劳动力调查失业率
get_cpi_dataSEMCPINAYNA核心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联合)
  • Astral uv ≥ 0.2.0

通过一条命令克隆并设置项目:

uv sync

uv sync安装pyproject.toml中声明的所有生产和开发依赖项,如果需要则创建虚拟环境,并锁定确切版本,以便每位贡献者或CI流水线使用相同的堆栈。


Claude Desktop集成

编辑您的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])  # 前5个观测值

asyncio.run(main())

由于一切都是类型化且异步的,您可以直接将这些工具集成到笔记本、仪表板或其他服务中。


Docker

该项目附带一个多阶段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. 在开发模式下运行带有实时重载的服务器(需要mcp dev):

    uv run mcp dev src/swemo_mcp/server.py
    
  3. 打开MCP Inspector进行测试和调试:

    http://localhost:5173

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

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

    uv run ruff check . --fix
    

许可证

根据Apache 2.0许可。详情见LICENSE


免责声明

  • 这是一个非官方的MCP服务器,用于瑞典中央银行的数据。底层API可能会发生变化,本项目可能不会总是反映最新更新。
  • 瑞典中央银行未参与本项目的开发。数据按原样提供,不作任何保证。
  • 瑞典中央银行的数据受其自身的使用条款约束。请参阅Riksbank的API门户获取更多信息。