Skip to main content

MCP server for groundlens — LLM hallucination detection for Claude Desktop, Cursor, Windsurf, and any MCP client

Project description

Groundlens-mcp

groundlens MCP

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.

CI codecov Python License

What it does

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.

Install

pip install groundlens-mcp

Or with uv:

uv pip install groundlens-mcp

Configure your client

Claude Desktop

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"]
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project:

{
  "mcpServers": {
    "groundlens": {
      "command": "groundlens-mcp"
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "groundlens": {
      "command": "groundlens-mcp"
    }
  }
}

How to use

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.

Example output

{
  "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."
  }
}

How it works

groundlens uses embedding geometry — not a second LLM — to detect hallucinations:

  • SGI computes 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.
  • DGI projects the question→response displacement onto the mean direction of verified grounded pairs. Positive alignment = grounded pattern.

Both methods run a single embedding call. No model inference for evaluation. Deterministic.

First-call latency

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.

Running from source

git clone https://github.com/groundlens-dev/groundlens-mcp.git
cd groundlens-mcp
pip install -e .
groundlens-mcp

Or:

python -m groundlens_mcp

Links

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

groundlens_mcp-2026.5.16.tar.gz (151.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

groundlens_mcp-2026.5.16-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file groundlens_mcp-2026.5.16.tar.gz.

File metadata

  • Download URL: groundlens_mcp-2026.5.16.tar.gz
  • Upload date:
  • Size: 151.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for groundlens_mcp-2026.5.16.tar.gz
Algorithm Hash digest
SHA256 1b8d380e2c7b7fdabe2553e4c71420dcb67ffc1221a57d87f963a0e9ce86e693
MD5 6c9ce0b64c63644b7f11b8d8bfcd1847
BLAKE2b-256 22fee6b76115320189b3f7fdf0b61dc567aa6f9b3e4b392fecf91c9178b4e751

See more details on using hashes here.

Provenance

The following attestation bundles were made for groundlens_mcp-2026.5.16.tar.gz:

Publisher: publish.yml on groundlens-dev/groundlens-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file groundlens_mcp-2026.5.16-py3-none-any.whl.

File metadata

File hashes

Hashes for groundlens_mcp-2026.5.16-py3-none-any.whl
Algorithm Hash digest
SHA256 d4159e6f3f024c73a083f8fdcb2b169c32119280771de74f32f6567ba5b639a1
MD5 5aaaca3574730e67285d53d0bbd28438
BLAKE2b-256 d216627c8aa281d150bc1d601366a30e79200e0b038a0c31c1857a2dbea97c4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for groundlens_mcp-2026.5.16-py3-none-any.whl:

Publisher: publish.yml on groundlens-dev/groundlens-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page