omniwatchguard-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@omniwatchguard-mcpCreate a price monitor for https://example.com/products/widget"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OmniWatchGuard MCP Server
Model Context Protocol (MCP) server for OmniWatchGuard, a website change monitoring service. Connect Claude, Cursor or any MCP client to your OmniWatchGuard account and manage monitors and alerts in plain language.
Endpoint:
https://mcp.omniwatchguard.com/mcpTransport: Streamable HTTP (stateless)
Authentication: OmniWatchGuard API key, sent as a Bearer token
What you can do
List and inspect your monitors
Create monitors for text, price, stock, a CSS-selected element, JSON APIs, SEO fields or SSL certificates
Change a monitor's URL, selector, check interval or price/stock thresholds
Pause, resume or delete monitors
Read recent alerts sent by email, webhook, Slack, Discord or Telegram
Each detected change is summarised by an AI model and rated minor, major or critical. Alerts are sent for major and critical changes; minor ones are kept in the history.
Related MCP server: SiteVitals
Tools
Tool | Description |
| List all monitors with recent change activity |
| Get full details and the last 20 results for one monitor |
| Create a new monitor |
| Update an existing monitor's settings |
| Pause or resume a monitor |
| Delete a monitor |
| List recent alerts sent to your account |
Authentication
Tools need an OmniWatchGuard API key, available on the Pro and Agency plans. Create one in the dashboard and send it as a header:
Authorization: Bearer owg_live_...Listing the tools (initialize, tools/list) works without a key; calling a tool without a key returns an error message.
Connect from Claude Desktop
{
"mcpServers": {
"omniwatchguard": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.omniwatchguard.com/mcp",
"--header",
"Authorization: Bearer owg_live_YOUR_KEY_HERE"
]
}
}
}Run locally (stdio)
The same tools are available as a local stdio server, for clients that run MCP servers as a process:
npm ci
npm run build
OWG_API_KEY=owg_live_YOUR_KEY_HERE node dist/stdio.mjsWithout OWG_API_KEY the server starts and lists its tools; tool calls return an error message.
Limits
Check intervals: 60 minutes on Starter; 15, 30 or 60 on Pro; 5, 15, 30 or 60 on Agency.
The crawler respects robots.txt and does not bypass anti-bot protection. Monitoring works on sites that allow automated access.
Self-hosting
The hosted version is a Cloudflare Worker (src/index.ts) that forwards calls to the OmniWatchGuard API. Both versions share the tools in src/server.ts.
npm ci
npm run deployLicense
MIT, see LICENSE.
Available Tools
7 toolscreate_monitorAInspect
Create a new monitor for a web page. Types: text, price, stock, css, api, seo, ssl (tech_stack and whois need the matching add-on). The number of monitors and the available check intervals depend on the user's plan.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL of the page to monitor | |
| name | No | Display name for the monitor (default: the domain of the URL) | |
| type | No | Monitor type: text, price, stock, css, api, seo or ssl. Default: text | |
| selector | No | Optional CSS selector that limits monitoring to one element of the page (used with type css) | |
| frequency | No | Check interval in minutes: 60 on Starter; 15, 30 or 60 on Pro; 5, 15, 30 or 60 on Agency | |
| notify_telegram | No | Telegram chat ID for this monitor's alerts (Agency plan) | |
| stock_alert_type | No | For type=stock: 'any', 'in_stock' or 'out_of_stock' | |
| price_threshold_type | No | For type=price: 'any', 'increase' or 'decrease' | |
| price_threshold_value | No | Price threshold that triggers an alert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden. It does disclose genuine behavioral constraints beyond the schema (plan-limited monitor count, plan-limited intervals, add-on prerequisites), but says nothing about duplicate-URL handling, authentication, error behavior, or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action before the type taxonomy and plan constraints. The mention of tech_stack/whois types that the schema does not list slightly undercuts the efficiency, but there is no filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter creation tool with no annotations and no output schema, the description covers the type taxonomy and plan/add-on constraints well. It omits what a successful create returns (monitor id?), how duplicates are treated, and any failure behavior, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented, making 3 the baseline. The description restates the type list rather than adding syntax or constraints beyond the schema; notably it mentions tech_stack and whois types that do not appear in the schema's type parameter, which is mildly confusing rather than illuminating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create a new monitor for a web page") that is unambiguously distinct from list_monitors, get_monitor, update_monitor, delete_monitor, and set_monitor_status. It goes further by enumerating the monitor types the tool supports, so an agent immediately knows the scope of creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real usage context: which types exist, that tech_stack/whois require a matching add-on, and that monitor count and check intervals are plan-dependent. It never names a sibling tool or states when not to use this one (e.g., to modify an existing monitor), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_monitorCInspect
Delete an existing monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Monitor ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. 'Delete' implies removal, but it does not state whether the deletion is permanent, what permissions are required, or whether related entities (e.g., alerts) are affected. This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple delete tool, though its extreme brevity leaves behavioral gaps that a slightly fuller sentence could have addressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete tool with no output schema, the description covers the core action and the parameter is fully documented in the schema. However, because there are no annotations, it should disclose the destructive and potentially cascading nature of deletion; that context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is documented as 'Monitor ID'. The description adds no extra meaning about the parameter, so the baseline of 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and resource ('monitor'), making its purpose unambiguous. It distinguishes itself from siblings like create_monitor and get_monitor by verb alone, but it does not explicitly name or contrast with any sibling, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of what should happen before deletion. The description gives no usage context at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monitorAInspect
Get the full details of one monitor and its last 20 check results.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Monitor ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully bounds the return set (last 20 check results), which is real behavioral context a schema cannot convey, but it says nothing about permissions, error behavior when the ID is missing, or whether results are paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the action and resource, with zero filler. Every clause (single monitor, last 20 results) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with no output schema, the description is nearly sufficient: it covers what is fetched and how much result history is returned. Missing only auth/error semantics, which is a minor gap at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage, so the schema already defines 'id' as the Monitor ID. The description adds nothing beyond implying that the ID selects a single monitor, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (one monitor) plus the notable scope of the return set (last 20 check results). 'One monitor' implicitly separates it from list_monitors, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the single-monitor framing suggests calling it when you already have a monitor ID, versus list_monitors for enumeration. No when-not conditions, prerequisites, or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_alertsBInspect
List the latest alerts sent to the user (email, webhook, Slack, Discord, Telegram), with details of the change that triggered each one.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Optional filter by alert channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does usefully disclose that results include the triggering change details and span five channels, but it omits how many alerts 'latest' returns, whether pagination or time windows apply, and whether any permissions are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero redundant clauses; the resource is stated first and the channel/details qualifiers follow naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return-value burden; it partially does by mentioning the triggering change details. However, result count, ordering, and pagination behavior are absent, leaving gaps for a list tool with an unfiltered default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single enum parameter is fully documented in the schema, so the baseline is 3. The description merely restates the channel list rather than adding filter syntax or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (alerts sent to the user) and enumerates the delivery channels, so the resource is unambiguous. It does not explicitly contrast itself with the monitor-management siblings, but the alert-vs-monitor distinction is self-evident from the wording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, no exclusions, and no alternatives named (e.g. per-channel or per-monitor query tools). Usage is only implied by the word 'latest', which is never defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_monitorsAInspect
List all OmniWatchGuard monitors of the authenticated user, with the number of changes in the last 7 days and the last detected change.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does usefully disclose the payload shape (change count over the last 7 days and the last detected change), which signals a read-only aggregate view, but says nothing about permissions, result limits, pagination, or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the scope constraint and the returned fields are both stated without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and zero params, the description is the only source of information, and it does name the returned fields, which covers the most important gap. It stops short of describing pagination or result bounds for a potentially unbounded list call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing further for the description to clarify on this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('OmniWatchGuard monitors') plus scope ('of the authenticated user'), so the agent knows exactly what is returned. It implies differentiation from the singular get_monitor sibling via 'all', but never names or contrasts an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'List' and the 'all monitors of the authenticated user' scope; there is no explicit when-to-use statement, no exclusion criteria, and no pointer to siblings like get_monitor or list_alerts. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_monitor_statusCInspect
Pause or resume an existing monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Monitor ID | |
| status | Yes | New status of the monitor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It reveals that this only affects an existing monitor, but says nothing about whether the change is idempotent, whether paused monitors stop evaluating/alerting, whether permissions are required, or what happens on an invalid id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, appropriate for a two-parameter tool. It is efficient, though its brevity is partly under-specification rather than pure economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status-toggle mutation with no annotations and no output schema, the description is minimally adequate. It omits side effects and permission requirements that an agent would want before invoking a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both id and status fully documented in the schema including the active/paused enum, so the baseline is 3. The description adds no additional semantics (e.g. what 'active' vs 'paused' means operationally) beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb pair (pause/resume) and a specific resource (an existing monitor), which is more precise than the sibling update_monitor. It does not, however, explicitly differentiate itself from update_monitor, which could also change status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to prefer this tool over update_monitor, nor any stated preconditions (e.g. the monitor must exist, permissions needed). The word 'existing' hints at a precondition but is not elaborated into usable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_monitorCInspect
Update fields of an existing monitor: name, URL, selector, check interval or price/stock thresholds.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Monitor ID | |
| url | No | New page URL | |
| name | No | New display name | |
| selector | No | New CSS selector | |
| frequency | No | New check interval in minutes (allowed values depend on the plan) | |
| stock_alert_type | No | For stock monitors: 'any', 'in_stock' or 'out_of_stock' | |
| price_threshold_type | No | For price monitors: 'any', 'increase' or 'decrease' | |
| price_threshold_value | No | For price monitors: threshold that triggers an alert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state whether this is a partial/merge update or a replacement, whether omitted fields are preserved, what permissions are needed, or what happens on an unknown id, all of which matter for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with the field list after the colon. It is efficient, though the comma-heavy field enumeration is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an eight-parameter mutation tool with no annotations and no output schema, the description omits the most agent-relevant facts: partial vs full update semantics, permission requirements, and error behavior. The schema covers the fields, but the behavior around the update is undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all eight parameters are already documented in the schema, including the enum-like allowed values for stock_alert_type and price_threshold_type. The description's field list (URL, selector, check interval, thresholds) largely restates the schema without adding format or constraint detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and resource (fields of an existing monitor) and enumerates the updatable fields, which distinguishes it from create_monitor and delete_monitor. It stops short of explicitly contrasting itself with the sibling set, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says nothing about when to use this tool versus set_monitor_status (which also mutates a monitor) or get_monitor, and gives no prerequisites such as needing a valid monitor id. Usage is only inferable from the name and the word 'existing'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.0- First observed
create_monitor - First observed
delete_monitor - First observed
get_monitor - First observed
list_alerts - First observed
list_monitors - First observed
set_monitor_status - First observed
update_monitor
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: CRUD for monitors, one status toggle, and one alert listing. The only potential overlap between update_monitor and set_monitor_status is explicitly resolved by the descriptions (fields vs. pause/resume).
All tool names follow a consistent snake_case verb_noun pattern (list_monitors, get_monitor, create_monitor, update_monitor, delete_monitor, set_monitor_status). The one deviation, set_monitor_status, is still the same convention with a compound noun.
Seven tools is a well-scoped set for a monitor-and-alert service, covering the lifecycle without bloat. Every tool has a clear place in the workflow.
The surface covers monitor CRUD, pause/resume, and alert listing, which are the core operations. Minor gaps exist, such as no alert acknowledgement/mark-read, no bulk operations, and no check-history retrieval beyond the last 20 results in get_monitor.
Maintenance
Related MCP Connectors
Monitor websites, APIs, and servers: create monitors, triage incidents, and query uptime stats.
Monitor website uptime, SSL certificates, DNS, domain expiry and page changes, and manage alerts.
Manage uptime monitors and incidents and search logs, metrics and traces from an AI assistant.
Check if a website is down, add uptime monitors, read outage history and send test alerts.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables AI assistants to interact with Uptime Agent monitoring system to check uptime status, manage incidents, create new monitors, and analyze downtime through natural conversation.71-
- AlicenseNot gradedqualityDmaintenanceMonitor website health, uptime, SEO, security and performance via your AI assistant.MIT
- AlicenseAqualityDmaintenanceEnables managing UptimeRobot monitors, alert contacts, and maintenance windows via natural language through the MCP protocol.16MIT
- FlicenseNot gradedqualityCmaintenanceUptime, SSL, DNS and domain monitoring you can talk to: check, create and manage monitors for all your client sites from Claude, ChatGPT, or any MCP client.1-