Skip to main content
Glama
shenwell

stillonline-mcp

by shenwell

stillonline-mcp

npm version Smithery License: MIT

MCP server for StillOnline — hosted uptime monitoring and status pages for indie SaaS and production AI agents.

Use it from Cursor, Claude Code, Windsurf, Codex, Antigravity, or any MCP-compatible client. Wraps StillOnline REST API v1 (Pro/Ultimate).

Quick setup

Run in PowerShell or Terminal (not in the AI chat):

npx -y stillonline-mcp

Same as npx -y stillonline-mcp setup — the wizard starts when you run the package in a terminal. Editors launch the MCP server over stdio separately.

The wizard will:

  1. Confirm the package from npm

  2. Arrow keys + Enter — Cursor, Antigravity, Codex, Claude Code, Windsurf, or Other agent

  3. Cursor / Antigravity / Windsurf — writes MCP JSON config

  4. Codex / Claude Codecodex mcp add / claude mcp add + snippet

  5. Verify the API key against StillOnline

Empty or invalid key → error and prompt again.

PowerShell paste: hidden input often blocks Ctrl+V — use right-click, Shift+Insert, or:

npx -y stillonline-mcp setup --visible-key --ru

Then reload MCP in your editor (e.g. Cursor Settings → MCP → Refresh).

Options

npx -y stillonline-mcp setup --client cursor --ru
npx -y stillonline-mcp setup --dry-run
npx -y stillonline-mcp setup --yes    # overwrite existing stillonline block

Related MCP server: DevHelm MCP Server

Requirements

Security

Do not paste your API key into the AI chat. Use setup or MCP env on your machine only.

Manual MCP config

