Merlonix Monitoring
by merlonix.com · remote · no sign-in to list tools · v1.0.2 · published by com.merlonix
Monitoring for agencies — uptime, SSL, DNS, blocklists, AI visibility, MCP health. 8 no-auth tools.
16 tools: 1 can delete or cancel things, 9 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things9Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http monitoring https://api.merlonix.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "check_broken_links" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "check_broken_links" says "link": a word for a change.
- Warnresolve_alert
The server marks "resolve_alert" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}; The name "resolve_alert" says "resolve": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
16 tools
Deletes or cancels 1Claude Code: deny
delete_assetSTOP monitoring one of YOUR assets and remove it, by its asset id (from list_my_assets).No findings
Why it is in this group
- The name "delete_asset" says "delete": a word for removing or ending something.
- The description says "irreversible".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it STOP monitoring one of YOUR assets and remove it, by its asset id (from list_my_assets). This is irreversible — its check history goes too. Requires an API key with write scope.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- requiresAuth: true
Changes things 9Claude Code: ask
acknowledge_alertAcknowledge one of YOUR alerts by its alert id (from list_my_alerts) — marks it as seen/being-handled without resolving it.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Acknowledge one of YOUR alerts by its alert id (from list_my_alerts) — marks it as seen/being-handled without resolving it. Optionally attach a note. Requires an API key with write scope.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- requiresAuth: true
check_agent_readinessScore how ready a website is for AI agents and answer engines.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Score how ready a website is for AI agents and answer engines. Fetches /llms.txt, /robots.txt, and the homepage and returns a letter grade with per-signal findings. No browser rendering or LLM call — deterministic HTTP/parse.
Annotations the server declares
- readOnlyHint: true
check_broken_linksScan one web page for dead links (4xx/5xx/unreachable) and mixed content (http subresources on an https page).1 finding
Why it is in this group
- The name "check_broken_links" says "link": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "check_broken_links" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "check_broken_links" says "link": a word for a change.
Description, as the server wrote it Scan one web page for dead links (4xx/5xx/unreachable) and mixed content (http subresources on an https page). Returns each link with its status. Single-page scan, not a crawl — pass the exact page URL. Rate-limited to a few scans per minute, so batch calls will be throttled.
Annotations the server declares
- readOnlyHint: true
check_domain_healthCheck the live SSL/TLS certificate (validity + expiry + issuer), DNS records (A/AAAA/MX/NS resolution), and domain-registration (RDAP) expiry of any public hostname.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check the live SSL/TLS certificate (validity + expiry + issuer), DNS records (A/AAAA/MX/NS resolution), and domain-registration (RDAP) expiry of any public hostname. Each leg fails soft and is reported independently.
Annotations the server declares
- readOnlyHint: true
check_email_blacklistCheck whether a domain or IP is listed on the major DNS blocklists (DNSBLs) that mail providers consult before accepting mail — the usual reason legitimate mail silently lands in s…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check whether a domain or IP is listed on the major DNS blocklists (DNSBLs) that mail providers consult before accepting mail — the usual reason legitimate mail silently lands in spam. Returns each zone checked, whether it is listed, and the return code. Deterministic DNS lookups, no LLM.
Annotations the server declares
- readOnlyHint: true
check_mcp_healthHealth-check a live MCP (Model Context Protocol) server by URL: performs a real JSON-RPC initialize handshake, then tools/list, and returns whether it is up/degraded/down, its prot…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Health-check a live MCP (Model Context Protocol) server by URL: performs a real JSON-RPC initialize handshake, then tools/list, and returns whether it is up/degraded/down, its protocol version, server name/version, the callable tool/resource/prompt inventory, transport, and handshake latency. Deterministic — no LLM. Use it to verify your own MCP server is alive and spec-compliant.
Annotations the server declares
- readOnlyHint: true
create_assetStart monitoring a new asset (website/domain) in YOUR Merlonix account.No findings
Why it is in this group
- The name "create_asset" says "create": a word for a change.
Description, as the server wrote it Start monitoring a new asset (website/domain) in YOUR Merlonix account. Provide a hostname and asset_type; optionally a label and which checks to enable. Returns the created asset. Requires an API key with write scope. Subject to your plan asset quota (a full or non-paying plan returns an error).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- requiresAuth: true
resolve_alertResolve one of YOUR alerts by its alert id (from list_my_alerts) — closes it.1 finding
Why it is in this group
- The name "resolve_alert" says "resolve": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "resolve_alert" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}; The name "resolve_alert" says "resolve": a word for reading.
Description, as the server wrote it Resolve one of YOUR alerts by its alert id (from list_my_alerts) — closes it. Optionally set resolution ("fixed" | "false_positive" | "wontfix") and a note. Requires an API key with write scope.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- requiresAuth: true
update_assetUpdate one of YOUR monitored assets by its asset id (from list_my_assets): relabel it or toggle which checks run.No findings
Why it is in this group
- The name "update_asset" says "update": a word for a change.
Description, as the server wrote it Update one of YOUR monitored assets by its asset id (from list_my_assets): relabel it or toggle which checks run. Returns the updated asset. Requires an API key with write scope.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- requiresAuth: true
Only reads 6Claude Code: allow
get_asset_checksGet the latest check results (SSL, DNS, uptime, heartbeat, port) for ONE of your monitored assets, by its asset id (from list_my_assets).No findings
Why it is in this group
- The name "get_asset_checks" says "get": a word for reading.
Description, as the server wrote it Get the latest check results (SSL, DNS, uptime, heartbeat, port) for ONE of your monitored assets, by its asset id (from list_my_assets). Requires an API key.
Annotations the server declares
- readOnlyHint: true
- requiresAuth: true
get_vendor_statusGet the current status plus 30-day status history of one monitored vendor by slug (e.g.No findings
Why it is in this group
- The name "get_vendor_status" says "get": a word for reading.
Description, as the server wrote it Get the current status plus 30-day status history of one monitored vendor by slug (e.g. "cloudflare"). Use list_vendor_status to discover valid slugs.
Annotations the server declares
- readOnlyHint: true
list_my_alertsList recent alerts across YOUR monitored assets (SSL changes, downtime, DNS drift, vendor incidents, etc.) with their severity and lifecycle status.No findings
Why it is in this group
- The name "list_my_alerts" says "list": a word for reading.
Description, as the server wrote it List recent alerts across YOUR monitored assets (SSL changes, downtime, DNS drift, vendor incidents, etc.) with their severity and lifecycle status. Requires an API key.
Annotations the server declares
- readOnlyHint: true
- requiresAuth: true
list_my_assetsList the monitored assets (websites/domains) in YOUR Merlonix account.No findings
Why it is in this group
- The name "list_my_assets" says "list": a word for reading.
Description, as the server wrote it List the monitored assets (websites/domains) in YOUR Merlonix account. Returns each asset id, hostname, type, and monitoring status. Requires an API key (Authorization: Bearer mk_… from app.merlonix.com → Settings → API keys).
Annotations the server declares
- readOnlyHint: true
- requiresAuth: true
list_plansList Merlonix subscription plans and pricing (Starter, Team, Agency, Compliance) with their monitoring limits.No findings
Why it is in this group
- The name "list_plans" says "list": a word for reading.
Description, as the server wrote it List Merlonix subscription plans and pricing (Starter, Team, Agency, Compliance) with their monitoring limits.
Annotations the server declares
- readOnlyHint: true
list_vendor_statusList the current operational status and recent incidents of every third-party vendor Merlonix monitors (e.g.No findings
Why it is in this group
- The name "list_vendor_status" says "list": a word for reading.
Description, as the server wrote it List the current operational status and recent incidents of every third-party vendor Merlonix monitors (e.g. Cloudflare, GitHub, Stripe). Returns each vendor's slug, current status, and 24h incident count.
Annotations the server declares
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.2. Values in angle brackets are yours to fill in.
claude mcp add --transport http monitoring https://api.merlonix.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__monitoring__list_vendor_status",
"mcp__monitoring__get_vendor_status",
"mcp__monitoring__list_plans",
"mcp__monitoring__list_my_assets",
"mcp__monitoring__get_asset_checks",
"mcp__monitoring__list_my_alerts"
],
"ask": [
"mcp__monitoring__check_domain_health",
"mcp__monitoring__check_agent_readiness",
"mcp__monitoring__check_mcp_health",
"mcp__monitoring__check_email_blacklist",
"mcp__monitoring__check_broken_links",
"mcp__monitoring__create_asset",
"mcp__monitoring__update_asset",
"mcp__monitoring__acknowledge_alert",
"mcp__monitoring__resolve_alert"
],
"deny": [
"mcp__monitoring__delete_asset"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as monitoring. Review it before you use it.