fibo-mcp

fibo-mcp

Provides financial agents access to the Financial Industry Business Ontology (FIBO) for querying financial concepts, terms, and relationships through natural language.

Category
Visit Server

README

fibo-mcp

Give your financial agent access to the Financial Industry Business Ontology (FIBO).

<img src="assets/fibo_graph.png" alt="FIBO Graph Visualization" width="500">

Paste into Claude Code:

Install fibo-mcp from https://github.com/NeuroFusionAI/fibo-mcp

Installation

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 MCP

With OWL-RL Materialization (Recommended for symbolic reasoning)

Materialization expands the graph from 130K → 616K triples with inferred facts. First run takes ~2 minutes, then cached.

# 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 --materialize

Diagramming Skill

The 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/

Other MCP Clients (Cursor, Claude Desktop, etc.)

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")

Uninstall

# Claude Code
claude mcp remove fibo-mcp

# Remove user-scope skill (if installed)
rm -rf ~/.claude/skills/diagramming-expert

Examples

"What is money?"

<table width="100%"> <tr> <th width="50%">Without fibo-mcp</th> <th width="50%">With fibo-mcp</th> </tr> <tr> <td valign="top">

Money is a medium of exchange, a store of value, and a unit of account that facilitates economic transactions.

Forms of Money:

  • Commodity money - Physical items with intrinsic value (gold, silver)
  • Fiat money - Government-issued currency not backed by commodity (USD, EUR)
  • Digital/Electronic money - Bank deposits, digital payments
  • Cryptocurrencies - Decentralized digital assets like Bitcoin

Money's value ultimately rests on collective trust and acceptance.

</td> <td valign="top">

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:

  • Currency - the medium of exchange itself
  • Monetary Amount - a quantity denominated in a currency
  • Currency Identifier - ISO 4217 codes (USD, EUR, etc.)

</td> </tr> </table>

"What is a country?"

<table width="100%"> <tr> <th width="50%">Without fibo-mcp</th> <th width="50%">With fibo-mcp</th> </tr> <tr> <td valign="top">

A country is a distinct territorial body or political entity with its own government, defined borders, and sovereignty.

Key characteristics:

  • Defined territory
  • Permanent population
  • Government
  • Sovereignty
  • Recognition by other countries

There are approximately 195 recognized countries today.

</td> <td valign="top">

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:

  • Represented by one centralized government
  • Has a permanent population
  • Has defined territory
  • Has capacity to enter into relations with other sovereign states

Related: Federated Sovereignty, Regional Sovereignty

</td> </tr> </table>

"What is corporate?"

<table width="100%"> <tr> <th width="50%">Without fibo-mcp</th> <th width="50%">With fibo-mcp</th> </tr> <tr> <td valign="top">

A corporation is a legal entity separate from its owners:

  • Limited liability - Owners not personally responsible for debts
  • Perpetual existence - Continues regardless of ownership changes
  • Legal personhood - Can own property, enter contracts, sue and be sued
  • Transferable ownership - Shares can be bought and sold

</td> <td valign="top">

Claude automatically queries FIBO...

Stock Corporation: "corporation that has shareholders, each of whom receives a portion of the ownership of the corporation through shares of stock"

Contractually Capable Entity: "unique entity that is legally or financially responsible for the performance of financial transactions, or has the legal right in its jurisdiction to enter independently into legal contracts"

Formation: Articles of Incorporation, Corporate Bylaws

</td> </tr> </table>

Why FIBO?

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.

Remote MCP (OpenAI, etc.)

# Start HTTP server
uv run main.py --http --port 8000

# Expose via ngrok (in another terminal)
ngrok http 8000
from openai import OpenAI

client = OpenAI()
resp = client.responses.create(
    model="gpt-5.2",
    tools=[{
        "type": "mcp",
        "server_label": "fibo",
        "server_url": "https://your-ngrok-url.ngrok.io/mcp",
        "require_approval": "never",
    }],
    input="What is a derivative according to FIBO?",
)

Technical Details

Data 129K triples (299 RDF/OWL files), 616K with materialization
Coverage 3,371 classes, 16,057 entities, 1,259 properties
Cache ./data/fibo.ttl (base), ./data/fibo_materialized.ttl (with --materialize)
Update uv run main.py --force-download

Server Flags

Flag Description
--materialize Enable OWL-RL inference (130K → 616K triples, ~2min first run, cached)
--bm25-top-k N Number of BM25 search results (default: 10)
--force-download Re-download FIBO data
--http Run as HTTP server instead of stdio
--port N HTTP server port (default: 8000)

References

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured