HumanProof
humanproof
77 tests · 95% coverage — motor-noise fingerprinting for AI detection in competitive games.
Navigation: Why · How it works · Features · Install · Quick Start · CLI · REST API · MCP / Claude · OpenAI · GitHub Action · vs Alternatives · Repo tree · Star history
Why
AI agents in competitive gaming (FPS, RTS, MOBAs) produce unnaturally smooth input — near-zero jitter, no micro-corrections, perfectly consistent velocity. humanproof quantifies this difference with a lightweight pure-Python library that requires no ML models.
Related MCP server: nautilus-compass
How it works
graph LR
A[Input samples dx/dy/dt] --> B[InputTrajectory]
B --> C[MotorScorer.extract_features]
C --> D[MotorFeatures<br/>noise_ratio, correction_rate, smoothness]
D --> E[MotorScorer.score]
E --> F[MotorScore<br/>human_score, ai_score, verdict]
F --> G[CLI / API / MCP]Features
Feature | Description |
Minimal dependencies (click, rich only) | No numpy, no scikit-learn — just two lightweight CLI/display packages |
No training data | Threshold-based heuristics, works out of the box |
Multiple interfaces | CLI, FastAPI REST server, MCP for Claude |
SQLite persistence | Stores trajectories and scores locally |
77 pytest tests | 95% coverage, fully typed |
MCP tools |
|
OpenAI functions | JSON definitions in |
GitHub Action |
|
Key discriminating features:
Signal | Human | AI |
| 0.4 – 0.8 | 0.05 – 0.2 |
| 0.15 – 0.35 | < 0.05 |
| < 5.0 | > 8.0 |
Install
Note: PyPI publication is pending. Install directly from GitHub:
pip install git+https://github.com/sandeep-alluru/humanproof.git
pip install humanproof
pip install "humanproof[api]" # + FastAPI server
pip install "humanproof[mcp]" # + MCP server for ClaudeQuickstart
from humanproof import InputSample, InputTrajectory, MotorScorer
samples = [InputSample(dx=3.0, dy=2.0, dt=10.0) for _ in range(20)]
traj = InputTrajectory(samples=samples)
scorer = MotorScorer()
result = scorer.score(traj)
print(result.verdict, result.human_score)CLI
Command | Description |
| Score a single JSON trajectory file |
| Score all JSON files in a directory |
| Score trajectories from a CSV file (columns: trajectory_id, t, x, y, button) |
| Analyze a session CSV for behavioral shifts across trajectories |
| List all stored scores |
| Show count of stored data |
humanproof score trajectory.json
humanproof batch ./trajectories/
humanproof log
humanproof statusREST API
pip install "humanproof[api]"
uvicorn humanproof.api:app --reload
curl -X POST http://localhost:8000/score -H 'Content-Type: application/json' \
-d '{"samples": [{"dx":1,"dy":1,"dt":10}]}'Endpoints: GET /health · POST /score · POST /batch · GET /scores
MCP / Claude
Add to Claude Desktop config (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"humanproof": {
"command": "humanproof-mcp"
}
}
}Tools available: score_trajectory, batch_score, list_scores.
OpenAI Function Calling
Function definitions are in tools/openai-tools.json:
import json, openai
tools = json.load(open("tools/openai-tools.json"))
response = openai.chat.completions.create(
model="gpt-4o",
tools=tools,
messages=[{"role": "user", "content": "Is this input human?"}]
)GitHub Action
- uses: sandeep-alluru/humanproof@v0.1.0
with:
trajectory-file: replay.jsonAlternatives
Tool | Approach | humanproof advantage |
VAC / EasyAntiCheat | Memory scanning | No kernel driver needed |
ML classifiers | Requires training data | Zero-shot, no model required |
Replay analysis tools | Manual review | Automated, scriptable API |
Kernel-level drivers | OS-level hooks | Pure Python, cross-platform |
Repository tree
humanproof/
├── src/humanproof/ # library source
│ ├── trajectory.py # InputSample, InputTrajectory
│ ├── scorer.py # MotorFeatures, MotorScore, MotorScorer
│ ├── store.py # SQLite persistence
│ ├── report.py # Rich / JSON / Markdown output
│ ├── cli.py # Click CLI
│ ├── api.py # FastAPI server
│ └── mcp_server.py # MCP server
├── tests/ # 77 pytest tests, 95% coverage
├── examples/
│ ├── demo.py # end-to-end demo
│ ├── game_anticheat.py # game anti-cheat integration example
│ ├── esports_integrity_monitor.py # esports session integrity monitor
│ └── claude_computer_use_detection.py # Claude computer-use AI detection
├── docs/ # 11-page MkDocs site
└── tools/openai-tools.jsonStar history
Add topics to this repo:
gaminganti-cheatmotor-fingerprintingai-detectionpython
Real-World Scenario
Esports: Detecting AI Aimbot in Tournament Play
A tournament operator reviews replay data for a suspected aimbot. The player's mouse trajectory is unnaturally smooth — no micro-corrections, no velocity variance. humanproof flags it in under 100ms with no ML model required:
from humanproof import InputSample, InputTrajectory, MotorScorer
# Human player trajectory — realistic noise, varied timing (dt 8–12ms)
human_deltas = [
(3.1, 2.4, 9.0), (-1.2, 3.8, 11.0), (4.7, -0.9, 8.0), (2.3, 5.1, 10.0),
(-0.8, 2.7, 12.0), (5.2, -1.4, 9.0), (1.9, 4.3, 10.0), (-2.6, 0.8, 8.0),
(3.8, -3.1, 11.0), (0.4, 6.2, 9.0), (-1.7, 2.9, 10.0), (4.1, 0.3, 12.0),
(2.8, -2.2, 8.0), (-0.5, 4.8, 10.0), (3.4, 1.7, 9.0), (1.1, -3.6, 11.0),
(5.0, 2.1, 10.0), (-2.9, 3.5, 8.0), (0.7, -1.8, 12.0), (4.4, 2.6, 9.0),
]
human_samples = [InputSample(dx=dx, dy=dy, dt=dt) for dx, dy, dt in human_deltas]
# AI bot trajectory — unnaturally smooth, perfectly consistent timing (dt=16ms exactly)
bot_deltas = [
(2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0),
(2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0),
(2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0),
(2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0),
(2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0), (2.0, 2.0, 16.0),
]
bot_samples = [InputSample(dx=dx, dy=dy, dt=dt) for dx, dy, dt in bot_deltas]
scorer = MotorScorer()
human_result = scorer.score(InputTrajectory(samples=human_samples))
bot_result = scorer.score(InputTrajectory(samples=bot_samples))
print(f"[Player] verdict={human_result.verdict} human_score={human_result.human_score:.2f} ai_score={human_result.ai_score:.2f}")
print(f"[Bot] verdict={bot_result.verdict} human_score={bot_result.human_score:.2f} ai_score={bot_result.ai_score:.2f}")
if bot_result.verdict == "AI":
print("\nFLAGGED: Suspected aimbot detected — trajectory referred to tournament integrity committee.")What this catches that traditional anti-cheat misses: Memory scanners require OS-level access and are bypassed by external AI controllers. humanproof works on replay data alone — usable post-match for dispute resolution, with no kernel driver required.
Case Studies
See how teams are using humanproof in production:
Behavioral Anti-Cheat for Competitive Esports — IronLadder detects 847 cheaters in 30 days with 0.3% false positive rate
Separating Real Users from AI Agents in Web Analytics — Veridian Analytics quarantines 94% of bot traffic across 500 e-commerce clients
Stay Updated
Subscribe to The Silence Layer — weekly dispatches on production AI infrastructure, new releases, and the failure modes that production AI systems don't surface until it's too late.
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceRuntime policy enforcement for AI agents. Evaluate every agent action against your organization's policies before execution, with observe and enforce modes.Last updated11MIT
- Alicense-qualityCmaintenanceEnables AI agents to retain memory of past interactions and detect behavioral drift, preventing repeated mistakes without LLM token extraction.Last updated295MIT
- Alicense-qualityDmaintenanceRuntime quality validation for AI agent outputs. Detect hallucinations, enforce scope compliance, and score output quality — all via MCP.Last updated92MIT
- Alicense-qualityAmaintenanceRuntime governance for AI-agent fleets that continuously monitors agent health, confidence, and behavior through check-ins, and returns verdicts to enable self-correction before failures occur.Last updated3Apache 2.0
Related MCP Connectors
Responsible-AI guardrails for agents: scoring with policy, injection & PII detection, DPDP.
KYC, KYB, AML, wallet screening, transaction monitoring, and fraud workflows for AI agents.
The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sandeep-alluru/humanproof'
If you have feedback or need assistance with the MCP directory API, please join our Discord server