blpapi-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@blpapi-mcpget the current price and volume for AAPL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BLPAPI-MCP
A MCP server providing financial data from Bloomberg's blpapi.
Note: A Bloomberg Terminal must be running (BBComm must be accessible) for data access.
Installation
Using UV
uv add git+https://github.com/djsamseng/blpapi-mcpRelated MCP server: polygon-mcp
Run the MCP Server
uv run blpapi-mcp --sse --host 127.0.0.1 --port 8000Using blpapi-cmp from Cursor
For project only: create .cursor/mcp.json in your project directory
For global: create
~/.cursor/mcp.jsonReplace the host and port with the MCP server running from above
{
"mcpServers": {
"server-name": {
"url": "http://127.0.0.1:8000/sse",
}
}
}Using blpapi-mcp from Claude Code
Replace the url with the MCP server running from above
claud mcp add --transport sse blpapi-mcp http://127.0.0.1:8000/sseUsing blpapi-mcp from Aider
Development
Requirements
curl -LsSf https://astral.sh/uv/install.sh | shClone this repository
git clone https://github.com/djsamseng/blpapi-mcpSetup the venv
uv venv
source .venv/bin/activateRun the MCP server
uv run blpapi-mcp --sse --host 127.0.0.1 --port 8000Run a test client that starts up it's own server in stdio mode
uv run examples/clients/blp_stdio_client.pyRun a test client that uses an existing running sse server
uv run examples/clients/blp_sse_client.py --host http://127.0.0.1 --port 8000Trademark Note
This project not affiliated with Bloomberg Finance L.P. The use of the name Bloomberg is only descriptive as towards what this package is used with.
Available Tools
9 toolsbdhC
Get Bloomberg historical data
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | ||
| flds | Yes | ||
| start_date | No | ||
| end_date | No | today | |
| adjust | No | ||
| kwargs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, and the description lacks any behavioral disclosure such as read-only status, rate limits, or authentication requirements, leaving the agent uninformed about side effects or restrictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose, but it lacks structure and additional detail that would improve usability without adding significant length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters with no schema descriptions, no output schema, and complex sibling tools, the description is grossly incomplete; it fails to explain return format, data range semantics, or how 'adjust' and 'kwargs' affect the query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no information about the six parameters; although parameter names like 'tickers' and 'flds' are somewhat self-explanatory, 'adjust' and 'kwargs' are ambiguous, and the 0% schema coverage means the description should compensate, which it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get Bloomberg historical data', which is a clear verb+resource but does not differentiate from sibling tools like bdib (intraday bar data) or bdtick (tick data), all of which involve historical data retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided; the description does not indicate when to use this tool versus alternatives like bdp or bds, nor does it specify prerequisites or constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bdibC
Get Bloomberg intraday bar data
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ||
| dt | Yes | ||
| session | No | allday | |
| typ | No | TRADE | |
| kwargs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden. It fails to disclose whether the operation is read-only, any rate limits, or error behavior. The minimal description provides no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks essential details. It is not overly long, but conciseness here sacrifices completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no output schema, no annotations), the description is severely inadequate. It does not explain return value, parameter formats, or how to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 5 parameters (ticker, dt, session, typ, kwargs). The agent has no clue what formats to use for 'dt' or 'session'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get Bloomberg intraday bar data' clearly states the verb and resource, and distinguishes from siblings like bdh (historical data) and bdtick (tick data). However, it could be more specific (e.g., 'including OHLCV').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like bdh or bdp. The description lacks any context about appropriate usage or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bdpD
Get Bloomberg reference data
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | ||
| flds | Yes | ||
| kwargs | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits (e.g., read-only, idempotent, rate limits). The agent is left without critical information about side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (3 words) but misses essential information. Conciseness should not come at the cost of completeness; here it is under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 required parameters, nested objects, no output schema, and no sibling differentiation, the description is grossly insufficient for correct tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for parameters, and the tool description does not explain tickers, flds, or kwargs. An agent cannot infer expected formats, allowed values, or semantics from the given text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get Bloomberg reference data' is vague; it does not specify what 'reference data' includes or how it differs from sibling tools like bdh or bds. The verb 'Get' is clear but the resource is ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use bdp versus alternatives such as bds or bdh. No context about prerequisites, typical use cases, or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bdsC
Get Bloomberg block data
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | ||
| flds | Yes | ||
| use_port | No | ||
| kwargs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits, but it only says 'Get', suggesting a read operation. No details on idempotency, side effects, authentication, or rate limits are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-specified. While brevity is acceptable, it sacrifices valuable information, making it inadequate for effective tool invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (4 parameters, 2 required, no output schema) and minimal description, the context is insufficient. The agent lacks guidance on input format, return value, and tool behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description fails to explain any parameter. It does not clarify what 'tickers', 'flds', 'use_port', or 'kwargs' mean, leaving the agent without necessary context to use the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get Bloomberg block data' specifies a verb and resource, but 'block data' is ambiguous and does not clearly differentiate from sibling tools like bdh or bdp. A more explicit definition of what block data entails would improve clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use bds versus its siblings, nor any context about prerequisites or limitations. The agent is left to infer the tool's role from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bdtickC
Get Bloomberg tick data
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ||
| dt | Yes | ||
| session | No | allday | |
| time_range | No | ||
| types | No | ||
| kwargs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'Get Bloomberg tick data', omitting critical details such as whether data is real-time, rate limits, required permissions, or the structure of the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at four words. However, conciseness is not valuable if it comes at the expense of clarity. A few more words could greatly improve utility without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters, 2 required, no output schema, and no annotations. The description is far too minimal to cover these needs. It fails to explain what tick data is, how parameters interact, or what the return value looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should explain what each parameter means. No parameter descriptions exist, and the description 'Get Bloomberg tick data' adds no context. Parameters like 'time_range' and 'kwargs' remain ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get Bloomberg tick data', which clearly identifies the action (get) and resource (Bloomberg tick data). However, it does not differentiate from sibling tools like bdh (historical) or bdp (reference), which could overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of the data granularity, use cases, or conditions that would make bdtick the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
beqsD
Get Bloomberg equity screening
| Name | Required | Description | Default |
|---|---|---|---|
| screen | Yes | ||
| asof | No | ||
| typ | No | PRIVATE | |
| group | No | General | |
| kwargs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states the action. It does not mention whether the tool is read-only, requires authentication, has rate limits, or produces any side effects. The agent has no clue about behavior beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (four words), which is concise but at the expense of essential information. It is underspecified and fails to earn its brevity by omitting critical details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has five parameters, no output schema, and no annotations, the description is drastically incomplete. It does not explain the concept of an equity screen, how parameters interact, or what output to expect, leaving the agent unable to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters (screen, asof, typ, group, kwargs). The agent must guess what each parameter does based solely on the name, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get Bloomberg equity screening' provides a verb and resource, but is too vague to distinguish from sibling tools like bdp or bds, which likely perform similar financial data retrieval tasks. It lacks specificity about what 'screening' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., bdh, bdp). There is no mention of prerequisites, contexts, or exclusions, leaving the agent without decision-making information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dividendD
Get Bloomberg divident / split history
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | ||
| typ | No | all | |
| start_date | No | ||
| end_date | No | ||
| kwargs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral details. It only says 'Get history', omitting whether it's read-only, required permissions, output format, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly brief, lacking essential information. Being concise is positive, but it sacrifices completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, no annotations, and several sibling tools, the description is completely inadequate for an agent to correctly invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any parameters. Schema coverage is 0%, so parameters like 'typ', 'start_date', 'end_date', and 'kwargs' are undefined beyond their names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it retrieves dividend and split history from Bloomberg, which is clear about the resource. However, it does not differentiate from sibling tools like 'earning' or 'bdh', and contains a typo ('divident').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
earningC
Get Bloomberg earning exposure by Geo or Products
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ||
| by | No | Geo | |
| typ | No | Revenue | |
| ccy | No | ||
| level | No | ||
| kwargs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Get', implying a read operation, but does not confirm safety, side effects, rate limits, or return format. This is insufficient for an agent to understand behavioral implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks structure (e.g., no sections, bullet points). While brevity is positive, the significant under-specification reduces effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters (1 required), no schema descriptions, no output schema, and no annotations, the description is vastly incomplete. An agent cannot reliably invoke this tool without additional information on parameter values, expected output, or usage constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions in schema), and the description adds almost no meaning to parameters. It mentions 'Geo or Products', which may relate to the 'by' parameter, but other parameters (ticker, typ, ccy, level, kwargs) are completely unexplained, leaving the agent to guess their semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves Bloomberg earning exposure, with a hint of breakdown by geography or products. This is specific enough to distinguish from sibling tools like bdh (historical data) or beqs (equity screening), but it does not explicitly compare or contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when-not to use, or context for selection among the listed sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turnoverC
Calculate the adjusted turnover (in millions)
| Name | Required | Description | Default |
|---|---|---|---|
| tickers | Yes | ||
| flds | No | Turnover | |
| start_date | No | ||
| end_date | No | ||
| ccy | No | USD | |
| factor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits (e.g., whether it is read-only, permissions needed, rate limits). It only states a calculation, omitting any such details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it sacrifices necessary detail. It could include structured information about parameters without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no annotations, and no output schema, the description is severely incomplete. It fails to explain the return format, parameter interactions, or how to properly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to the parameters. Schema coverage is 0%, yet the description does not mention tickers, flds, dates, ccy, or factor, leaving their roles entirely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates adjusted turnover and notes output is in millions. However, it does not differentiate from sibling tools like bdp or bdh, which may also provide turnover-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It lacks context about prerequisites, typical use cases, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct Bloomberg data type (historical, intraday, reference, block data, ticks, screening, dividends, earnings, turnover), with clear descriptions preventing confusion.
Tool names mix Bloomberg-specific acronyms (bdh, bdib, bdp, bds, bdtick, beqs) with full words (dividend, earning, turnover), lacking a uniform pattern. Acronyms vary in length and structure.
Nine tools cover the core Bloomberg data retrieval needs without overloading; the count is appropriate for a financial data server.
Covers major data types (historical, intraday, reference, screening) but misses real-time data and some corporate actions (e.g., stock splits, M&A). Minor gaps exist but core workflows are functional.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect any MCP client to MetaTrader 4/5 to read prices, manage positions, and place trades.
Hosted MCP for stocks, options, Greeks, brokers, order previews, alerts, and workflows.
Financial data MCP for market, company, news, macro, and US Congress research.
33 pay-per-call market and news data tools over MCP with free discovery and x402 payments.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA FastMCP-based server that provides access to Bloomberg market data through simple API calls, allowing users to search securities, retrieve current and historical market data, and access bulk financial information.
- AlicenseCqualityCmaintenanceEnables querying real-time and historical financial market data for stocks, options, forex, and crypto, including quotes, trades, technical indicators, and reference data through a set of MCP tools.713MIT
- FlicenseNot gradedqualityNot gradedmaintenanceProvides Model Context Protocol tools for accessing Bloomberg Terminal data including BDP, BDH, BDIB, BQL, bond analytics, screening, and field search.
- FlicenseNot gradedqualityCmaintenanceProvides live US stock quotes and historical price data via MCP tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/djsamseng/blpapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server