io.github.CloudCorpRecords/typosquat
Check dependency names against popular package names at small edit distance.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
@reneturcios/typosquatclaude mcp add typosquat -- npx -y @reneturcios/typosquat@0.1.0 mcp
{
"mcpServers": {
"typosquat": {
"command": "npx",
"args": [
"-y",
"@reneturcios/typosquat@0.1.0",
"mcp"
]
}
}
}
ghcr.io/cloudcorprecords/typosquat:0.1.0claude mcp add typosquat -- docker run -i --rm ghcr.io/cloudcorprecords/typosquat:0.1.0 mcp
{
"mcpServers": {
"typosquat": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/cloudcorprecords/typosquat:0.1.0",
"mcp"
]
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
typosquat
A typosquat checker for a dependency list. It reads the package.json of a
project, collects every dependency name from dependencies,
devDependencies, peerDependencies and optionalDependencies, and
compares each name against a bundled list of popular npm package names.
A dependency that is not itself a popular package but closely resembles
one is flagged as a possible typosquat, with the popular package it
resembles named as evidence.
The check is fully offline and deterministic: no network calls, no timestamps, findings sorted by dependency name.
Install
npx @reneturcios/typosquat check .
Or install it globally:
npm install -g @reneturcios/typosquat
typosquat check .
CLI
typosquat check [path] [--json]
typosquat mcp
typosquat --version
check [path]: check the project atpath(a directory containing apackage.json, or a direct path to apackage.jsonfile). Defaults to the current directory. Add--jsonfor the machine readable report.mcp: run the MCP server over stdio.--version: print the version.
Exit codes: 0 when the verdict is CLEAR, 1 when the verdict is
SUSPECT, 2 for usage errors and for a missing or invalid package.json.
Example human output:
typosquat 0.1.0
Target: .
Verdict: SUSPECT
Dependencies checked: 5
Flagged: 1
Summary: Checked 5 dependencies; 1 flagged as possible typosquats.
Findings:
- [HIGH] DISTANCE-1: Dependency "axioss" resembles popular package "axios" (edit distance 1) (evidence: axios)
MCP
The MCP server exposes one tool:
check_typosquatwith apathargument. It returns the same report as the CLI--jsonoutput: tool name, version, target, verdict, counts (depsChecked,flagged), findings and a summary.
Matching rules
Names are normalized by lowercasing before comparison. A dependency that is itself in the popular list is never flagged. For every other dependency, the strongest matching rule wins:
SEPARATOR-SQUAT(high severity): the dependency name equals a popular name once hyphens, underscores and dots are stripped from both names, but the raw names differ. Example:node_fetchvsnode-fetch.DISTANCE-1(high severity): Levenshtein edit distance 1 from a popular name. Example:axiossvsaxios.DISTANCE-2(medium severity): Levenshtein edit distance 2 from a popular name whose length is 9 or more characters. Short names are excluded at distance 2 because too many unrelated short names sit within two edits of each other. Example:typescrpitvstypescript.
Scope confusion is not checked: an unscoped dependency that equals only
the unscoped part of a scoped popular name (for example client vs
@prisma/client) is too weak a signal to flag.
Verdict
CLEAR: no dependency resembled a popular package name.SUSPECT: at least one dependency was flagged.
Limits
- The popular package list is a snapshot dated 2026-10-25, written from knowledge of the npm ecosystem. It will drift: new packages become popular and old ones fade, and a snapshot cannot track that.
- Edit distance catches typos, not every squatting style. It does not
catch combosquats (a popular name combined with an extra word, such as
axios-helper), homoglyph or bit squats, or scope tricks beyond the separator rule above. - The checker reads names only. It does not inspect package contents, maintainers, download counts or publish history, so it cannot judge malicious intent.
- A flag is a resemblance, not an accusation. Legitimate packages can sit one edit away from a popular name. Treat every finding as a prompt to look, not as proof of wrongdoing.
License
MIT
Questions fréquentes
Qu'est-ce que io.github.CloudCorpRecords/typosquat ?
Check dependency names against popular package names at small edit distance.
Comment installer io.github.CloudCorpRecords/typosquat ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add typosquat -- npx -y @reneturcios/typosquat@0.1.0 mcp. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.CloudCorpRecords/typosquat ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
io.github.CloudCorpRecords/typosquat est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient io.github.CloudCorpRecords/typosquat ?
Il est publié par CloudCorpRecords. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.