io.github.CloudCorpRecords/typosquat
Check dependency names against popular package names at small edit distance.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@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
From the project's README on GitHub, refreshed weekly. Links open on 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
Frequently asked questions
What is io.github.CloudCorpRecords/typosquat?
Check dependency names against popular package names at small edit distance.
How do I install io.github.CloudCorpRecords/typosquat?
It runs on your machine. In Claude Code: claude mcp add typosquat -- npx -y @reneturcios/typosquat@0.1.0 mcp. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.CloudCorpRecords/typosquat need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is io.github.CloudCorpRecords/typosquat open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains io.github.CloudCorpRecords/typosquat?
It is published by CloudCorpRecords. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.