{"openapi":"3.1.0","info":{"title":"Dependency Health MCP","version":"0.1.1","description":"Package alive? Verdict with evidence: deprecated, archived, stale or active; plus runtime EOL dates. REST twin of the MCP server at https://dephealth.dsh.sh/mcp."},"servers":[{"url":"https://dephealth.dsh.sh"}],"paths":{"/tools/package_health":{"post":{"operationId":"package_health","summary":"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.","requestBody":{"required":true,"content":{"application/json":{"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}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/tools/deps_audit":{"post":{"operationId":"deps_audit","summary":"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.","requestBody":{"required":true,"content":{"application/json":{"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}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/tools/runtime_eol":{"post":{"operationId":"runtime_eol","summary":"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.","requestBody":{"required":true,"content":{"application/json":{"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}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}