{
  "mcpServers": {
    "stillonline": {
      "command": "npx",
      "args": ["-y", "stillonline-mcp"],
      "env": {
        "STILLONLINE_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}

Client

Config file (examples)

Cursor

~/.cursor/mcp.json

Claude Desktop (Windows)

%APPDATA%\Claude\claude_desktop_config.json

Claude Desktop (macOS)

~/Library/Application Support/Claude/claude_desktop_config.json

Optional env: STILLONLINE_API_BASE (default https://api.stillonline.tech/v1).

Commands

Command

Purpose

npx -y stillonline-mcp

MCP server (stdio, for editors)

npx -y stillonline-mcp setup

Interactive installer

npx -y stillonline-mcp --help

CLI help

Tools

Tool

REST

Notes

projects.list

GET /projects

projects.create

POST /projects

name, url; optional description

projects.delete

DELETE /projects/{id}

Soft-delete

checks.list

GET /projects/{id}/checks

checks.create

POST /projects/{id}/checks

url; optional name, interval_seconds

checks.update

PATCH /checks/{id}

Pause: enabled: false

checks.delete

DELETE /checks/{id}

status.get

GET /public/status/{slug}

No API key

incidents.create

POST /status-pages/{id}/incidents

title

incidents.get

GET /incidents/{id}

Legacy underscore names such as list_projects and create_check are accepted as call aliases, but new clients should use the dot-notation names above.

Rate limits: 120 GET / 30 write per minute per key. On 429, errors include RATE_LIMIT and retry_after.

Development

git clone https://github.com/shenwell/stillonline-mcp.git
cd stillonline-mcp
npm install
npm run build
npx stillonline-mcp setup --dry-run

For local MCP server mode, point your client at node + absolute path to dist/cli.js with env.STILLONLINE_API_KEY.

Maintainers syncing from the private StillOnline monorepo: see PUBLISH.md.

Official MCP Registry

This package is published to the Official MCP Registry as io.github.shenwell/stillonline (npm stdio transport). Listed on aggregators such as MCP.so, Smithery, and PulseMCP after registry ingest.

License

MIT — see LICENSE.

Available Tools

10 tools
checks.createCreate CheckA

Add a URL check to an existing StillOnline project. Use this for additional SaaS endpoints, API health URLs, MCP backends, or autonomous agent health checks.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic URL to probe. Prefer HTTPS health endpoints that return 200 without authentication.
nameNoOptional check label shown in the dashboard and status context.
project_idYesStillOnline project ID that should receive the new check.
interval_secondsNoOptional probe interval in seconds. Availability depends on the account plan.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checkYesStillOnline check object, including identifiers, URL, enabled state, interval, and latest probe status fields returned by the REST API.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only and not destructive, which aligns with the description 'Add a URL check'. It adds behavioral context by suggesting HTTPS health endpoints that return 200 without authentication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states the core purpose, second provides concrete use-case examples. No redundant or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters (2 required) and an output schema, the description sufficiently covers what the tool does and when to use it, with no missing essential information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds valuable guidance for the 'url' parameter ('Prefer HTTPS health endpoints that return 200 without authentication'), improving beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Add a URL check') and resource ('existing StillOnline project'), and lists specific, distinct use cases that differentiate it from sibling tools like checks.list or checks.update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by listing example uses (SaaS endpoints, API health URLs, MCP backends, autonomous agent health checks), though it does not explicitly state when not to use the tool or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checks.deleteDelete CheckA
Destructive

Permanently delete a StillOnline check. Use only when an endpoint should no longer be monitored.

ParametersJSON Schema
NameRequiredDescriptionDefault
check_idYesStillOnline check ID returned by checks.list or checks.create.

Output Schema

ParametersJSON Schema
NameRequiredDescription
deletedYesWhether the check delete operation succeeded.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, indicating the tool is destructive. The description adds 'permanently' to emphasize irreversibility, but does not discuss side effects like impact on incidents or historical data. The behavioral disclosure is adequate given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy. The first sentence states the core action and permanence; the second provides usage guidance. Every word earns its place. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (1 param, output schema exists, annotations present). The description covers purpose and usage, though it could mention potential cascading effects (e.g., deletion of associated incidents). Overall, it is sufficient for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not elaborate on the parameters, but schema coverage is 100% and the schema already provides a clear description for the 'check_id' parameter. The description adds no additional semantic value beyond what the schema provides, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Permanently delete') and the resource ('StillOnline check'), distinguishing it from sibling tools like checks.update or checks.list. The verb is specific and the resource is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Use only when an endpoint should no longer be monitored.' This directly tells the agent when to invoke the tool. While it does not explicitly list alternatives, the context of destruction and the sibling tools (e.g., checks.update) makes the use case clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checks.listList ChecksA
Read-onlyIdempotent

List HTTP and SSL checks for a StillOnline project. Use this before updating, pausing, deleting, or auditing monitor coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesStillOnline project ID whose checks should be listed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksYesChecks configured for the requested StillOnline project.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and non-destructive nature. The description adds that it lists checks for a project, but does not add additional behavioral context 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with the core action. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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, output schema present, thorough annotations), the description sufficiently covers purpose, usage, and behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description does not add additional meaning to the single parameter 'project_id' beyond what is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'List' and the resource 'HTTP and SSL checks for a StillOnline project'. It further distinguishes from siblings by noting its use before other operations on checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use the tool ('before updating, pausing, deleting, or auditing monitor coverage'), providing clear context. However, it does not explicitly mention when not to use it or describe alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checks.updateUpdate CheckA

Update a StillOnline check. Use this to pause or resume monitoring, rename a check, or change its probe interval after deploy or infrastructure changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional new display name for this check.
enabledNoSet true to resume monitoring or false to pause this check.
check_idYesStillOnline check ID returned by checks.list or checks.create.
interval_secondsNoOptional new probe interval in seconds. Availability depends on the account plan.

Output Schema

ParametersJSON Schema
NameRequiredDescription
checkYesStillOnline check object, including identifiers, URL, enabled state, interval, and latest probe status fields returned by the REST API.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate it's a write operation (readOnlyHint=false) and non-destructive. The description adds use-case context (pause/resume, rename, interval change) but does not disclose additional behavioral traits like rate limits or side effects beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff: first sentence states core action, second lists use cases. It is front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is an output schema (so return details not needed), the description covers the main purpose and usage scenarios. It could mention that interval availability depends on plan, but overall it is sufficiently complete for an agent to decide when and how to use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning by mapping parameters to real-world scenarios (pause/resume -> enabled, rename -> name, interval -> interval_seconds) and provides context ('after deploy or infrastructure changes') not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update a StillOnline check' with specific verb and resource, and differentiates from sibling tools like checks.create and checks.delete by specifying update operations: pause/resume, rename, change interval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'after deploy or infrastructure changes,' providing clear context for when to use the tool. It does not explicitly state when not to use it, but the context and sibling tool names imply alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

incidents.createCreate IncidentA

Open an incident on a StillOnline status page. Use this when an outage or degraded service should be visible to subscribers and stakeholders.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesShort incident title, for example 'API latency elevated' or 'Agent gateway unavailable'.
status_page_idYesStillOnline status page ID associated with the affected project.

Output Schema

ParametersJSON Schema
NameRequiredDescription
incidentYesStillOnline incident object, including identifiers, title, status page relation, and current incident state fields returned by the REST API.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint false). Description adds context that incidents become visible to subscribers, which is a key behavioral trait beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and context, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple creation tool with two well-documented parameters and output schema present; description covers purpose and usage adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already provides clear descriptions for both parameters. Description adds no extra parameter detail, but schema coverage is 100% so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Open' and resource 'incident', clearly distinguishes from siblings like checks.create (check vs incident) and incidents.get (retrieve vs create).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'when an outage or degraded service should be visible to subscribers and stakeholders'. No explicit exclusions, but context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

incidents.getGet IncidentA
Read-onlyIdempotent

Get a StillOnline incident by ID. Despite the historical name, this returns one incident record for follow-up status updates or review.

ParametersJSON Schema
NameRequiredDescriptionDefault
incident_idYesStillOnline incident ID returned by incidents.create or the incidents API.

Output Schema

ParametersJSON Schema
NameRequiredDescription
incidentYesStillOnline incident object, including identifiers, title, status page relation, and current incident state fields returned by the REST API.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, etc. Description adds only that it returns one record. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and resource, no extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-ID operation with output schema, description covers purpose, usage, and parameter context adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and parameter has a description. Description does not add new semantic detail beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get' and resource 'incident by ID'. It distinguishes from sibling 'incidents.create' and clarifies potential naming confusion with 'Despite the historical name'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States use case: 'for follow-up status updates or review', implying use after creation. Does not explicitly exclude other uses but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

projects.createCreate ProjectA

Create a StillOnline project with an automatic status page and initial HTTP URL check. Call this after deploying a new SaaS app, API, MCP backend, or AI agent health endpoint that needs uptime monitoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic HTTPS URL to monitor, usually an app URL, API health endpoint, or agent /health endpoint.
nameYesHuman-readable project name shown in StillOnline and on the generated status page.
descriptionNoOptional short project description for dashboard context.

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectYesStillOnline project object, including identifiers, display name, status page metadata, and plan-scoped fields returned by the REST API.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read-only, non-idempotent, non-destructive write operation. The description adds behavioral context by stating that the tool creates an automatic status page and initial HTTP URL check, beyond what annotations provide. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the action and effect, followed by usage context. Every sentence is informative and necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a simple structure (3 parameters, no nested objects, and an output schema exists). The description adequately covers purpose, usage, and behavioral aspects, making it complete for an agent to understand when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds meaningful context for the 'name' and 'url' parameters (e.g., 'Public HTTPS URL to monitor'). The 'description' parameter is covered by the schema. The description adds value beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool creates a StillOnline project with an automatic status page and initial HTTP URL check, specifying the resource (project) and action (create). It clearly distinguishes from sibling tools like projects.list and projects.delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Call this after deploying a new SaaS app, API, MCP backend, or AI agent health endpoint that needs uptime monitoring.' While it does not explicitly state when not to use it or name alternatives, the context is sufficient for the agent to decide when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

projects.deleteDelete ProjectA
Destructive

Soft-delete a StillOnline project. Removes it from the dashboard and disables checks, matching the UI delete behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesStillOnline project ID returned by projects.list or projects.create.

Output Schema

ParametersJSON Schema
NameRequiredDescription
deletedYesWhether the project delete operation succeeded.
project_idNoID of the deleted StillOnline project.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false. The description adds that it is a soft-delete (implying reversibility) and that it disables checks, providing behavioral context 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, front-loaded with the core action. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one param, output schema exists), the description is complete. It covers purpose, effect, and alignment with UI. Minor gap: no mention of whether it is reversible or requires confirmation, but soft-delete implies reversibility.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description of the project_id parameter. The tool description does not add extra meaning beyond the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it soft-deletes a project, removes from dashboard, and disables checks, matching UI behavior. It distinguishes from other sibling tools like projects.create or checks.delete by specifying the resource and effect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to soft-delete a project) but does not explicitly state when not to use or provide alternatives. Sibling tools exist but no guidance on choosing between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

projects.listList ProjectsA
Read-onlyIdempotent

List StillOnline projects for the authenticated account. Returns project IDs, names, status page metadata, and plan-scoped project data for follow-up check or incident operations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectsYesProjects available to the authenticated StillOnline account.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructiveHint. The description adds value by disclosing the specific data returned (IDs, names, metadata), which goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the core purpose, and includes only essential information without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, strong annotations, and an output schema (implied by description), the tool is fully described. It explains the return data and its purpose for subsequent operations, making it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage (empty schema), the description does not need to explain parameters. It provides no redundant parameter info, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and resource 'StillOnline projects for the authenticated account'. It specifies the output fields (IDs, names, metadata) and distinguishes from siblings like projects.create and projects.delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states this tool lists projects for the authenticated account and returns data useful for follow-up operations, implying its role as a prerequisite. However, it does not explicitly mention when not to use it or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

status.getGet Public StatusA
Read-onlyIdempotent

Get public StillOnline status JSON by status page slug. Use this to inspect customer-facing uptime without exposing private account data.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPublic status page slug or ID from a StillOnline /s/{slug} URL.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide strong transparency (readOnly, idempotent, non-destructive). The description adds context about returning JSON and public scope, but does not introduce new behavioral insights. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the core purpose and usage context without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and the supportive annotations, the description sufficiently covers the tool's purpose, usage context, and behavioral guarantees.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a well-described required 'slug' parameter. The description does not add additional semantic meaning beyond what the schema already provides, warranting a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('public status JSON'), and distinguishes this public tool from private account data, differentiating it from sibling tools like checks or incidents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('inspect customer-facing uptime') and why it is preferred ('without exposing private account data'), implying alternatives that might expose private data.

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.

  1. 10 tool updatesv0.3.6
    • First observedchecks.create
    • First observedchecks.delete
    • First observedchecks.list
    • First observedchecks.update
    • First observedincidents.create
    • First observedincidents.get
    • First observedprojects.create
    • First observedprojects.delete
    • First observedprojects.list
    • First observedstatus.get

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a distinct resource (checks, incidents, projects, status) and action (create, delete, list, update, get), with no overlap. Descriptions clearly differentiate purposes.

Naming Consistency5/5

All tools follow a uniform object.action naming pattern (e.g., checks.create, incidents.get). No mixing of conventions.

Tool Count5/5

10 tools is well-scoped for a monitoring server, covering the main operations without being overwhelming or too sparse.

Completeness4/5

CRUD is covered for checks and projects, but incidents only have create and get (missing update/delete). Minor gaps exist but core workflows are supported.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Uptrack uptime monitoring. Manage monitors and incidents from AI agents like Claude, ChatGPT, and Cursor.
    13
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Uptime Kuma that enables monitoring and management of uptime monitors, heartbeats, notifications, tags, and maintenance windows via natural language.
    31
    480
    48
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server for Updown.io that enables managing website monitoring checks, viewing downtimes and metrics, configuring alert recipients, and controlling status pages through natural language.
    15
    16
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shenwell/stillonline-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server