# Truthound

Checks local data files, profiles columns and flags possible personal data without handing raw values back to the agent. Useful before a dataset reaches your pipeline.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 19
- Author: seadonggyun4
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/seadonggyun4/truthound
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/truthound

## What it does

Truthound is an MCP server wrapping a data validation framework built on Polars. From inside an agent it validates local files, summarizes table and column profiles, and marks likely PII. Its `th.scan()` call inspects the first 1,000 non-null values in string columns, working from a limited sample instead of loading the whole frame, and reports what it finds as an estimate.

The default check suite is picked by heuristics on schema: null tolerance, types, ranges, keys. Not every check runs. Everything lands in a single `ValidationRunResult`, which feeds reports and checkpoints. When a Parquet file carries full footer statistics, the scan stops once each column sample is complete; without them the batches are counted in full.

Startup goes through `uvx truthound`, so `uv` has to be installed. For Codex and the ChatGPT desktop app the README describes a plugin marketplace route, followed by choosing an allowed folder. Access to a data directory is granted explicitly, and the server only touches what you allow.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add truthound -- uvx truthound
```
uvx runs the command named after the package; if the README names another one, use uvx --from truthound <command>

### Codex

**Platform CLI**
```bash
codex mcp add truthound -- uvx truthound
```
uvx runs the command named after the package; if the README names another one, use uvx --from truthound <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "truthound": {
            "command": "uvx",
            "args": [
                "truthound"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from truthound <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "truthound": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "truthound"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from truthound <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add truthound uvx truthound
```
uvx runs the command named after the package; if the README names another one, use uvx --from truthound <command>

## When to use it
- validate a local CSV or Parquet file before loading it into a pipeline
- find personal data in string columns without reading all of them
- get a table and column profile for a report
- generate validation rules from a data profile
- spot drift and anomalies between two dataset versions

## Example prompts
- Validate `orders.parquet` and list which checks failed
- Scan the string columns in `users.csv` for personal data
- Profile the `events` table and suggest validation rules from it

## Similar
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89408
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [MCP Toolbox for Databases](https://affpapa.org/en/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP server · ★ 16717
- [PostHog MCP Server](https://affpapa.org/en/nevibecode/mcp/posthog-mcp-server.md) — MCP server · ★ 40409
- [dbx](https://affpapa.org/en/nevibecode/mcp/dbx.md) — MCP server · ★ 27669
- [Metabase](https://affpapa.org/en/nevibecode/mcp/metabase.md) — MCP server · ★ 49845

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
