Skip to main content

MCP server for FOLIO, the Federated Open Legal Information Ontology

Project description

folio-mcp

MCP server for FOLIO, the Federated Open Legal Information Ontology.

FOLIO is an open-source legal ontology with 18,000+ concepts covering areas of law, document types, legal entities, governmental bodies, and more. This MCP server makes the full ontology available to AI agents as searchable, browsable tools.

A public REST API is already available at https://folio.openlegalstandard.org/ with interactive Swagger documentation at /docs. This MCP server wraps the same ontology for native use in AI coding assistants and agent frameworks.

License: MIT (server code) / CC-BY 4.0 (ontology data)

Backends

folio-mcp supports two interchangeable backends:

Mode Startup Dependencies Use case
API (default) Instant httpx only Normal usage — calls the public FOLIO REST API
Local (--local) ~10s folio-python[search] Offline use or when mounting inside folio-api

API mode (default)

The server starts instantly and delegates all queries to the public API at https://folio.openlegalstandard.org/. No local ontology loading required.

Local mode

Loads the full FOLIO ontology in-process (~18k classes). Useful for offline work or when embedded in folio-api.

# Install with local dependencies
pip install folio-mcp[local]

# Run in local mode
folio-mcp --local

# Or via environment variable
FOLIO_MCP_LOCAL=1 folio-mcp

Custom API URL

Point to a different FOLIO API instance:

folio-mcp --api-url https://my-folio-instance.example.com

Installation

Claude Code

claude mcp add folio -- uvx folio-mcp

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "folio": {
      "command": "uvx",
      "args": ["folio-mcp"]
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project:

{
  "mcpServers": {
    "folio": {
      "command": "uvx",
      "args": ["folio-mcp"]
    }
  }
}

VS Code

Add to your User Settings (JSON):

{
  "mcp": {
    "servers": {
      "folio": {
        "command": "uvx",
        "args": ["folio-mcp"]
      }
    }
  }
}

Remote (Streamable HTTP)

Connect to the hosted endpoint:

https://folio.openlegalstandard.org/mcp

Manual (pip)

pip install folio-mcp
folio-mcp

Tools (12)

Tool Description
search_concepts(query, limit=10) Search concepts by label/name using fuzzy matching
search_definitions(query, limit=10) Search concepts by definition text
query_concepts(...) Advanced query with composable text and structural filters
query_properties(...) Query OWL object properties by label, domain, range
get_concept(iri) Get full details for a concept by IRI
export_concept(iri, format) Export a concept as markdown, JSON-LD, or OWL XML
list_branches() List all 24 taxonomy branches with concept counts
get_taxonomy_branch(branch_name, max_depth) Get concepts in a taxonomy branch
get_children(iri, max_depth) Get child concepts
get_parents(iri, max_depth) Get parent concepts
get_properties() Get all OWL object properties (relationships)
find_connections(subject_iri, property_name, object_iri) Find semantic triples

Browse operations return compact summaries (iri, label, definition). Use get_concept(iri) for full details including translations (31% of concepts, 10+ languages), preferred labels, external identifiers, and cross-references.

Prompts (3)

Prompt Description Argument
classify-document Classify a legal document against the FOLIO taxonomy description
identify-area-of-law Identify applicable areas of law for a situation situation
classify-entity Classify a legal entity (person, org, role) entity

Each prompt guides the LLM through the correct tool workflow and returns structured output (FOLIO label, IRI, definition, confidence, reasoning).

Resources (3)

Resource URI Description
folio://branches Branch names with concept counts (564 bytes)
folio://stats Ontology statistics — version, class/property counts, license
folio://branch/{name} Top-level concepts in a specific branch (on-demand)

Taxonomy Branches

The FOLIO ontology is organized into 24 top-level branches:

Branch Description
actors_players Parties, roles, and participants in legal matters
areas_of_law Legal practice areas and specializations
asset_types Types of assets (real property, intellectual property, etc.)
communication_modalities Communication channels and methods
currencies Monetary currencies
data_formats Data and file formats
document_artifacts Legal documents, contracts, filings
engagement_terms Terms of engagement and fee arrangements
events Legal events and milestones
forum_venues Courts, tribunals, and dispute resolution venues
governmental_bodies Government agencies and departments
industries Industry sectors and classifications
languages Natural languages
folio_types FOLIO internal type classifications
legal_authorities Statutes, regulations, case law
legal_entities Entity types (corporations, LLCs, trusts, etc.)
locations Geographic locations and jurisdictions
matter_narratives Matter descriptions and narratives
matter_narrative_formats Formats for matter narratives
objectives Legal objectives and goals
services Legal services and service types
standards_compatibilities Standards and compatibility mappings
statuses Status values for matters, documents, etc.
system_identifiers System and external identifiers

Development

# Clone and install
git clone https://github.com/alea-institute/folio-mcp.git
cd folio-mcp
uv sync

# Run tests (requires folio-python for local backend tests)
uv sync --extra local
uv run pytest tests/

# Run with MCP Inspector
uv run mcp dev folio_mcp/server.py

# Run locally for Claude Code
claude mcp add folio-dev -- uv run --directory /path/to/folio-mcp folio-mcp

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

folio_mcp-0.3.1.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

folio_mcp-0.3.1-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file folio_mcp-0.3.1.tar.gz.

File metadata

  • Download URL: folio_mcp-0.3.1.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for folio_mcp-0.3.1.tar.gz
Algorithm Hash digest
SHA256 53004d0c9eabcde5e01b78ec553336574a3864f81780c0ca9c855fde7a1fa1bb
MD5 44e4839d9c1ff78c77a9c503aa682dd8
BLAKE2b-256 7c8138c73828ab7e9e2ecf79d8f6be16d3008440b0542a038eb17e62fbfd9ce9

See more details on using hashes here.

File details

Details for the file folio_mcp-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: folio_mcp-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 18.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for folio_mcp-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c61b794cb140f9efca5100654fe2ef6a16179cfd5a29c24353df14311e1d77d8
MD5 d0ca755fef79975466e5deaa2c1fcc09
BLAKE2b-256 e04d2c1008e1577a25340f7dcac31927cbbe32b18bcd6799d7d6fa43a4f55248

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page