Source: OpenBB-finance/OpenBB (Apache-2.0) and docs.openbb.co. Researched 2026-11-04. The repository named in the brief, openbq-org/OpenBB, resolved to a page whose links point to the official owner OpenBB-finance; it is treated as a mirror and OpenBB-finance as canonical. Several docs pages returned 404, so the provider list and caching behavior are unverified.
What it is#
The Open Data Platform (ODP): a Python-first data layer for analysts, quants and AI agents (pip install openbb). OpenBB Workspace is a separate hosted enterprise frontend.
Provider contract (worth copying as a Go interface)#
- A
Fetcherhas three stages:transform_query(normalize parameters),extract_data(call the source) andtransform_data(map to the standard model). An alias map renames source fields to standard field names. - A
Providerdeclares a name, a description, a website, a map from model name to fetcher, and the credentials it needs. - Credentials are named per provider (
<provider>_api_key) and read from a user object or from an environment variable. A missing required credential fails before the fetcher runs. - Providers register through package entry points, so the core never imports them.
- Caching is not documented on the provider page (unverified).
Serving and MCP#
openbb-platform-apiserves the platform as a FastAPI app on loopback for the Workspace.openbb-mcp-serverturns REST routes into MCP tools (defaulthttp://127.0.0.1:8001/mcp; streamable HTTP, SSE or stdio). Tool names derive from the route path. Inbound and outbound auth use separate environment variables. A tool-discovery mode and a category allowlist keep the tool list small.- The Workspace MCP bridge needs an open browser tab and a personal access token, one bridge per user. Connected MCP clients are treated as trusted.
Coverage#
Data-extension tables were not reachable. From search snippets only (unverified): yfinance needs no key; FMP, FRED and Polygon have free tiers; Benzinga and TradingEconomics are paid. No B3 provider was confirmed.
Recommendations for vukem-trading#
- Define a Go
Providerinterface with one standard struct per data type (quote, bar, fundamentals, macro) and a three-stage fetch pipeline. - Name credentials per provider, support an environment fallback, and fail fast before any network call.
- Expose read-only data through an MCP server with a bearer token and a tool allowlist. Do not expose order tools to agents by default.
- Keep the core free of provider imports; register adapters at startup.