Skip to main content
Glama
djsamseng

blpapi-mcp

by djsamseng

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-mcp

Related MCP server: polygon-mcp

Run the MCP Server

uv run blpapi-mcp --sse --host 127.0.0.1 --port 8000

Using blpapi-cmp from Cursor

  • For project only: create .cursor/mcp.json in your project directory

  • For global: create ~/.cursor/mcp.json

  • Replace 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/sse

Using blpapi-mcp from Aider

Development

Requirements

  1. Install UV

curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Clone this repository

git clone https://github.com/djsamseng/blpapi-mcp
  1. Setup the venv

uv venv
source .venv/bin/activate
  1. Run the MCP server

uv run blpapi-mcp --sse --host 127.0.0.1 --port 8000
  1. Run a test client that starts up it's own server in stdio mode

uv run examples/clients/blp_stdio_client.py
  1. Run 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 8000

Trademark 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 tools
bdhC

Get Bloomberg historical data

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYes
fldsYes
start_dateNo
end_dateNotoday
adjustNo
kwargsNo

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness1/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
dtYes
sessionNoallday
typNoTRADE
kwargsNo

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYes
fldsYes
kwargsYes

TDQS

D1.5/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYes
fldsYes
use_portNo
kwargsNo

TDQS

C2/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
dtYes
sessionNoallday
time_rangeNo
typesNo
kwargsNo

TDQS

C2.2/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
screenYes
asofNo
typNoPRIVATE
groupNoGeneral
kwargsNo

TDQS

D1.3/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYes
typNoall
start_dateNo
end_dateNo
kwargsNo

TDQS

D1.8/5.0
Behavior1/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYes
byNoGeo
typNoRevenue
ccyNo
levelNo
kwargsNo

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersYes
fldsNoTurnover
start_dateNo
end_dateNo
ccyNoUSD
factorNo

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

C2.5/5.0
Disambiguation5/5

Each tool targets a distinct Bloomberg data type (historical, intraday, reference, block data, ticks, screening, dividends, earnings, turnover), with clear descriptions preventing confusion.

Naming Consistency3/5

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.

Tool Count5/5

Nine tools cover the core Bloomberg data retrieval needs without overloading; the count is appropriate for a financial data server.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.
  • A
    license
    C
    quality
    C
    maintenance
    Enables 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.
    71
    3
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides Model Context Protocol tools for accessing Bloomberg Terminal data including BDP, BDH, BDIB, BQL, bond analytics, screening, and field search.

Latest Blog Posts

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