关于 Bloomberg Mcp Server
Bloomberg Mcp Server 将 Bloomberg Hypermedia API 接入 MCP,供金融数据使用者查询规范化的当前报价和历史利率。它支持 JWT 身份验证,并可通过 NocoDB 按用户状态限制工具访问。
主要功能
- 01查询历史利率时间序列
- 02获取当前或快照报价
- 03JWT 身份验证
- 04通过 NocoDB 控制访问
- 05结构化响应与错误
适用场景
- 01查询证券的历史价格字段
- 02获取证券最新报价
- 03按用户状态限制数据工具
- 04将利率数据接入 MCP 客户端
MCP 相关
该 MCP 服务向客户端提供 greeting、historical_rates 和 current_rates 工具,以结构化格式获取 Bloomberg 数据。支持 stdio 和 streamable HTTP 连接。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
http://127.0.0.1:8000/mcpclaude mcp add --transport http bloomberg http://127.0.0.1:8000/mcp{"mcpServers":{"bloomberg":{"type":"http","url":"http://127.0.0.1:8000/mcp"}}}在 Cursor 中打开{"servers":{"bloomberg":{"type":"http","url":"http://127.0.0.1:8000/mcp"}}}在 VS Code 中打开{"mcpServers":{"bloomberg":{"type":"http","url":"http://127.0.0.1:8000/mcp"}}}{"mcpServers":{"bloomberg":{"serverUrl":"http://127.0.0.1:8000/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
http://127.0.0.1:8000/mcp需要授权工具
详细介绍
Bloomberg MCP 服务
简介
本项目提供一个与 Bloomberg Hypermedia API 集成的 Model Context Protocol (MCP) 服务。
它允许客户端(例如 Windsurf、Postman MCP、支持 MCP 集成的内部助手)以结构化、规范化的格式获取历史和当前汇率。
该服务使用 Python 构建,采用:
FastMCP用于 MCP 工具httpx用于异步 HTTP 请求- Server-Sent Events (SSE),用于处理 Bloomberg 的异步数据分发
功能
- 🔑 使用 Bloomberg Hypermedia API 进行 基于 JWT 的身份验证
- 📈 历史汇率工具 – 获取指定日期范围内的规范化时间序列数据
- 📊 当前汇率工具 – 获取证券的最新/快照报价
- 🙋 问候/帮助工具 – 提供友好的入口和用法示例
- ✅ 通过 NocoDB API 进行访问控制 – 根据用户状态限制工具使用
- 🧩 使用
msgspec进行 架构验证 - 📡 SSE 分发器 – 处理 Bloomberg 的异步响应
- 📝 结构化错误响应,确保处理方式一致
- 📦 使用
pyproject.toml+uv进行依赖管理,并支持 Docker 容器化 - 🖥️ 仅输出到控制台的日志记录,支持配置日志级别
安装
克隆代码仓库并使用 uv 安装依赖:
git clone https://github.com/AlterDomus/bloomberg-mcp-server.git
cd bloomberg-mcp-server
# install dependencies (pyproject.toml)
uv venv # Optional, if you want to create a virtual enviornment (recommended)
uv sync
配置
所有配置均通过环境变量完成。
Bloomberg 凭据:
BLOOMBERG_HOST_URL=https://api.bloomberg.com
BLOOMBERG_CLIENT_ID=<your client id>
BLOOMBERG_CLIENT_SECRET=<your client secret>
Bloomberg 配置:
BLOOMBERG_CATALOG_ID=<catalog id>
BLOOMBERG_API_VERSION=<version number>
BLOOMBERG_REQUEST_TIMEOUT=<request timeout>
BLOOMBERG_TERMINAL_USER_NUMBER=<users terminal number>
BLOOMBERG_SECURITY_LIMIT=<default security limit>
访问控制(NocoDB):
NOCODB_API_URL=https://nocodb.example.com/api/v1/db/data/v1/mydb/user_access
NOCODB_TOKEN=<nocodb-api-token>
日志记录:
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
运行服务
本地(stdio):
python -m main
路径(stdio):
C:\Projects\bloomberg-mcp\.venv\Scripts\python.exe C:\Projects\bloomberg-mcp\main.py # Path consist of env and the main file location
本地(可流式传输的 HTTP):
python -m main
URL(可流式传输的 HTTP):
http://127.0.0.1:8000/mcp
标头(可流式传输的 HTTP):
{
"Content-Type": "application/json",
"x-librechat-user-email": "<logged-in user from MCP client>"
}
可用工具
greeting
用途:返回友好的介绍和示例。
输入:可选负载。
输出:
{
"message": "👋 Hi! I’m your Bloomberg AI Assistant..."
}
historical_rates
用途:检索证券的规范化历史时间序列。
输入:
{
"symbols": [{"id_type":"TICKER","id_value":"EURUSD Curncy"}],
"fields": [{"name":"PX_LAST"},{"name":"PX_MID"}],
"currency": "USD",
"start_date": "2024-01-01",
"end_date": "2024-01-05"
}
输出:
{
"data": {
"TICKER:EURUSD Curncy": [
{"date":"2024-01-01","values":{"PX_LAST":1.23,"PX_MID":1.22}}
]
}
}
current_rates
用途:检索最新/快照报价。
输入:
{
"symbols": [{"id_type":"SEDOL","id_value":"2046251"}],
"fields": [{"name":"BID"},{"name":"ASK"},{"name":"PX_LAST"}],
"currency": "EUR"
}
输出:
{
"data": {
"SEDOL:2046251": {
"fields": {"BID":189.7,"ASK":190.3,"PX_LAST":190.1}
}
}
}
身份验证和访问管理
Bloomberg API 需要使用客户端 ID 和密钥生成 JWT 令牌。
每个工具都会强制执行访问控制:
服务会使用已登录用户的邮箱(通过 HTTP 标头传入)查询 NocoDB 端点。
- 用户必须存在且状态为
active - 否则,工具会返回结构化的
ACCESS_DENIED错误。
开发说明
项目布局:
scripts/
sample_current.json
sample_historical.json
test_historical.py
src/
config.py
server.py
schemas/
base.py
current.py
error.py
historical.py
services/
sse.py
access.py
tools/
greeting.py
historical.py
current.py
_guards.py
utils/
auth.py
errors.py
http.py
logging_config.py
parsing.py
main.py
.env
.env.example
<configuration files>
- 日志记录:通过
src/utils/logging_config.py统一记录控制台日志 - 架构:使用
msgspec定义请求/响应类型 - 错误处理:所有错误均使用共享的
make_error_response辅助函数 - 测试:包含
test_historical.py等示例 - Docker:使用轻量级的
python:3.12-slim镜像和uv包管理器
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。