parseltongue-claude
# parseltongue-claude
MCP server + skill for [Parseltongue](https://github.com/sci2sci-opensource/parseltongue) hallucination detection in Claude Code.
## Quick Start
```bash
# 1. Install
uv pip install -e .
# 2. Add MCP server
claude mcp add --transport stdio parseltongue -- $(pwd)/run-server.sh
# 3. Install skills
mkdir -p ~/.claude/skills
ln -s $(pwd)/skills/parseltongue ~/.claude/skills/parseltongue
ln -s $(pwd)/skills/parseltongue-review ~/.claude/skills/parseltongue-review
# 4. Restart Claude Code, then:
/parseltongue [document] What are the key claims?
/parseltongue-review README.md # audit your own docs
```
## What It Does
Inverts Parseltongue's architecture: instead of Parseltongue calling an LLM API, **Claude Code becomes the LLM** and calls Parseltongue for verification.
```
Original: You → Parseltongue → LLM API → DSL → Verify
This: You → Claude Code → Parseltongue MCP → Verify
```
Every claim must cite a verbatim quote. Misquotes are flagged as hallucinations.
## Skills
**`/parseltongue`** — Grounded document analysis
Analyze external documents with provable claims. Every fact traces to a verbatim quote.
```
/parseltongue [SEC filing] Are there revenue recognition red flags?
```
**`/parseltongue-review`** — Documentation audit
Audit docs for accuracy, duplication, and consistency with source.
```
/parseltongue-review README.md # vs upstream, find duplicated content
/parseltongue-review docs/ # audit mkdocs site
```
## MCP Tools
| Tool | Description |
|------|-------------|
| `parseltongue_create_session` | Create verification session |
| `parseltongue_register_document` | Register source document |
| `parseltongue_load_dsl` | Load DSL and verify quotes |
| `parseltongue_check_consistency` | Full consistency check |
| `parseltongue_dsl_reference` | Get DSL docs |
See [upstream Parseltongue docs](https://github.com/sci2sci-opensource/parseltongue) for DSL syntax and examples.
## Development
```bash
uv pip install -e ".[dev]" # install
uv run pre-commit install --hook-type commit-msg --hook-type pre-commit
uv run pytest # test (80% coverage)
uv run ruff check --fix . && uv run ruff format . # lint + format
uv run cz commit # conventional commit
```
## License
Apache-2.0
TDQS
Scored across 9 tools
Tools are largely distinct by function: create/register/load/check/query/get/clear each target a different aspect of the session lifecycle. The only mild overlap is parseltongue_check_consistency vs parseltongue_load_dsl (both return verification/consistency info) and get_state vs query, but descriptions make the boundaries reasonably clear.
All tools follow the consistent parseltongue_verb_noun pattern (create_session, register_document, load_dsl, check_consistency, get_state, query, list_sessions, clear_session, dsl_reference). Minor deviation is the verb-less 'query' and 'dsl_reference', but these are readable and predictable overall.
Nine tools is a reasonable count for a session-management plus DSL-engine server. Each tool serves a clear purpose without feeling bulky; slightly on the higher end for a content-verification tool but well within acceptable range.
The surface covers the full session lifecycle: create, register documents, load DSL, check, query, get state, list, and clear. Minor gaps exist (no delete_session/destroy session, no update/append operations), but the core verification workflow is well covered.