Integration Verification¶
Use this page when deciding whether an agent integration is truly ready to claim publicly.
Evidence Levels¶
| Evidence | Counts as | Does not count as |
|---|---|---|
lerim connect <agent> --mode mcp --dry-run |
Safe preview of the config write. | Installed-client support. |
lerim connect <agent> --mode mcp |
Config writer can mutate the target file and create a backup. | A live agent tool call. |
lerim connect doctor <agent> |
Lerim can parse the config and see the MCP entry. | Proof that the client loaded or used the tool. |
| Local stdio MCP tool-call probe | Lerim's MCP server can execute lerim_context_brief through the MCP protocol. |
Proof that an external client selected the tool. |
| Local stdio trace-submit duplicate probe | Lerim's MCP server can accept, normalize, and idempotently skip a duplicate submitted trace. | Proof that LLM extraction quality passed. |
| Opt-in local stdio trace-submit extraction probe | When accepted, a synthetic submitted trace ran through the DSPy extraction path and created records. | Proof that an external installed client submitted an organic trace; the current public MCP artifact has 0 extraction acceptances. |
| Installed client CLI list/get command | The installed client can see the Lerim MCP entry. | Proof that lerim_context_brief was called. |
| Live tool-call probe | The client called a Lerim MCP context tool. | Native completed-session capture. |
| Native adapter ingest over a completed session | Native capture for that source shape. | MCP recall support. |
Standard Lerim Checks¶
Run these for every target:
lerim connect <agent> --mode mcp --dry-run
lerim connect <agent> --mode mcp
lerim connect doctor <agent>
doctor should report:
- config exists
- configured is true
- no parse error
If the target config already existed, lerim connect should create a timestamped
backup next to it.
Installed Client Checks¶
The benchmark runner also calls lerim_context_brief directly through Lerim's
local stdio MCP server by default. That is a useful server-path check, but keep
it separate from installed-client acceptance.
These commands are currently useful where the client exposes an MCP CLI:
| Client | Command | Strongest current signal |
|---|---|---|
| Codex CLI | codex mcp get lerim |
Config visible; no connected marker exposed by this probe. |
| Claude Code | claude mcp get lerim |
Status: Connected. |
| Gemini CLI | gemini mcp list |
lerim listed as connected. |
| OpenCode | opencode mcp list |
lerim connected. |
For clients without a CLI list/get command, use config doctor evidence and mark
the row as config-writer tested until an installed-client probe exists.
Public benchmark artifacts keep aggregate installed-client counts but omit
per-machine client inventory from details.jsonl.
Live Tool-Call Probes¶
Live probes can spend model or subscription budget, so keep them opt-in. The current benchmark runner has an explicit gate:
uv run python benchmarks/lerim_evidence/integration.py \
--include-real-doctor \
--include-installed-client-probes \
--include-tool-call-probes \
--allow-live-client-tool-calls \
--tool-call-targets gemini-cli \
--output-dir <private-output-dir>
The live tool-call acceptance target is simple: the installed client should call
lerim_context_brief and return the probe marker.
Use --tool-call-targets to rerun only the client whose auth, quota, or config
changed.
Current public live tool-call evidence:
| Client | Artifact | Result |
|---|---|---|
| Gemini CLI | benchmarks/results/raw/mcp-gemini-live-tool-call/report.json |
Connected and called lerim_context_brief through the installed client. |
See MCP Integration for the current public evidence boundary.
Do not turn a skipped live probe into a support claim.
Native Capture Checks¶
For Claude Code, Codex CLI, Cursor, OpenCode, and pi, native adapter support should be verified with completed local sessions:
lerim ingest --agent <agent> --no-extract
lerim queue --status pending
lerim ingest --agent <agent>
lerim context records --profile coding
Fixtures and unit tests are useful, but they do not prove that the current local client version still stores sessions in the expected shape.
Troubleshooting¶
- If
doctorreports a parse error, inspect the target config file before running another write. - If the client cannot start the MCP server, rerun
lerim connect <agent> --mode mcpso Lerim writes the absolute Python executable plus-m lerim.mcp_server. For manual configs, setcommandto an absolute Python path andargsto["-m", "lerim.mcp_server"]; do not point the clientcommandat thelerimexecutable. - If a VS Code agent cannot find its config, confirm the active VS Code profile and global storage path.
- If an installed-client probe passes but live tool calls fail, treat support as config-visible only.
- If an MCP-first agent has no stable session export, mark it recall-only unless
the agent explicitly calls
lerim_trace_submit.