validoria-mcp
What this MCP does
Runs continuous website, API, and webshop tests covering security, SEO, performance, accessibility, browser journeys, and incident automation.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['incidentId'], 'properties': {'incidentId': {'type': 'string', 'description': 'The incident ID to acknowledge'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'targetId': {'type': 'string', 'description': 'Filter by target ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId', 'keyword'], 'properties': {'keyword': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'The keyword to track'}, 'targetId': {'type': 'string', 'description': 'The target ID'}, 'isPrimary': {'type': 'boolean', 'default': False, 'description': 'Mark as primary keyword'}, 'pageScope': {'type': 'string', 'maxLength': 500, 'description': 'URL pathname pattern to scope the keyword to (e.g. /kategori/*)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'URL to analyze, e.g. "https://example.com"'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['loadTestRunId'], 'properties': {'loadTestRunId': {'type': 'string', 'description': 'The load test run ID to cancel'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'trigger', 'actions'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Rule name'}, 'actions': {'type': 'array', 'items': {'type': 'object', 'required': ['type'], 'properties': {'note': {'type': 'string', 'maxLength': 1000, 'description': 'Note text (for add_note action)'}, 'type': {'enum': ['escalate', 'suppress', 'rerun', 'notify', 'webhook', 'add_note'], 'type': 'string', 'description': 'Action type'}, 'delayMs': {'type': 'integer', 'maximum': 600000, 'minimum': 0, 'description': 'Delay in ms before executing (for rerun action)'}, 'severity': {'enum': ['CRITICAL', 'WARNING', 'INFO'], 'type': 'string', 'description': 'Target severity (for escalate action)'}, 'webhookUrl': {'type': 'string', 'format': 'uri', 'description': 'Webhook URL (for webhook action)'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Actions to execute when triggered'}, 'trigger': {'enum': ['TEST_FAILED', 'TEST_RECOVERED', 'INCIDENT_CREATED', 'INCIDENT_RESOLVED', 'TARGET_DOWN', 'TARGET_RECOVERED'], 'type': 'string', 'description': 'Event that triggers the rule'}, 'targetId': {'type': 'string', 'description': 'Optional target ID to scope rule to a specific target'}, 'conditions': {'type': 'object', 'properties': {'targetIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only trigger for these target IDs'}, 'testSlugs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only trigger for these test slugs'}, 'severities': {'type': 'array', 'items': {'enum': ['CRITICAL', 'WARNING', 'INFO'], 'type': 'string'}, 'description': 'Only trigger for these severity levels'}, 'minRecurrence': {'type': 'integer', 'minimum': 1, 'description': 'Minimum finding recurrence count to trigger'}}, 'description': 'Optional conditions that must be met', 'additionalProperties': False}, 'priorityOrder': {'type': 'integer', 'default': 0, 'description': 'Priority order (lower = evaluated first)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId', 'name', 'steps'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Journey name'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['action', 'label'], 'properties': {'label': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Human-readable step description'}, 'value': {'type': 'string', 'description': 'Value to type/fill, URL to navigate to, or fragment ID for use_fragment'}, 'action': {'enum': ['navigate', 'click', 'type', 'fill', 'select', 'assert', 'wait', 'screenshot', 'scroll', 'hover', 'use_fragment'], 'type': 'string'}, 'target': {'type': 'string', 'description': 'CSS selector or URL target'}, 'waitMs': {'type': 'number', 'maximum': 30000, 'minimum': 0, 'description': 'Wait duration in ms (for wait action)'}, 'screenshot': {'type': 'boolean', 'default': False, 'description': 'Capture screenshot after this step'}, 'assertionOperator': {'enum': ['element_visible', 'element_hidden', 'url_contains', 'text_contains', 'element_count'], 'type': 'string', 'description': 'Assertion type (for assert action)'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1, 'description': 'Ordered list of browser actions'}, 'platform': {'type': 'string', 'maxLength': 50, 'description': 'Platform tag (e.g. "shopify", "woocommerce")'}, 'targetId': {'type': 'string', 'description': 'Target ID to create the journey for'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Journey description'}, 'timeoutSeconds': {'type': 'number', 'default': 60, 'maximum': 300, 'minimum': 10, 'description': 'Max execution time in seconds'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId', 'name', 'startsAt', 'endsAt'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Name for the window, e.g. "Weekly deploy"'}, 'endsAt': {'type': 'string', 'description': 'End time as ISO 8601 string, e.g. "2026-04-05T04:00:00Z"'}, 'startsAt': {'type': 'string', 'description': 'Start time as ISO 8601 string, e.g. "2026-04-05T02:00:00Z"'}, 'targetId': {'type': 'string', 'description': 'The target ID'}, 'recurrence': {'enum': ['DAILY', 'WEEKLY'], 'type': 'string', 'description': 'Recurrence pattern (required if isRecurring is true)'}, 'description': {'type': 'string', 'description': 'Optional description'}, 'isRecurring': {'type': 'boolean', 'default': False, 'description': 'Whether this window repeats'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['scope'], 'properties': {'scope': {'enum': ['FINGERPRINT', 'TEST_DEFINITION', 'TEST_TARGET'], 'type': 'string', 'description': 'FINGERPRINT: match by finding fingerprint substring. TEST_DEFINITION: mute all findings from a test. TEST_TARGET: mute findings from a specific test on a specific target.'}, 'reason': {'type': 'string', 'maxLength': 500, 'description': 'Reason for muting'}, 'targetId': {'type': 'string', 'description': 'Target ID to scope the rule to (required for TEST_TARGET, optional for others)'}, 'expiresAt': {'type': 'string', 'description': 'Optional expiry as ISO 8601 string. Rule auto-expires after this time.'}, 'testDefinitionId': {'type': 'string', 'description': 'Test definition ID (required for TEST_DEFINITION and TEST_TARGET scopes)'}, 'fingerprintPattern': {'type': 'string', 'description': 'Substring to match in finding fingerprints (required for FINGERPRINT scope)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'eventTypes', 'channelTypes'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Rule name'}, 'enabled': {'type': 'boolean', 'default': True, 'description': 'Whether the rule is active'}, 'targetId': {'type': 'string', 'description': 'Scope to a specific target'}, 'eventTypes': {'type': 'array', 'items': {'enum': ['INCIDENT_OPENED', 'INCIDENT_RESOLVED', 'INCIDENT_ACKNOWLEDGED', 'FINDING_CREATED', 'FINDING_RESOLVED', 'FINDING_ESCALATED', 'TARGET_DOWN', 'TARGET_RECOVERED', 'TEST_FAILED', 'TEST_RECOVERED', 'SCAN_COMPLETED', 'BILLING_LIMIT_REACHED', 'ACTION_REQUIRED'], 'type': 'string'}, 'minItems': 1, 'description': 'Events that trigger this rule'}, 'severities': {'type': 'array', 'items': {'enum': ['CRITICAL', 'WARNING', 'INFO'], 'type': 'string'}, 'description': 'Only trigger for these severities'}, 'channelTypes': {'type': 'array', 'items': {'enum': ['IN_APP', 'EMAIL', 'SLACK', 'WEBHOOK', 'SMS', 'WEB_PUSH'], 'type': 'string'}, 'minItems': 1, 'description': 'Channels to notify'}, 'quietHoursEnd': {'type': 'number', 'maximum': 23, 'minimum': 0, 'description': 'Quiet hours end (hour UTC)'}, 'quietHoursStart': {'type': 'number', 'maximum': 23, 'minimum': 0, 'description': 'Quiet hours start (hour UTC)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'steps'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Fragment name (unique per team)'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['action', 'label'], 'properties': {'label': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Step description'}, 'value': {'type': 'string', 'description': 'Value to type/fill or URL to navigate'}, 'action': {'enum': ['navigate', 'click', 'type', 'fill', 'select', 'assert', 'wait', 'screenshot', 'scroll', 'hover'], 'type': 'string'}, 'target': {'type': 'string', 'description': 'CSS selector or URL'}, 'waitMs': {'type': 'number', 'maximum': 30000, 'minimum': 0}, 'screenshot': {'type': 'boolean', 'default': False}, 'assertionOperator': {'enum': ['element_visible', 'element_hidden', 'url_contains', 'text_contains', 'element_count'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 30, 'minItems': 1, 'description': 'Ordered list of browser actions'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Fragment description'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'default': 'Weekly Summary', 'maxLength': 100, 'minLength': 1, 'description': 'Report name'}, 'hourUtc': {'type': 'number', 'default': 8, 'maximum': 23, 'minimum': 0, 'description': 'Hour in UTC to send the report'}, 'dayOfWeek': {'type': 'number', 'default': 1, 'maximum': 6, 'minimum': 0, 'description': 'Day of week for WEEKLY reports (0=Sunday, 1=Monday, ..., 6=Saturday)'}, 'frequency': {'enum': ['DAILY', 'WEEKLY'], 'type': 'string', 'default': 'WEEKLY', 'description': 'How often to send'}, 'recipients': {'type': 'string', 'default': '', 'description': 'Comma-separated email addresses. Empty = all team members.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'url', 'type'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'URL to monitor, e.g. "https://example.com"'}, 'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Display name for the target'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'default': [], 'description': 'Optional tags for categorization'}, 'type': {'enum': ['WEBSITE', 'API', 'WEBSHOP'], 'type': 'string', 'description': 'Target type: WEBSITE, API, or WEBSHOP. Use analyze_target to auto-detect.'}, 'weight': {'enum': ['REVENUE_PATH', 'PUBLIC', 'INTERNAL'], 'type': 'string', 'default': 'PUBLIC', 'description': 'Business weight, used to rank findings by consequence: REVENUE_PATH (checkout, payment, signup), PUBLIC (customer-visible but not transactional), INTERNAL (staging, admin tooling).'}, 'environment': {'enum': ['PRODUCTION', 'STAGING', 'DEV'], 'type': 'string', 'default': 'PRODUCTION', 'description': 'Deployment environment'}, 'uptimeEnabled': {'type': 'boolean', 'default': True, 'description': 'Enable background uptime monitoring'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'number', 'default': 14, 'maximum': 90, 'minimum': 1, 'description': 'Number of days of history to return'}, 'targetId': {'type': 'string', 'description': 'Filter by target ID (omit for team-wide)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ruleId'], 'properties': {'ruleId': {'type': 'string', 'description': 'The automation rule ID to delete'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journeyId'], 'properties': {'journeyId': {'type': 'string', 'description': 'The journey ID to delete'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['windowId', 'targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID (for access verification)'}, 'windowId': {'type': 'string', 'description': 'The maintenance window ID to delete'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ruleId'], 'properties': {'ruleId': {'type': 'string', 'description': 'The notification rule ID to delete'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['fragmentId'], 'properties': {'fragmentId': {'type': 'string', 'description': 'The fragment ID to delete'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reportId'], 'properties': {'reportId': {'type': 'string', 'description': 'The scheduled report ID to delete'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['secretId', 'targetId'], 'properties': {'secretId': {'type': 'string', 'description': 'The secret ID to delete'}, 'targetId': {'type': 'string', 'description': 'The target ID (for access verification)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId', 'confirm'], 'properties': {'confirm': {'type': 'boolean', 'description': 'Must be true to confirm deletion'}, 'targetId': {'type': 'string', 'description': 'The target ID to delete'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'category': {'enum': ['SEO', 'SECURITY', 'PERFORMANCE', 'MOBILE', 'ACCESSIBILITY', 'ECOMMERCE', 'API_HEALTH'], 'type': 'string', 'description': 'Only disable tests in this category. Omit to disable all.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'category': {'enum': ['SEO', 'SECURITY', 'PERFORMANCE', 'MOBILE', 'ACCESSIBILITY', 'ECOMMERCE', 'API_HEALTH'], 'type': 'string', 'description': 'Only enable tests in this category. Omit to enable all.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ruleId'], 'properties': {'ruleId': {'type': 'string', 'description': 'The automation rule ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['findingId'], 'properties': {'findingId': {'type': 'string', 'description': 'The finding ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['incidentId'], 'properties': {'incidentId': {'type': 'string', 'description': 'The incident ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journeyId'], 'properties': {'journeyId': {'type': 'string', 'description': 'The journey ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['loadTestRunId'], 'properties': {'loadTestRunId': {'type': 'string', 'description': 'The load test run ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runId'], 'properties': {'runId': {'type': 'string', 'description': 'The run ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID'}, 'pageLimit': {'type': 'number', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Max pages to return when includePages is true'}, 'pageStatus': {'enum': ['HEALTHY', 'BROKEN', 'REDIRECT', 'SLOW'], 'type': 'string', 'description': 'Filter pages by status'}, 'includePages': {'type': 'boolean', 'default': False, 'description': 'Include individual page data (can be large). Default: false.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID to look up'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['scanId'], 'properties': {'scanId': {'type': 'string', 'minLength': 1, 'description': 'Scan workflow id from guest_start_scan'}, 'guestSessionId': {'type': 'string', 'minLength': 1, 'description': 'Guest session id returned by guest_start_scan'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'Public http(s) URL to scan, e.g. https://example.com'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'URL to monitor'}, 'name': {'type': 'string', 'description': 'Display name (defaults to hostname)'}, 'type': {'enum': ['WEBSITE', 'API', 'WEBSHOP'], 'type': 'string', 'default': 'WEBSITE', 'description': 'Target type'}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1, 'description': 'Array of targets to import'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'enabled': {'type': 'boolean', 'description': 'Filter by enabled/disabled status'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Max number of findings to return'}, 'status': {'enum': ['OPEN', 'MUTED', 'RESOLVED'], 'type': 'string', 'description': 'Filter by finding status (default: OPEN)'}, 'severity': {'enum': ['CRITICAL', 'WARNING', 'INFO'], 'type': 'string', 'description': 'Filter by severity'}, 'targetId': {'type': 'string', 'description': 'Filter by target ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Max number of incidents to return'}, 'status': {'enum': ['OPEN', 'ACKNOWLEDGED', 'RESOLVED'], 'type': 'string', 'description': 'Filter by incident status'}, 'targetId': {'type': 'string', 'description': 'Filter by target ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'targetId': {'type': 'string', 'description': 'Filter by target ID. If omitted, lists all team journeys.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'limit': {'type': 'number', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Max results'}, 'targetId': {'type': 'string', 'description': 'The target ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Max number of runs to return'}, 'status': {'enum': ['QUEUED', 'RUNNING', 'PASSED', 'WARNING', 'FAILED', 'CANCELED'], 'type': 'string', 'description': 'Filter by run status'}, 'targetId': {'type': 'string', 'description': 'Filter by target ID'}, 'testSlug': {'type': 'string', 'description': 'Filter by test definition slug (e.g. "security-headers")'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'type': {'enum': ['WEBSITE', 'API', 'WEBSHOP'], 'type': 'string', 'description': 'Filter by target type'}, 'limit': {'type': 'number', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Max number of targets to return'}, 'status': {'enum': ['HEALTHY', 'WARNING', 'CRITICAL', 'UNKNOWN'], 'type': 'string', 'description': 'Filter by target status'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'category': {'enum': ['SEO', 'SECURITY', 'PERFORMANCE', 'MOBILE', 'ACCESSIBILITY', 'ECOMMERCE', 'API_HEALTH'], 'type': 'string', 'description': 'Filter by test category'}, 'enabledOnly': {'type': 'boolean', 'default': True, 'description': 'Only show enabled tests. Default: true.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['findingId'], 'properties': {'findingId': {'type': 'string', 'description': 'The finding ID to mute'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID to recompute scores for'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'version': {'type': 'string', 'description': 'Version string, e.g. "v2.4.1"'}, 'targetId': {'type': 'string', 'description': 'The target ID'}, 'commitSha': {'type': 'string', 'description': 'Git commit SHA'}, 'deployedBy': {'type': 'string', 'description': 'Who deployed (name, email, or system)'}, 'description': {'type': 'string', 'description': 'Deployment description or changelog'}, 'environment': {'type': 'string', 'description': 'Environment, e.g. "production", "staging"'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['keywordId', 'targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID (for access verification)'}, 'keywordId': {'type': 'string', 'description': 'The keyword ID to remove'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['incidentId'], 'properties': {'incidentId': {'type': 'string', 'description': 'The incident ID to resolve'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['secretId', 'targetId', 'newValue'], 'properties': {'newValue': {'type': 'string', 'minLength': 1, 'description': 'New secret value'}, 'secretId': {'type': 'string', 'description': 'The secret ID to rotate'}, 'targetId': {'type': 'string', 'description': 'The target ID (for access verification)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'mode': {'enum': ['HTTP_FLOOD', 'BROWSER_USERS', 'COMBINED'], 'type': 'string', 'default': 'HTTP_FLOOD', 'description': 'Load test mode'}, 'rampUp': {'type': 'number', 'maximum': 60, 'minimum': 0, 'description': 'Ramp-up time in seconds'}, 'duration': {'type': 'number', 'default': 30, 'maximum': 300, 'minimum': 10, 'description': 'Test duration in seconds'}, 'targetId': {'type': 'string', 'description': 'The target ID to load test'}, 'targetUrl': {'type': 'string', 'format': 'uri', 'description': 'Override URL (defaults to target URL)'}, 'httpMethod': {'enum': ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'], 'type': 'string', 'description': 'HTTP method'}, 'concurrency': {'type': 'number', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Number of concurrent connections'}, 'acknowledgeSharedOrigin': {'type': 'boolean', 'description': 'Acknowledge blast radius if target shares a server with other monitored sites'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId', 'key', 'label', 'value'], 'properties': {'key': {'type': 'string', 'pattern': '^[a-zA-Z_][a-zA-Z0-9_]*$', 'maxLength': 100, 'minLength': 1, 'description': 'Secret key (e.g. LOGIN_EMAIL)'}, 'label': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Human-readable label'}, 'value': {'type': 'string', 'minLength': 1, 'description': 'Secret value (will be encrypted)'}, 'targetId': {'type': 'string', 'description': 'The target ID'}, 'description': {'type': 'string', 'maxLength': 500, 'description': 'Optional description'}, 'environment': {'enum': ['PRODUCTION', 'STAGING', 'DEVELOPMENT'], 'type': 'string', 'default': 'PRODUCTION', 'description': 'Environment scope'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'period': {'type': 'string', 'description': 'Period filter: "lifetime", "2026-04" (monthly), or "2026-W14" (weekly). Defaults to lifetime.'}, 'targetId': {'type': 'string', 'description': 'The target ID'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'period': {'type': 'string', 'description': 'Period filter: "lifetime", "2026-04" (monthly), or "2026-W14" (weekly). Defaults to lifetime.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'targetId': {'type': 'string', 'description': 'The target ID to scan'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journeyId'], 'properties': {'journeyId': {'type': 'string', 'description': 'The journey ID to trigger'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'testId': {'type': 'string', 'description': 'Test definition ID (use this or testSlug)'}, 'targetId': {'type': 'string', 'description': 'The target ID to test'}, 'testSlug': {'type': 'string', 'description': 'Test slug e.g. "security-headers" (use this or testId)'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ruleId'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Updated rule name'}, 'ruleId': {'type': 'string', 'description': 'The automation rule ID to update'}, 'actions': {'type': 'array', 'items': {'type': 'object', 'required': ['type'], 'properties': {'note': {'type': 'string', 'maxLength': 1000}, 'type': {'enum': ['escalate', 'suppress', 'rerun', 'notify', 'webhook', 'add_note'], 'type': 'string'}, 'delayMs': {'type': 'integer', 'maximum': 600000, 'minimum': 0}, 'severity': {'enum': ['CRITICAL', 'WARNING', 'INFO'], 'type': 'string'}, 'webhookUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Updated actions'}, 'trigger': {'enum': ['TEST_FAILED', 'TEST_RECOVERED', 'INCIDENT_CREATED', 'INCIDENT_RESOLVED', 'TARGET_DOWN', 'TARGET_RECOVERED'], 'type': 'string', 'description': 'Updated trigger event'}, 'targetId': {'type': ['string', 'null'], 'description': 'Updated target scope (null to remove target scoping)'}, 'isEnabled': {'type': 'boolean', 'description': 'Enable or disable the rule'}, 'conditions': {'type': 'object', 'properties': {'targetIds': {'type': 'array', 'items': {'type': 'string'}}, 'testSlugs': {'type': 'array', 'items': {'type': 'string'}}, 'severities': {'type': 'array', 'items': {'enum': ['CRITICAL', 'WARNING', 'INFO'], 'type': 'string'}}, 'minRecurrence': {'type': 'integer', 'minimum': 1}}, 'description': 'Updated conditions', 'additionalProperties': False}, 'priorityOrder': {'type': 'integer', 'description': 'Updated priority order'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journeyId'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Updated name'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['action', 'label'], 'properties': {'label': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Human-readable step description'}, 'value': {'type': 'string', 'description': 'Value to type/fill, URL to navigate to, or fragment ID for use_fragment'}, 'action': {'enum': ['navigate', 'click', 'type', 'fill', 'select', 'assert', 'wait', 'screenshot', 'scroll', 'hover', 'use_fragment'], 'type': 'string'}, 'target': {'type': 'string', 'description': 'CSS selector or URL target'}, 'waitMs': {'type': 'number', 'maximum': 30000, 'minimum': 0, 'description': 'Wait duration in ms (for wait action)'}, 'screenshot': {'type': 'boolean', 'default': False, 'description': 'Capture screenshot after this step'}, 'assertionOperator': {'enum': ['element_visible', 'element_hidden', 'url_contains', 'text_contains', 'element_count'], 'type': 'string', 'description': 'Assertion type (for assert action)'}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1, 'description': 'Replacement steps (replaces all existing steps)'}, 'isEnabled': {'type': 'boolean', 'description': 'Enable or disable the journey'}, 'journeyId': {'type': 'string', 'description': 'The journey ID to update'}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}], 'description': 'Updated description'}, 'timeoutSeconds': {'type': 'number', 'maximum': 300, 'minimum': 10, 'description': 'Updated timeout'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ruleId'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'ruleId': {'type': 'string', 'description': 'The notification rule ID'}, 'enabled': {'type': 'boolean'}, 'eventTypes': {'type': 'array', 'items': {'enum': ['INCIDENT_OPENED', 'INCIDENT_RESOLVED', 'INCIDENT_ACKNOWLEDGED', 'FINDING_CREATED', 'FINDING_RESOLVED', 'FINDING_ESCALATED', 'TARGET_DOWN', 'TARGET_RECOVERED', 'TEST_FAILED', 'TEST_RECOVERED', 'SCAN_COMPLETED', 'BILLING_LIMIT_REACHED', 'ACTION_REQUIRED'], 'type': 'string'}, 'minItems': 1}, 'severities': {'type': 'array', 'items': {'enum': ['CRITICAL', 'WARNING', 'INFO'], 'type': 'string'}}, 'channelTypes': {'type': 'array', 'items': {'enum': ['IN_APP', 'EMAIL', 'SLACK', 'WEBHOOK', 'SMS', 'WEB_PUSH'], 'type': 'string'}, 'minItems': 1}, 'quietHoursEnd': {'anyOf': [{'type': 'number', 'maximum': 23, 'minimum': 0}, {'type': 'null'}]}, 'quietHoursStart': {'anyOf': [{'type': 'number', 'maximum': 23, 'minimum': 0}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['fragmentId'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Updated name'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['action', 'label'], 'properties': {'label': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Step description'}, 'value': {'type': 'string', 'description': 'Value to type/fill or URL to navigate'}, 'action': {'enum': ['navigate', 'click', 'type', 'fill', 'select', 'assert', 'wait', 'screenshot', 'scroll', 'hover'], 'type': 'string'}, 'target': {'type': 'string', 'description': 'CSS selector or URL'}, 'waitMs': {'type': 'number', 'maximum': 30000, 'minimum': 0}, 'screenshot': {'type': 'boolean', 'default': False}, 'assertionOperator': {'enum': ['element_visible', 'element_hidden', 'url_contains', 'text_contains', 'element_count'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 30, 'minItems': 1, 'description': 'Replacement steps'}, 'fragmentId': {'type': 'string', 'description': 'The fragment ID'}, 'description': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'null'}]}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['reportId'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Updated name'}, 'enabled': {'type': 'boolean', 'description': 'Enable or disable the report'}, 'hourUtc': {'type': 'number', 'maximum': 23, 'minimum': 0, 'description': 'Updated hour UTC'}, 'reportId': {'type': 'string', 'description': 'The scheduled report ID to update'}, 'dayOfWeek': {'type': 'number', 'maximum': 6, 'minimum': 0, 'description': 'Updated day of week'}, 'frequency': {'enum': ['DAILY', 'WEEKLY'], 'type': 'string', 'description': 'Updated frequency'}, 'recipients': {'type': 'string', 'description': 'Updated comma-separated email list'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['targetId'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'New URL'}, 'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'New display name'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'New tags (replaces existing)'}, 'type': {'enum': ['WEBSITE', 'API', 'WEBSHOP'], 'type': 'string', 'description': 'New target type'}, 'weight': {'enum': ['REVENUE_PATH', 'PUBLIC', 'INTERNAL'], 'type': 'string', 'description': "New business weight: REVENUE_PATH, PUBLIC or INTERNAL. Changing this rescores the target's open findings so the consequence ranking updates immediately."}, 'targetId': {'type': 'string', 'description': 'The target ID to update'}, 'environment': {'enum': ['PRODUCTION', 'STAGING', 'DEV'], 'type': 'string', 'description': 'New environment'}, 'uptimeEnabled': {'type': 'boolean', 'description': 'Toggle uptime monitoring'}, 'uptimeKeyword': {'anyOf': [{'anyOf': [{'not': {}}, {'type': 'string', 'maxLength': 500}]}, {'type': 'null'}], 'description': 'Keyword to verify in response body during uptime checks. When set, every uptime ping GETs the page and verifies this text appears (case-insensitive). If missing, the site is treated as DOWN even on HTTP 200. Set to null to disable keyword verification.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'aiModel': {'type': 'string', 'description': 'OpenAI model for finding enrichment (e.g. gpt-4o-mini)'}, 'aiEnabled': {'type': 'boolean', 'description': 'Enable/disable AI finding enrichment'}, 'aiCapAction': {'enum': ['disable', 'warn'], 'type': 'string', 'description': 'Action when cap is reached'}, 'testsPaused': {'type': 'boolean', 'description': 'Kill switch â\x80\x94 pauses ALL scheduled and manual test runs'}, 'aiAutoEnrich': {'type': 'boolean', 'description': 'Auto-enrich new findings with AI'}, 'digestEnabled': {'type': 'boolean', 'description': 'Enable notification alert coalescing'}, 'aiMonthlyCapUsd': {'anyOf': [{'type': 'number', 'maximum': 10000, 'minimum': 0.01}, {'type': 'null'}], 'description': 'Monthly AI spending cap in USD (null = unlimited)'}, 'aiSourceReviewModel': {'type': 'string', 'description': 'Model for AI source review plugin'}, 'defaultRunTimeoutMs': {'type': 'number', 'maximum': 3600000, 'minimum': 30000, 'description': 'Default run timeout in ms'}, 'digestWindowSeconds': {'type': 'number', 'maximum': 86400, 'minimum': 30, 'description': 'Digest window duration in seconds'}, 'escalateInfoAgeDays': {'type': 'number', 'maximum': 365, 'minimum': 1, 'description': 'Finding age in days before INFOâ\x86\x92WARNING'}, 'seoRankCheckEnabled': {'type': 'boolean', 'description': 'Enable Google rank tracking'}, 'uptimeFailThreshold': {'type': 'number', 'maximum': 10, 'minimum': 1, 'description': 'Consecutive failures before DOWN'}, 'uptimePingTimeoutMs': {'type': 'number', 'maximum': 30000, 'minimum': 1000, 'description': 'Uptime ping timeout in ms'}, 'maxDailyRunsPerTarget': {'type': 'number', 'maximum': 1000, 'minimum': 0, 'description': 'Max test runs per target per day (0=unlimited). Prevents overwhelming hosted sites with limited request budgets.'}, 'escalateInfoRecurrence': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Finding recurrences before INFOâ\x86\x92WARNING'}, 'escalateWarningAgeDays': {'type': 'number', 'maximum': 365, 'minimum': 1, 'description': 'Finding age in days before WARNINGâ\x86\x92CRITICAL'}, 'defaultScheduleMultiplier': {'type': 'number', 'maximum': 10, 'minimum': 0.1, 'description': 'Schedule frequency multiplier (< 1 = more frequent)'}, 'escalateWarningRecurrence': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Finding recurrences before WARNINGâ\x86\x92CRITICAL'}, 'uptimeDegradedThresholdMs': {'type': 'number', 'maximum': 15000, 'minimum': 500, 'description': 'Response time threshold for DEGRADED status'}, 'maxConcurrentRunsPerTarget': {'type': 'number', 'maximum': 20, 'minimum': 1, 'description': 'Max concurrent test runs per target'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Test plugin slug (e.g. "http-protocol-check")'}, 'enabled': {'type': 'boolean', 'description': 'Enable or disable the test globally'}, 'timeout': {'type': 'number', 'description': 'Timeout in milliseconds'}, 'defaultSchedule': {'type': 'string', 'description': 'Cron schedule (e.g. "0 */6 * * *")'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
mcp-toolbelt
Runs website and infrastructure checks covering DNS, SSL, security headers, ports, vulnerabilities, performance, SEO, email deliv…
seo-web-analysis-mcp-server
Crawls websites and analyzes SEO content, technology stacks, DNS records, SSL certificates, and domain registration data.
hyperion
Acts as a paid MCP tool marketplace and utility gateway with server discovery, HTTP and JavaScript tools, research, data conversi…
Vee3
Manages Clerk authentication infrastructure, including users, organizations, domains, sessions, tokens, OAuth, SSO, machines, per…
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…
HubVibe: Pay-per-Call Tools for AI Agents: Web Search, Email Verify, KYC, Stocks, Crypto, News, Data
Offers paid utilities for web audits, HTTP fetching and extraction, BigQuery analysis, LLM processing, code execution, blockchain…
developer-tools
Provides general-purpose developer utilities for encoding, hashing, encryption, JSON, HTML, CSS, networking, and related data tra…
Qiniso
Provides deterministic formatting, parsing, holiday and tax lookups, address handling, and checksum or structure validation for i…