Skip to main content
Glama
Isoprest

omniwatchguard-mcp

OmniWatchGuard MCP Server

Isoprest/omniwatchguard-mcp 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/mcp

  • Transport: 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_monitors

List all monitors with recent change activity

get_monitor

Get full details and the last 20 results for one monitor

create_monitor

Create a new monitor

update_monitor

Update an existing monitor's settings

set_monitor_status

Pause or resume a monitor

delete_monitor

Delete a monitor

list_alerts

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.mjs

Without 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 deploy

License

MIT, see LICENSE.

Available Tools

7 tools
create_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL of the page to monitor
nameNoDisplay name for the monitor (default: the domain of the URL)
typeNoMonitor type: text, price, stock, css, api, seo or ssl. Default: text
selectorNoOptional CSS selector that limits monitoring to one element of the page (used with type css)
frequencyNoCheck interval in minutes: 60 on Starter; 15, 30 or 60 on Pro; 5, 15, 30 or 60 on Agency
notify_telegramNoTelegram chat ID for this monitor's alerts (Agency plan)
stock_alert_typeNoFor type=stock: 'any', 'in_stock' or 'out_of_stock'
price_threshold_typeNoFor type=price: 'any', 'increase' or 'decrease'
price_threshold_valueNoPrice threshold that triggers an alert

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMonitor ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMonitor ID

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOptional filter by alert channel

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMonitor ID
statusYesNew status of the monitor

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMonitor ID
urlNoNew page URL
nameNoNew display name
selectorNoNew CSS selector
frequencyNoNew check interval in minutes (allowed values depend on the plan)
stock_alert_typeNoFor stock monitors: 'any', 'in_stock' or 'out_of_stock'
price_threshold_typeNoFor price monitors: 'any', 'increase' or 'decrease'
price_threshold_valueNoFor price monitors: threshold that triggers an alert

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 7 tool updatesv1.0.0
    • First observedcreate_monitor
    • First observeddelete_monitor
    • First observedget_monitor
    • First observedlist_alerts
    • First observedlist_monitors
    • First observedset_monitor_status
    • First observedupdate_monitor

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation5/5

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).

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers