Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"dependency-migration": {
"args": [
"--from",
"git+https://github.com/SolvoHQ/dependency-migration-mcp",
"dependency-migration-mcp"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Through-the-upgrade migration briefs for LLM coding agents.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'uv' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
uv is vulnerable to arbitrary file write through entry point names
### Impact In versions of uv prior to 0.11.15, when installing a distribution containing an entry point specification (under `console_scripts` or `gui_scripts`), uv would place the generated entry point according to the given name even if doing so resulted in a path outside of the environment's scripts directory. A malicious wheel could use this to place an executable outside of the intended environment, including in a directory already present on the user's `PATH`. This could shadow or overwr
uv vulnerable to arbitrary file deletion through RECORD entries
## Impact Wheel RECORD entries can contain relative paths that traverse outside of the wheel’s installation prefix. In versions 0.11.5 and earlier of uv, these wheels were not rejected on installation and the RECORD was respected without validation on uninstall. uv uses the RECORD to determine files to remove on uninstall. Consequently, a malicious or malformed wheel could induce deletion of arbitrary files outside of the wheel’s installation prefix on uninstall. uv does not use the RECORD fi
uv allows ZIP payload obfuscation through parsing differentials
### Impact In versions 0.9.5 and earlier of uv, ZIP archives were handled in a manner that enabled two parsing differentials against other components of the Python packaging ecosystem: 1. Central directory entries in a ZIP archive can contain comment fields. However, uv would assume that these fields were not present, since they aren't widely used. Consequently, a ZIP archive could be constructed where uv would interpret the contents of a central directory comment field as ZIP control structur
uv has differential in tar extraction with PAX headers
### Impact In versions 0.9.4 and earlier of uv, tar archives containing PAX headers with file size overrides were not handled properly. As a result, an attacker could contrive a source distribution (as a tar archive) that would extract differently when installed via uv versus other Python package installers. The underlying parsing differential here originates with astral-tokio-tar, which disclosed this vulnerability as CVE-2025-62518. In practice, the impact of this vulnerability is **low**:
uv allows ZIP payload obfuscation through parsing differentials
## Impact In versions 0.8.5 and earlier of uv, remote ZIP archives were handled in a streamwise fashion, and file entries were not reconciled against the archive's central directory. This enabled two parser differentials against other Python package installers: 1. An attacker could contrive a ZIP archive that would extract with legitimate contents on some package installers, and malicious contents on others due to multiple local file entries. The attacker could choose which installer to target
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in ai-ml
Dynamic problem-solving through sequential thought chains
Persistent memory using a knowledge graph
An autonomous agent that conducts deep research on any data using any LLM providers
🌊 The leading agent orchestration platform for Claude. Deploy intelligent multi-agent swarms, coordinate autonomous workflows, and build conversational AI systems. Features enterprise-grade architecture, distributed swarm intelligence, RAG integration, and native Claude Code / Codex Integration
MCP Security Weekly
Get CVE alerts and security updates for io.github.SolvoHQ/dependency-migration-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Through-the-upgrade migration briefs for LLM coding agents.
Official codemods auto-apply the mechanical ~90% of a major version bump. This MCP server briefs your agent on the non-mechanical ~10% that still leaves the build red, and corrects the agent's stale-v3-training hallucination of the old API surface — the part a codemod cannot do.
For one (package, from, to) triple it returns a structured brief: per
breaking change — category, before/after, how to grep every occurrence in
your code, the fix, and whether the free codemod already covers it — plus a
top-level list of the specific old-API hallucinations the agent must suppress.
| package | from → to | tier | source |
|---|---|---|---|
tailwindcss | 3 → 4 | flagship — verified against the upstream upgrade guide (2026-05-16) | https://tailwindcss.com/docs/upgrade-guide |
next | 14 → 15 | reasonable-accuracy | https://nextjs.org/docs/app/guides/upgrading/version-15 |
react | 18 → 19 | reasonable-accuracy | https://react.dev/blog/2024/04/25/react-19-upgrade-guide |
Versions are normalised by major (3, 3.4.1, v3, ^3 → 3). An unknown
package or unsupported pair returns a clean structured not_found (with the
supported matrix) — never an exception. Data is hand-curated and offline (no
runtime network calls).
uvx --from git+https://github.com/SolvoHQ/dependency-migration-mcp dependency-migration-mcp
That fetches, builds, and runs the stdio MCP server straight from public
GitHub. No clone, no signup, no API key. (Need uvx? pip install uv.)
Prefer pip? A venv fallback:
python3 -m venv .venv && . .venv/bin/activate
pip install "git+https://github.com/SolvoHQ/dependency-migration-mcp.git"
dependency-migration-mcp # runs the stdio server
Claude Code — claude mcp add:
claude mcp add dependency-migration -- uvx --from git+https://github.com/SolvoHQ/dependency-migration-mcp dependency-migration-mcp
or drop this into .mcp.json at your project root:
{
"mcpServers": {
"dependency-migration": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/SolvoHQ/dependency-migration-mcp",
"dependency-migration-mcp"
]
}
}
}
Cursor — ~/.cursor/mcp.json:
{
"mcpServers": {
"dependency-migration": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/SolvoHQ/dependency-migration-mcp",
"dependency-migration-mcp"
]
}
}
}
get_migration(package: str, from_version: str, to_version: str) -> dict
Read-only. Returns a JSON-able brief: summary (counts, codemod command +
what it does/doesn't cover, stale_training_hallucination_warnings,
positioning) and breaking_changes[] (each with id, title, category
∈ {mechanical, non-mechanical, behavioural, removed-api, config-shape},
what_changed.{description,before,after},
find_occurrences.{guidance,patterns}, fix, codemod_covered, and
codemod_command when covered).
Use it mid-upgrade: right after bumping a major version and seeing the build
go red, ask the agent to call get_migration before it starts editing.
pip install -r requirements.txt # mcp>=1.2, pydantic>=2 (Python 3.10+)
python smoke_test.py
Imports the server, calls get_migration("tailwindcss","3","4") and asserts
the @tailwind→@import change, the CSS-first config-shape change, and a
stale-training hallucination warning are present; then asserts an unknown
pair returns a clean not_found.