Pulsetic MCP Server
공식Pulsetic MCP 서버는 Pulsetic 모니터링을 AI 에이전트 및 MCP 호환 도구와 연결하여, Model Context Protocol(MCP)을 통해 가동 시간 데이터, 크론 모니터링 결과, 인시던트 관리 워크플로우, 상태 페이지 정보에 직접 접근할 수 있도록 합니다. 이를 통해 팀은 운영 모니터링 데이터를 구조화된 형식으로 안전하게 노출할 수 있으며, 맞춤형 미들웨어 없이 AI 기반 자동화, 모니터링 어시스턴트, 지능형 운영 워크플로우를 쉽게 구축할 수 있습니다.
Pulsetic MCP(으)로 무엇을 할 수 있나요?
- 모니터 상태 및 가동 시간 확인 —
list_monitors로 모든 모니터를 요청하거나get_monitor_stats를 통해 특정 모니터의 상세 통계를 확인합니다. - 다운타임 이벤트 조사 —
get_monitor_events로 온라인/오프라인 이벤트를 검색하거나get_monitor_downtime을 사용하여 총 다운타임 초를 확인합니다. - 모니터 생성 및 관리 —
create_monitor로 새로운 HTTP, TCP 또는 ICMP 모니터를 추가하고,update_monitor로 설정을 업데이트하거나 검사를 일시 중지/재개합니다. - 상태 페이지에서 인시던트 처리 —
create_incident,update_incident,resolve_incident를 사용하여 인시던트 수명 주기를 관리하고 상태 업데이트를 게시합니다. - 유지보수 기간 예약 —
create_maintenance로 예정된 유지보수 기간을 생성하거나delete_maintenance를 사용하여 제거합니다.
문서
Pulsetic MCP 서버
모델 컨텍스트 프로토콜(MCP)을 사용하여 AI 어시스턴트를 Pulsetic 모니터링 플랫폼에 연결하세요.
MCP란 무엇인가요?
모델 컨텍스트 프로토콜은 AI 어시스턴트가 외부 도구 및 서비스와 상호 작용할 수 있도록 하는 개방형 표준입니다. Pulsetic의 MCP 서버를 사용하면 AI 어시스턴트에게 자연어 대화를 통해 모니터 상태 확인, 인시던트 생성, 유지보수 일정 예약 등을 요청할 수 있습니다.
지원 클라이언트:
- Claude Desktop — Anthropic의 데스크톱 앱
- Claude Code — Anthropic의 개발자용 CLI
- ChatGPT — OpenAI의 AI 어시스턴트 (OAuth 경유)
- Cursor — AI 기반 코드 편집기
- Windsurf — AI 기반 IDE
- MCP 사양을 구현하는 모든 클라이언트
사전 요구 사항
- API 액세스가 포함된 요금제(Business 또는 Enterprise)의 Pulsetic 계정.
- Pulsetic API 키 — 대시보드의 설정 → API에서 생성하세요.
- MCP 호환 AI 클라이언트.
설정
Claude Desktop
Claude Desktop은 stdio 기반 MCP 서버를 사용합니다. mcp-remote을 사용하여 원격 HTTP 엔드포인트를 연결하세요. 설정 → 개발자 → 구성 편집을 열고 다음을 추가하세요:
{
"mcpServers": {
"pulsetic": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://api.pulsetic.com/mcp",
"--header", "Authorization: Bearer YOUR_API_KEY"
]
}
}
}
YOUR_API_KEY을 실제 API 키로 교체하세요. 적용하려면 Claude Desktop을 다시 시작하세요.
Claude Code
프로젝트의 .mcp.json 파일에 서버를 추가하세요:
{
"mcpServers": {
"pulsetic": {
"type": "streamableHttp",
"url": "https://api.pulsetic.com/mcp",
"headers": {
"Authorization": "YOUR_API_KEY"
}
}
}
}
Cursor
설정 → MCP 서버 → 서버 추가를 열고 다음을 구성하세요:
- 유형: streamableHttp
- URL:
https://api.pulsetic.com/mcp - 헤더:
Authorization: YOUR_API_KEY
ChatGPT
ChatGPT는 개발자 모드를 통해 네이티브 MCP를 지원합니다. Pulsetic 인증에는 OAuth를 사용합니다.
1단계. ChatGPT에서 개발자 모드 활성화: 활성화된 앱 → 고급 설정 → 개발자 모드로 이동하여 토글을 켭니다. ChatGPT Pro, Plus, Team, Business, Enterprise, Edu 사용자에게 제공됩니다.
2단계. 새 앱 생성: 활성화된 앱 → 앱 만들기로 이동합니다.
3단계. 앱 세부 정보를 입력합니다:
| 필드 | 값 |
|---|---|
| 이름 | Pulsetic MCP (또는 원하는 이름) |
| 설명 | Uptime monitoring (선택 사항) |
| MCP 서버 URL | https://api.pulsetic.com/mcp |
| 인증 | OAuth |
4단계. OAuth 엔드포인트는 서버에서 자동으로 검색됩니다. 고급 설정에서 확인할 수 있습니다:
| 필드 | 값 |
|---|---|
| 인증 URL | https://api.pulsetic.com/mcp/oauth/authorize |
| 토큰 URL | https://api.pulsetic.com/mcp/oauth/token |
| 등록 URL | https://api.pulsetic.com/mcp/oauth/register |
5단계. **"이해했으며 계속 진행합니다"**를 체크하고 만들기를 클릭합니다.
6단계. OAuth 로그인 흐름을 완료합니다. 계정 이메일과 API 토큰을 입력하는 Pulsetic 인증 페이지로 리디렉션됩니다.
이메일은 API 토큰과 일치해야 합니다. 인증 페이지에서 입력하는 이메일은 제공하는 API 토큰의 소유자와 일치해야 합니다.
API 키를 비공개로 유지하세요. API 키는 Pulsetic 계정에 대한 전체 액세스 권한을 가집니다. 버전 관리에 커밋하거나 공개적으로 공유하지 마세요.
사용 가능한 도구
MCP 서버는 네 가지 범주로 구성된 17개의 도구를 제공합니다.
모니터
| 도구 | 설명 |
|---|---|
list_monitors | 상태, 가동 시간, 응답 시간과 함께 모든 모니터를 나열합니다. |
get_monitor | 특정 모니터에 대한 자세한 정보를 가져옵니다. |
get_monitor_stats | 1일/7일/30일/90일 동안의 가동률(%), 중단 시간, 응답 시간입니다. |
get_monitor_events | 날짜 범위 내의 온라인/오프라인 이벤트입니다. |
get_monitor_downtime | 특정 기간 동안의 총 중단 시간(초)입니다. |
create_monitor | 새 HTTP, TCP 또는 ICMP 모니터를 생성합니다. |
update_monitor | 모니터의 이름, URL, 빈도 또는 설정을 업데이트합니다. |
delete_monitor | 모니터를 영구적으로 삭제합니다. |
pause_monitor | 모니터링을 일시 중지합니다(검사 중지). |
resume_monitor | 일시 중지된 모니터를 재개합니다. |
상태 페이지
| 도구 | 설명 |
|---|---|
list_status_pages | 제목, 슬러그, 도메인과 함께 모든 상태 페이지를 나열합니다. |
인시던트
| 도구 | 설명 |
|---|---|
list_incidents | 상태 페이지의 인시던트를 나열합니다. |
create_incident | 초기 상태 업데이트와 함께 새 인시던트를 생성합니다. |
update_incident | 기존 인시던트에 상태 업데이트를 게시합니다. |
resolve_incident | 인시던트를 해결됨으로 표시합니다. |
유지보수
| 도구 | 설명 |
|---|---|
create_maintenance | 상태 페이지에 유지보수 기간을 예약합니다. |
delete_maintenance | 예약된 유지보수 기간을 삭제합니다. |
사용 예시
구성이 완료되면 자연어를 통해 Pulsetic과 상호 작용할 수 있습니다.
모니터 확인하기
"Show me all my monitors and their current status."
"What's the uptime for my production API monitor over the last 30 days?"
"Are any of my monitors currently down?"
"Show me the downtime events for monitor 42 in the past week."
모니터 관리하기
"Create a new monitor for https://api.example.com that checks every 30 seconds."
"Pause the staging monitor while we do the migration."
"Resume all paused monitors."
"Change the check frequency of monitor 15 to 60 seconds."
"Delete the old marketing-site monitor."
인시던트 처리하기
"Create an incident on our main status page: 'Elevated API latency'
with status investigating and message 'We're looking into slow response times.'"
"Update the API latency incident to identified: 'Root cause is a database
connection pool issue. Working on a fix.'"
"Resolve incident 8 with message 'Connection pool limits increased.
Response times back to normal.'"
유지보수 예약하기
"Schedule a maintenance window on status page 1 called 'Database upgrade'
starting 2025-03-20 at 2am UTC and ending at 4am UTC."
"Delete the maintenance window we scheduled for next week."
cURL로 테스트하기
cURL을 사용하여 MCP 엔드포인트를 직접 테스트하여 API 키가 작동하는지 확인할 수 있습니다.
초기화
curl -X POST https://api.pulsetic.com/mcp \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": {"name": "curl", "version": "1.0"}
}
}'
도구 나열
curl -X POST https://api.pulsetic.com/mcp \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
도구 호출
curl -X POST https://api.pulsetic.com/mcp \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "list_monitors",
"arguments": {}
}
}'
도구 레퍼런스
list_monitors
계정의 모든 모니터를 반환합니다.
매개변수 없음.
get_monitor
SSL 인증서 정보를 포함하여 단일 모니터에 대한 전체 세부 정보를 반환합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
monitor_id | integer | 예 | 모니터 ID입니다. |
get_monitor_stats
1일, 7일, 30일, 90일 기간 동안의 가동률(%), 중단 시간, 인시던트 수, 평균 응답 시간을 반환합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
monitor_id | integer | 예 | 모니터 ID입니다. |
get_monitor_events
날짜 범위 내의 온라인/오프라인 이벤트를 반환합니다(최대 100개, 최신순).
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
monitor_id | integer | 예 | 모니터 ID입니다. |
from | string | 아니요 | 시작 날짜(YYYY-MM-DD). 기본값: 7일 전. |
to | string | 아니요 | 종료 날짜(YYYY-MM-DD). 기본값: 오늘. |
get_monitor_downtime
특정 기간 동안의 총 중단 시간(초)과 인시던트 수를 반환합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
monitor_id | integer | 예 | 모니터 ID입니다. |
days | integer | 아니요 | 조회할 기간(일). 기본값: 30. |
create_monitor
새 가동 시간 모니터를 생성합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
url | string | 예 | 모니터링할 URL 또는 호스트 이름입니다. |
name | string | 아니요 | 표시 이름입니다. |
request_type | string | 아니요 | http, tcp, 또는 icmp. 기본값: http. |
uptime_check_frequency | integer | 아니요 | 검사 간격(초). 기본값: 60. |
request_method | string | 아니요 | HTTP 메서드. 기본값: GET. |
request_timeout | integer | 아니요 | 제한 시간(초). 기본값: 30. |
ssl_check | boolean | 아니요 | SSL 모니터링 활성화. |
update_monitor
기존 모니터의 설정을 업데이트합니다. 변경하려는 필드만 포함하세요.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
monitor_id | integer | 예 | 모니터 ID입니다. |
name | string | 아니요 | 새 표시 이름입니다. |
url | string | 아니요 | 새 URL 또는 호스트 이름입니다. |
uptime_check_frequency | integer | 아니요 | 새 검사 간격(초)입니다. |
request_method | string | 아니요 | HTTP 메서드입니다. |
request_timeout | integer | 아니요 | 제한 시간(초)입니다. |
ssl_check | boolean | 아니요 | SSL 모니터링 활성화/비활성화. |
delete_monitor
모니터와 관련된 모든 데이터를 영구적으로 삭제합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
monitor_id | integer | 예 | 모니터 ID입니다. |
pause_monitor
모니터를 일시 중지합니다. 재개될 때까지 검사가 중지됩니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
monitor_id | integer | 예 | 모니터 ID입니다. |
resume_monitor
일시 중지된 모니터를 재개합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
monitor_id | integer | 예 | 모니터 ID입니다. |
list_status_pages
계정의 모든 상태 페이지를 반환합니다.
매개변수 없음.
list_incidents
각 인시던트의 최신 업데이트를 포함하여 상태 페이지의 인시던트를 반환합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
status_page_id | integer | 예 | 상태 페이지 ID입니다. |
create_incident
상태 페이지에 표시될 초기 상태 업데이트와 함께 새 인시던트를 생성합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
status_page_id | integer | 예 | 상태 페이지 ID입니다. |
title | string | 예 | 인시던트 제목입니다. |
status | string | 예 | investigating, identified, monitoring, 또는 resolved. |
message | string | 예 | 초기 업데이트 메시지입니다. |
update_incident
기존 인시던트에 새 상태 업데이트를 게시합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
incident_id | integer | 예 | 인시던트 ID입니다. |
status | string | 예 | investigating, identified, monitoring, 또는 resolved. |
message | string | 예 | 업데이트 메시지입니다. |
title | string | 아니요 | 인시던트 제목을 업데이트합니다. |
resolve_incident
해결 메시지와 함께 인시던트를 해결됨으로 표시합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
incident_id | integer | 예 | 인시던트 ID입니다. |
message | string | 예 | 해결 메시지입니다. |
create_maintenance
상태 페이지에 유지보수 기간을 예약합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
status_page_id | integer | 예 | 상태 페이지 ID입니다. |
name | string | 예 | 유지보수 제목입니다. |
description | string | 아니요 | 유지보수에 대한 설명입니다. |
start | string | 예 | ISO 8601 형식의 시작 시간입니다. |
end | string | 예 | ISO 8601 형식의 종료 시간입니다. |
timezone | string | 아니요 | 시간대(예: UTC, America/New_York). 기본값: UTC. |
delete_maintenance
예약된 유지보수 기간을 삭제합니다.
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
maintenance_id | integer | 예 | 유지보수 기간 ID입니다. |
문제 해결
401 Unauthorized
- API 키가 올바르고 만료되지 않았는지 확인하세요.
Authorization헤더에 키를 전달하고 있는지 확인하세요(원시 토큰 또는Bearer접두사 사용).- 계정이 API 액세스가 활성화된 요금제인지 확인하세요.
OAuth 인증 실패 (ChatGPT)
- 인증 페이지에서 입력하는 이메일이 API 토큰의 소유자와 일치해야 합니다.
- ChatGPT 설정에서 개발자 모드가 활성화되어 있는지 확인하세요.
- 개발자 모드를 지원하는 ChatGPT 요금제(Pro, Plus, Team, Business, Enterprise, Edu)를 사용하고 있는지 확인하세요.
"Monitor not found or access denied"
- 모니터 ID가 존재하지 않거나 다른 계정에 속해 있습니다.
list_monitors을 사용하여 사용 가능한 모니터 ID를 확인하세요.
AI 클라이언트에 도구가 표시되지 않음
- MCP 구성을 편집한 후 AI 클라이언트를 다시 시작하세요.
- URL이 정확히
https://api.pulsetic.com/mcp인지 확인하세요. - cURL로 엔드포인트를 테스트하여 연결성을 확인하세요.
프로토콜 오류 발생
- 요청이
Content-Type: application/json을 사용하는지 확인하세요. jsonrpc필드는 정확히"2.0"이어야 합니다.- 알림을 제외한 모든 요청에
id필드(정수 또는 문자열)를 포함하세요.
API 레퍼런스
MCP 서버는 JSON-RPC 2.0을 사용하는 단일 POST /mcp 엔드포인트를 통해 스트리밍 가능한 HTTP 전송을 이용하여 MCP 사양 (2025-03-26)을 구현합니다.