folio-mcp
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 |
| Normal usage — calls the public FOLIO REST API |
Local ( | ~10s |
| 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-mcpCustom API URL
Point to a different FOLIO API instance:
folio-mcp --api-url https://my-folio-instance.example.comInstallation
Claude Code
claude mcp add folio -- uvx folio-mcpClaude 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/mcpManual (pip)
pip install folio-mcp
folio-mcpTools (12)
Tool | Description |
| Search concepts by label/name using fuzzy matching |
| Search concepts by definition text |
| Advanced query with composable text and structural filters |
| Query OWL object properties by label, domain, range |
| Get full details for a concept by IRI |
| Export a concept as markdown, JSON-LD, or OWL XML |
| List all 24 taxonomy branches with concept counts |
| Get concepts in a taxonomy branch |
| Get child concepts |
| Get parent concepts |
| Get all OWL object properties (relationships) |
| 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 a legal document against the FOLIO taxonomy |
|
| Identify applicable areas of law for a situation |
|
| Classify a legal entity (person, org, role) |
|
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 |
| Branch names with concept counts (564 bytes) |
| Ontology statistics — version, class/property counts, license |
| Top-level concepts in a specific branch (on-demand) |
Taxonomy Branches
The FOLIO ontology is organized into 24 top-level branches:
Branch | Description |
| Parties, roles, and participants in legal matters |
| Legal practice areas and specializations |
| Types of assets (real property, intellectual property, etc.) |
| Communication channels and methods |
| Monetary currencies |
| Data and file formats |
| Legal documents, contracts, filings |
| Terms of engagement and fee arrangements |
| Legal events and milestones |
| Courts, tribunals, and dispute resolution venues |
| Government agencies and departments |
| Industry sectors and classifications |
| Natural languages |
| FOLIO internal type classifications |
| Statutes, regulations, case law |
| Entity types (corporations, LLCs, trusts, etc.) |
| Geographic locations and jurisdictions |
| Matter descriptions and narratives |
| Formats for matter narratives |
| Legal objectives and goals |
| Legal services and service types |
| Standards and compatibility mappings |
| Status values for matters, documents, etc. |
| 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-mcpLinks
FOLIO REST API — public API for direct HTTP access
FOLIO API Docs (Swagger) — interactive API documentation
folio-python — Python client library
folio-api — REST API server
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alea-institute/folio-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server