watchgoose-mcp
Watchgoose MCP
Watchgoose MCP는 MCP를 지원하는 AI 클라이언트를 Watchgoose Management API에 연결합니다. 이를 통해 cron 및 반복 작업 모니터링을 확인할 수 있으며, 체크 변경은 쓰기를 명시적으로 활성화한 경우에만 사용할 수 있습니다.
요구 사항
Node.js 20 이상
프로젝트 설정에서 발급받은 프로젝트 범위의 Watchgoose API 키
체크 상태와 상태 기록만 필요하다면 hcr_ 읽기 전용 키를 사용하세요. 핑, 통합 또는 체크 변경도 필요하다면 hcw_ 읽기/쓰기 키를 사용하세요.
Related MCP server: uptimepage
Claude Desktop
이 항목을 claude_desktop_config.json에 추가하고 Claude Desktop을 다시 시작하세요:
{
"mcpServers": {
"watchgoose": {
"command": "npx",
"args": ["-y", "watchgoose-mcp"],
"env": {
"WATCHGOOSE_API_KEY": "hcr_your_project_key"
}
}
}
}Claude Code
claude mcp add --env WATCHGOOSE_API_KEY=hcr_your_project_key \
--transport stdio --scope user watchgoose -- npx -y watchgoose-mcpclaude mcp get watchgoose를 실행하여 연결을 확인하세요.
Cursor
프로젝트에 .cursor/mcp.json을 생성하거나 사용자 MCP 구성에 동일한 항목을 추가하세요:
{
"mcpServers": {
"watchgoose": {
"command": "npx",
"args": ["-y", "watchgoose-mcp"],
"env": {
"WATCHGOOSE_API_KEY": "hcr_your_project_key"
}
}
}
}VS Code
.vscode/mcp.json을 생성하세요:
{
"servers": {
"watchgoose": {
"type": "stdio",
"command": "npx",
"args": ["-y", "watchgoose-mcp"],
"env": {
"WATCHGOOSE_API_KEY": "hcr_your_project_key"
}
}
}
}MCP: List Servers를 실행하고 watchgoose를 시작하세요.
환경
변수 | 필수 | 기본값 | 설명 |
| 예 | - | 프로젝트 범위의 |
| 아니요 |
| Management API 기본 URL. 루프백 개발 호스트를 제외하고 HTTPS가 필요합니다. 키가 이 호스트로 전송되므로 신뢰할 수 있는 URL만 사용하세요. |
| 아니요 |
| 키가 읽기/쓰기 권한일 때 변경 도구를 노출하려면 |
| 레거시 키만 | - | 접두사가 없는 32자 키에 대해 |
서버는 키 접두사를 로컬에서 분류하며 접근 권한을 추론하기 위해 API를 조회하지 않습니다. WATCHGOOSE_ENABLE_WRITES=true로 설정해도 읽기 전용 키에 추가 접근 권한을 부여할 수 없습니다.
도구
체크는 안정적인 40자 unique_key 값으로 참조됩니다. UUID, 핑 URL, 통합 UUID는 서버 내부에서만 사용되며 AI 클라이언트에는 표시되지 않습니다.
도구 | 필요한 접근 권한 | Management API 매핑 |
| 읽기 전용 |
|
| 읽기 전용 |
|
| 읽기 전용 |
|
| 읽기/쓰기 |
|
| 읽기/쓰기 |
|
| 읽기/쓰기 및 쓰기 활성화 |
|
| 읽기/쓰기 및 쓰기 활성화 |
|
| 읽기/쓰기 및 쓰기 활성화 |
|
| 읽기/쓰기 및 쓰기 활성화 |
|
| 읽기/쓰기 및 쓰기 활성화 |
|
통합 할당은 정확한 통합 이름을 사용합니다. 이름은 비어 있지 않아야 하며 프로젝트 내에서 고유해야 합니다.
목록 결과는 체크 100개, 핑 100개, 플립 200개, 통합 100개로 제한됩니다. 모든 직렬화된 도구 결과도 24,000자로 제한됩니다. 항목이 생략되면 결과에 메타데이터가 포함됩니다.
보안
쓰기는 기본적으로 비활성화되어 있으며,
hcw_키를 사용해도 마찬가지입니다.API 키는
X-Api-Key헤더로만 전송되며 절대 로그에 기록되거나 반환되지 않습니다.API 리디렉션은 거부되므로 자격 증명이 다른 호스트로 전달될 수 없습니다.
체크 UUID, 핑 및 업데이트 URL, 통합 UUID, 알 수 없는 향후 API 필드는 출럭에서 제거됩니다.
핑은
type,date,n,scheme,method,duration만 유지합니다. 출발지 IP 주소, 사용자 에이전트, 실행 ID, 본문 URL은 제거됩니다.핑 본문은 절대 요청되지 않습니다.
서버에는 텔레메트리가 없습니다.
API 키가 포합된 클라인트 구정 파일을 보호하세요. 전용 프젝트와 필한 도구를 노출하는 최소 권한 키를 사용하는 것이 좋습니다. 더 이상 사요하지 않을 때 Watchgoose 프젝트 설정에서 키를 해지하세요.
개방
npm install
npm run format:check
npm run lint
npm run typecheck
npm test
npm run publish:dry-run프로덕션 통합 테스트는 옵트인이며 전용 테스트 프젝트 키가 필합니다. CI에서는 절대 실핵되지 않습니다.
라이선스
MIT
Available Tools
3 toolsget_checkGet a Watchgoose checkARead-onlyIdempotentInspect
Get one check by its stable unique_key, including its current state and schedule. Cron and OnCalendar checks use schedule plus grace; simple checks use timeout plus grace.
| Name | Required | Description | Default |
|---|---|---|---|
| unique_key | Yes | 40-character stable check identifier from list_checks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| check | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds useful behavioral detail beyond annotations: it returns current state and schedule, and explains that Cron/OnCalendar checks use schedule plus grace while simple checks use timeout plus grace.
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 redundancy. The primary purpose and identifier are front-loaded, and the second sentence adds meaningful behavioral nuance without unnecessary detail.
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 single-parameter read tool with strong annotations and an output schema, the description sufficiently explains what the tool does, what it returns, and the relevant scheduling nuance. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents unique_key as a 40-character stable identifier from list_checks. The description repeats 'stable unique_key' but adds no new parameter semantics beyond what the schema provides, so the baseline 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 states a specific verb ('Get'), resource ('one check'), identifier ('stable unique_key'), and the content returned ('current state and schedule'). It clearly distinguishes from siblings: list_checks lists checks, while this retrieves a single one.
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 clear context: use this tool when you need a single check by its unique_key, not a list. It does not explicitly exclude alternatives, but the 'one check by its stable unique_key' phrasing implies the appropriate use case, and the schema parameter notes the key comes from list_checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checksList Watchgoose checksARead-onlyIdempotentInspect
List checks in this Watchgoose project, optionally filtered by slug or tags. A successful ping arms a new check; Watchgoose then expects the next success within its timeout or schedule plus grace period.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Exact check slug to match, using lowercase letters, numbers, hyphens, or underscores. | |
| tags | No | Tags that every returned check must have, for example ["production", "backup"]. | |
| limit | No | Maximum number of checks to return, from 1 to 100. |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| checks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful domain context about how pings arm checks and expectations after timeout/schedule plus grace period, but it does not disclose tool-specific behavior such as sorting, pagination, or response shape beyond the existing 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 compact and front-loaded: the first sentence states the action, resource, and filters. The second sentence is concise and adds useful domain context, though it is somewhat tangential to actually invoking list_checks.
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 low-complexity, read-only list operation with a fully described input schema, an output schema, and complete annotations, the description is largely sufficient. It specifies project scope and filtering, though explicit sibling differentiation would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with slug, tags, and limit each already described in the input schema. The description only restates the slug/tags filter idea and adds no parameter-level meaning beyond what the schema provides, so the baseline score 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 opens with a precise action and resource: 'List checks in this Watchgoose project'. It also states the optional filters (slug or tags), and the collection-scope wording naturally distinguishes this from the sibling tools get_check and list_flips.
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 implies usage through 'optionally filtered by slug or tags', but it never explicitly contrasts this tool with get_check or list_flips. There is no when-to-use vs. alternatives guidance, only a clear statement of what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_flipsList a check's status changesARead-onlyIdempotentInspect
List retained status changes for a check, newest first, with optional time filters. In results, up: 1 means the check became up; up: 0 means any other status, including down, paused, and new after resume. A pause or resume that changes the check's status records a flip.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Exclusive upper bound for status-change timestamps, as Unix seconds; for example 1592217980. | |
| limit | No | Maximum number of status changes to return, from 1 to 200. | |
| start | No | Inclusive lower bound for status-change timestamps, as Unix seconds; for example 1592214380. | |
| seconds | No | Lookback window for status changes in seconds, from 0 to 31536000; for example 3600. | |
| unique_key | Yes | 40-character stable check identifier from list_checks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| flips | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description explains key output semantics: up: 1 means became up, up: 0 includes down/paused/new-after-resume, and pause/resume that changes status records a flip. This materially helps an agent interpret results and is not visible in the schema alone.
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 compact and front-loaded with the core operation, followed by the essential semantics of the up field and flip recording. Every sentence contributes useful information with no 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 annotations and an output schema present, the description sufficiently covers what the tool returns, how results are ordered, and what counts as a flip. The required unique_key and optional time filters are documented in the schema, so nothing critical is missing for invoking 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 the schema already documents all five parameters. The description adds only the general notion of 'optional time filters,' which aligns with start/end/seconds but provides no additional parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List retained status changes for a check.' It also states the ordering ('newest first') and clearly distinguishes this tool from siblings by focusing on status-change history rather than listing checks or fetching a single check.
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 clear context: use this when you need a check's status changes with optional time filters. It does not explicitly name alternatives or say when not to use it, but the operation is distinct enough from list_checks and get_check that the intended use is evident.
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.
3 tool updates
v1.0.1- Changed
get_check1 field changed- added
Input schema / properties / unique_key / descriptionAdded value: +"40-character stable check identifier from list_checks."
- Changed
list_checks3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of checks to return, from 1 to 100." - added
Input schema / properties / slug / descriptionAdded value: +"Exact check slug to match, using lowercase letters, numbers, hyphens, or underscores." - added
Input schema / properties / tags / descriptionAdded value: +"Tags that every returned check must have, for example [\"production\", \"backup\"]."
- Changed
list_flips5 fields changed- added
Input schema / properties / end / descriptionAdded value: +"Exclusive upper bound for status-change timestamps, as Unix seconds; for example 1592217980." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of status changes to return, from 1 to 200." - added
Input schema / properties / seconds / descriptionAdded value: +"Lookback window for status changes in seconds, from 0 to 31536000; for example 3600." - added
Input schema / properties / start / descriptionAdded value: +"Inclusive lower bound for status-change timestamps, as Unix seconds; for example 1592214380." - added
Input schema / properties / unique_key / descriptionAdded value: +"40-character stable check identifier from list_checks."
3 tool updates
v1.0.0- First observed
get_check - First observed
list_checks - First observed
list_flips
TDQS
Scored across 3 tools
The three tools are clearly distinct: list checks, get a single check by key, and list status changes. There is no meaningful overlap or ambiguity between them.
All tool names follow a consistent lowercase verb_noun pattern: list_checks, get_check, list_flips. The singular/plural difference is natural and appropriate.
Three tools is well-scoped for a read-only monitoring server. Each tool provides a distinct capability with no redundancy or filler.
The read-only monitoring surface is coherent: discover checks, inspect a check, and view its flip history. Check management and ping actions appear to happen outside MCP, so the lack of mutation tools is a minor gap rather than a fatal one.
Maintenance
Related MCP Connectors
MCP server for Uptrack uptime monitoring. Manage monitors and incidents from AI agents.
Manage uptime monitors, incidents and status pages from any MCP client.
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Monitor websites, APIs, and servers: create monitors, triage incidents, and query uptime stats.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for CronAlert uptime monitoring — manage monitors, check results, and incidents from any MCP-compatible AI client.9191 npmMIT

uptimepageofficial
AlicenseNot gradedqualityAmaintenanceMCP server for Uptimepage uptime monitoring. An LLM client can read your monitors and incidents, run a check on demand, and post incident updates. Writes need an OAuth login and a scoped token, and each one is logged.52AGPL 3.0- AlicenseNot gradedqualityCmaintenanceMCP server for KEEPitALIVE monitoring, enabling AI agents to read and manage monitors, incidents, triggers, and notification routing via the v1 API, with scope-based tool filtering and safety modes.14 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables LLM clients to manage Uptime Kuma HTTP(S) monitors, groups, tags, and notifications, and to retrieve heartbeats, stats, and incident history through MCP tools.MIT