{
  "markdown": "# Watchgoose MCP\n\nWatchgoose MCP connects MCP-capable AI clients to the Watchgoose Management API. It lets you inspect\ncron and recurring-task monitoring, with check changes available only when you explicitly enable\nwrites.\n\n## Hosted connector\n\nUse the hosted Streamable HTTP endpoint in clients that support OAuth 2.1 and Dynamic Client\nRegistration:\n\n```text\nhttps://mcp.watchgoose.com/mcp\n```\n\n### Available in\n\nWatchgoose is [available in the Claude connector directory](https://claude.ai/directory/watchgoose).\n\nWatchgoose is\n[listed in ChatGPT plugins for GPT and Codex](https://chatgpt.com/plugins/plugin_asdk_app_6a95a3bd1df8819197ab3ccbf9269e8d).\n\nWatchgoose is\n[listed in the official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.bartekrutkowski/watchgoose-mcp).\n\nThe [`watchgoose-mcp` package is available on npm](https://www.npmjs.com/package/watchgoose-mcp).\n\nIn Claude, open **Settings > Connectors** and add the endpoint as a custom connector. For Claude\nCode, run:\n\n```shell\nclaude mcp add --transport http --scope user watchgoose https://mcp.watchgoose.com/mcp\n```\n\nThe browser consent flow limits each connection to one project and defaults to read-only access. See\nthe [Watchgoose MCP documentation](https://watchgoose.com/docs/mcp/) for the tool and privacy\nboundaries.\n\n## Requirements\n\n- Node.js 20 or later\n- A project-scoped Watchgoose API key from **Project settings → API Access → Create (read-only)**\n\nUse an `hcr_` read-only key when you only need check state and status history. Use an `hcw_`\nread-write key when you also need pings, integrations, or check changes.\n\n## Claude Desktop\n\nAdd this entry to `claude_desktop_config.json` and restart Claude Desktop:\n\n```json\n{\n  \"mcpServers\": {\n    \"watchgoose\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"watchgoose-mcp\"],\n      \"env\": {\n        \"WATCHGOOSE_API_KEY\": \"hcr_your_project_key\"\n      }\n    }\n  }\n}\n```\n\n## Claude Code\n\n```shell\nclaude mcp add --env WATCHGOOSE_API_KEY=hcr_your_project_key \\\n  --transport stdio --scope user watchgoose -- npx -y watchgoose-mcp\n```\n\nRun `claude mcp get watchgoose` to check the connection.\n\n## Cursor\n\nCreate `.cursor/mcp.json` in your project, or add the same entry to your user MCP configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"watchgoose\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"watchgoose-mcp\"],\n      \"env\": {\n        \"WATCHGOOSE_API_KEY\": \"hcr_your_project_key\"\n      }\n    }\n  }\n}\n```\n\n## VS Code\n\nCreate `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"watchgoose\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"watchgoose-mcp\"],\n      \"env\": {\n        \"WATCHGOOSE_API_KEY\": \"hcr_your_project_key\"\n      }\n    }\n  }\n}\n```\n\nRun **MCP: List Servers** and start `watchgoose`.\n\n## Environment\n\n| Variable                    |         Required | Default                         | Description                                                                                                                                  |\n| --------------------------- | ---------------: | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| `WATCHGOOSE_API_KEY`        |              Yes | -                               | Project-scoped `hcr_` read-only key, `hcw_` read-write key, or legacy 32-character key.                                                      |\n| `WATCHGOOSE_API_URL`        |               No | `https://watchgoose.com/api/v3` | Management API base URL. HTTPS is required except for loopback development hosts. The key is sent to this host, so use only a URL you trust. |\n| `WATCHGOOSE_ENABLE_WRITES`  |               No | `false`                         | Set to `true` to expose mutation tools when the key is read-write.                                                                           |\n| `WATCHGOOSE_API_KEY_ACCESS` | Legacy keys only | -                               | Required as `read-only` or `read-write` for an unprefixed 32-character key.                                                                  |\n\nThe server classifies key prefixes locally and never probes the API to infer access. Setting\n`WATCHGOOSE_ENABLE_WRITES=true` cannot give a read-only key additional access.\n\n## Tools\n\nChecks are addressed by stable 40-character `unique_key` values. UUIDs, ping URLs, and integration\nUUIDs are used only inside the server and are not shown to the AI client.\n\n| Tool            | Required access                | Management API mapping                                  |\n| --------------- | ------------------------------ | ------------------------------------------------------- |\n| `list_checks`   | Read-only                      | `GET /checks/`                                          |\n| `get_check`     | Read-only                      | `GET /checks/<unique_key>`                              |\n| `list_flips`    | Read-only                      | `GET /checks/<unique_key>/flips/`                       |\n| `list_pings`    | Read-write                     | Resolve `unique_key`, then `GET /checks/<uuid>/pings/`  |\n| `list_channels` | Read-write                     | `GET /channels/`                                        |\n| `create_check`  | Read-write plus writes enabled | `POST /checks/`                                         |\n| `update_check`  | Read-write plus writes enabled | Resolve `unique_key`, then `POST /checks/<uuid>`        |\n| `pause_check`   | Read-write plus writes enabled | Resolve `unique_key`, then `POST /checks/<uuid>/pause`  |\n| `resume_check`  | Read-write plus writes enabled | Resolve `unique_key`, then `POST /checks/<uuid>/resume` |\n| `delete_check`  | Read-write plus writes enabled | Resolve `unique_key`, then `DELETE /checks/<uuid>`      |\n\nIntegration assignments use exact integration names. Names must be non-empty and unique within the\nproject.\n\nList results are capped at 100 checks, 100 pings, 200 flips, and 100 integrations. Every serialized\ntool result is also capped at 24,000 characters. Results include metadata when entries are omitted.\n\n## Security\n\n- Writes are disabled by default, even with an `hcw_` key.\n- The API key is sent only in the `X-Api-Key` header and is never logged or returned.\n- API redirects are rejected so credentials cannot be forwarded to another host.\n- Check UUIDs, ping and update URLs, integration UUIDs, and unknown future API fields are removed\n  from output.\n- Pings keep only `type`, `date`, `n`, `scheme`, `method`, and `duration`. Source IP addresses, user\n  agents, run IDs, and body URLs are removed.\n- Ping bodies are never requested.\n- The server has no telemetry.\n\nProtect client configuration files that contain API keys. Prefer a dedicated project and the\nleast-privileged key that exposes the tools you need. Revoke a key from Watchgoose project settings\nwhen it is no longer in use.\n\n## Development\n\n```shell\nnpm install\nnpm run format:check\nnpm run lint\nnpm run typecheck\nnpm test\nnpm run publish:dry-run\n```\n\nProduction integration tests are opt-in and require dedicated test-project keys. They never run in\nCI.\n\n## License\n\nMIT\n",
  "bytes": 7208,
  "sha": "8eb766549c56a7b3626cf252f067c0adb1b1a154a5bd0edff63c10004fa4f565",
  "repo_slug": "bartekrutkowski/watchgoose-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_bartekrutkowski_watchgoose_mcp_f846b032/readme"
}