Validate, lint, test-run and explain Open Lakehouse Contracts with LakeLogic, from any AI assistant.
mcp-name: io.github.LakeLogic/lakelogic-mcp
A local MCP server that lets AI assistants (Claude Code, Claude Desktop, Cursor and any MCP client) check the Open Lakehouse Contracts (OLC) they write, using LakeLogic itself instead of guessing.
generate_test_data writes a data file and
run_contract runs a contract on it with Polars or DuckDB. Nothing is written to a contract's target.| Tool | Answers |
|---|---|
validate_contract | Is this a legal OLC contract? Each error's location and problem |
lint_contract | Is it a good one? Governance findings from lakelogic lint, each with its fix |
explain_rule | Why does a lint rule exist? What it checks, why it matters, a failing and a fixed contract |
contract_reference | How is one part of a contract written? (anatomy, quality, materialization, …) |
export_odcs | The contract as an Open Data Contract Standard document |
generate_test_data | Synthetic data shaped by the contract, with a share of rows that deliberately break its rules |
run_contract | How many rows pass, how many are quarantined, and why (Polars or DuckDB, local only) |
Claude Code (plugin):
/plugin marketplace add LakeLogic/lakelogic-mcp
/plugin install lakelogic-mcp@lakelogic-mcp
or directly: claude mcp add lakelogic -- uvx lakelogic-mcp
Cursor: Add to Cursor
Any other MCP client (VS Code, Claude Desktop, ...): run uvx lakelogic-mcp as a stdio server.
It is also listed in the official MCP Registry as
io.github.LakeLogic/lakelogic-mcp.
All of them need uv on your PATH.
cd C:\_Personal\_SaaS\lakelogic-mcp
uv venv .venv
uv pip install --python .venv\Scripts\python.exe "mcp>=1.2" pytest -e ..\open-lakehouse-contract -e ..\lakelogic
uv pip install --python .venv\Scripts\python.exe --no-deps -e .
.venv\Scripts\python.exe -m pytest
From the project whose contracts you want checked:
claude mcp add lakelogic -- C:\_Personal\_SaaS\lakelogic-mcp\.venv\Scripts\lakelogic-mcp.exe
Then ask, for example:
Add to the client's MCP settings (claude_desktop_config.json, or Cursor's mcp.json):
{
"mcpServers": {
"lakelogic": {
"command": "C:\\_Personal\\_SaaS\\lakelogic-mcp\\.venv\\Scripts\\lakelogic-mcp.exe",
"args": ["--root", "C:\\path\\to\\your\\contracts\\project"]
}
}
}
uvx lakelogic-mcp # Claude Code: claude mcp add lakelogic -- uvx lakelogic-mcp
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx lakelogic-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-lakelogic-lakelogic-mcp": {
"command": "uvx",
"args": [
"lakelogic-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencelakelogic-mcppypiio.github.LakeLogic/lakelogic-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.