mcp server
DepScope
Package intelligence MCP for AI agents — 22 tools, 19 ecosystems, AGPL SDK, free.
Description as published by the maintainer. Source
- version 0.9.24
- slowing
slowing — Most recent push to the repository was 2026-05-05.
What this server can do
22 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
check_bulk(items)- Fast pre-flight filter for a batch of (ecosystem, package) pairs. DB-only, <100ms for 100 items. USE WHEN: about to emit `npm install a b c …` or `pip install a b c …` — catches hallucinated names, stdlib, typos, and known-bad in ONE call. NOT a dep-tree audit (use scan_project for that). RETURNS: per-item {status: exists|stdlib|malicious|typosquat_suspect|historical_incident|unknown}. Required: items.
check_compatibility(packages)- Is this specific multi-package version combo verified to work together? USE WHEN: pinning a stack (next@15 + react@19 + node@22); before recommending a version matrix. RETURNS: {compatible, conflicts[], notes}. Required: packages.
check_malicious(package, ecosystem)- Supply-chain malware check against OpenSSF/OSV. USE WHEN: about to suggest install of an unvetted/unfamiliar package; name came from a blog/tutorial. Call BEFORE check_package for untrusted pkgs. RETURNS: {is_malicious, threat_tier, source}. Required: ecosystem, package.
check_package(package, version, ecosystem)- Full machine-readable JSON report (~2k tokens). USE WHEN: you need to programmatically parse specific fields (CI gating, UI, sub-field extraction). Otherwise prefer get_package_prompt. RETURNS: {package, health:{score}, vulnerabilities[], latest, deprecated, maintainers, recommendation}. Required: ecosystem, package.
check_typosquat(package, ecosystem)- Typosquat detector. USE WHEN: name differs from a well-known package by 1-2 chars (`lodsh`, `reqeusts`); copy-paste from unreliable source; downloads near zero but name looks familiar. RETURNS: {is_typosquat, likely_target, confidence}. Required: ecosystem, package.
compare_packages(packages, ecosystem)- Side-by-side comparison (health, vulns, downloads, maintainers, last release) of 2-10 packages in the same ecosystem. USE WHEN: 'X vs Y' / 'should I pick X or Y'. RETURNS: table-shaped JSON, one row per package. Required: ecosystem, packages.
contact_depscope(body, kind, name, email, company, package, subject, version, expected, observed, ecosystem, tool_called, evidence_url)- Inbound ticket: bug/listing/security/anomaly/partnership. USE WHEN: reporting wrong data (`bug`), requesting a new pkg/ecosystem index (`listing`), disclosing a DepScope security issue (`security`), flagging a concrete mismatch in another tool's output vs. authoritative source (`anomaly` — provide tool_called+observed+expected), or partnership/press (`partnership`). RETURNS: {ticket_id} or {anomaly_id}.
find_alternatives(package, ecosystem)- Curated replacements for deprecated/unhealthy packages, including stdlib built-ins (e.g. `fs.rm` for rimraf). USE WHEN: pkg flagged AVOID/URGENT; 'what to use instead of X'; before guessing a replacement name. RETURNS: {alternatives[]: {name, reason, is_stdlib}}. Required: ecosystem, package.
get_breaking_changes(package, ecosystem, to_version, from_version)- Breaking changes between two majors of the SAME package (`next@14`→`15`). USE WHEN: user is bumping a major; before recommending a major upgrade. Different from get_migration_path (same pkg vs. different pkg). RETURNS: {breaking_changes[]: {area, description, hint}}. Required: ecosystem, package.
get_health_score(package, ecosystem)- Single 0-100 health score — cheapest go/no-go gate (>=70 safe). USE WHEN: CI gating or pkg already screened for malware/typos. NOT a first screen — run check_malicious + check_typosquat first. For a verbal verdict use get_package_prompt. RETURNS: {score, verdict}. Required: ecosystem, package.
get_known_bugs(package, version, ecosystem)- Non-CVE known bugs for a specific package version. USE WHEN: unexpected behavior that is NOT a security issue; a pinned version misbehaves. RETURNS: {bugs[]: {title, fixed_in, workaround}}. Required: ecosystem, package.
get_latest_version(package, ecosystem)- Latest published version + deprecation flag — the cheapest call. USE WHEN: only a version string matters (pinning a dep, answering 'what version of X'). If you also need health/vulns use check_package. RETURNS: {latest, deprecated, published_at}. Required: ecosystem, package.
get_migration_path(ecosystem, to_package, from_package)- Prescriptive migration plan between DIFFERENT packages — rationale + literal code diff + breaking changes + effort minutes. USE WHEN: replacing `request`→`axios`, `moment`→`dayjs`, `flask`→`fastapi`, etc.; both endpoints known. RETURNS: {rationale, diff, breaking_changes[], estimated_minutes}. Required: ecosystem, from_package, to_package.
get_package_prompt(package, ecosystem)- LLM-optimised package brief — plain text ~300 tokens (~75% cheaper than JSON). Verdict (SAFE/AVOID/URGENT/MALICIOUS) + health + vulns + alternatives + maintainer alerts. USE WHEN: you want to reason over a package and drop the output directly in context; 'is X safe'. PREFER THIS over check_package in 95% of LLM cases. RETURNS: plain-text brief. Required: ecosystem, package.
get_trending(limit, scope, ecosystem)- Live trending packages with rank-delta and weekly growth %. USE WHEN: 'what is rising in npm/PyPI/Cargo right now'; recommendation not biased by training-data cutoff. RETURNS: {items[]: {name, rank, rank_delta, weekly_growth_pct}}.
get_trust_signals(package, ecosystem)- One-call aggregate of ALL non-CVE supply-chain trust signals: maintainer trust (bus factor, ownership changes), OpenSSF Scorecard, quality (criticality, release velocity, publish security), and SLSA/Sigstore provenance. USE WHEN: deep-vetting a package beyond CVEs (hardened/regulated env, SBOM/compliance, small-pkg ownership review, choosing between healthy candidates). Runs 4 backend endpoints in parallel. RETURNS: {maintainer, scorecard, quality, provenance} — each may be null if its backend call failed. Required: ecosystem, package.
get_vulnerabilities(package, ecosystem)- CVE/OSV advisories affecting the latest (or specified) version. USE WHEN: security-sensitive project; user asks 'any CVEs in X'; you already know the pkg exists. RETURNS: {vulnerability_count, vulnerabilities[]: {id, severity, cvss, fixed_in}}. Required: ecosystem, package.
install_command(package, version, ecosystem)- Canonical install command(s) across every package manager of the ecosystem (npm/pnpm/yarn/bun, pip/uv/poetry, cargo, go, composer, maven+gradle, nuget, …). USE WHEN: emitting an install line and you want correct flags. RETURNS: {primary, variants[]}. Required: ecosystem, package.
package_exists(package, ecosystem)- Boolean registry existence check. USE WHEN: about to emit a package name in an install command but unsure it exists; verifying a name generated from training data. RETURNS: {exists}. Required: ecosystem, package.
pin_safe(package, ecosystem, constraint, min_severity, include_prerelease)- Highest version below the chosen CVE severity tier, respecting a semver constraint. USE WHEN: writing a package.json/requirements.txt line; resolving dependabot by lowest-risk patched version. RETURNS: {recommended_version, walk_log[]}. Required: ecosystem, package.
resolve_error(error, limit, query, context)- Map error OR free-text query to a verified fix. USE WHEN: user pastes a concrete error/stack (ENOENT, ImportError, build failure) — pass `error`. OR user describes a symptom ('webpack slow', 'pip stuck') — pass `query`. Always prefer this over guessing a fix. RETURNS: exact-match {status, solution, confidence, source_url} or search results [{title, summary, source_url}].
scan_project(packages, ecosystem)- Audit a project's dependencies in one shot. Returns a single-sentence `verdict` (e.g. "DO NOT INSTALL — 1 hallucinated: fastapi-turbo") that an agent can paste into its reply, plus per-package health/vulns/recommendation. Detects hallucinated packages, deprecated, typosquats, critical vulnerabilities. Accepts EITHER {ecosystem, packages:[name@ver, …]} (up to 100, returns JSON) OR {packages:[{ecosystem, package}, …]} (up to 50, mixed ecosystems, returns text brief). USE WHEN: user pastes package.json/requirements.txt/Cargo.toml; agent generated install command; 'is my stack OK'. RETURNS: JSON with `verdict`, `project_risk`, `summary.hallucinated_packages`, `summary.deprecated_packages`, per-package health. Required: packages.
Last successful function declaration observed on . Source: https://mcp.depscope.dev/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://mcp.depscope.dev/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| GitHub stars | 0 | Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. | cumulative, all time | GitHub | |
| Last commit | 2026-05-05 | Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. | point in time | GitHub | |
| Open issues | 1 | Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. | as of fetch | GitHub | |
| Package downloads | 71 downloads | Package downloads from the npm registry in this window. Includes continuous integration runs, mirrors and automated installs, so it overstates the number of human users. | 2026-07-30 to 2026-08-05 | npm | |
| Latest published version | 0.9.24 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-05-05 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-05-05 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| repository status | active | The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. | as of fetch | GitHub | |
| mcp tools declared | 22 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | mcp.depscope.dev | |
| mcp endpoint status | ok | The server listed 22 functions when asked. | as of probe | mcp.depscope.dev |
Where to get it
Related, by what their authors tagged them
-
io.github.alisaitteke/npm-mcp
— last commit 2026-01-29, shares npm, package-manager
MCP server for npm package management, security analysis, and compatibility checking
-
io.github.getmcpm/cli
— last commit 2026-08-08, shares package-manager, security
MCP package manager with trust scoring. Search, install, and audit MCP servers.
-
Draugr
— last commit 2026-08-06, shares security, supply-chain-security, vulnerability-scanner
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
-
io.github.eltociear/skill-audit-mcp
— last commit 2026-08-02, shares security, supply-chain-security, vulnerability-scanner
Scan agent skills and MCP servers for malicious patterns before you load them
-
io.github.DigiCatalyst-Systems/dep-diff-mcp
— last commit 2026-04-25, shares npm, pypi, security
Translates a lockfile diff into a human-readable upgrade plan for npm and PyPI.
-
com.datakoot/package-intel-mcp
— last commit 2026-08-02, shares npm, pypi
npm, PyPI & crates.io intel for AI agents: versions, popularity, deps, health. No API keys.
-
Open Source Intelligence MCP
— last commit 2026-07-16, shares npm, pypi
GitHub project health, package dependency risk, trending repos, license & package comparison.
-
pkgxray
— last commit 2026-08-06, shares npm, supply-chain-security
Pre-install security scans for npm packages, MCP servers, and AI agents with cited verdict evidence.
-
io.github.amitsingh-24/pixlint
— last commit 2026-07-27, shares pypi
Lint, curate & prepare computer-vision datasets from your AI assistant — MCP server, 67 tools
-
io.github.davidmosiah/agent-seo-engine
— last commit 2026-07-03, shares pypi
Agent-first local SEO quality, intent and opportunity engine with CLI and optional MCP server.
These share tags the maintainers applied themselves, such as npm, package-manager, security, supply-chain-security. Common tags like "mcp" or "ai" are ignored for this: agreeing with six hundred other projects is not a similarity.
This is not a recommendation and not a test result. It is a map of what the authors said their work is about.
How the author describes it
Topics the maintainer set on GitHub: ai-agents, cargo, chatgpt, claude, cursor, llm, mcp, mcp-server, model-context-protocol, npm, package-manager, pypi, security, slopsquatting, supply-chain-security, vulnerability-scanner, windsurf.
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json