Dependency Health MCP
Package alive? Verdict with evidence: deprecated, archived, stale or active; plus runtime EOL dates.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"dephealth": {
"url": "https://dephealth.dsh.sh/mcp"
}
}
}Remote endpoints
https://dephealth.dsh.sh/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
π’package_health(ecosystem, name, version, task_context)
Is this package alive? One verdict β deprecated, archived, stale, active or unknown β with the evidence: per-version deprecation from the native registry, yanked/retracted latest release, repository archived and last-push dates, maintainer and dependent counts, advisory ids for the exact version, and what replaced it. Use when choosing, pinning or upgrading a dependency in npm, PyPI, crates.io, RubyGems, Go, Maven, NuGet or Packagist.
Input Schema
{
"type": "object",
"properties": {
"ecosystem": {
"type": "string",
"enum": [
"npm",
"pypi",
"cargo",
"rubygems",
"go",
"maven",
"nuget",
"packagist"
],
"description": "npm | pypi | cargo (crates.io) | rubygems | go (module path) | maven (group:artifact) | nuget | packagist (vendor/package)"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Package name as the registry spells it: \"@scope/name\", \"requests\", \"serde\", \"rails\", \"github.com/gorilla/mux\", \"org.apache.commons:commons-lang3\", \"Newtonsoft.Json\", \"monolog/monolog\""
},
"version": {
"description": "The exact version you use or intend to pin; enables per-version advisories and deprecation. Omit for the latest.",
"type": "string",
"maxLength": 80
},
"task_context": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
}
},
"required": [
"ecosystem",
"name",
"task_context"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’deps_audit(packages, manifest, manifest_kind, task_context)
Health verdict for every package in a manifest or a list, in one call (β€25 packages): deprecated / archived / stale / active / unknown per package with the latest version, release and push ages, advisory counts and replacements, plus a summary. Use when reviewing a repository's package.json or requirements.txt before an upgrade, an audit or a fork decision.
Input Schema
{
"type": "object",
"properties": {
"packages": {
"description": "Explicit list of packages; combine with or instead of `manifest`.",
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"ecosystem": {
"type": "string",
"enum": [
"npm",
"pypi",
"cargo",
"rubygems",
"go",
"maven",
"nuget",
"packagist"
],
"description": "npm | pypi | cargo (crates.io) | rubygems | go (module path) | maven (group:artifact) | nuget | packagist (vendor/package)"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Package name as the registry spells it: \"@scope/name\", \"requests\", \"serde\", \"rails\", \"github.com/gorilla/mux\", \"org.apache.commons:commons-lang3\", \"Newtonsoft.Json\", \"monolog/monolog\""
},
"version": {
"type": "string",
"maxLength": 80
}
},
"required": [
"ecosystem",
"name"
]
}
},
"manifest": {
"description": "Raw package.json (dependencies, devDependencies, peer, optional) or requirements.txt text; other formats are reported as unparsed.",
"type": "string",
"maxLength": 60000
},
"manifest_kind": {
"default": "auto",
"type": "string",
"enum": [
"auto",
"package.json",
"requirements.txt"
]
},
"task_context": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
}
},
"required": [
"task_context"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’runtime_eol(product, cycle, task_context)
Support and end-of-life dates for a runtime, OS, database or framework version from endoflife.date (470+ products): each cycle with a verdict β supported, security-only or eol β the latest patch, LTS flag and days to EOL. Use when deciding which Node, Python, Ubuntu, PostgreSQL, Java, Djangoβ¦ version to target or whether a deployed one is still safe.
Input Schema
{
"type": "object",
"properties": {
"product": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "endoflife.date product name or alias: \"nodejs\" (or \"node\"), \"python\", \"ubuntu\", \"postgresql\", \"django\", \"java\", \"rails\", \"go\", \"php\", \"redis\""
},
"cycle": {
"description": "One release cycle to report, e.g. \"22\" for Node 22, \"3.12\" for Python, \"24.04\" for Ubuntu. Omit for every cycle.",
"type": "string",
"maxLength": 30
},
"task_context": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
}
},
"required": [
"product",
"task_context"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence