
cite-gate
kr.co.mlpcv0.1.0Updated Oct 9, 2026
Checks that every quote in an AI-written script appears word for word in its source.
Overview
Checks that quotes and numbers in an AI-written script appear word for word in supplied source texts.
- What it does
- cite-gate verifies a claims file against a folder of plain-text sources. Its check_citations tool reports failures and warnings when a quote is missing from its source, a quote is too short, or a number in the prose is absent from that item's quotes; check_numbers lists numbers in a text that no quote contains. It also warns about copied passages, possible unsourced names, and quantity words. It does not judge whether a claim is true, only whether the cited sentence exists.
- When to use it
- Use it when drafting scripts, articles, or reports with AI help and you want an automated gate that every factual item carries a quote traceable to a source. It suits review workflows where a human still checks the sources, and it can run on every change in CI.
- Requirements
- A remote streamable HTTP endpoint at or the local Python server (Python 3.10+, no dependencies) run over stdio. Input is a claims JSON file plus a folder of plain-text sources, one file per source id. No accounts, API keys, or environment variables are declared.
Installation
In SourceWeft
- Open cite-gate in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"cite-gate": {
"type": "http",
"url": "https://mcp.mlpc.co.kr/mcp"
}
}
}README
cite-gate
A small checker for scripts written with AI help. It makes every factual item in a script carry a quote that appears word for word in a source file, and it flags prose that copies the source instead of retelling it.
It doesn't decide whether a claim is true. It decides whether you can point at the sentence your claim came from, and whether that sentence actually exists.
The example fails on purpose: its last three items are mistakes that a language model makes all the time (a number it worked out itself, a quote it half remembered, a paragraph lifted from the source).
Why
Language models write fluent prose with confident details. The details that go wrong are the small ones: a year that's off by one, a name added "for context", a quote paraphrased into something the source never said. Reading the whole script against the sources by hand doesn't scale. This tool turns that reading into a gate you can run on every change.
What it checks
Exit code is 1 when there are failures. --strict also fails on warnings.
Input format
A claims file (JSON) and a folder of plain-text sources, one file per source id.
sources/gettysburg.txt holds the source text. Keep your own copy of each source (with its
URL and revision noted at the top), so a later run checks against the same text.
Config
Use
Command line (Python 3.10+, no dependencies):
GitHub Actions:
Use from your agent (MCP)
cite-gate ships a small Model Context Protocol server, so an agent can check its own draft before it shows it to you. It runs locally over stdio, has no dependencies, makes no network calls and collects no telemetry.
Tools:
There's also a hosted endpoint at https://mcp.mlpc.co.kr/mcp (MCP Streamable HTTP, same two
tools, up to 3,000 characters of prose per call). It doesn't store your text; what it does log is
listed in worker/README.md. For zero logging, use the local server above.
Would a hosted version or a review service be useful to you? Tell us in Discussions.
Limits
- The heuristics are tuned for English prose.
- A quote that exists is not a claim that is correct. Sources can be wrong, and an item can cite a real sentence that says something else. The gate makes the review smaller; it doesn't replace it.
- Proper-noun and quantity checks are warnings because they have false positives. Fix them or
add the name to
allow; don't learn to ignore them.
Example text
examples/gettysburg/sources/gettysburg.txt is the Gettysburg Address (1863), in the public
domain, transcribed here from the Bliss copy. Small wording differences between Lincoln's
manuscript copies exist; the checker compares against this file only.
License
AGPL-3.0-or-later. Copyright (C) 2026 MLPC Inc. (see LICENSE).
Source: README.md at commit f5bee0a
Tools
0Version history
1- v0.1.0LatestOct 9, 2026

