Skip to content

Quickstart

Lemma is three things in one repository: a cards corpus, a Node MCP server (@artano-ai/mcp-server), and a Python SDK (artano-lemma). Here’s how to get going with each.

Install

Terminal window
# Node — MCP server (the verification surface)
npx @artano-ai/mcp-server
# Python — corpus + lemma CLI
pip install artano-lemma

Register the MCP server

Add Lemma to your runtime’s mcpServers map (Claude Code ~/.claude.json, Cursor ~/.cursor/mcp.json):

{
"mcpServers": {
"lemma": {
"command": "npx",
"args": ["@artano-ai/mcp-server"]
}
}
}

First calls

From a tool-use loop, the model can:

  • cards_list — list cards (optional domain filter);
  • cards_get — fetch a full card by id (refuses to fabricate unknown ids);
  • ops_get — fetch a runnable ops template (SLURM, Snakemake, Singularity);
  • hypothesis_crosscheck — check an AI-proposed new principle against the corpus and universal priors (dimensional analysis, reference resolution, limits);
  • usce_check — range-check a finished run’s numbers against a card’s validation envelopes;
  • series_check — check a whole reported series against the sign and bound conditions a card declares (reaches cards that deliberately have no envelopes);
  • convergence_check — recompute an order of accuracy from a refinement study rather than trusting a reported number;
  • agreement_check — check whether independent methods agree, within a card’s cross-method tolerances;
  • rag_lookup — semantic search over the corpus (needs a vector store; the other eight work without one).

Inspect the corpus from Python

from artano_lemma import load_cards
cards = load_cards()
print(f"{len(cards)} cards across {len({c.domain for c in cards})} domains")
card = next(c for c in cards if c.id == "density-of-states")
print(card.name, "·", card.domain)

Next steps