前提条件
- 少なくとも1つのモニターが設定されたPulseGuardアカウント。
- A PulseGuard API token — generate one under Profile → API Keys. Use a Read-only token for telemetry queries, or a Full Access token to create, update, pause, configure, and delete monitors on paid plans.
-
Node.js 18+ — required if you use the
mcp-remotebridge for Claude Desktop. Download from nodejs.org. Verify withnode -v. Not needed if you use the Connectors UI or Cursor/Windsurf. - MCP対応クライアント。サポートされているクライアント:
| クライアント | 最小バージョン | 備考 |
|---|---|---|
| Claude Desktop | 0.7.0+ | Connectors UI(OAuth)またはmcp-remote(Bearerトークン) |
| Cursor | 0.43.0+ | 設定 → MCP → サーバーを追加 |
| Windsurf | 1.0.0+ | 設定 → Cascade → MCP |
| Antigravity | any | Edit ~/.gemini/antigravity/mcp_config.json |
| Any SSE client | MCP spec 2024-11-05+ | Pass Authorization: Bearer header |
トークンの種類
PulseGuard uses Passport API tokens and OAuth access tokens. Two permission levels are available:
| トークン種別 | モニター一覧 / 読み取り | 統計・インシデントの読み取り | モニター作成 | 一時停止 / 再開 | Delete via AI |
|---|---|---|---|---|---|
| 読み取り専用 | ✓ | ✓ | ✗ | ✗ | ✗ |
| フルアクセス | ✓ | ✗ | ✓ | ✓ | ✓ |
Full Access tokens carry the mcp:full ability. Read-only tokens carry the read ability. Full Access write actions require an eligible paid plan; monitor deletion also requires the exact monitor ID.
インストール
MCPサーバーエンドポイント:
https://pulseguard.saniolabs.com/mcp
設定ファイルもAPIキーも不要です — Claude DesktopがOAuthフローを自動的に処理します。
- 1 Open Claude Desktop → Settings → Integrations.
- 2 Click Add Integration and paste the MCP server URL:
https://pulseguard.saniolabs.com/mcp
- 3 Claude opens a browser window — log in to PulseGuard and click Authorize.
-
4
The integration appears in Claude Desktop. Ask
"List my PulseGuard monitors"to verify.
Uses the mcp-remote bridge to connect Claude Desktop via a Bearer token. Requires Node.js 18+.
設定ファイルのパス
{ "mcpServers": { "pulseguard": { "command": "npx", "args": [ "mcp-remote@latest", "https://pulseguard.saniolabs.com/mcp", "--header", "Authorization: Bearer YOUR_API_TOKEN" ] } } }
YOUR_API_TOKEN with a token from Profile → API Keys. Fully quit Claude Desktop (Cmd+Q / Alt+F4), then reopen.
Verify: ask Claude "List my PulseGuard monitors" — it should call list-monitors-tool and return your monitors.
Open or create ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):
設定ファイルのパス
{ "mcpServers": { "pulseguard": { "url": "https://pulseguard.saniolabs.com/mcp", "headers": { "Authorization": "Bearer YOUR_API_TOKEN" } } } }
Verify: open Cursor Chat and type "List my PulseGuard monitors" — Cursor should invoke list-monitors-tool.
Open or create ~/.codeium/windsurf/mcp_config.json:
設定ファイルのパス
{ "mcpServers": { "pulseguard": { "serverUrl": "https://pulseguard.saniolabs.com/mcp", "headers": { "Authorization": "Bearer YOUR_API_TOKEN" } } } }
Cmd/Ctrl+Shift+P → Reload Window).
Verify: in Cascade ask "List my PulseGuard monitors".
Open or create ~/.gemini/antigravity/mcp_config.json and add the pulseguard entry:
設定ファイルのパス
"pulseguard": { "serverUrl": "https://pulseguard.saniolabs.com/mcp", "headers": { "Authorization": "Bearer YOUR_API_TOKEN" } }
YOUR_API_TOKEN with a token from Profile → API Keys.
Verify: ask Antigravity "List my PulseGuard monitors" — it should call list-monitors-tool and return your monitors.
Any MCP client that supports Streamable HTTP transport works. The server accepts JSON-RPC 2.0 POST requests with a single Authorization header.
# curl — verify the Streamable HTTP endpoint curl -s -X POST \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl-test","version":"1.0"}}}' \ https://pulseguard.saniolabs.com/mcp
A successful response returns a JSON-RPC result with serverInfo and capabilities. From there the MCP handshake is complete and tools are available.
利用可能なツール
PulseGuard exposes read tools for monitor health, incidents, SSL, PageSpeed, status pages, charts, and notification channels. Paid plans can also create, edit, pause, resume, configure, and delete monitors safely.
list-monitors-tool
読み取り
get-uptime-stats-tool
読み取り
get-monitor-incidents-tool
読み取り
list-all-incidents-tool
読み取り
create-monitor-tool
フルアクセス
update-monitor-tool
フルアクセス
toggle-monitor-pause-tool
フルアクセス
delete-monitor-tool
フルアクセス
list-monitors-tool
読み取りトークンReturns all monitors configured in the authenticated user's account.
入力スキーマ
{ "type": "object", "properties": {} }
入力不要。
レスポンス例
[
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Production API",
"url": "https://api.example.com",
"status": "up",
"type": "http",
"check_interval": 300,
"paused_at": null
}
]
get-uptime-stats-tool
読み取りトークンReturns uptime percentage and average response time for a given time period. Use period to choose between "24h" or "30d" (default).
入力スキーマ
{ "type": "object", "required": ["monitor_id"], "properties": { "monitor_id": { "type": "string", "description": "UUID of the monitor" }, "period": { "type": "string", "description": "\"24h\" or \"30d\" (default: \"30d\")" } } }
レスポンス例
{
"monitor_name": "Production API",
"status": "up",
"period": "last 30 days",
"uptime_percentage": "99.85%",
"average_response_time_ms": 142,
"total_pings_analyzed": 129600, // 30d × 24h × 60min × 3 pings/min
"total_incidents": 3
}
get-monitor-incidents-tool
読み取りトークンReturns the 10 most recent incidents for a monitor, ordered by started_at descending.
入力スキーマ
{ "type": "object", "required": ["monitor_id"], "properties": { "monitor_id": { "type": "string", "description": "UUID of the monitor" } } }
レスポンス例
[
{
"id": 12,
"monitor_id": "a1b2c3d4-...",
"started_at": "2026-03-28T14:22:00.000000Z",
"resolved_at": "2026-03-28T14:35:00.000000Z",
"duration": 780,
"root_cause": "Connection timeout"
}
]
create-monitor-tool
フルアクセストークンCreates a new HTTP or keyword monitor. Returns the created monitor object. Fails if the account's monitor limit is reached.
入力スキーマ
{ "type": "object", "required": ["name", "url"], "properties": { "name": { "type": "string", "description": "Display name, e.g. My API" }, "url": { "type": "string", "description": "Full URL, e.g. https://api.example.com" }, "type": { "type": "string", "enum": ["http", "keyword"], "description": "Default: http" }, "check_interval": { "type": "integer", "description": "Seconds between checks. Default: 300" }, "timeout": { "type": "integer", "description": "Seconds before marking down. Default: 10" }, "monitor_ssl": { "type": "boolean", "description": "Monitor SSL cert. Default: false" }, "notify_uptime": { "type": "boolean", "description": "Email alerts. Default: true" }, "monitor_domain": { "type": "boolean", "description": "Monitor domain expiry. Default: false" } } }
レスポンス例
Monitor created successfully.
{
"id": "f7e6d5c4-b3a2-1098-fedc-ba9876543210",
"name": "Staging API",
"url": "https://staging.example.com",
"type": "http",
"status": "pending",
"check_interval": 300,
"timeout": 10,
"monitor_ssl": false,
"notify_uptime": true,
"monitor_domain": false
}
toggle-monitor-pause-tool
フルアクセストークンPauses or resumes a monitor. Pass pause: true to stop checks, pause: false to resume. Paused monitors show status "paused"; resumed monitors revert to "pending" until the next check.
入力スキーマ
{ "type": "object", "required": ["monitor_id", "pause"], "properties": { "monitor_id": { "type": "string", "description": "UUID of the monitor to modify" }, "pause": { "type": "boolean", "description": "true to pause, false to resume" } } }
レスポンス例(一時停止)
Monitor paused successfully.
レスポンス例(再開)
Monitor unpaused successfully.
list-all-incidents-tool
読み取りトークンReturns recent incidents across all of the user's monitors in a single call. Incidents are sorted by started_at descending and include monitor_name for context.
入力スキーマ
{ "type": "object", "properties": { "limit": { "type": "integer", "description": "Max incidents per monitor (1–50). Default: 10" } } }
All parameters optional. Omit limit to use the default of 10.
レスポンス例
[
{
"monitor_name": "Production API",
"monitor_id": "a1b2c3d4-...",
"incident_id": 42,
"started_at": "2026-03-28T14:22:00.000000Z",
"resolved_at": "2026-03-28T14:35:00.000000Z",
"duration": "13m 0s",
"root_cause": "Connection timeout"
},
{
"monitor_name": "Staging API",
"monitor_id": "b2c3d4e5-...",
"incident_id": 38,
"started_at": "2026-03-27T09:10:00.000000Z",
"resolved_at": "2026-03-27T09:11:30.000000Z",
"duration": "1m 30s",
"root_cause": "Gateway Timeout"
}
]
プロンプト例
これらをAIエージェントに直接コピーしてください。エージェントが適切なツールを自動的に呼び出します。
List all my PulseGuard monitors and show me their current status and check intervals.
What is the uptime percentage and average response time for my Production API monitor? Give me the monitor ID too.
Fetch the last 10 incidents for monitor ID a1b2c3d4-e5f6-7890-abcd-ef1234567890 and tell me if there is a recurring failure pattern based on root_cause and timing.
List all my monitors, then fetch uptime stats for each one and rank them by average response time from fastest to slowest.
Create three HTTP monitors: "API Gateway" at https://api.example.com, "Auth Service" at https://auth.example.com, and "Dashboard" at https://app.example.com. Set check_interval to 60 for all three and enable SSL monitoring.
トラブルシューティング
401 認証エラー — "Unauthenticated" または HTTP 401
The Authorization header is missing or malformed.
- Confirm the token value starts with no extra whitespace.
- The header must be exactly
Authorization: Bearer <token>. - Regenerate the token in Profile → API Keys if unsure.
403 "書き込み権限がありません" エラー
You are using a Read-only token and calling a write tool (create-monitor-tool or toggle-monitor-pause-tool).
Generate a Full Access token in Profile → API Keys and update your client config.
404 ツールが見つからない / エージェントがPulseGuardのツールを認識しない
The client has not completed the MCP initialize handshake, or has a stale tool cache.
- Claude Desktop / Windsurf: fully quit and relaunch the app.
- Cursor: open the MCP settings panel and click Reconnect.
- Verify the config file has no JSON syntax errors (trailing commas are not allowed).
[ ] モニターリストが空または「モニターが見つかりません」
The tool only returns monitors owned by the token's user.
- Log into PulseGuard and confirm monitors exist on the dashboard.
- If passing a
monitor_id, copy it directly from the URL orlist-monitors-tooloutput — IDs are UUIDs. - No ping data for stats: the monitor must have at least one completed check cycle.
ERR 接続が拒否された / サーバーが応答しない
Check the URL in your config:
https://pulseguard.saniolabs.com/mcp
- No trailing slash.
- No
/api/prefix — the endpoint is at/mcpdirectly. - Run the
curlcommand from the Generic HTTP tab above to confirm connectivity from your machine.
変更履歴
2026-04-02
Unified Navigation & New Tools
- Unified marketing navigation across all pages (x-marketing-nav)
- Added
list-all-incidents-toolfor bulk incident reporting - Monitor deletion is now available only with Full Access, an eligible paid plan, and the exact monitor ID
- App logo now links to homepage; simplified auth-aware CTAs
- Removed forced dashboard redirect for logged-in users
2026-03-30
Initial release
- SSE-based Remote MCP server at
/api/mcp/sse - 5 monitors & stats tools
MCP server version: 1.61.0 · Protocol: MCP 2024-11-05 · Transport: SSE