Give your financial agent access to the Financial Industry Business Ontology (FIBO).
Paste into Claude Code:
Install fibo-mcp from https://github.com/NeuroFusionAI/fibo-mcp
If already in fibo-mcp directory, skip clone and cd. Run all commands from the fibo-mcp directory:
git clone https://github.com/NeuroFusionAI/fibo-mcp.git && cd fibo-mcp
uv sync
claude mcp add --scope user fibo-mcp -- uv run --directory "$(pwd)" main.py
# Restart Claude Code to load the MCPMaterialization applies the OWL-RL profile and caches the inferred graph. Triple counts depend on the pinned FIBO revision. OWL-RL is a scalable subset of OWL, not unrestricted or complete OWL reasoning.
# Step 1: Build cache first (Ctrl+C after "Ready to serve")
uv run main.py --materialize
# Step 2: Add MCP (instant startup from cache)
claude mcp add --scope user fibo-mcp -- uv run --directory "$(pwd)" main.py --materializeThe repo includes a diagramming skill (.claude/skills/diagramming_expert/) for ASCII visualizations.
When installing via Claude Code, ask user:
Diagramming skill scope:
- Project scope only (default - already in .claude/skills/)
- User scope (all projects) - copy to ~/.claude/skills/
# User scope skill (optional)
cp -r .claude/skills/diagramming_expert ~/.claude/skills/Add to your MCP config file:
{
"mcpServers": {
"fibo-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/fibo-mcp", "main.py"]
}
}
}With materialization:
{
"mcpServers": {
"fibo-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/fibo-mcp", "main.py", "--materialize"]
}
}
}Build cache first:
uv run main.py --materialize(Ctrl+C after "Ready to serve")
# Claude Code
claude mcp remove fibo-mcp
# Remove user-scope skill (if installed)
rm -rf ~/.claude/skills/diagramming-expert| Without fibo-mcp | With fibo-mcp |
|---|---|
|
Money is a medium of exchange, a store of value, and a unit of account that facilitates economic transactions. Forms of Money:
Money's value ultimately rests on collective trust and acceptance. |
Claude automatically queries FIBO... According to FIBO: Currency: "medium of exchange value, defined by reference to the geographical location of the monetary authorities responsible for it" FIBO distinguishes:
|
| Without fibo-mcp | With fibo-mcp |
|---|---|
|
A country is a distinct territorial body or political entity with its own government, defined borders, and sovereignty. Key characteristics:
There are approximately 195 recognized countries today. |
Claude automatically queries FIBO... Sovereign State: "non-physical juridical entity that is represented by one centralized government that has sovereignty over a geographic area" Key characteristics from FIBO:
Related: Federated Sovereignty, Regional Sovereignty |
| Without fibo-mcp | With fibo-mcp |
|---|---|
|
A corporation is a legal entity separate from its owners:
|
Claude automatically queries FIBO... Corporation: "formal organization that is a legal entity (artificial person) distinct from its owners, created under the jurisdiction of the laws of a state or nation" Related subclasses include Stock Corporation, For Profit Corporation, and Not-for-Profit Corporation. Formation: Articles of Incorporation, Corporate Bylaws |
Finance has a semantics problem—the same "trade," "counterparty," or "position" can mean different things across desks, systems, vendors, and jurisdictions. FIBO provides a formal, machine-readable ontology (OWL/RDF) so data from contracts, market feeds, and internal systems can be integrated and queried with shared meaning.
Contributors include Citigroup, Deutsche Bank, Goldman Sachs, State Street, Wells Fargo, CFTC, US Treasury OFR, and others. Standardized by EDM Council and OMG.
The HTTP listener binds to 127.0.0.1 by default. Do not expose it directly to
the internet: the server accepts read-only SPARQL and caps returned rows, but it
does not provide application authentication or rate limiting. Put an
authenticated, rate-limited gateway in front of it before any remote use.
# Start HTTP server
uv run main.py --http --port 8000
| Data | 299 RDF/OWL source files at the pinned revision; loaded triple count is logged at startup |
| Base graph | 133,498 triples; 3,346 owl:Class subjects; 1,216 typed RDF/OWL properties; 16,665 URI subjects |
| Cache | ./data/fibo.ttl (base), ./data/fibo_materialized.ttl (with --materialize) |
| Source revision | f59157fe156e3d91b1c045222d0a7dc06b7d78a2 by default; override with FIBO_REVISION |
| Refresh cache | uv run main.py --force-download |
| Flag | Description |
|---|---|
--materialize |
Enable OWL-RL inference (adds startup time; the materialized graph is cached) |
--bm25-top-k N |
Number of BM25 search results (default: 10) |
--force-download |
Re-download the configured FIBO revision |
--http |
Run as HTTP server instead of stdio |
--port N |
HTTP server port (default: 8000) |
