IMF数据访问服务

IMF-MCP是一个Python服务,通过FastMCP框架提供对国际货币基金组织(IMF) DataMapper API的编程访问,用于获取数据集、指标、国家和时间序列数据。

  • by jfeferman
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jfeferman/imf-mcp

使用说明

IMF-MCP

IMF-MCP是一项Python服务,使用FastMCP框架提供对国际货币基金组织(IMF)DataMapper API的编程访问。它公开了从IMF获取数据集、指标、国家和时间序列数据的工具。

特性

  • 获取可用的IMF数据集
  • 检索数据集的指标
  • 列出数据集的国家
  • 查询特定指标和国家的时间序列数据
  • 异步HTTP请求实现高效数据访问

需求

  • Python 3.10+
  • httpx
  • FastMCP (或您本地的MCP服务器包)

安装

  1. 克隆此存储库:
    git clone https://github.com/your-org/imf-mcp.git
    cd imf-mcp
    
  2. 使用安装依赖项 pyproject.toml:
    pip install .
    # or, if you use poetry:
    poetry install
    

用法

运行服务(stdio传输,用于Claude和其他MCP客户端):

python main.py
# or with uv:
uv run main.py

对于本地HTTP测试(例如使用MCP检查器),请使用FastMCP CLI:

fastmcp run main.py --transport http --port 8080

服务器注册了以下工具:

  • get_datasets:获取可用的IMF数据集
  • get_indicators(dataset_id):获取数据集的指标
  • get_countries(dataset_id):获取数据集的国家
  • get_timeseries(indicator, countries, start, end):获取给定指标和国家在一年内的时间序列数据
  • get_ifs_indicators()获取IFS(国际金融统计)指标代码;与...一起使用 get_timeseries
  • get_ifs_countries():获取IFS国家/地区代码;与...一起使用 get_timeseries
  • get_retrieval_guide():返回检索指南(markdown);回答IMF数据问题时先打电话

示例:获取数据集

您可以通过MCP接口或扩展项目来使用注册的工具。获取数据集的示例代码:

from main import get_datasets
import asyncio

async def main():
	 datasets = await get_datasets()
	 print(datasets)

asyncio.run(main())

项目结构

  • main.py --主应用程序文件,定义所有工具并启动服务器
  • README.md --项目文件
  • CLAUDE.md --检索指南;暴露为工具 get_retrieval_guide() 作为MCP资源 imf://retrieval-guide

发展

要添加新工具或扩展功能,请编辑 main.py 并使用 @mcp.tool() 装饰器用于注册新的异步函数。

与Claude一起使用IMF-MCP

使用IMF-MCP作为Claude工具

Claude(Anthropic的人工智能助手)可以作为工具自动启动IMF-MCP。你做 不 需要手动运行服务器。

配置示例(本地设置)

  1. 打开Claude设置并转到 开发者→ 编辑配置 (或添加/编辑MCP配置文件,例如。 claude_desktop_config.json 或客户端使用的配置)。

  2. 向添加条目 mcpServers 这样的部分:

    "imf-mcp": {
        "command": "uv",
        "args": [
       	 "--directory",
       	 "/Users/yourusername/path/to/imf-mcp",
       	 "run",
       	 "main.py"
        ]
    }
    
    • 替换 /Users/yourusername/path/to/imf-mcp 随着 绝对路径 给你的 imf-mcp 目录。
    • 服务器运行超时 标准 默认情况下,这是Claude在启动流程时所期望的。
    • 此示例使用 紫外线 因此,依赖关系来自 pyproject.toml 使用。您可以使用 python 相反,如果你在一个环境中跑步 pip install . 已运行:
      "imf-mcp": {
        "command": "python",
        "args": ["/Users/yourusername/path/to/imf-mcp/main.py"]
      }
      
  3. 保存配置,必要时重新启动Claude。

  4. 当您要求Claude使用IMF工具(例如“列出可用的IMF数据集”)时,Claude将根据需要启动该工具。

检索指南: 服务器将指南公开为 工具: get_retrieval_guide()在回答IMF数据问题时,首先调用此函数以获取推荐的流(数据集ID,如IFS/WEO,然后是代码的get_indicators/get_countries,然后是get_timeseries)。相同的内容也作为MCP资源公开 imf://retrieval-guide 对于支持资源读取的客户端。

注:

  • 确保Python环境安装了所有依赖项(例如,通过 uv pip install . 或 poetry install).
  • 您不需要自己启动服务器;克劳德将负责发射和通信。
  • 有关高级配置,请参阅您的Claude平台文档以获取自定义工具集成。

使用Claude和IMF MCP的时间序列分析示例

https://claude.ai/public/artifacts/001c61fa-f349-4c53-962e-2b7a1093d8cd

许可证

MIT许可证。看 许可证 了解详情。