Bloomberg MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_PATH | No | MCP endpoint path. | /mcp |
| MCP_API_KEY | No | Optional shared secret accepted as x-api-key or Bearer token for backend authentication. | |
| MCP_HTTP_HOST | No | HTTP listen address. | 0.0.0.0 |
| MCP_HTTP_PORT | No | HTTP listen port. | 8000 |
| MCP_STATELESS | No | If true, use stateless HTTP transport (no server-side session state). | true |
| BLOOMBERG_HOST | No | BLPAPI endpoint host. | localhost |
| BLOOMBERG_MODE | No | Operation mode: 'auto' falls back to mock, 'blpapi' fails fast if Bloomberg unreachable, 'mock' serves deterministic mock data. | auto |
| BLOOMBERG_PORT | No | BLPAPI endpoint port. | 8194 |
| MCP_ALLOWED_HOSTS | No | Comma-separated allowed Host header values to enable DNS-rebinding protection, e.g. 'bloomberg-mcp:8000,localhost:*'. | |
| MCP_API_KEY_HEADER | No | Header name used to read the API key from. | x-api-key |
| MCP_JSON_RESSPONSE | No | true | |
| MCP_ALLOWED_ORIGINS | No | Comma-separated allowed origins for CORS if set. | |
| BLOOMBERG_MAX_FIELDS | No | Maximum number of fields allowed per request. | 50 |
| BLOOMBERG_TIMEOUT_MS | No | Per-request timeout in milliseconds. | 30000 |
| BLOOMBERG_AUTH_OPTIONS | No | B-PIPE/SAPI authentication string, e.g. 'AuthenticationMode=APPLICATION_ONLY;ApplicationAuthenticationType=APPNAME_AND_KEY;ApplicationName=my-app'. | |
| BLOOMBERG_MAX_SECURITIES | No | Maximum number of securities allowed per request. | 100 |
| BLOOMBERG_TLS_CLIENT_CERT | No | Path to the B-PIPE client certificate (PKCS#12 file). | |
| BLOOMBERG_TLS_TRUST_MATERIAL | No | Path to the B-PIPE trust material (root certificate PKCS#7 file). | |
| BLOOMBERG_TLS_CLIENT_CERT_PASSWORD | No | Password for the B-PIPE client certificate. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bloomberg_statusA | Report which backend is live (real BLPAPI vs mock) and its connection details. Call this first when data looks wrong, or to confirm the server is talking to a real Bloomberg Terminal / SAPI / B-PIPE endpoint. |
| get_reference_dataA | Current/static data for one or more securities (BLPAPI ReferenceDataRequest). This is the equivalent of the Excel BDP() function. Args: securities: Bloomberg tickers, e.g. ["IBM US Equity", "SPX Index"]. fields: Field mnemonics, e.g. ["PX_LAST", "NAME", "CUR_MKT_CAP"]. overrides: Optional field overrides, e.g. {"BEST_FPERIOD_OVERRIDE": "1FY"}. |
| get_historical_dataA | End-of-period historical time series (BLPAPI HistoricalDataRequest, i.e. BDH()). Args: securities: Bloomberg tickers, e.g. ["AAPL US Equity"]. fields: Field mnemonics, e.g. ["PX_LAST", "VOLUME"]. start_date: YYYY-MM-DD. end_date: YYYY-MM-DD. periodicity: DAILY | WEEKLY | MONTHLY | QUARTERLY | SEMI_ANNUALLY | YEARLY. currency: Optional ISO code to convert into, e.g. "USD". max_data_points: Optional cap on returned points (most recent are kept). |
| get_intraday_barsA | Intraday OHLCV bars for a single security (BLPAPI IntradayBarRequest). Bloomberg keeps roughly 140 days of intraday history. Args: security: A single Bloomberg ticker, e.g. "IBM US Equity". start_datetime: ISO-8601, interpreted as UTC, e.g. "2024-01-15T13:30:00". end_datetime: ISO-8601, interpreted as UTC. event_type: TRADE | BID | ASK | BEST_BID | BEST_ASK. interval_minutes: Bar width, 1-1440. |
| get_intraday_ticksA | Tick-by-tick data for a single security (BLPAPI IntradayTickRequest). Keep the window short - ticks are voluminous. Args: security: A single Bloomberg ticker. start_datetime: ISO-8601 UTC. end_datetime: ISO-8601 UTC. event_types: Any of TRADE, BID, ASK, BID_BEST, ASK_BEST, SETTLE. Defaults to TRADE. |
| search_instrumentsA | Resolve a company name, ticker fragment or ISIN to Bloomberg tickers (//blp/instruments). Args: query: Free text, e.g. "apple", "US0378331005", "vodafone". yellow_key: Asset-class filter - NONE, CMDT, EQTY, MUNI, PRFD, CLNT, MMKT, GOVT, CORP, INDX, CURR, MTGE. max_results: 1-100. |
| search_fieldsA | Find Bloomberg field mnemonics by keyword (//blp/apiflds FieldSearchRequest). Use this to turn "market cap" into CUR_MKT_CAP before calling get_reference_data. |
| run_equity_screenA | Run a saved Bloomberg EQS equity screen (BLPAPI BeqsRequest). Args: screen_name: Exact screen name as saved in the terminal. screen_type: GLOBAL for Bloomberg-published screens, PRIVATE for your own. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| cheatsheet | Common Bloomberg yellow keys and field mnemonics. |
TDQS
Scored across 8 tools
Each tool targets a distinct data type or operation: status check, reference data, historical time series, intraday bars, tick data, instrument search, field search, and equity screening. The boundaries between historical, intraday bars, and ticks are clearly delineated by their descriptions and argument schemas.
Most tools follow a consistent verb_noun snake_case pattern (get_*, search_*, run_*), but 'bloomberg_status' breaks the pattern by using a noun prefix instead of a verb. This minor deviation is the only inconsistency.
Eight tools is a well-scoped set for a Bloomberg data access server, covering the essential BLPAPI request types without redundancy or bloat. Each tool earns its place.
The surface covers core data retrieval (reference, historical, intraday bars, ticks), instrument/field resolution, and equity screening, but lacks explicit support for real-time streaming subscriptions or specialized data like news or corporate actions. These gaps are minor and can be partially worked around using reference fields.