WP Update Radar
What this MCP does
Reports evidence from WordPress support forums about plugin release signals and update risk indicators.
Tools
Input schema
{'type': 'object', 'required': ['plugin', 'version'], 'properties': {'plugin': {'type': 'string', 'description': 'wordpress.org plugin slug, e.g. "woocommerce"'}, 'version': {'type': 'string', 'description': 'Exact release to check, e.g. "8.5.1"'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['verdict', 'lastCheckedAt', 'baselineReleases', 'strongEvidence', 'weakEvidence', 'baseline', 'threads', 'state', 'signal', 'reasonCodes', 'attribution', 'coverage', 'freshness', 'unknowns'], 'properties': {'state': {'enum': ['GUARDED_ROLLOUT', 'WAIT', 'HOLD', 'NOT_ENOUGH_EVIDENCE'], 'type': 'string', 'description': 'what to do. Separate from `signal`, which is only what was observed.'}, 'signal': {'enum': ['ELEVATED_PUBLIC_SIGNAL', 'NO_ELEVATED_PUBLIC_SIGNAL', 'NO_OBSERVATION'], 'type': 'string', 'description': 'what the public forum showed. NO_OBSERVATION means nothing was comparable, which is not the same as nothing being wrong.'}, 'threads': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url', 'thread_time', 'version', 'timeBasis'], 'properties': {'url': {'type': 'string', 'description': 'the wordpress.org support thread itself'}, 'title': {'type': 'string'}, 'version': {'type': ['string', 'null'], 'description': 'version named in the thread, when it named one'}, 'timeBasis': {'enum': ['TOPIC_CREATED', 'LAST_ACTIVITY'], 'type': 'string', 'description': 'whether thread_time is the topic creation time or only its last activity time'}, 'thread_time': {'type': 'integer', 'description': 'epoch ms of the timestamp identified by timeBasis'}}, 'additionalProperties': False}}, 'verdict': {'enum': ['known-bad', 'wait', 'update-now', 'too-new', 'insufficient-data'], 'type': 'string'}, 'baseline': {'type': 'number', 'description': 'average threads per release for this plugin'}, 'coverage': {'type': 'object', 'required': ['threadsTotal', 'explicit', 'window', 'unattributed', 'ambiguous', 'directMappingRate', 'attributedRate', 'postTimeUnknown'], 'properties': {'window': {'type': 'integer'}, 'explicit': {'type': 'integer'}, 'ambiguous': {'type': 'integer'}, 'threadsTotal': {'type': 'integer'}, 'unattributed': {'type': 'integer'}, 'attributedRate': {'type': 'number'}, 'postTimeUnknown': {'type': 'integer'}, 'directMappingRate': {'type': 'number'}}, 'description': "how much of this plugin's forum could be attributed at all", 'additionalProperties': False}, 'unknowns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'what this answer does not know. Never empty.'}, 'freshness': {'type': 'object', 'required': ['lastCheckedAt', 'ageHours', 'stale'], 'properties': {'stale': {'type': 'boolean'}, 'ageHours': {'type': ['number', 'null']}, 'lastCheckedAt': {'type': 'integer'}}, 'additionalProperties': False}, 'attribution': {'type': 'object', 'required': ['current', 'baseline', 'sameFunction'], 'properties': {'current': {'type': 'object', 'required': ['explicit', 'window', 'attributed'], 'properties': {'window': {'type': 'integer'}, 'explicit': {'type': 'integer'}, 'attributed': {'type': 'integer'}}, 'additionalProperties': False}, 'baseline': {'type': 'object', 'required': ['releases', 'explicit', 'window', 'attributed', 'mean'], 'properties': {'mean': {'type': 'number'}, 'window': {'type': 'integer'}, 'explicit': {'type': 'integer'}, 'releases': {'type': 'integer'}, 'attributed': {'type': 'integer'}}, 'additionalProperties': False}, 'sameFunction': {'type': 'boolean'}}, 'description': 'how many threads were tied to this release and to its baseline, by the same function', 'additionalProperties': False}, 'reasonCodes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'finite reasons for the state'}, 'weakEvidence': {'type': 'integer', 'description': "threads in this version's window that named no version"}, 'lastCheckedAt': {'type': 'integer', 'description': "epoch ms this plugin's forum was last swept; 0 means never"}, 'strongEvidence': {'type': 'integer', 'description': 'threads naming this exact version'}, 'baselineReleases': {'type': 'integer', 'description': 'how many other releases the baseline was drawn from'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['plugins'], 'properties': {'plugins': {'type': 'array', 'items': {'type': 'object', 'required': ['plugin', 'version'], 'properties': {'plugin': {'type': 'string', 'description': 'wordpress.org plugin slug, e.g. "woocommerce"'}, 'version': {'type': 'string', 'description': 'Exact release in use, e.g. "8.5.1"'}}, 'additionalProperties': False}, 'maxItems': 25, 'minItems': 1, 'description': 'The plugins and the exact versions in use'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['requested', 'examined', 'skipped', 'counts', 'results'], 'properties': {'counts': {'type': 'object', 'description': 'verdict -> count, plus `error` for items that could not be judged', 'additionalProperties': {'type': 'integer'}}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['plugin', 'version'], 'properties': {'error': {'type': 'string', 'description': 'present instead of a verdict when this item could not be judged'}, 'state': {'enum': ['GUARDED_ROLLOUT', 'WAIT', 'HOLD', 'NOT_ENOUGH_EVIDENCE'], 'type': 'string', 'description': 'what to do. Separate from `signal`, which is only what was observed.'}, 'plugin': {'type': 'string'}, 'signal': {'enum': ['ELEVATED_PUBLIC_SIGNAL', 'NO_ELEVATED_PUBLIC_SIGNAL', 'NO_OBSERVATION'], 'type': 'string', 'description': 'what the public forum showed. NO_OBSERVATION means nothing was comparable, which is not the same as nothing being wrong.'}, 'threads': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url', 'thread_time', 'version', 'timeBasis'], 'properties': {'url': {'type': 'string', 'description': 'the wordpress.org support thread itself'}, 'title': {'type': 'string'}, 'version': {'type': ['string', 'null'], 'description': 'version named in the thread, when it named one'}, 'timeBasis': {'enum': ['TOPIC_CREATED', 'LAST_ACTIVITY'], 'type': 'string', 'description': 'whether thread_time is the topic creation time or only its last activity time'}, 'thread_time': {'type': 'integer', 'description': 'epoch ms of the timestamp identified by timeBasis'}}, 'additionalProperties': False}}, 'verdict': {'enum': ['known-bad', 'wait', 'update-now', 'too-new', 'insufficient-data'], 'type': 'string'}, 'version': {'type': 'string'}, 'baseline': {'type': 'number'}, 'coverage': {'type': 'object', 'required': ['threadsTotal', 'explicit', 'window', 'unattributed', 'ambiguous', 'directMappingRate', 'attributedRate', 'postTimeUnknown'], 'properties': {'window': {'type': 'integer'}, 'explicit': {'type': 'integer'}, 'ambiguous': {'type': 'integer'}, 'threadsTotal': {'type': 'integer'}, 'unattributed': {'type': 'integer'}, 'attributedRate': {'type': 'number'}, 'postTimeUnknown': {'type': 'integer'}, 'directMappingRate': {'type': 'number'}}, 'description': "how much of this plugin's forum could be attributed at all", 'additionalProperties': False}, 'unknowns': {'type': 'array', 'items': {'type': 'string'}, 'description': 'what this answer does not know. Never empty.'}, 'freshness': {'type': 'object', 'required': ['lastCheckedAt', 'ageHours', 'stale'], 'properties': {'stale': {'type': 'boolean'}, 'ageHours': {'type': ['number', 'null']}, 'lastCheckedAt': {'type': 'integer'}}, 'additionalProperties': False}, 'attribution': {'type': 'object', 'required': ['current', 'baseline', 'sameFunction'], 'properties': {'current': {'type': 'object', 'required': ['explicit', 'window', 'attributed'], 'properties': {'window': {'type': 'integer'}, 'explicit': {'type': 'integer'}, 'attributed': {'type': 'integer'}}, 'additionalProperties': False}, 'baseline': {'type': 'object', 'required': ['releases', 'explicit', 'window', 'attributed', 'mean'], 'properties': {'mean': {'type': 'number'}, 'window': {'type': 'integer'}, 'explicit': {'type': 'integer'}, 'releases': {'type': 'integer'}, 'attributed': {'type': 'integer'}}, 'additionalProperties': False}, 'sameFunction': {'type': 'boolean'}}, 'description': 'how many threads were tied to this release and to its baseline, by the same function', 'additionalProperties': False}, 'reasonCodes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'finite reasons for the state'}, 'weakEvidence': {'type': 'integer'}, 'lastCheckedAt': {'type': 'integer'}, 'strongEvidence': {'type': 'integer'}, 'baselineReleases': {'type': 'integer'}}, 'additionalProperties': False}}, 'skipped': {'type': 'integer'}, 'examined': {'type': 'integer', 'description': 'how many were actually judged, after the per-call cap'}, 'requested': {'type': 'integer'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
TinyFn
Offers deterministic utility functions for mathematics, conversions, validation, hashing, encoding, arrays, dates, colors, and pa…
hyperion
Acts as a paid MCP tool marketplace and utility gateway with server discovery, HTTP and JavaScript tools, research, data conversi…
Andreax
Offers pay-per-call AI services for inference, agent and workflow design, OCR and transcription, code generation and review, clas…
Vee3
Manages Clerk authentication infrastructure, including users, organizations, domains, sessions, tokens, OAuth, SSO, machines, per…
Courier
Provides notification delivery infrastructure for users, tenants, lists, templates, preferences, journeys, automations, brands, a…
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
IA-QA — 130+ QA & Dev Tools for AI Agents
Provides deterministic QA, evaluation, testing, code analysis, prompt and RAG checks, model comparison, and web security diagnost…
apis-io
Provides catalog search, comparison, scoring, enrichment, lists, and dataset exports for APIs, providers, specifications, workflo…