UpgradeLens MCP
UpgradeLens is an MCP server that provides dependency upgrade intelligence for AI coding agents. It analyzes security deltas, runtime compatibility, and breaking changes for npm and PyPI packages, returning source-cited migration plans and go/no-go decisions to help agents review updates before merging.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://upgradelens.mattpicone.workers.dev/mcpWhat its tools do
4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Review dependency pull requests from Dependabot or Renovate
- Check security and compatibility for specific version upgrades
- Find safe upgrade targets when the target version is unknown
- Plan ordered migration actions for selected dependency updates
Source and maintenance
Protocol and capabilities
- Server
- upgradelens 0.4.8
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 4 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
review_dependency_upgrade — Review a dependency update before merging
Use when an agent reviews a Dependabot, Renovate, npm, or PyPI version change before merge. One cited result combines security delta, runtime compatibility, breaking changes, go/no-go risk, and ordered migration actions for exact current and target versions. Do not use for new installs, unknown versions, general documentation, or other ecosystems. Read-only and safe to retry.
{
"type": "object",
"required": [
"ecosystem",
"package",
"current_version",
"target_version"
],
"properties": {
"detail": {
"enum": [
"compact",
"full"
],
"type": "string",
"default": "compact",
"description": "compact is optimized for agent decisions; full includes the complete legacy plan payload."
},
"package": {
"type": "string",
"maxLength": 214,
"description": "Exact registry package name."
},
"runtime": {
"type": "object",
"properties": {
"node": {
"type": "string"
},
"python": {
"type": "string"
}
},
"additionalProperties": false
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string",
"description": "Package ecosystem. Only npm and pypi are supported."
},
"target_version": {
"type": "string",
"maxLength": 64,
"description": "Exact candidate version."
},
"current_version": {
"type": "string",
"maxLength": 64,
"description": "Exact installed version."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"next_action",
"billing",
"detail",
"headline",
"decision",
"action_allowed",
"risk_score",
"ecosystem",
"package",
"current_version",
"target_version",
"security_delta",
"compatibility",
"breaking_changes",
"migration_actions",
"coverage",
"confidence",
"freshness",
"analysis_version"
],
"properties": {
"detail": {
"enum": [
"compact",
"full"
],
"type": "string"
},
"billing": {
"type": "object",
"required": [
"mode",
"units",
"price_usd",
"trial_remaining",
"network",
"payment_status"
],
"properties": {
"mode": {
"enum": [
"validation",
"testnet",
"mainnet",
"paused"
],
"type": "string"
},
"units": {
"type": "integer",
"minimum": 1
},
"network": {
"type": [
"string",
"null"
]
},
"price_usd": {
"type": "number"
},
"payment_status": {
"type": "string"
},
"trial_remaining": {
"type": [
"integer",
"null"
]
}
}
},
"package": {
"type": "string"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"coverage": {
"type": "object"
},
"decision": {
"enum": [
"proceed",
"review_required",
"block",
"unknown"
],
"type": "string"
},
"evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"headline": {
"type": "string"
},
"cache_hit": {
"type": "boolean"
},
"citations": {
"type": "array",
"items": {
"type": "object"
}
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string"
},
"freshness": {
"type": "string"
},
"confidence": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"risk_score": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"next_action": {
"type": "string"
},
"compatibility": {
"type": "object"
},
"latest_stable": {
"type": [
"string",
"null"
]
},
"version_facts": {
"type": "object"
},
"action_allowed": {
"type": "boolean"
},
"changelog_urls": {
"type": "array",
"items": {
"type": "string"
}
},
"claim_evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"repository_url": {
"type": [
"string",
"null"
]
},
"security_delta": {
"type": "object"
},
"target_version": {
"type": "string"
},
"current_version": {
"type": "string"
},
"analysis_version": {
"type": "string"
},
"breaking_changes": {
"type": "array",
"items": {
"type": "object"
}
},
"migration_actions": {
"type": "array",
"items": {
"type": "object"
}
},
"recommended_target": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"field": {
"type": "string"
},
"details": {
"type": "object"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"x402Version",
"resource",
"accepts"
],
"properties": {
"error": {
"type": "string"
},
"accepts": {
"type": "array",
"items": {
"type": "object"
},
"minItems": 1
},
"resource": {
"type": "object"
},
"extensions": {
"type": "object"
},
"x402Version": {
"const": 2
}
},
"additionalProperties": true
}
],
"properties": {
"detail": {
"enum": [
"compact",
"full"
],
"type": "string"
},
"billing": {
"type": "object",
"required": [
"mode",
"units",
"price_usd",
"trial_remaining",
"network",
"payment_status"
],
"properties": {
"mode": {
"enum": [
"validation",
"testnet",
"mainnet",
"paused"
],
"type": "string"
},
"units": {
"type": "integer",
"minimum": 1
},
"network": {
"type": [
"string",
"null"
]
},
"price_usd": {
"type": "number"
},
"payment_status": {
"type": "string"
},
"trial_remaining": {
"type": [
"integer",
"null"
]
}
}
},
"package": {
"type": "string"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"coverage": {
"type": "object"
},
"decision": {
"enum": [
"proceed",
"review_required",
"block",
"unknown"
],
"type": "string"
},
"evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"headline": {
"type": "string"
},
"cache_hit": {
"type": "boolean"
},
"citations": {
"type": "array",
"items": {
"type": "object"
}
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string"
},
"freshness": {
"type": "string"
},
"confidence": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"risk_score": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"next_action": {
"type": "string"
},
"compatibility": {
"type": "object"
},
"latest_stable": {
"type": [
"string",
"null"
]
},
"version_facts": {
"type": "object"
},
"action_allowed": {
"type": "boolean"
},
"changelog_urls": {
"type": "array",
"items": {
"type": "string"
}
},
"claim_evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"repository_url": {
"type": [
"string",
"null"
]
},
"security_delta": {
"type": "object"
},
"target_version": {
"type": "string"
},
"current_version": {
"type": "string"
},
"analysis_version": {
"type": "string"
},
"breaking_changes": {
"type": "array",
"items": {
"type": "object"
}
},
"migration_actions": {
"type": "array",
"items": {
"type": "object"
}
},
"recommended_target": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_dependency_upgrade — Assess a known dependency upgrade target (go/no-go)
Use when a coding agent needs a cited go/no-go risk decision without steps before changing an existing npm or PyPI dependency between two exact versions. Returns action_allowed, vulnerability delta, compatibility, EOL, and breaking-change evidence. Use plan_dependency_upgrade instead for ordered migration work. Do not use to choose a target, install a new package, search general docs, or analyze another ecosystem. Read-only and safe to retry.
{
"type": "object",
"required": [
"ecosystem",
"package",
"current_version",
"target_version"
],
"properties": {
"package": {
"type": "string",
"maxLength": 214,
"description": "Exact registry package name."
},
"runtime": {
"type": "object",
"properties": {
"node": {
"type": "string"
},
"python": {
"type": "string"
}
},
"additionalProperties": false
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string",
"description": "Package ecosystem. Only npm and pypi are supported."
},
"target_version": {
"type": "string",
"maxLength": 64,
"description": "Exact candidate version."
},
"current_version": {
"type": "string",
"maxLength": 64,
"description": "Exact installed version."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"next_action",
"billing",
"decision",
"action_allowed",
"risk_score",
"ecosystem",
"package",
"current_version",
"target_version",
"evidence",
"coverage",
"confidence",
"freshness",
"analysis_version"
],
"properties": {
"billing": {
"type": "object",
"required": [
"mode",
"units",
"price_usd",
"trial_remaining",
"network",
"payment_status"
],
"properties": {
"mode": {
"enum": [
"validation",
"testnet",
"mainnet",
"paused"
],
"type": "string"
},
"units": {
"type": "integer",
"minimum": 1
},
"network": {
"type": [
"string",
"null"
]
},
"price_usd": {
"type": "number"
},
"payment_status": {
"type": "string"
},
"trial_remaining": {
"type": [
"integer",
"null"
]
}
}
},
"package": {
"type": "string"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"coverage": {
"type": "object"
},
"decision": {
"enum": [
"proceed",
"review_required",
"block",
"unknown"
],
"type": "string"
},
"evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"cache_hit": {
"type": "boolean"
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string"
},
"freshness": {
"type": "string"
},
"confidence": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"risk_score": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"next_action": {
"type": "string"
},
"compatibility": {
"type": "object"
},
"latest_stable": {
"type": [
"string",
"null"
]
},
"version_facts": {
"type": "object"
},
"action_allowed": {
"type": "boolean"
},
"claim_evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"repository_url": {
"type": [
"string",
"null"
]
},
"security_delta": {
"type": "object"
},
"target_version": {
"type": "string"
},
"current_version": {
"type": "string"
},
"analysis_version": {
"type": "string"
},
"breaking_changes": {
"type": "array",
"items": {
"type": "object"
}
},
"recommended_target": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"field": {
"type": "string"
},
"details": {
"type": "object"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"x402Version",
"resource",
"accepts"
],
"properties": {
"error": {
"type": "string"
},
"accepts": {
"type": "array",
"items": {
"type": "object"
},
"minItems": 1
},
"resource": {
"type": "object"
},
"extensions": {
"type": "object"
},
"x402Version": {
"const": 2
}
},
"additionalProperties": true
}
],
"properties": {
"billing": {
"type": "object",
"required": [
"mode",
"units",
"price_usd",
"trial_remaining",
"network",
"payment_status"
],
"properties": {
"mode": {
"enum": [
"validation",
"testnet",
"mainnet",
"paused"
],
"type": "string"
},
"units": {
"type": "integer",
"minimum": 1
},
"network": {
"type": [
"string",
"null"
]
},
"price_usd": {
"type": "number"
},
"payment_status": {
"type": "string"
},
"trial_remaining": {
"type": [
"integer",
"null"
]
}
}
},
"package": {
"type": "string"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"coverage": {
"type": "object"
},
"decision": {
"enum": [
"proceed",
"review_required",
"block",
"unknown"
],
"type": "string"
},
"evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"cache_hit": {
"type": "boolean"
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string"
},
"freshness": {
"type": "string"
},
"confidence": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"risk_score": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"next_action": {
"type": "string"
},
"compatibility": {
"type": "object"
},
"latest_stable": {
"type": [
"string",
"null"
]
},
"version_facts": {
"type": "object"
},
"action_allowed": {
"type": "boolean"
},
"claim_evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"repository_url": {
"type": [
"string",
"null"
]
},
"security_delta": {
"type": "object"
},
"target_version": {
"type": "string"
},
"current_version": {
"type": "string"
},
"analysis_version": {
"type": "string"
},
"breaking_changes": {
"type": "array",
"items": {
"type": "object"
}
},
"recommended_target": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}find_safe_upgrade_target — Rank upgrade candidates (not a safety verdict; full check required)
Use only when an existing npm or PyPI dependency has an exact current version but no chosen target. Ranks candidates; candidates are not declared safe and require check_dependency_upgrade or plan_dependency_upgrade. Do not use when a target is stated, for a new install, or as authorization to edit files. Read-only and safe to retry.
{
"type": "object",
"required": [
"ecosystem",
"package",
"current_version"
],
"properties": {
"package": {
"type": "string",
"maxLength": 214,
"description": "Exact registry package name."
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string",
"description": "Package ecosystem. Only npm and pypi are supported."
},
"max_major_jump": {
"type": "integer",
"minimum": 0,
"description": "Optional major-version jump cap. 0 = stay in the same major."
},
"current_version": {
"type": "string",
"maxLength": 64,
"description": "Exact installed version."
},
"allow_prerelease": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"next_action",
"recommended_target",
"billing",
"ecosystem",
"package",
"current_version",
"action_allowed",
"candidates",
"evidence",
"coverage",
"confidence",
"freshness",
"analysis_version"
],
"properties": {
"billing": {
"type": "object",
"required": [
"mode",
"units",
"price_usd",
"trial_remaining",
"network",
"payment_status"
],
"properties": {
"mode": {
"enum": [
"validation",
"testnet",
"mainnet",
"paused"
],
"type": "string"
},
"units": {
"type": "integer",
"minimum": 1
},
"network": {
"type": [
"string",
"null"
]
},
"price_usd": {
"type": "number"
},
"payment_status": {
"type": "string"
},
"trial_remaining": {
"type": [
"integer",
"null"
]
}
}
},
"package": {
"type": "string"
},
"coverage": {
"type": "object"
},
"evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string"
},
"freshness": {
"type": "string"
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"required": [
"version",
"decision",
"requires_full_check",
"rationale"
],
"properties": {
"score": {
"type": "number",
"description": "Ranking score, not a safety verdict."
},
"version": {
"type": "string"
},
"decision": {
"enum": [
"review_required",
"block",
"unknown"
],
"type": "string"
},
"rationale": {
"type": "array",
"items": {
"type": "string"
}
},
"semver_jump": {
"type": "string"
},
"published_at": {
"type": [
"string",
"null"
]
},
"fixes_advisories": {
"type": "array",
"items": {
"type": "string"
}
},
"requires_full_check": {
"const": true
},
"introduces_advisories": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"confidence": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"next_action": {
"type": "string"
},
"latest_stable": {
"type": [
"string",
"null"
]
},
"action_allowed": {
"type": "boolean"
},
"current_version": {
"type": "string"
},
"analysis_version": {
"type": "string"
},
"recommended_target": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"field": {
"type": "string"
},
"details": {
"type": "object"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"x402Version",
"resource",
"accepts"
],
"properties": {
"error": {
"type": "string"
},
"accepts": {
"type": "array",
"items": {
"type": "object"
},
"minItems": 1
},
"resource": {
"type": "object"
},
"extensions": {
"type": "object"
},
"x402Version": {
"const": 2
}
},
"additionalProperties": true
}
],
"properties": {
"billing": {
"type": "object",
"required": [
"mode",
"units",
"price_usd",
"trial_remaining",
"network",
"payment_status"
],
"properties": {
"mode": {
"enum": [
"validation",
"testnet",
"mainnet",
"paused"
],
"type": "string"
},
"units": {
"type": "integer",
"minimum": 1
},
"network": {
"type": [
"string",
"null"
]
},
"price_usd": {
"type": "number"
},
"payment_status": {
"type": "string"
},
"trial_remaining": {
"type": [
"integer",
"null"
]
}
}
},
"package": {
"type": "string"
},
"coverage": {
"type": "object"
},
"evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string"
},
"freshness": {
"type": "string"
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"required": [
"version",
"decision",
"requires_full_check",
"rationale"
],
"properties": {
"score": {
"type": "number",
"description": "Ranking score, not a safety verdict."
},
"version": {
"type": "string"
},
"decision": {
"enum": [
"review_required",
"block",
"unknown"
],
"type": "string"
},
"rationale": {
"type": "array",
"items": {
"type": "string"
}
},
"semver_jump": {
"type": "string"
},
"published_at": {
"type": [
"string",
"null"
]
},
"fixes_advisories": {
"type": "array",
"items": {
"type": "string"
}
},
"requires_full_check": {
"const": true
},
"introduces_advisories": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"confidence": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"next_action": {
"type": "string"
},
"latest_stable": {
"type": [
"string",
"null"
]
},
"action_allowed": {
"type": "boolean"
},
"current_version": {
"type": "string"
},
"analysis_version": {
"type": "string"
},
"recommended_target": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}plan_dependency_upgrade — Plan a known dependency upgrade (migration/review checklist)
Use when a coding agent needs a migration checklist, refactor actions, ordered review actions, changelog links, or test steps for exact current and target npm/PyPI versions. Use check_dependency_upgrade instead for a go/no-go without steps. Do not use to choose a target, install a package, or provide a general tutorial. Read-only and safe to retry.
{
"type": "object",
"required": [
"ecosystem",
"package",
"current_version",
"target_version"
],
"properties": {
"package": {
"type": "string",
"maxLength": 214,
"description": "Exact registry package name."
},
"runtime": {
"type": "object",
"properties": {
"node": {
"type": "string"
},
"python": {
"type": "string"
}
},
"additionalProperties": false
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string",
"description": "Package ecosystem. Only npm and pypi are supported."
},
"target_version": {
"type": "string",
"maxLength": 64,
"description": "Exact candidate version."
},
"current_version": {
"type": "string",
"maxLength": 64,
"description": "Exact installed version."
}
},
"additionalProperties": false
}{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"next_action",
"billing",
"decision",
"action_allowed",
"risk_score",
"ecosystem",
"package",
"current_version",
"target_version",
"evidence",
"coverage",
"confidence",
"freshness",
"analysis_version",
"migration_actions",
"changelog_urls"
],
"properties": {
"billing": {
"type": "object",
"required": [
"mode",
"units",
"price_usd",
"trial_remaining",
"network",
"payment_status"
],
"properties": {
"mode": {
"enum": [
"validation",
"testnet",
"mainnet",
"paused"
],
"type": "string"
},
"units": {
"type": "integer",
"minimum": 1
},
"network": {
"type": [
"string",
"null"
]
},
"price_usd": {
"type": "number"
},
"payment_status": {
"type": "string"
},
"trial_remaining": {
"type": [
"integer",
"null"
]
}
}
},
"package": {
"type": "string"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"coverage": {
"type": "object"
},
"decision": {
"enum": [
"proceed",
"review_required",
"block",
"unknown"
],
"type": "string"
},
"evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"cache_hit": {
"type": "boolean"
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string"
},
"freshness": {
"type": "string"
},
"confidence": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"risk_score": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"next_action": {
"type": "string"
},
"compatibility": {
"type": "object"
},
"latest_stable": {
"type": [
"string",
"null"
]
},
"version_facts": {
"type": "object"
},
"action_allowed": {
"type": "boolean"
},
"changelog_urls": {
"type": "array",
"items": {
"type": "string"
}
},
"claim_evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"repository_url": {
"type": [
"string",
"null"
]
},
"security_delta": {
"type": "object"
},
"target_version": {
"type": "string"
},
"current_version": {
"type": "string"
},
"analysis_version": {
"type": "string"
},
"breaking_changes": {
"type": "array",
"items": {
"type": "object"
}
},
"migration_actions": {
"type": "array",
"items": {
"type": "object"
}
},
"recommended_target": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"code",
"message",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"field": {
"type": "string"
},
"details": {
"type": "object"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
{
"type": "object",
"required": [
"x402Version",
"resource",
"accepts"
],
"properties": {
"error": {
"type": "string"
},
"accepts": {
"type": "array",
"items": {
"type": "object"
},
"minItems": 1
},
"resource": {
"type": "object"
},
"extensions": {
"type": "object"
},
"x402Version": {
"const": 2
}
},
"additionalProperties": true
}
],
"properties": {
"billing": {
"type": "object",
"required": [
"mode",
"units",
"price_usd",
"trial_remaining",
"network",
"payment_status"
],
"properties": {
"mode": {
"enum": [
"validation",
"testnet",
"mainnet",
"paused"
],
"type": "string"
},
"units": {
"type": "integer",
"minimum": 1
},
"network": {
"type": [
"string",
"null"
]
},
"price_usd": {
"type": "number"
},
"payment_status": {
"type": "string"
},
"trial_remaining": {
"type": [
"integer",
"null"
]
}
}
},
"package": {
"type": "string"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"coverage": {
"type": "object"
},
"decision": {
"enum": [
"proceed",
"review_required",
"block",
"unknown"
],
"type": "string"
},
"evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"cache_hit": {
"type": "boolean"
},
"ecosystem": {
"enum": [
"npm",
"pypi"
],
"type": "string"
},
"freshness": {
"type": "string"
},
"confidence": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"risk_score": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"next_action": {
"type": "string"
},
"compatibility": {
"type": "object"
},
"latest_stable": {
"type": [
"string",
"null"
]
},
"version_facts": {
"type": "object"
},
"action_allowed": {
"type": "boolean"
},
"changelog_urls": {
"type": "array",
"items": {
"type": "string"
}
},
"claim_evidence": {
"type": "array",
"items": {
"type": "object"
}
},
"repository_url": {
"type": [
"string",
"null"
]
},
"security_delta": {
"type": "object"
},
"target_version": {
"type": "string"
},
"current_version": {
"type": "string"
},
"analysis_version": {
"type": "string"
},
"breaking_changes": {
"type": "array",
"items": {
"type": "object"
}
},
"migration_actions": {
"type": "array",
"items": {
"type": "object"
}
},
"recommended_target": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 406 ms
- 95th percentile latency
- 406 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 406 ms · metadata changed · 4 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http upgradelens-mcp https://upgradelens.mattpicone.workers.dev/mcpCodex
codex mcp add upgradelens-mcp --url https://upgradelens.mattpicone.workers.dev/mcpCursor
{
"mcpServers": {
"upgradelens-mcp": {
"url": "https://upgradelens.mattpicone.workers.dev/mcp"
}
}
}Cline
{
"mcpServers": {
"upgradelens-mcp": {
"type": "streamableHttp",
"url": "https://upgradelens.mattpicone.workers.dev/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"upgradelens-mcp": {
"type": "http",
"url": "https://upgradelens.mattpicone.workers.dev/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http upgradelens-mcp https://upgradelens.mattpicone.workers.dev/mcpClaude Desktop
https://upgradelens.mattpicone.workers.dev/mcpWindsurf
{
"mcpServers": {
"upgradelens-mcp": {
"serverUrl": "https://upgradelens.mattpicone.workers.dev/mcp"
}
}
}Let your agent find its tools
Find servers like UpgradeLens MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.