Bloomberg Mcp Server について
Bloomberg Mcp Serverは、Bloomberg Hypermedia APIをMCPに接続し、金融データ利用者が正規化された現在の価格と過去のレートを取得できるようにします。JWT認証を使い、NocoDBでユーザー状態に応じてツールへのアクセスを制限できます。
主な機能
- 01過去のレート時系列の取得
- 02現在値またはスナップショット価格の取得
- 03JWT認証
- 04NocoDBによるアクセス制御
- 05構造化された応答とエラー
活用シーン
- 01証券の過去のフィールド値を照会
- 02証券の最新価格を取得
- 03ユーザー状態に応じたデータツールの制限
- 04レートデータをMCPクライアントに取り込む
MCP 対応
MCPサーバーは、Bloombergデータを構造化形式で取得するgreeting、historical_rates、current_ratesツールを公開します。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 Server
はじめに
このプロジェクトは、Bloomberg の Hypermedia API と連携する Model Context Protocol(MCP)サーバーを提供します。
クライアント(Windsurf、Postman MCP、MCP 連携に対応した社内アシスタントなど)は、過去および現在のレートを構造化された正規化済みの形式で取得できます。
このサーバーは Python で構築されており、以下を使用します。
- MCP ツール向けの
FastMCP - 非同期 HTTP リクエスト向けの
httpx - Bloomberg の非同期データ配信を処理する Server-Sent Events(SSE)
機能
- 🔑 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:
uvパッケージマネージャーを使用した軽量なpython:3.12-slim
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。