peerconflict
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
peerconflict
An install just failed with a peer-dependency error and the output is a wall of nested requirements. peerconflict takes the resolved tree — every installed package's name and version, plus the peer requirements each package declares — and lays the problem out as a graph you can read:
Edges — one entry per peer requirement, each marked satisfied or not. An edge is satisfied only when the peer is actually installed and its installed version falls inside the required range.
Conflicts — the unsatisfied edges, each typed
missingwhen the peer is not installed at all andversionwhen it is installed but out of range, with a one-line detail such asapp requires peer react (^18.0.0) but 17.0.2 is installed.Resolutions — one entry per conflicted peer: the requirements behind the conflict, the lowest version that satisfies each range, and the least-change suggestion — install the peer when it is absent, or change its version when it is present — always phrased against every listed range, so the fix addresses all of the peer's requirers at once.
Versions are MAJOR.MINOR.PATCH and nothing else. Ranges
follow the grammar the tool defines: * accepts anything,
an exact version accepts only itself, ^x.y.z accepts the
base version up to (but not including) the next breaking
bound — with the usual 0.x tightening, so ^0.2.3 stops
before 0.3.0 and ^0.0.3 accepts 0.0.3 alone — ~x.y.z
accepts patch-level changes within the same minor, and
>=x.y.z accepts the base version and anything above it.
Anything outside that grammar is a validation error, as
are a missing or duplicate package name, a malformed
version, a package listing the same peer twice, and a
package declaring a peer on itself. Errors name the
offending path (for example
packages[0].peers[1].range is not a supported range: "=>1.0.0") and no partial explanation is produced. A peer
that is simply absent from the tree is not an error — it
is a missing conflict. The computation is pure and
local: no network, no configuration, no files read beyond
the input you pass in.
CLI
npx @reneturcios/peerconflict explain --input args.json
npx @reneturcios/peerconflict --versionargs.json contains the full arguments object:
{
"packages": [
{ "name": "react", "version": "17.0.2" },
{
"name": "app",
"version": "1.0.0",
"peers": [{ "name": "react", "range": "^18.0.0" }]
}
]
}peers defaults to [] per package. The explanation is
printed as JSON:
{
"ok": false,
"conflicts": [
{
"from": "app",
"peer": "react",
"range": "^18.0.0",
"installed": "17.0.2",
"type": "version",
"detail": "app requires peer react (^18.0.0) but 17.0.2 is installed"
}
],
"edges": [
{ "from": "app", "to": "react", "range": "^18.0.0", "satisfied": false }
],
"resolutions": [
{
"peer": "react",
"installed": "17.0.2",
"required_by": [{ "from": "app", "range": "^18.0.0", "lowest": "18.0.0" }],
"suggestion": "change react from 17.0.2 to a version satisfying every listed range"
}
]
}Exit codes: 0 on success, 1 on a runtime error (including
an unreadable or invalid input file, or invalid input), 2
on a usage error.
Related MCP server: Gridlace
MCP server
npx -y @reneturcios/peerconflict mcpMCP client config:
{
"mcpServers": {
"peerconflict": {
"command": "npx",
"args": ["-y", "@reneturcios/peerconflict", "mcp"]
}
}
}Tools
explain_peer_conflict— Explain peer-dependency conflicts in the installed tree.packages(array, required, at least one) — packages as{name, version, peers?}objects;nameis unique across the set,versionis the installedMAJOR.MINOR.PATCHversion, and eachpeersentry is a{name, range}requirement
Returns
{ok, conflicts, edges, resolutions}.
Docker
docker run -i ghcr.io/cloudcorprecords/peerconflict
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/peerconflict explain --input /w/args.jsonDevelopment
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (pure local, no network)
npm run dev # run the CLI from sourceLicense
MIT — Copyright (c) 2026 Rene Turcios
This server cannot be deployed
Maintenance
Related MCP Connectors
Deterministic package.json upgrade plans: age gate, aligned peers, reasons per change. No AI.
Pure, bounded analysis of an explicit bill-of-materials graph: validates structure, finds missing...
Diff two npm/PyPI versions or lockfiles: new install scripts, network/shell/eval calls, new deps.
Live npm and UNPKG data for AI agents: resolution, audits, import maps, malware/CVE checks.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceGive your coding agent the dependency graph it is about to change: scan, diff, explain, audit.14Apache 2.0

Gridlaceofficial
AlicenseNot gradedqualityBmaintenanceEnables deterministic dependency reasoning over declared graphs, allowing users and AI agents to validate acyclicity, resolve targets, identify runnable parallel layers, assess impact, and explain blockers.Apache 2.0- AlicenseAqualityBmaintenanceEnables AI coding agents to ground dependency setup, compatibility checks, and major-version migration advice in a project's real runtime, lockfiles, and config files. It parses local project state and npm registry metadata deterministically, then returns tag-pinned install commands, breaking changes, and upgrade steps rather than generic documentation.525 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to detect circular imports in a supplied module graph, report one representative cycle per cyclic component with exact nodes and edges, and suggest a break point that minimizes disruption.MIT