Call check_compatibility after the agent has picked two tools — or the user has named two — and wants to know whether specific versions work together.
Input
- Canonical tool name (e.g. "Next.js", "Prisma").
- Second tool to compare against.
- Specific version of tool_a (e.g. "15.1.6"). Leave off for latest.
- Specific version of tool_b.
tool_astringrequiredtool_bstringrequiredtool_a_versionstringoptionaltool_b_versionstringoptionalExample
{
"tool_a": "Next.js",
"tool_a_version": "15.1.6",
"tool_b": "Prisma",
"tool_b_version": "6.2.0"
}{
"compatible": true,
"source": "declared_dependency",
"version_checks": [
{
"dependency": "Prisma",
"range": ">=5.0.0",
"target": "6.2.0",
"satisfies": true
}
],
"runtime_requirements": { "node": ">=18.17" },
"notes": "Next.js 15 ships with Prisma client support out of the box."
}Compatibility sources
The source field tells you how confident the verdict is:
declared_dependency— tool_a's package manifest directly declares a constraint on tool_b. Strongest signal.known_companion— ToolCairn has an established record of these tools being used together successfully.shared_neighbors— both tools are commonly used with the same third tools. Weaker but useful for novel pairs with no direct history.
Supported registries
Version resolution works across 35 registries:
npmPyPIcrates.ioGo modulesMaven CentralGradleNuGetPackagist (Composer)RubyGemsCPANHex (Elixir)pub.dev (Dart)CocoaPodsSwift Package ManagerJCenterBowerdeno.landJSRHomebrewDebian aptRPMAlpine apkArch AURDocker HubGitHub Container RegistryHelmArtifact HubTerraform RegistryPulumi RegistryOpenVSXVS Code MarketplaceJetBrains MarketplaceWordPress Plugin DirectoryChocolateyScoop
Related
get_stack— builds stacks whose picks are version-compatible by construction.compare_tools