---
name: iblai-connect-bloomberg
description: "Read Bloomberg Terminal & B-PIPE data through the Bloomberg API (BLPAPI): Desktop API, Server API, B-PIPE and expose it to an ibl.ai agent as an MCP tool. Use when the user asks an agent to work with Bloomberg Terminal & B-PIPE data, or to set up a Bloomberg Terminal & B-PIPE MCP connection on ibl.ai."
metadata:
  kind: guide
---

# Bloomberg Terminal & B-PIPE connector for AI agents

> A starting point maintained on ibl.ai at https://ibl.ai/developer/connectors/bloomberg — not part of the iblai/vibe repository. Checked against Bloomberg L.P.'s documentation on October 20, 2026; test it against your own Bloomberg Terminal & B-PIPE setup before you rely on it.

The Bloomberg Terminal and B-PIPE feed deliver real-time and historical market data, reference data and analytics on securities. Applications reach them through the Bloomberg API (BLPAPI).

## Auth & conventions

- **API:** Bloomberg API (BLPAPI): Desktop API, Server API, B-PIPE (Mixed). SDK for C++, Java, .NET and Python. //blp/refdata serves reference, historical, intraday bar and tick requests; //blp/mktdata streams real-time or delayed subscriptions. All products share one interface.
- **Access:** Issued by your administrator. Desktop API needs a logged-in Terminal on the same PC (bbcomm on localhost:8194). Server API and B-PIPE are licensed enterprise products; the firm sets up users and apps in EMRS.
- **Auth:** Terminal session (Desktop API); Identity authorization via //blp/apiauth with EMRS tokens (Server API, B-PIPE). Enterprise apps must authenticate, authorize and permission users before receiving or distributing data: request a token for the user or app entered in EMRS, then send an authorization request to //blp/apiauth.
- **Limits:** Max 400 fields per reference request and 25 per historical request; default MaxPendingRequests is 1,024. Usage is metered by unique subscriptions and reference hits (securities x fields); daily and monthly limits apply.
- Keep Bloomberg Terminal & B-PIPE credentials in environment variables or the ibl.ai credential store. Never print a token in chat and never commit one to a file.
- Destructive or outward-facing calls are marked **Confirm with the user first** — do.

## Reads

- **Reference data** — ReferenceDataRequest on //blp/refdata: current field values for securities.
- **Historical time series** — HistoricalDataRequest on //blp/refdata.
- **Intraday bars and ticks** — IntradayBarRequest and IntradayTickRequest on //blp/refdata.
- **Streaming market data** — Subscriptions on //blp/mktdata, e.g. //blp/mktdata/isin/US0970231058?fields=LAST_PRICE.
- **Market depth** — //blp/mktdepthdata, B-PIPE only.

## Writes

- None. This skill only reads Bloomberg Terminal & B-PIPE data.

## Expose it to an ibl.ai agent (MCP)

We could not confirm an MCP server in Bloomberg L.P.'s own documentation as of October 2026. Host a small MCP server that wraps the calls above, then register it below.

First install the ibl.ai platform skills and connect your organization (writes `IBLAI_ORG`, `IBLAI_USERNAME` and `IBLAI_API_KEY` to `.env`):

```bash
npx skills add iblai/vibe --all
# then, in your coding agent:
/iblai-api-login
```

Every call below sends `Authorization: Api-Token $IBLAI_API_KEY`.

1. **Register the server** — `POST https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mcp-servers/` with `name`, `url`, `transport` (`sse` | `websocket` | `streamable_http`) and `auth_type` (`none` | `token` | `oauth2`). Capture the returned `id`.
   - For an API key or service credential use `auth_type=token` with `auth_scope=platform` for one key across the organization, or scope it to a single agent for one key per agent.
2. **Create the connection** — `POST https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mcp-server-connections/` with `server`, `scope` (`platform` | `mentor` | `user`), `auth_type`, and either `credentials` + `authorization_scheme` or a `connected_service` id for OAuth. Credentials are masked on read; never send a masked value back.
3. **Enable it on the agent** — `GET https://api.iblai.app/dm/api/ai-mentor/orgs/$IBLAI_ORG/users/$IBLAI_USERNAME/mentors/{agent_id}/settings/`, add `mcp-tool` to `tool_slugs` and the server id to `mcp_servers`, then `PATCH` the full lists back. They are replaced, not merged.

Full reference: https://ibl.ai/developer/platform/mcp/mcp-connections and the `/iblai-api-agent-mcp` skill.

## Example prompts

- "Get last price, P/E and dividend yield for the S&P 500 banks"
- "Pull 5 years of daily closes for IBM US Equity"
- "Build 15-minute bars for EUR/USD for the past week"
- "Stream bid and ask for these 10 Treasuries at a 1-minute interval"

## Guardrails

- Licensed market data: use, storage and redistribution are bound by the Bloomberg agreement and exchange entitlements. Not customer NPI unless joined with client records.
- Request the narrowest Bloomberg Terminal & B-PIPE scopes or role the task needs, and prefer a read-only credential for agents that only answer questions.
- Return the fields the user asked for, not whole records; do not paste personal data into chat that the user did not request.
- Before any write, show the user exactly what will change and wait for a yes.
- Respect the documented limits above: page through results and back off on rate-limit responses instead of retrying in a loop.

## References

- BLPAPI SDK documentation: https://bloomberg.github.io/blpapi-docs/
- BLPAPI Core Developer Guide (PDF): https://data.bloomberglp.com/professional/sites/10/2017/03/BLPAPI-Core-Developer-Guide.pdf
- This connector on ibl.ai: https://ibl.ai/developer/connectors/bloomberg
- ibl.ai MCP server connections: https://ibl.ai/developer/platform/mcp/mcp-connections
