Dependency Health MCP
Provides support and end-of-life dates for Django framework versions, including supported, security-only, or EOL status.
Checks the health of npm packages, including deprecation status, maintenance activity, advisories for the exact version, and replacements.
Checks the health of NuGet packages, including deprecation, release and push ages, maintainer and dependent counts, advisories, and replacements.
Checks the health of Packagist packages, including abandoned status, deprecation, release and push ages, maintainer and dependent counts, advisories, and replacements.
Provides support and end-of-life dates for PostgreSQL versions, indicating whether each cycle is supported, security-only, or EOL.
Checks the health of PyPI packages, including deprecation, release and push ages, maintainer and dependent counts, advisories, and replacements.
Provides support and end-of-life dates for Python versions, including whether each cycle is supported, security-only, or EOL.
Checks the health of RubyGems packages, including deprecated or yanked releases, maintenance activity, advisories, and replacements.
Provides support and end-of-life dates for Ubuntu releases, including security-only and EOL phases.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Dependency Health MCPIs express still actively maintained?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Dependency Health MCP
Package alive? Verdict with evidence: deprecated, archived, stale or active; plus runtime EOL dates. Remote MCP server over Streamable HTTP at
https://dephealth.dsh.sh/mcp. Free, no API key. Tools:package_health,deps_audit,runtime_eol. The tool list is fixed per version.
One call answers whether a package is still alive: a verdict (deprecated, archived, stale, active or unknown) with the evidence behind it — registry deprecation (per-version on npm, go.mod Deprecated/retract for Go, NuGet deprecation, Packagist abandoned), yanked releases, repository archived and last-push dates, maintainer and dependent counts, known advisories for the exact version, and what replaced it. Covers npm, PyPI, crates.io, RubyGems, Go modules, Maven, NuGet and Packagist through ecosyste.ms, the native registries and deps.dev, all keyless. deps_audit takes a whole package.json or requirements.txt (up to 25 packages) and runtime_eol reports endoflife.date support and EOL dates for runtimes and OSes. Free, no key, no account; every response lists the upstream calls it made.
Use when: Before pinning, upgrading or auditing a dependency: package_health returns whether it is deprecated, archived, stale or active with the raw registry evidence, advisories for the version you use and the replacement if there is one; deps_audit does the same for a whole manifest; runtime_eol says whether a Node, Python, OS or database version is still supported and when it dies.
Not for: Not a vulnerability scanner (advisory ids only, no CVSS triage or reachability), not license compliance, not a popularity ranking, and it cannot see private registries or vendored code.
Quick install (Claude Code): claude mcp add --transport http dephealth https://dephealth.dsh.sh/mcp -s user
Docs
Full reference: every tool with its JSON input schema and an example
Install for any client: Claude Code, Cursor, VS Code, Claude Desktop, ChatGPT, Codex, Gemini CLI, Windsurf, Cline, Continue, Zed
OpenAPI twin: the same tools as plain HTTP POST endpoints
Registry server.json: machine-readable server record
Related MCP server: PatternStack
Upstreams
ecosyste.ms packages API: keyless
deps.dev v3: keyless
npm registry: keyless
PyPI JSON API: keyless
crates.io API: keyless
RubyGems API: keyless
Go module proxy: keyless
NuGet registration index: keyless
Packagist p2: keyless
GitHub REST (fallback only): keyless
endoflife.date API: keyless
Optional
Tools
Tool | Purpose | Effects |
| 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. | read-only, open-world, idempotent |
| 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. | read-only, open-world, idempotent |
| 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. | read-only, open-world, idempotent |
Every tool takes task_context: one sentence on what the user is trying to do. It is required.
package_health
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:
{
"$schema": "http://json-schema.org/draft-07/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"
],
"additionalProperties": false
}Example arguments:
{
"ecosystem": "npm",
"name": "request",
"task_context": "example: Is this package alive? One verdict — deprecated, archived, s"
}deps_audit
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:
{
"$schema": "http://json-schema.org/draft-07/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"
],
"additionalProperties": false
}
},
"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": [
"manifest_kind",
"task_context"
],
"additionalProperties": false
}Example arguments:
{
"manifest": "{\"dependencies\":{\"request\":\"^2.88.2\",\"lodash\":\"4.17.20\",\"left-pad\":\"^1.3.0\"}}",
"task_context": "example: Health verdict for every package in a manifest or a list, in"
}runtime_eol
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:
{
"$schema": "http://json-schema.org/draft-07/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"
],
"additionalProperties": false
}Example arguments:
{
"product": "nodejs",
"cycle": "22",
"task_context": "example: Support and end-of-life dates for a runtime, OS, database or"
}Install
Endpoint: https://dephealth.dsh.sh/mcp (Streamable HTTP, MCP 2026-07-28 with 2025-era fallback). Authentication: none.
Claude Code
claude mcp add --transport http dephealth https://dephealth.dsh.sh/mcp -s userCursor / Cosmos (~/.cursor/mcp.json)
{
"mcpServers": {
"dephealth": {
"url": "https://dephealth.dsh.sh/mcp"
}
}
}VS Code / Copilot (user mcp.json)
{
"servers": {
"dephealth": {
"type": "http",
"url": "https://dephealth.dsh.sh/mcp"
}
}
}or code --add-mcp '{"name":"dephealth","type":"http","url":"https://dephealth.dsh.sh/mcp"}'
Claude Desktop / claude.ai
Settings → Connectors → Add custom connector → URL https://dephealth.dsh.sh/mcp, Authentication: None.
Claude Desktop / claude.ai
Settings → Connectors → Add custom connector → URL https://dephealth.dsh.sh/mcp, Authentication: None.
ChatGPT
Settings → Connectors → Add custom connector → https://dephealth.dsh.sh/mcp. Desktop app / Codex share ~/.codex/config.toml:
[mcp_servers.dephealth]
url = "https://dephealth.dsh.sh/mcp"Codex CLI (~/.codex/config.toml)
[mcp_servers.dephealth]
url = "https://dephealth.dsh.sh/mcp"Gemini CLI
gemini mcp add --transport http dephealth https://dephealth.dsh.sh/mcp -s user(settings.json uses httpUrl, not url.)
Windsurf (~/.codeium/windsurf/mcp_config.json)
{
"mcpServers": {
"dephealth": {
"serverUrl": "https://dephealth.dsh.sh/mcp"
}
}
}Cline
{
"mcpServers": {
"dephealth": {
"type": "streamableHttp",
"url": "https://dephealth.dsh.sh/mcp"
}
}
}Continue (.continue/mcpServers/dephealth.yaml)
name: dephealth
mcpServers:
- name: dephealth
type: streamable-http
url: https://dephealth.dsh.sh/mcpZed (settings.json)
{
"context_servers": {
"dephealth": {
"source": "custom",
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://dephealth.dsh.sh/mcp"
]
}
}
}Any MCP client
Streamable HTTP endpoint: https://dephealth.dsh.sh/mcp
{
"mcpServers": {
"dephealth": {
"url": "https://dephealth.dsh.sh/mcp"
}
}
}This page documents a server. It does not ask the reader to change any rules file, memory file, or host configuration.
Run it yourself
npm install && npm start # http://127.0.0.1:8080/mcp
docker compose up -d --build # same, in a container
node scripts/smoke.mjs http://127.0.0.1:8080 package_health '{}'Built with the agie MCP factory kit (kit/): Streamable HTTP MCP plus agent-readable docs (llms.txt, server.json, install pages, a REST twin), all from one manifest (servers/dephealth/mcp.factory.json). This repo is the server logic only; no telemetry is collected or sent by this code. MIT.
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 Connectors
Linux package, file, command, vulnerability, lifecycle, migration, and repository intelligence.
Provide AI-powered real-time analysis and intelligence on NPM packages, including security, depend…
Trust-check any dependency for agents: OpenSSF Scorecard, licenses, CVEs, deps. 7 ecosystems.
Package intelligence for AI agents across npm, PyPI, crates.io and deps.dev. No API keys.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables querying package ecosystem data from ecosyste.ms, including package metadata, versions, security advisories, dependencies, and repository information across 40+ package registries with fast local SQLite lookups and API fallback.10338MIT
- AlicenseBqualityDmaintenanceProvides crowdsourced package intelligence and security alerts for AI coding assistants by analyzing project dependencies and framework co-occurrence. It enables automated project scans, package alternative discovery, and data-driven recommendations across multiple programming ecosystems.1022MIT
- AlicenseAqualityBmaintenanceChecks npm and PyPI packages for outdated versions, deprecation status, and breaking changes with cited sources, enabling AI agents to verify dependency freshness.110ISC
- AlicenseNot gradedqualityAmaintenanceEnables users to look up package versions, scan for vulnerabilities, and analyze dependencies across multiple registries (npm, Maven, PyPI, etc.) using exact version recommendations for security.4MIT
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/ux-xd/dephealth-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server