UptyBots
Server Details
Uptime monitoring: create and manage HTTP, API, SSL, ping, port and domain checks
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
15 toolscreate_api_monitorCreate API monitorAInspect
Watch a JSON or REST endpoint where the response itself matters, not only that the host answered. Use it for health endpoints, webhooks and any API whose failure would be invisible to a plain page check. For an ordinary web page, create_http_monitor is lighter and enough.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full endpoint URL including scheme, for example https://api.example.com/v1/status. | |
| name | Yes | Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname. | |
| isActive | No | Start monitoring immediately (default true) | |
| frequency | No | Check frequency in minutes (1-1440, default 5) | |
| requestTimeout | No | Request timeout in seconds (1-60, default 30) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Monitor id, used by every other tool. |
| url | No | |
| name | No | |
| type | No | |
| isActive | No | False while the monitor is paused. |
| frequency | No | Check interval in minutes. |
| statusSummary | No | Current state, for example GOOD or ERROR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare openWorldHint=true and readOnlyHint=false, and the description appropriately explains the tool watches endpoints where the response matters but doesn't go into details like authentication requirements or rate limits. The description does add value by clarifying the semantics of what 'monitor' means here (response content matters, not just host availability), which goes beyond the annotations. However, it could have mentioned whether creation is idempotent or what happens on duplicate monitors, though the annotations cover idempotentHint=false.
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 sentences total. The first states the core purpose, the second gives concrete examples, and the third provides the pointer to the sibling tool. Every word 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?
Given the tool has only 5 simple parameters (all covered by schema), an output schema, and useful sibling tools, the description is complete. It explains the tool's purpose, gives usage guidance, and points to an alternative without unnecessary details about return values (since output schema exists) or parameter syntax (since schema covers them).
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 coverage is 100%, so parameters are well-documented in the schema. The description adds conceptual context for the 'name' parameter ('Something recognisable months later beats the bare hostname') and clarifies the tool focuses on response content. While the description itself doesn't enumerate parameters, it works with the fully-covered schema to give complete semantic understanding. The description could have added more behavioral details about how parameters like frequency interact with monitoring behavior, but the schema covers the basics well.
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 clearly states this tool watches JSON/REST endpoints where the response content matters, distinguishing it from a plain page check. It names the specific use case (health endpoints, webhooks, APIs) and explicitly contrasts with create_http_monitor, making the purpose and differentiation clear.
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 explicitly says when to use this tool ('for health endpoints, webhooks and any API whose failure would be invisible to a plain page check') and provides a concrete alternative ('For an ordinary web page, create_http_monitor is lighter and enough'). This is a model example of usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_domain_monitorCreate domain expiry monitorAInspect
Watch a domain registration and report how long is left before it lapses, read from WHOIS. This catches the failure no uptime check can see: everything works perfectly right up to the day the domain expires. Distinct from create_ssl_monitor, which watches the certificate rather than the registration; the two expire on different dates and both are worth watching.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Registrable domain, for example example.com. Use the registered domain rather than a subdomain: a subdomain has no registration date of its own. | |
| name | Yes | Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname. | |
| isActive | No | Start monitoring immediately (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Monitor id, used by every other tool. |
| url | No | |
| name | No | |
| type | No | |
| isActive | No | False while the monitor is paused. |
| frequency | No | Check interval in minutes. |
| statusSummary | No | Current state, for example GOOD or ERROR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (creates a resource), openWorldHint=true (external WHOIS dependency), and non-idempotent. The description adds context beyond annotations by explaining that WHOIS data is read externallyais and why this monitor is valuable (detecting expiry that uptime checks miss). It also implicitly warns about the WHOIS dependency without contradiction.
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 two sentences, front-loaded with the purpose and a valuable differentiator. Every word contributes: the WHOIS source, the unique failure mode, and the explicit comparison to create_ssl_monitor. No redundant phrases or filler.
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?
Given the tool's moderate complexity (3 params, output schema present, annotations covering read-only/destructive hints), the description covers all essential aspects: purpose, use case, differentiation from a sibling, and external behavior. The output schema handles return values, and the annotations cover safety profile, so the description is complete for agent invocation.
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 input schema provides 100% coverage with detailed descriptions for all three parameters (url, name, isActive). The description reinforces the meaning of 'url' by stating it reads WHOIS data, but adds no extra semantics beyond the schema's own descriptions. Since schema coverage is high, a baseline of 3 is appropriate; the description does not enrich parameter understanding further.
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 clearly states the tool's function: watching a domain registration and reporting time until expiry via WHOIS. It uses a specific verb-resource pair ('watch a domain registration') and immediately distinguishes itself from the sibling tool create_ssl_monitor by contrasting registration vs. certificate expiry. This avoids any ambiguity and makes the purpose unmistakable.
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 explicitly tells the agent when to use this tool ('catches the failure no uptime check can see') and provides a clear alternative: 'Distinct from create_ssl_monitor, which watches the certificate rather than the registration'. It also advises that both are worth watching, giving contextual rationale for choosing this over other monitor types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_http_monitorCreate HTTP monitorAInspect
Watch a web page or endpoint over HTTP/HTTPS and treat an unexpected status code, a timeout or a connection failure as downtime. This is the right type for anything a browser would open. Choose create_api_monitor instead when the response body matters as well as the status code. Checks run from probes in several countries. Call list_monitors first so you do not create a duplicate of an existing url.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL including scheme, for example https://example.com/health. A bare hostname is not accepted here - use create_ping_monitor for that. | |
| name | Yes | Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname. | |
| isActive | No | Start monitoring immediately (default true) | |
| frequency | No | Check frequency in minutes (1-1440, default 5) | |
| requestTimeout | No | Request timeout in seconds (1-60, default 30) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Monitor id, used by every other tool. |
| url | No | |
| name | No | |
| type | No | |
| isActive | No | False while the monitor is paused. |
| frequency | No | Check interval in minutes. |
| statusSummary | No | Current state, for example GOOD or ERROR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate non-read-only, open-world, non-idempotent behavior. The description adds valuable behavioral context: checks run from probes in several countries, downtime semantics, and the duplicate-risk warning. It does not mention response details, but the output schema likely covers those and no annotation contradiction exists.
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?
Four short, information-dense sentences, each earning its place. It tackles purpose, alternative selection, probe geography, and duplicate-avoidance without verbosity.
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?
Combined with a fully self-describing schema and output schema, the description gives a complete picture for a create tool: what it creates, when to use it, how to avoid duplicates, and the geographical context. It just misses a brief note on what the successful response contains, but that is largely available through the schema structure.
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 the baseline is 3. The tool-level description does not add parameter-specific semantics beyond what the schema already provides. The url field description itself adds the bare-hostname exclusion, but that is not part of the main tool description.
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 uses a specific verb and resource: 'Watch a web page or endpoint over HTTP/HTTPS' and defines what counts as downtime ('unexpected status code, a timeout or a connection failure'). It also clearly distinguishes itself from create_api_monitor, its closest sibling.
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 gives explicit usage boundaries: 'This is the right type for anything a browser would open' and directs to create_api_monitor when the response body matters. It also tells the agent to call list_monitors first to avoid duplicates, a clear when-to-use prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ping_monitorCreate ping monitorAInspect
Watch a host with ICMP ping: it answers whether the machine is reachable at all, and reports round-trip time and packet loss. Use it for servers, routers and anything with no web service on top. It says nothing about whether a site or service on that host is working - a box can ping perfectly while its web server is down. Some hosting providers block ICMP, in which case the monitor will read as down.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Hostname or IP address, with no scheme and no port, for example example.com or 1.2.3.4. | |
| name | Yes | Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname. | |
| isActive | No | Start monitoring immediately (default true) | |
| frequency | No | Check frequency in minutes (1-1440, default 5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Monitor id, used by every other tool. |
| url | No | |
| name | No | |
| type | No | |
| isActive | No | False while the monitor is paused. |
| frequency | No | Check interval in minutes. |
| statusSummary | No | Current state, for example GOOD or ERROR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotation bounds by explaining the scope of what a ping reports (network reachability only), clarifying that a host can ping while a web server is down, and revealing that providers blocking ICMP cause monitors to show 'down'. These failure-behaviors are concrete and useful.
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 sentences deliver the core action, use cases, and limitations without redundant words. Each sentence adds distinct information, though the sentence listing use cases and the sentence on service status could be more tightly merged.
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?
The description fully accounts around when to choose ping vs. other personal agents and identifies real-world failure modes. Since an output schema is present, the absence of response field details is acceptable; the description lacks only an explicit pointer to the service-monitor sub-tools.
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 input schema already covers all four parameters with rich, specific descriptions (e.g., URL no scheme/port, frequency range, name max length, isActive default). The tool description does not add new parameter-level semantics beyond the schema, so the baseline coverage score 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?
The description opens with a specific action and resource: 'Watch a host with ICMP ping' plus the exact metrics reported (round-trip time, packet loss). It clearly differentiates from service-level by stating it only checks machine reachability, distinguishing it from HTTP, port, and API monitor siblings.
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?
It explicitly says when to use the tool: 'servers, routers and anything with no web service on top,' and warns that it reveals nothing about whether a hosted service is working. The ICMP-blocking provider caveat also sets correct expectations for when the monitor may misreport.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_port_monitorCreate port monitorAInspect
Watch one TCP or UDP port on a host and report it up only when the service behind it actually answers. This is the type for game servers, databases, mail and anything else that speaks its own protocol rather than HTTP - Minecraft, Rust, CS2, FiveM, Postgres, Redis, SMTP. The port must be given as part of the url. Set protocol to UDP for game servers; most of them do not answer on TCP at all.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Host and port separated by a colon, for example example.com:443 or 1.2.3.4:25565. The port is required; without it the monitor cannot be created. | |
| name | Yes | Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname. | |
| isActive | No | Start monitoring immediately (default true) | |
| protocol | No | TCP is the default and fits most services. Use UDP for game servers and anything else that does not answer on TCP; on UDP the port counts as up only when the server actually replies. | |
| frequency | No | Check frequency in minutes (1-1440, default 5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Monitor id, used by every other tool. |
| url | No | |
| name | No | |
| type | No | |
| isActive | No | False while the monitor is paused. |
| frequency | No | Check interval in minutes. |
| statusSummary | No | Current state, for example GOOD or ERROR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal that this is a non-read-only, non-destructive operation, so the description doesn't need to repeat those. It adds valuable behavioral nuance: the monitor reports 'up' only when the service actually answers, and UDP behavior is clarified (only up when the server replies). This goes beyond what annotations or schema provide.
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 three sentences, each earning its place: first the core purpose, second the concrete use cases, third the crucial port and UDP guidance. It is front-loaded and avoids 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?
Given the tool's complexity (5 params, 2 required, output schema present, sibling monitor tools), the description fully covers the essential context: what to monitor, when to use it, how to specify the target, and a key protocol setting. The output schema handles return values, and annotations cover safety, so no gaps remain.
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 schema already documents all parameters with 100% coverage, so a baseline of 3 applies. The description enhances the semantics by emphasizing that the port must be part of the URL and advising to set protocol to UDP for game servers, which directly aids correct usage of the 'url' and 'protocol' parameters.
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 opens with a specific action: 'Watch one TCP or UDP port on a host and report it up only when the service behind it actually answers.' This clearly distinguishes the tool from HTTP or other monitor types by specifying the protocol and the 'actually answers' behavior, and it names concrete use cases like game servers and databases.
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 explicitly explains when to use this monitor: for non-HTTP services like Minecraft, Postgres, or SMTP. It also provides an exclusion ('rather than HTTP') and gives protocol-specific advice for UDP game servers. This goes beyond a general context statement and helps the agent choose between this and sibling monitor tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ssl_monitorCreate SSL certificate monitorAInspect
Watch a TLS certificate: whether it is valid, who issued it, and how many days remain before it expires. This is about the certificate, not about the site being reachable - pair it with create_http_monitor when you want both. Note that such a monitor carries two independent states, one for reachability and one for expiry, so a certificate can be days from expiring while the check still reads up.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Domain whose certificate to inspect, for example example.com. No scheme, no path. | |
| name | Yes | Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname. | |
| isActive | No | Start monitoring immediately (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Monitor id, used by every other tool. |
| url | No | |
| name | No | |
| type | No | |
| isActive | No | False while the monitor is paused. |
| frequency | No | Check interval in minutes. |
| statusSummary | No | Current state, for example GOOD or ERROR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavioral nuance beyond the annotations by explaining that the monitor carries two independent states (reachability and expiry), so a certificate can be nearly expired while the check still appears up. It does not contradict the readOnlyHint=false or openWorldHint annotations.
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, each earning its place: the core purpose, the distinction from HTTP monitoring, and a non-obvious behavioral caveat. No fluff or repetition of schema content.
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?
The description is complete enough for a create tool with a full output schema and well-covered parameters. It explains the key conceptual caveat and provides usage context, though it does not mention prerequisites or post-creation effect details, which are partly covered by annotations.
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 input schema already provides full descriptions for all three parameters, so the description adds little parameter-level detail. It does give useful context about certificate-focused semantics, but that is not parameter-specific enough to raise the score above the baseline.
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?
Describes exactly what the tool does: watches a TLS certificate for validity, issuer, and days to expiry. It clearly distinguishes itself from HTTP/site-reachability monitoring by explicitly scoping it to the certificate.
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?
Provides explicit guidance on when to use this tool versus an alternative: it is about the certificate, not site reachability, and recommends pairing with create_http_monitor when both aspects are needed. This is strong sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_monitorDelete monitorADestructiveIdempotentInspect
Permanently delete a monitor together with its entire check history, incidents and statistics. This cannot be undone and there is no trash to restore from. Confirm with the user before calling it, and prefer pause_monitor whenever the intent is only to stop the checking for a while.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Monitor id to delete, as returned by list_monitors. Deletion is irreversible. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the destructiveHint annotation by detailing what is destroyed (entire check history, incidents, statistics), explicitly stating irreversibility and lack of trash, and adding a safety guideline to confirm. No contradiction with annotations.
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?
Two sentences with no wasted words. All information is essential, front-loaded with the core purpose and then critical caveats.
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 destructive action, the description covers consequences, confirmation requirement, and alternative tool. With output schema present and only one fully-described parameter, it is complete.
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 id parameter is fully described in the schema (with 'Monitor id to delete, as returned by list_monitors. Deletion is irreversible.'), and the tool description adds no additional parameter semantics beyond that. Baseline 3 for high schema coverage.
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 clearly states the tool 'Permanently delete a monitor' and specifies what is deleted (check history, incidents, statistics), distinguishing it from sibling tools like pause_monitor which only temporarily stop checking.
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?
Explicitly says to prefer pause_monitor when only temporary stopping is intended, and instructs to confirm with the user before calling, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incidentsGet incidentsARead-onlyIdempotentInspect
Read the downtime history of one monitor: when each outage began, when it ended, how long it lasted and what the failure actually was - HTTP status, error text, and which probe saw it. This is the tool for "what happened" and "how often does this break". For the shape of response times around an outage, follow up with get_stats_hourly.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based. Defaults to 1. | |
| monitorId | Yes | Monitor id, as returned by list_monitors. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | The rows on this page. |
| totalItems | No | Total across all pages, not just this one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds behavioral value by disclosing the specific failure details returned, including probe attribution and error text, which goes beyond the structured annotations.
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 sentences, front-loaded with the core purpose, followed by concrete data points and a single useful redirect to a sibling tool. No filler or repetition of schema details.
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 read-only two-parameter tool with an output schema and full annotation coverage, the description is complete: it explains what data is returned, when to use it, and what to use for complementary data. No meaningful gaps remain.
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 both parameters (monitorId and page) have clear descriptions. The tool description reinforces 'one monitor' but does not add meaning beyond the schema's parameter documentation, so baseline 3 is appropriate.
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 and resource: 'Read the downtime history of one monitor', enumerating exact data returned (outage start/end, duration, HTTP status, error text, probe). It clearly distinguishes this from sibling tools by contrasting with get_stats_hourly.
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?
Explicitly frames when to use: 'This is the tool for "what happened" and "how often does this break"', and names the alternative for response-time shape: 'follow up with get_stats_hourly'. This gives clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monitorGet one monitorARead-onlyIdempotentInspect
Read one monitor in full: its configuration, current status, and the type-specific detail the list view omits - expected status codes for HTTP, port and protocol for PORT, certificate or registration expiry date for SSL and DOMAIN. Use it after list_monitors when the answer depends on how the check is configured, for instance whether a timeout is too tight or which port is actually being watched.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Monitor id, as returned by list_monitors. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Monitor id, used by every other tool. |
| url | No | |
| name | No | |
| type | No | |
| isActive | No | False while the monitor is paused. |
| frequency | No | Check interval in minutes. |
| statusSummary | No | Current state, for example GOOD or ERROR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it as read-only, idempotent, and non-destructive. The description adds behavioral context beyond annotations by detailing that it returns type-specific fields (HTTP status codes, port/protocol, expiry dates) that the list view omits, which is valuable for expected side effects on response content.
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?
Two sentences, front-loaded with the primary action and purpose, then provides usage context. No redundant phrasing or filler; every sentence 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?
Given the single parameter, rich annotations, and existence of an output schema, the description covers the purpose, usage context, and additional behavioral detail (type-specific fields) sufficiently. It does not need to explain return values because the output schema covers that.
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?
There is only one parameter (id) with full schema description ('Monitor id, as returned by list_monitors.'). The description does not add further meaning beyond the schema, but since schema coverage is 100%, the baseline of 3 is appropriate.
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 clearly states it reads a single monitor in full, including configuration, status, and type-specific details omitted by the list view. It distinguishes from list_monitors and other monitor tools by specifying exactly what extra information it returns.
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 explicitly says to use it after list_monitors when the answer depends on how the check is configured, giving concrete examples like timeout tightness or watched port. This provides clear when-to-use guidance and implies the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notificationsGet notification historyARead-onlyIdempotentInspect
Read the alerts this account has sent, across email, Telegram, webhook and the web interface, with the delivery outcome of each. Use it to answer "was I actually told about this outage" and to find a channel that is silently failing - a monitor can be detecting downtime correctly while its webhook has been rejecting every delivery. Covers the whole account, not one monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based. Defaults to 1. | |
| status | No | Return only alerts with this delivery status. | |
| channel | No | Return only alerts sent through this channel. Omit for all channels. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | The rows on this page. |
| totalItems | No | Total across all pages, not just this one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive. The description adds context about delivery outcome and whole-account scope, enriching the behavioral picture without contradicting annotations.
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 sentences, front-loaded with the primary action, then usage examples, then scope. Every sentence serves a purpose, with no filler or 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 an output schema present and strong annotations, the description covers purpose, use cases, and scope thoroughly. It doesn't need to repeat return details or safety hints. Complete for a read-only query tool.
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 parameters are documented. The description adds context (e.g., channels, delivery outcome) but doesn't significantly enhance parameter understanding beyond the schema. 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?
The description clearly states it reads alerts sent by the account across all channels with delivery outcomes. It distinguishes from siblings by focusing on notifications rather than monitors, and explicitly says it covers the whole account, not one monitor.
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?
It gives explicit use cases: answering 'was I actually told about this outage' and finding silently failing channels. It also contrasts with monitor detection issues, implying when this tool is appropriate, and clarifies it is not monitor-specific.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stats_dailyGet daily statisticsARead-onlyIdempotentInspect
Response time and uptime for one monitor aggregated per day, with min, max, average and p95. This is the tool for reports and trends over weeks or months, and for comparing one monitor against another over the same window. When a single day looks wrong, zoom into it with get_stats_hourly.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based. Defaults to 1. | |
| dateTo | No | Last day to include, as YYYY-MM-DD. Defaults to today. | |
| dateFrom | No | First day to include, as YYYY-MM-DD. Defaults to the start of available history. | |
| monitorId | Yes | Monitor id, as returned by list_monitors. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | The rows on this page. |
| totalItems | No | Total across all pages, not just this one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe read/idempotent operation, and the description adds meaningful behavioral context: daily aggregation, the included metrics (min, max, average, p95), and the suggested zoom-in workflow with hourly stats. It does not discuss pagination, but the output schema and parameter descriptions partially cover operational details.
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?
Two sentences pack the core purpose, metrics, use case, and the relationship to the hourly tool with no filler. The most important information is front-loaded.
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?
Given the output schema exists, the complete parameter schema, and the strong usage guidance, the description is sufficient for an agent to select and invoke the tool correctly. It covers what the tool returns, when to use it, and how it relates to the sibling hourly tool.
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 the parameters are already well documented with defaults and types. The description adds context around date windows for reports/trends, but it does not add meaningfully new details for individual parameters beyond what the schema provides.
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 clearly states the tool aggregates response time and uptime per day with min, max, average, and p95, identifying the resource as monitor statistics. It also distinguishes itself from get_stats_hourly by specifying daily aggregation.
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 explicitly says this is the tool for reports and trends over weeks or months and for comparing monitors over the same window. It also gives a concrete exclusion: when a single day looks wrong, use get_stats_hourly instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stats_hourlyGet hourly statisticsARead-onlyIdempotentInspect
Response time and uptime for one monitor broken down by hour, with min, max, average and p95 per bucket. Use it to see the shape of a problem: whether a service degrades before it fails, whether outages cluster at a particular time of day, or how long a single incident really lasted. Best over hours or days; for weeks and months use get_stats_daily instead, which returns far fewer rows.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based. Defaults to 1. | |
| dateTo | No | Last day to include, as YYYY-MM-DD. Defaults to today. | |
| dateFrom | No | First day to include, as YYYY-MM-DD. Defaults to the start of available history. | |
| monitorId | Yes | Monitor id, as returned by list_monitors. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | The rows on this page. |
| totalItems | No | Total across all pages, not just this one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, which broadly cover safety. The description adds valuable behavioral context by explaining what the data can reveal (e.g., 'shape of a problem', outage clustering), which goes beyond the annotations. For a read-only analytics tool, this is sufficient transparency, though it doesn't detail pagination or row limits (which are partially covered by the schema and output schema).
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 compact three sentences, front-loaded with the core purpose and metrics, then usage hints and alternative. Every sentence adds value, with no filler. It meets the standard of 'every sentence 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?
Given the tool's moderate complexity (4 params, 1 required), full schema coverage, rich annotations, and an output schema, the description is complete. It covers purpose, usage scenarios, and alternatives, leaving no critical gaps for an agent to select and invoke the tool correctly.
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 4 parameters are documented in the schema. The description adds a high-level note about the time range ('hour' granularity, 'days' as best) but does not elaborate on parameter formats or interactions beyond the schema. Baseline 3 is appropriate.
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 uses a specific verb ('Get') and resource ('response time and uptime for one monitor broken down by hour'), clearly distinguishing it from siblings like get_stats_daily. It also enumerates the metrics (min, max, average, p95) and the time granularity, leaving no ambiguity about what the tool returns.
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 explicitly states when to use it ('Best over hours or days') and when not to ('for weeks and months use get_stats_daily instead'), naming the alternative tool. This is a model of clear usage guidance, providing both context and exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_monitorsList monitorsARead-onlyIdempotentInspect
List the monitors on the account, newest first, 30 per page. Each entry carries the id needed by every other tool, plus name, url, type, current status, check frequency and the uptime percentage over the last 24 hours. Start here when the request names a monitor by name rather than by id, and when asked what is broken - filtering by status "down" answers that in one call. Returns an empty list rather than an error when nothing matches.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based. Defaults to 1. | |
| type | No | Return only monitors of this type. Omit for all types. | |
| status | No | Return only monitors in this state. "pending" means created but not yet checked; "paused" means checking is switched off, so it is neither up nor down. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | The rows on this page. |
| totalItems | No | Total across all pages, not just this one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description enriches the annotations (readOnlyHint, idempotentHint) with non-obvious details: default page size (30), sorting (newest first), fields included (id, name, url, type, status, check frequency, uptime), and notably that an empty list is returned instead of an error when no monitors match. This goes well beyond what annotations convey.
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 three sentences long, each adding unique value: core function, entry field details, and usage guidance plus edge behavior. It's front-loaded with the primary purpose and wastes no words.
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 read-only list tool with well-annotated parameters and a provided output schema, the description covers all necessary aspects: pagination, sorting, filtering capabilities, entry fields, and error behavior. It leaves no significant gaps for an agent to understand how to use the tool effectively.
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 input schema already documents all three parameters with clear descriptions and enums, giving 100% coverage. The description adds value by stating the default page size ('30 per page') and the empty-list behavior for no matches, which are not in the schema. However, these are minor additions relative to the schema's completeness.
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 clearly states the tool's purpose: 'List the monitors on the account, newest first, 30 per page.' It further distinguishes itself by noting the returned 'id needed by every other tool' and provides a concrete use case for the status filter. This makes it highly specific and separates it from sibling tools like get_monitor.
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 explicitly states when to use this tool: 'Start here when the request names a monitor by name rather than by id, and when asked what is broken - filtering by status "down" answers that in one call.' It provides clear contextual guidance, even though it doesn't mention alternatives by name. The 'start here' and specific use case give strong usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_monitorPause monitorAIdempotentInspect
Stop checking a monitor without deleting it. History and configuration survive, and resume_monitor puts it back to work. Use this around planned maintenance so the downtime does not land in the uptime figures or fire alerts. A paused monitor reports neither up nor down, so it is easy to forget one is off.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Monitor id to pause, as returned by list_monitors. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Monitor id, used by every other tool. |
| url | No | |
| name | No | |
| type | No | |
| isActive | No | False while the monitor is paused. |
| frequency | No | Check interval in minutes. |
| statusSummary | No | Current state, for example GOOD or ERROR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructive=false, and idempotent=true. The description adds that the monitor is not deleted, history/config survive, and it reports neither up nor down while paused. This enriches beyond the annotations.
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 concise, three sentences, each adding value: what it does, when to use it, and behavioral nuance. No fluff.
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?
Given the tool's simplicity (one parameter), the description adequately covers purpose, usage, and behavior. The output schema exists, so return values are presumably covered there. It's complete enough.
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 schema fully describes the 'id' parameter (100% coverage) with a clear description. The tool description doesn't add much beyond that, but since schema coverage is high, baseline 3 is appropriate.
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 clearly states it stops checking a monitor without deleting it, while preserving history and configuration. It distinguishes itself from delete_monitor and resume_monitor by explicitly mentioning these sibling tools.
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?
It provides context for use around planned maintenance to avoid downtime affecting uptime figures or triggering alerts. It doesn't explicitly exclude other tools or state when not to use, but the context implies use cases. Sibling tools are listed, giving alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_monitorResume monitorAIdempotentInspect
Start checking a paused monitor again, with the configuration it had before. The first check runs immediately rather than after the usual interval, so the current state is known within moments. Safe to call on a monitor that is already running.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Monitor id to resume, as returned by list_monitors. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Monitor id, used by every other tool. |
| url | No | |
| name | No | |
| type | No | |
| isActive | No | False while the monitor is paused. |
| frequency | No | Check interval in minutes. |
| statusSummary | No | Current state, for example GOOD or ERROR. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds transparency beyond annotations by noting immediate check and safe on running monitor, consistent with idempotent and non-destructive hints.
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 concise sentences with no redundancy. Clear and well-structured.
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?
Covers the effect, immediate behavior, and safety. Does not mention error scenarios, but that's not critical for this simple 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 already fully describes the id parameter. Description adds no extra parameter details, so baseline score is appropriate.
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?
Clearly states the action: resumes a paused monitor and specifies immediate first check. Distinguishes from pause_monitor (sibling) implicitly.
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?
Provides guidance on safety when already running, but does not explicitly compare with alternatives or state when not to use. Still clear enough.
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. Dates show when Glama detected each change.
4 tool updates
- Changed
get_incidents1 field changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number"New value: +"Page number, 1-based. Defaults to 1."
- Changed
get_notifications1 field changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number"New value: +"Page number, 1-based. Defaults to 1."
- Changed
get_stats_daily1 field changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number"New value: +"Page number, 1-based. Defaults to 1."
- Changed
get_stats_hourly1 field changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number"New value: +"Page number, 1-based. Defaults to 1."
15 tool updates
- Changed
create_api_monitor3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Monitor name (max 50 chars)"New value: +"Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname." - changed
Input schema / properties / url / descriptionPrevious value: -"API endpoint URL"New value: +"Full endpoint URL including scheme, for example https://api.example.com/v1/status." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "frequency": { + "description": "Check interval in minutes.", + "type": "integer" + }, + "id": { + "description": "Monitor id, used by every other tool.", + "type": "integer" + }, + "isActive": { + "description": "False while the monitor is paused.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "statusSummary": { + "description": "Current state, for example GOOD or ERROR.", + "type": "string" + }, + "type": { + "enum": [ + "PING", + "HTTP", + "API", + "SSL", + "DOMAIN", + "PORT" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" +}
- Changed
create_domain_monitor3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Monitor name (max 50 chars)"New value: +"Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname." - changed
Input schema / properties / url / descriptionPrevious value: -"Domain to monitor expiry (e.g. example.com)"New value: +"Registrable domain, for example example.com. Use the registered domain rather than a subdomain: a subdomain has no registration date of its own." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "frequency": { + "description": "Check interval in minutes.", + "type": "integer" + }, + "id": { + "description": "Monitor id, used by every other tool.", + "type": "integer" + }, + "isActive": { + "description": "False while the monitor is paused.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "statusSummary": { + "description": "Current state, for example GOOD or ERROR.", + "type": "string" + }, + "type": { + "enum": [ + "PING", + "HTTP", + "API", + "SSL", + "DOMAIN", + "PORT" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" +}
- Changed
create_http_monitor3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Monitor name (max 50 chars)"New value: +"Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname." - changed
Input schema / properties / url / descriptionPrevious value: -"Full URL to monitor (e.g. https://example.com)"New value: +"Full URL including scheme, for example https://example.com/health. A bare hostname is not accepted here - use create_ping_monitor for that." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "frequency": { + "description": "Check interval in minutes.", + "type": "integer" + }, + "id": { + "description": "Monitor id, used by every other tool.", + "type": "integer" + }, + "isActive": { + "description": "False while the monitor is paused.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "statusSummary": { + "description": "Current state, for example GOOD or ERROR.", + "type": "string" + }, + "type": { + "enum": [ + "PING", + "HTTP", + "API", + "SSL", + "DOMAIN", + "PORT" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" +}
- Changed
create_ping_monitor3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Monitor name (max 50 chars)"New value: +"Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname." - changed
Input schema / properties / url / descriptionPrevious value: -"Hostname or IP to ping (e.g. example.com, 1.2.3.4)"New value: +"Hostname or IP address, with no scheme and no port, for example example.com or 1.2.3.4." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "frequency": { + "description": "Check interval in minutes.", + "type": "integer" + }, + "id": { + "description": "Monitor id, used by every other tool.", + "type": "integer" + }, + "isActive": { + "description": "False while the monitor is paused.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "statusSummary": { + "description": "Current state, for example GOOD or ERROR.", + "type": "string" + }, + "type": { + "enum": [ + "PING", + "HTTP", + "API", + "SSL", + "DOMAIN", + "PORT" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" +}
- Changed
create_port_monitor4 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Monitor name (max 50 chars)"New value: +"Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname." - added
Input schema / properties / protocolAdded value: +{ + "description": "TCP is the default and fits most services. Use UDP for game servers and anything else that does not answer on TCP; on UDP the port counts as up only when the server actually replies.", + "enum": [ + "TCP", + "UDP" + ], + "type": "string" +} - changed
Input schema / properties / url / descriptionPrevious value: -"Host:port to check (e.g. example.com:443)"New value: +"Host and port separated by a colon, for example example.com:443 or 1.2.3.4:25565. The port is required; without it the monitor cannot be created." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "frequency": { + "description": "Check interval in minutes.", + "type": "integer" + }, + "id": { + "description": "Monitor id, used by every other tool.", + "type": "integer" + }, + "isActive": { + "description": "False while the monitor is paused.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "statusSummary": { + "description": "Current state, for example GOOD or ERROR.", + "type": "string" + }, + "type": { + "enum": [ + "PING", + "HTTP", + "API", + "SSL", + "DOMAIN", + "PORT" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" +}
- Changed
create_ssl_monitor3 fields changed- changed
Input schema / properties / name / descriptionPrevious value: -"Monitor name (max 50 chars)"New value: +"Label shown in the dashboard and in alerts, up to 50 characters. Something recognisable months later beats the bare hostname." - changed
Input schema / properties / url / descriptionPrevious value: -"Domain to check SSL for (e.g. example.com)"New value: +"Domain whose certificate to inspect, for example example.com. No scheme, no path." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "frequency": { + "description": "Check interval in minutes.", + "type": "integer" + }, + "id": { + "description": "Monitor id, used by every other tool.", + "type": "integer" + }, + "isActive": { + "description": "False while the monitor is paused.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "statusSummary": { + "description": "Current state, for example GOOD or ERROR.", + "type": "string" + }, + "type": { + "enum": [ + "PING", + "HTTP", + "API", + "SSL", + "DOMAIN", + "PORT" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" +}
- Changed
delete_monitor2 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"Monitor ID to delete"New value: +"Monitor id to delete, as returned by list_monitors. Deletion is irreversible." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "message": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "required": [ + "success" + ], + "type": "object" +}
- Changed
get_incidents2 fields changed- changed
Input schema / properties / monitorId / descriptionPrevious value: -"Monitor ID"New value: +"Monitor id, as returned by list_monitors." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "items": { + "description": "The rows on this page.", + "items": { + "type": "object" + }, + "type": "array" + }, + "totalItems": { + "description": "Total across all pages, not just this one.", + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "items" + ], + "type": "object" +}
- Changed
get_monitor2 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"Monitor ID"New value: +"Monitor id, as returned by list_monitors." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "frequency": { + "description": "Check interval in minutes.", + "type": "integer" + }, + "id": { + "description": "Monitor id, used by every other tool.", + "type": "integer" + }, + "isActive": { + "description": "False while the monitor is paused.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "statusSummary": { + "description": "Current state, for example GOOD or ERROR.", + "type": "string" + }, + "type": { + "enum": [ + "PING", + "HTTP", + "API", + "SSL", + "DOMAIN", + "PORT" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" +}
- Changed
get_notifications3 fields changed- changed
Input schema / properties / channel / descriptionPrevious value: -"Filter by notification channel"New value: +"Return only alerts sent through this channel. Omit for all channels." - changed
Input schema / properties / status / descriptionPrevious value: -"Filter by status"New value: +"Return only alerts with this delivery status." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "items": { + "description": "The rows on this page.", + "items": { + "type": "object" + }, + "type": "array" + }, + "totalItems": { + "description": "Total across all pages, not just this one.", + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "items" + ], + "type": "object" +}
- Changed
get_stats_daily4 fields changed- changed
Input schema / properties / dateFrom / descriptionPrevious value: -"Start date (YYYY-MM-DD)"New value: +"First day to include, as YYYY-MM-DD. Defaults to the start of available history." - changed
Input schema / properties / dateTo / descriptionPrevious value: -"End date (YYYY-MM-DD)"New value: +"Last day to include, as YYYY-MM-DD. Defaults to today." - changed
Input schema / properties / monitorId / descriptionPrevious value: -"Monitor ID"New value: +"Monitor id, as returned by list_monitors." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "items": { + "description": "The rows on this page.", + "items": { + "type": "object" + }, + "type": "array" + }, + "totalItems": { + "description": "Total across all pages, not just this one.", + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "items" + ], + "type": "object" +}
- Changed
get_stats_hourly4 fields changed- changed
Input schema / properties / dateFrom / descriptionPrevious value: -"Start date (YYYY-MM-DD)"New value: +"First day to include, as YYYY-MM-DD. Defaults to the start of available history." - changed
Input schema / properties / dateTo / descriptionPrevious value: -"End date (YYYY-MM-DD)"New value: +"Last day to include, as YYYY-MM-DD. Defaults to today." - changed
Input schema / properties / monitorId / descriptionPrevious value: -"Monitor ID"New value: +"Monitor id, as returned by list_monitors." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "items": { + "description": "The rows on this page.", + "items": { + "type": "object" + }, + "type": "array" + }, + "totalItems": { + "description": "Total across all pages, not just this one.", + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "items" + ], + "type": "object" +}
- Changed
list_monitors4 fields changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number (default 1)"New value: +"Page number, 1-based. Defaults to 1." - changed
Input schema / properties / status / descriptionPrevious value: -"Filter by status"New value: +"Return only monitors in this state. \"pending\" means created but not yet checked; \"paused\" means checking is switched off, so it is neither up nor down." - changed
Input schema / properties / type / descriptionPrevious value: -"Filter by monitor type"New value: +"Return only monitors of this type. Omit for all types." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "items": { + "description": "The rows on this page.", + "items": { + "type": "object" + }, + "type": "array" + }, + "totalItems": { + "description": "Total across all pages, not just this one.", + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "items" + ], + "type": "object" +}
- Changed
pause_monitor2 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"Monitor ID to pause"New value: +"Monitor id to pause, as returned by list_monitors." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "frequency": { + "description": "Check interval in minutes.", + "type": "integer" + }, + "id": { + "description": "Monitor id, used by every other tool.", + "type": "integer" + }, + "isActive": { + "description": "False while the monitor is paused.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "statusSummary": { + "description": "Current state, for example GOOD or ERROR.", + "type": "string" + }, + "type": { + "enum": [ + "PING", + "HTTP", + "API", + "SSL", + "DOMAIN", + "PORT" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" +}
- Changed
resume_monitor2 fields changed- changed
Input schema / properties / id / descriptionPrevious value: -"Monitor ID to resume"New value: +"Monitor id to resume, as returned by list_monitors." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "frequency": { + "description": "Check interval in minutes.", + "type": "integer" + }, + "id": { + "description": "Monitor id, used by every other tool.", + "type": "integer" + }, + "isActive": { + "description": "False while the monitor is paused.", + "type": "boolean" + }, + "name": { + "type": "string" + }, + "statusSummary": { + "description": "Current state, for example GOOD or ERROR.", + "type": "string" + }, + "type": { + "enum": [ + "PING", + "HTTP", + "API", + "SSL", + "DOMAIN", + "PORT" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" +}
15 tool updates
- First observed
create_api_monitor - First observed
create_domain_monitor - First observed
create_http_monitor - First observed
create_ping_monitor - First observed
create_port_monitor - First observed
create_ssl_monitor - First observed
delete_monitor - First observed
get_incidents - First observed
get_monitor - First observed
get_notifications - First observed
get_stats_daily - First observed
get_stats_hourly - First observed
list_monitors - First observed
pause_monitor - First observed
resume_monitor
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Website uptime monitoring: run checks from 300+ locations, manage monitors, alerts and incidents
Uptime, API and server monitoring with outages, reporting, on-call and status pages.
Uptime monitoring for developers — monitors, incidents, heartbeats and status pages
Monitor websites, APIs, and servers: create monitors, triage incidents, and query uptime stats.
Related MCP Servers
AlicenseAqualityBmaintenanceUptime monitoring for websites, APIs, SSL certificates, domain expiry, ping and TCP/UDP ports. 15 tools to list, create, pause and delete monitors, pull incident timelines with error codes, and read hourly or daily uptime and response-time statistics.151551MIT- FlicenseNot gradedqualityBmaintenanceUptime, 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-
- AlicenseNot gradedqualityCmaintenanceOfficial Hyperping MCP server for uptime, API, cron and server monitoring. 26 tools covering monitors, outages and timelines, uptime, response time, MTTR and MTTA, on-call schedules and escalation policies, over a remote Streamable HTTP endpoint with Bearer token auth and no install.1MIT
- AlicenseAqualityCmaintenanceSix-layer website monitoring (uptime, performance, SSL, DNS, visual regression, content change) from Claude, Cline, and Cursor. Free tools (DNS lookup, SSL check, speed test, website checker) work without an account; monitor, incident, alert, and status-page tools use a personal API key.16181MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Every tool has a clearly distinct purpose. The six monitor creation tools are explicitly differentiated in their descriptions (e.g., HTTP vs API vs SSL vs domain), and lifecycle tools like delete, pause, resume, and list are unambiguous. Overlap is minimal and explicitly addressed.
All tool names follow a consistent snake_case verb_noun pattern (e.g., create_http_monitor, get_stats_hourly, pause_monitor). No mixed conventions or vague verbs; the pattern is uniform and predictable.
15 tools is on the higher end of the ideal range, but each tool earns its place. The count reflects a comprehensive monitoring surface without unnecessary redundancy. Slightly over the typical sweet spot, but justified by the domain.
The tool surface covers creation, deletion, pause/resume, listing, retrieval, incident history, and two levels of statistics, plus notifications. A notable gap is the absence of an update/edit tool for existing monitors, which agents may need to adjust configurations. Otherwise, the lifecycle is well covered.