loading…
Search for a command to run...
loading…
Enables hallucination detection for AI assistants by providing tools to assess whether responses are grounded in source material or follow grounded patterns.
Enables hallucination detection for AI assistants by providing tools to assess whether responses are grounded in source material or follow grounded patterns.
MCP server for groundlens — LLM hallucination detection for Claude Desktop, Cursor, Windsurf, and any MCP-compatible client. No second LLM. Deterministic. Same inputs → same scores, every time.
Adds three tools to your AI assistant:
| Tool | What it checks | When to use it |
|---|---|---|
groundlens_check |
Auto-selects the right method | Default — just use this one |
groundlens_sgi |
Response vs. source document (SGI) | RAG pipelines, document Q&A |
groundlens_dgi |
Response patterns without context (DGI) | Chat, general Q&A |
SGI (Semantic Grounding Index) measures whether the response actually used the source material or just rephrased the question. Score > 0.95 = grounded.
DGI (Directional Grounding Index) measures whether the response follows geometric patterns typical of grounded answers. Score > 0.30 = grounded.
pip install groundlens-mcp
Or with uv:
uv pip install groundlens-mcp
Add to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"groundlens": {
"command": "groundlens-mcp"
}
}
}
If you installed with uv and the command isn't on your PATH:
{
"mcpServers": {
"groundlens": {
"command": "uv",
"args": ["run", "groundlens-mcp"]
}
}
}
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"groundlens": {
"command": "groundlens-mcp"
}
}
}
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"groundlens": {
"command": "groundlens-mcp"
}
}
}
Once configured, ask your ai assistant:
"Check if this response is hallucinated"
"Is this answer grounded in the document I provided?"
"Run a hallucination check on this ChatGPT output"
The tools return JSON with a verdict (GROUNDED or HALLUCINATION RISK), a numeric score, and a plain-language explanation.
{
"verdict": "HALLUCINATION RISK",
"explanation": "The response may not be based on the source material provided.",
"method": "SGI (Semantic Grounding Index)",
"score": 0.8721,
"threshold": 0.95,
"flagged": true,
"detail": {
"q_dist": 0.4312,
"ctx_dist": 0.4945,
"interpretation": "Response stayed close to the question rather than engaging with the context."
}
}
groundlens uses embedding geometry — not a second LLM — to detect hallucinations:
dist(response, question) / dist(response, context). If the response moved toward the context, it's grounded. If it stayed near the question, the context was likely ignored.Both methods run a single embedding call. No model inference for evaluation. Deterministic.
The first tool call downloads and loads the sentence-transformer model (~100MB). Subsequent calls are fast. The model is loaded lazily so your MCP client doesn't slow down on startup.
git clone https://github.com/groundlens-dev/groundlens-mcp.git
cd groundlens-mcp
pip install -e .
groundlens-mcp
Or:
python -m groundlens_mcp
pip install groundlensMIT
Run in your terminal:
claude mcp add groundlens-mcp -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.