{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_9vhcyhse29xf","handle":"package-upgrade-mcp","url":"https://wellknown.network/agents/package-upgrade-mcp","links":{"self":"https://wellknown.network/agents/package-upgrade-mcp/record.json","html":"https://wellknown.network/agents/package-upgrade-mcp","markdown":"https://wellknown.network/agents/package-upgrade-mcp/record.md","api":"https://wellknown.network/api/v1/agents/package-upgrade-mcp","status":"https://wellknown.network/api/v1/agents/package-upgrade-mcp/status","claim":"https://wellknown.network/agents/package-upgrade-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/package-upgrade-mcp/claim.json","badge":"https://wellknown.network/agents/package-upgrade-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/package-upgrade-mcp/history","tools":"https://wellknown.network/api/v1/agents/package-upgrade-mcp/tools"},"ard":{"identifier":"urn:air::server:package-upgrade-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"package-upgrade-mcp","summary":"MCP server that scans package.json/pubspec.yaml/Cargo.toml/requirements.txt, flags risky upgrades via static semver/deprecation analysis, and surfaces pre-filtered breaking-change excerpts for LLM-driven migration planning","description":"# package-upgrade-mcp\n\n<!-- mcp-name: io.github.Hasilt/package-upgrade-mcp -->\n\nAn MCP server that helps an LLM plan dependency upgrades without drowning in\nchangelog text. Point it at a manifest file and it tells you what's\noutdated, how risky each upgrade looks, and — only for the packages worth\nworrying about — pulls the actual breaking-change notes.\n\nSupported manifests: `package.json` (npm), `requirements.txt` (PyPI),\n`pubspec.yaml` (pub.dev), `Cargo.toml` (crates.io).\n\nNo API keys required — every registry it talks to (npm, PyPI, pub.dev,\ncrates.io, GitHub) is public.\n\n## Why it's split into stages\n\nFetching full release notes for every dependency in a real project would\nburn a huge amount of context for basically no benefit, since most upgrades\nare patch/minor bumps with nothing breaking in them. So the server does the\nboring, deterministic part itself and only reaches for text when it's\nactually warranted:\n\n1. **Cheap and always called** — `scan_manifest` / `check_upgrades` return\n   current vs. latest version, the semver delta, and a risk level computed\n   from version math plus registry metadata (deprecated/yanked flags). No\n   changelog text, just one registry lookup per dependency.\n2. **Targeted, only for what's flagged** — `get_breaking_change_excerpts`\n   fetches changelog or release-note text and runs it through a heuristic\n   filter that keeps the parts that look like breaking-change\n   announcements (`## Breaking`, `BREAKING CHANGE:`, removed/renamed/\n   deprecated notes, migration guides) and throws away routine feature/fix\n   entries. `get_raw_changelog` is there too, for the rare case the\n   filtered excerpt isn't enough.\n\nThe server never decides \"this will take 3 days\" or writes the upgrade plan\nitself — that synthesis is left to whichever LLM is calling it. Its job\nends at handing over small, pre-digested findings instead of a wall of\nrelease notes.\n\n## Install\n\nWith [Claude Code](https://docs.claude.com/en/docs/claude-code):\n\n```bash\nclaude …","publisher":{"name":"Hasil T","url":null},"homepage":"https://github.com/Hasilt/package-upgrade-mcp","repository":"https://github.com/Hasilt/package-upgrade-mcp","version":"0.1.1","license":null,"protocols":["mcp"],"tags":["mcp","model-context-protocol","dependencies","upgrade","npm","pypi","cargo","pub"],"pricing":null,"endpoints":[{"url":"pypi:package-upgrade-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":1,"provenance":"declared"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"package-upgrade-mcp","registry":"pypi","observedAt":"2026-11-09T23:25:22.278Z","publishedAt":"2026-07-25T18:31:32.766343Z","latestVersion":"0.1.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"package-upgrade-mcp","url":"https://pypi.org/project/package-upgrade-mcp/","firstSeenAt":"2026-09-10T09:25:18.471Z","fetchedAt":"2026-11-09T23:24:13.385Z","normalizedAt":"2026-11-09T23:24:13.385Z"}]},"firstSeenAt":"2026-09-10T09:25:18.471Z","updatedAt":"2026-11-09T23:25:22.278Z"}