Check whether an npm package, GitHub Action, MCP server or Docker image is dead or abandoned.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
mcp-name: dev.lastseen/mortality
Is this dependency dead? Dated observations of whether an npm package, GitHub Action, MCP server, or Docker image is alive, dormant, abandoned, archived, or deleted — published by lastseen.dev. Free, no API key, zero telemetry.
There are two ways in, and they answer the same question from the same dated data:
No key. No signup. 60 requests/minute, anonymous GET. Every response is a dated
observation with its source — not a score, not advice. Base URL https://lastseen.dev.
A single-component response carries the latest_state, the dated series behind it, the
source_of_record, and interval-censoring notes — enough to re-check any verdict against GitHub
yourself. This is the recurring path: wire GET /api/v1/entity/{owner}/{repo} into CI and a
dead dependency shows up on the build that introduces it, not months later.
not_observed — never a
fabricated result. A network/store error degrades (try later); it is never read as "dead".alive (≤180d since last commit) · dormant (180–365d) · abandoned (>365d) ·
archived (repo archived) · deleted (authoritative HTTP 404) · eol (declared end-of-life) ·
unknown-stale (the observation the verdict rests on is older than the 180-day threshold and was
not re-verified — no state asserted; not a death) · not_observed (403 / 429 / timeout / not
held — not dead).
A pure-standard-library stdio wrapper over the API above — no mcp package, no requests,
no FastAPI/Starlette, nothing that can conflict with a host app. It speaks JSON-RPC 2.0 over
stdio and calls the free API over urllib.
Requires Python ≥ 3.10. No dependencies.
(If you use uvx, set "command": "uvx", "args": ["lastseen-mcp"].)
| Tool | What it does |
|---|---|
check_entity(slug, live?) | Dated survival series for one owner/repo (e.g. actions/checkout). live=true attaches a live GitHub read (absence ≠ gone). |
check_org(name) | Dated states for every held component under a GitHub owner/org. |
check_manifest(paste) | Paste a GitHub Actions workflow (uses: refs) or owner/repo lines; get the dated state per component. Unheld components are not_observed. |
survival_profile(category) | Category ranking — not available over the free API; returns an honest not-supported result pointing to the per-entity/org/manifest lookups and the CC-BY dumps. |
check_manifest looks up at most 30 parsed components per call (free-tier rate bound); any
remainder is reported as n_truncated.
Zero telemetry. The client and the API store nothing and transmit no identifier about you, your org, or the subjects you look up — anonymous GETs only.
LICENSE).dev.lastseen/mortalityShowcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/lastseen-mortality-2)<a href="https://allmcps.com/mcp/lastseen-mortality-2"><img src="https://allmcps.com/api/badge/lastseen-mortality-2?style=directory" alt="Lastseen mortality on AllMCPs" /></a>