Frankfurtermcp

Frankfurtermcp

🚀 Frankfurter MCP

Frankfurter MCP 是一个用于访问 Frankfurter API 的工具,借助模型上下文协议(MCP)为语言模型代理提供服务。Frankfurter API 由欧洲央行等机构发布,可提供最新货币汇率、历史数据或时间序列等信息。

🚀 快速开始

如果你想使用此 MCP 服务器上的工具,请参考以下“使用说明 > 客户端”部分。

将克隆此仓库的目录称为“工作目录”(WD)。

安装依赖

安装 uv。若要在虚拟环境中以最少依赖安装项目,请在工作目录中运行以下命令。若要安装所有非必要依赖(开发和测试所需),请将以下命令中的 --no-dev 替换为 --all-groups

uv sync --no-dev

配置环境变量

以下是可用于配置应用程序的环境变量列表,环境变量模板已在 .env.template 文件中提供。

可以指定以下以 FASTMCP_ 为前缀的环境变量:HOSTPORTDEBUGLOG_LEVEL。有关 FastMCP 的更多信息,请参阅 全局配置选项。请注意,以 on_duplicate_ 为前缀的环境变量选项将被忽略。

底层 HTTP 客户端也遵循一些环境变量,具体请参阅 HTTPX 库文档。此外,可以配置 SSL_CERT_FILESSL_CERT_DIR 以使用托管 API 端点或中间 HTTP(S) 代理服务器的自签名证书。

变量 [默认值] 及描述
HTTPX_TIMEOUT [5.0] 底层 HTTP 客户端等待 Frankfurter API 响应的时间(秒)。
HTTPX_VERIFY_SSL [True] 可将此变量设置为 False 以关闭 SSL 证书验证,例如在使用带有自签名证书的代理服务器时。但不建议将其设置为 False,建议使用 SSL_CERT_FILESSL_CERT_DIR 变量正确配置自签名证书。
FAST_MCP_HOST [0.0.0.0] 除非服务器传输方式(见下文)设置为 stdio,否则此变量指定 MCP 服务器必须绑定的主机。
FAST_MCP_PORT [8000] 除非服务器传输方式(见下文)设置为 stdio,否则此变量指定 MCP 服务器必须监听的端口。
MCP_SERVER_TRANSPORT [stdio] 可接受的选项为 stdiossestreamable-http。在 .env.template 中,默认值设置为 streamable-http
MCP_SERVER_INCLUDE_METADATA_IN_RESPONSE [True] 这是一个“实验性功能”,用于在包装每个工具调用响应数据的 MCP 类型 TextContent 中包含额外的元数据。例如,截至 2025 年 6 月 21 日,额外的元数据将包括用于获取响应的 Frankfurter 服务器的 API URL。
FRANKFURTER_API_URL [https://api.frankfurter.dev/v1] 如果你 自行托管 Frankfurter API,则应将其更改为你部署的 API 端点地址。

✨ 主要特性

  • 支持多种货币汇率查询,包括最新汇率、历史汇率。
  • 提供多种部署方式,如本地部署、Docker 部署、云托管部署。
  • 支持动态挂载,可集成到自定义 MCP 服务器中。
  • 提供命令行界面(CLI)和官方 MCP 可视化检查器,方便测试和调试。

📦 安装指南

安装依赖

uv sync --no-dev

配置环境变量

可根据需要修改 .env.template 文件中的环境变量,或在 shell 中导出要修改的环境变量。

💻 使用示例

启动服务器

使用 uv 启动服务器

uv run frankfurtermcp

使用 PyPI 包和 pip 启动服务器

pip install frankfurtermcp
python -m frankfurtermcp.server

使用 Docker 启动服务器

docker build -t frankfurtermcp -f local.dockerfile .
docker create -p 8000:8000/tcp --env-file .env.template --expose 8000 --name frankfurtermcp-container frankfurtermcp
docker start frankfurtermcp-container

客户端访问

使用官方 MCP 可视化检查器

nvm install --lts
nvm use --lts
npx @modelcontextprotocol/inspector uv run frankfurtermcp

使用 Claude Desktop、Visual Studio 等

{
"command": "uv",
"args": [
"run",
"frankfurtermcp"
]
}

📚 详细文档

可用工具列表

名称 描述
get_supported_currencies 获取 Frankfurter API 支持的货币列表。
get_latest_exchange_rates 获取给定基础货币的特定货币的最新汇率。
convert_currency_latest 使用最新汇率将一种货币的金额转换为另一种货币。
get_historical_exchange_rates 获取给定基础货币在特定日期或日期范围内的特定货币的历史汇率。
convert_currency_specific_date 使用特定日期的汇率将一种货币的金额转换为另一种货币。

FrankfurterMCP 命令行界面(CLI)

uv run cli --help
MCP_SERVER_TRANSPORT=streamable-http uv run frankfurtermcp
uv run cli tools-info
uv sync --extra opt
uv run cli llamaindex-tools-list

🔧 技术细节

贡献代码

安装 pre-commitruff,并在工作目录中启用 pre-commit

pre-commit install

测试

MCP_SERVER_TRANSPORT=streamable-http uv run --group test pytest tests/

📄 许可证

本项目采用 MIT 许可证

项目状态

日期 状态 备注或观察结果
2025 年 6 月 27 日 活跃 在 Glama.AI 和 Smithery.AI 上成功进行远程部署。
2025 年 6 月 13 日 活跃 仅为演示添加了 LlamaIndex 工具列表。(需要 --all-extras 标志来安装 LlamaIndex,默认情况下不安装。)
2025 年 6 月 9 日 活跃 添加了容器化支持、自签名证书支持和代理支持。
2025 年 6 月 8 日 活跃 添加了动态组合功能。
2025 年 6 月 7 日 活跃 添加了涵盖 Frankfurter API 所有功能的工具。
2025 年 6 月 7 日 活跃 项目启动。
  • 0 关注
  • 0 收藏,15 浏览
  • system 提出于 2025-09-25 23:42

相似服务问题

相关AI产品