paper-preflightBLOCK
Pre-submission integrity gate for LaTeX papers: every reference verified against real scholarly records. No LLM guessing.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Check every reference of a LaTeX paper against real scholarly records before you submit. No LLM guessing, no false accusations.
[](https://github.com/amos689/paper-preflight/actions/workflows/ci.yml) [](https://pypi.org/project/paper-preflight/) [](LICENSE) [](https://glama.ai/mcp/servers/amos689/paper-preflight)
[](pyproject.toml) [](#quick-start) [](#how-it-works) [](#design-principles) [](docs/mcp.md)
[](https://github.com/amos689/paper-preflight/actions/workflows/ci.yml) [](README.zh-CN.md)
English · 简体中文 · Quick start · User guide · Releases · Feedback
 | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (3 observation(s))
- Network
- declared (6 observation(s))
- Shell
- declared (1 observation(s))
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (17)
HEADERS = {"User-Agent": "paper-preflight-eval (https://github.com/amos689/paper-preflight)"}dict(os.environ) ... httpx.
.pre-commit-config.yaml
.pre-commit-hooks.yaml
packet = hashlib.sha1(json.dumps([ident, work_fields]).encode()).hexdigest()[:10]
return "f-" + hashlib.sha1(basis.encode("utf-8")).hexdigest()[:10]path = self.folder / "pdf" / f"{hashlib.sha1(url.encode()).hexdigest()}.pdf""[the project's settings](../../README.md#project-settings).",
"也可以在[项目设置](../../README.zh-CN.md#项目设置)中对整个项目关闭。",
@pytest.mark.parametrize("path", ["..", "../../etc", "/"])assert not public_url("http://192.168.1.10/data.csv")assert public_url("http://8.8.8.8/")"xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j
"xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j
decoded = base64.b64decode("".join(data.split()), validate=False)- API keys and contact emails are read from environment variables only and must never be
Gates applied: no_behavioural_pass.
9e38e33d0b1afull audit observations/trust-audit/mcp-server/amos689__paper-preflight.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 9e38e33d0b1a | BLOCK | D | 69 | first audit |
Questions
What is the paper-preflight MCP server?
Pre-submission integrity gate for LaTeX papers: every reference verified against real scholarly records. No LLM guessing.
Is paper-preflight safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (69/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does paper-preflight need?
No credential environment variables were found in its source, so it appears to need none.
How does paper-preflight run?
It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as paper-preflight.
How current is this page?
The grade is for one exact copy of the source (9e38e33d0b1a), read on 2026-10-08. The repository is watched and re-audited when it changes.