Your Financial Data, Any AI Agent: Building an MCP Server with OpenBB ODP

Dev.to / 4/2/2026

💬 OpinionDeveloper Stack & InfrastructureTools & Practical Usage

Key Points

  • The article walks through building an MCP (Model Context Protocol) server using OpenBB by installing OpenBB core plus data-provider extensions and the openbb-mcp-server wrapper.
  • It details prerequisites and notes that the tutorial can run without API keys using free data sources like yfinance and the Federal Reserve (with optional FMP for richer equity/options data).
  • It explains how to install dependencies, rebuild OpenBB’s ODP static assets to enable extension discovery, and configure FMP credentials either via user_settings.json or an environment variable.
  • It recommends verifying the data layer with direct OpenBB calls (e.g., pulling Treasury yield curve data from the Federal Reserve) before integrating with an MCP-compatible client such as Claude Desktop or other agents.
  • Overall, the guide focuses on practical setup so AI agents can query financial data through a standardized MCP interface.

What you'll need

  • Python 3.10–3.13
  • No API keys for this tutorial (we'll use yfinance + FRED free tier)
  • Claude Desktop — or any MCP-compatible client (Cursor, Windsurf, your own agent)

Step 1: Install

pip install openbb openbb-yfinance openbb-federal-reserve openbb-fmp openbb-mcp-server

openbb is the core platform. The provider extensions add data sources — yfinance and Federal Reserve for free data, FMP for richer equity and options coverage (more on that below). openbb-mcp-server wraps everything as an MCP server.

After installing, rebuild the static assets ODP uses to discover your extensions:

openbb-build

This runs once after any install or removal of extensions.

Step 2: Configure FMP (for equity and options data)

yfinance and Federal Reserve are free with no setup. FMP requires a free API key — get one at financialmodelingprep.com.

Once you have it, add it to ~/.openbb_platform/user_settings.json (create the file if it doesn't exist):

{
  "credentials": {
    "fmp_api_key": "YOUR_FMP_API_KEY"
  }
}

Alternatively, set it as an environment variable:

export FMP_API_KEY=YOUR_FMP_API_KEY

Step 3: Verify the data layer

Before touching MCP, confirm data is working:

from openbb import obb

# Treasury yield curve via Federal Reserve
rates = obb.fixedincome.government.treasury_rates(provider="federal_reserve")
print(rates.to_df())

You should see a table of yield rates across maturities. The breadth is the point: equity, fixed income, macro, options, ETF flows, FRED, IMF — all one standardized interface.

Step 4: Start the MCP server

openbb-mcp

By default this starts on streamable-http transport at http://127.0.0.1:8001. Every ODP endpoint you have installed is immediately available as an MCP tool — no manual tool definitions required.

What about remote use? If you want to run the server on a VPS and have agents connect over the network, bind it to all interfaces:

openbb-mcp --host 0.0.0.0 --port 8080

Your agent then connects to http://your-server:8080/mcp/ instead of localhost. Useful when multiple agents share the same ODP server, or you want a persistent endpoint running independently of your local machine.

You can also restrict which data categories are exposed — handy when you want to keep the toolset focused:

openbb-mcp --default-categories equity,fixedincome,economy

Step 5: Connect your client

Claude Desktop

Add to your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "openbb-mcp": {
      "command": "uvx",
      "args": ["--from", "openbb-mcp-server", "--with", "openbb", "openbb-mcp", "--transport", "stdio"]
    }
  }
}

Needs uvx (pip install uv). Restart Claude Desktop — tools appear in the hammer panel.

Claude Code

Run the server first, then register it:

claude mcp add --transport http openbb-mcp http://localhost:8001/mcp/

Verify with /mcp inside Claude Code. To make it available across all your projects:

claude mcp add --transport http --scope user openbb-mcp http://localhost:8001/mcp/

Codex

Add to .mcp.json at your repo root:

{
  "mcpServers": {
    "openbb-mcp": {
      "type": "http",
      "url": "http://localhost:8001/mcp/"
    }
  }
}

Codex picks it up automatically on next launch.

Step 6: Ask it something that actually requires this

Here are prompts worth running:

Multi-asset macro question:

"Compare the 2-year and 10-year treasury yields over the last 6 months. Is the curve still inverted? What does the current spread look like?"

Sector rotation:

"Pull the last 30 days of price history for SPY, XLK, XLF, XLE, XLV, and XLI. Which sectors are outperforming the index and which are lagging?"

Commodity positioning:

"Get the latest CFTC Commitment of Traders report for gold. Are the commercials net short or net long? What does that historically signal?"

Cross-asset correlation:

"Get gold spot prices and the DXY (USD index) for the last year. Do they move inversely the way they're supposed to?"

Claude will call the relevant OpenBB MCP tools, fetch real data, and reason over it — not hallucinate numbers, not give you stale training data, but pull from live market sources at the time you ask.

That's the difference. Not "what's Apple's price" — anyone can Google that. It's "help me think through this using real data across multiple sources at once."

Where to go from here

Add more providers. yfinance is just the start. ODP has extensions for Alpha Vantage, Polygon, FRED, the Bureau of Labor Statistics, IMF, and more. Install any of them and they're immediately exposed through the same MCP server — no code changes.

Wire in your own data. ODP's extension system lets you wrap any internal API or proprietary dataset as a provider. If your data can be described as three methods — transform query, fetch data, transform response — it becomes an MCP-accessible tool in one pip install.

Deploy for your agents. Run openbb-mcp --host 0.0.0.0 on a server, point your autonomous agents at http://your-server:8001/mcp/, and they have a persistent, queryable financial data layer available on demand — without you babysitting a local process.

The takeaway

The real value of MCP isn't "I can ask Claude what Tesla closed at." It's giving AI agents structured, real-time access to financial data complex enough that the answer actually requires reasoning — across instruments, timeframes, and data sources at once.

ODP is the cleanest path to that. Install, build, run. Everything else follows.

At FonnIT we build production tools with exactly this kind of stack. If you're thinking about what a custom financial data pipeline or AI research tool could look like for your team — let's talk.