Last9 MCP Server
공식실시간 프로덕션 컨텍스트(로그, 메트릭, 트레이스)를 로컬 환경으로 원활하게 가져와 코드를 더 빠르게 자동 수정합니다.
문서
Last9 MCP 서버

여러분의 AI 에이전트는 프로덕션에서 무엇이 문제인지 알지 못합니다. 이 서버가 그 문제를 해결합니다.
Last9 MCP 서버는 Claude, Cursor, Windsurf 및 기타 MCP 지원 AI 어시스턴트를 프로덕션 관측 가능성 데이터(로그, 메트릭, 트레이스, 예외, 데이터베이스 쿼리, 알림, 배포)에 직접 연결합니다. 에이전트가 추측을 멈추고 실제 신호를 읽기 시작합니다.
30초 만에 시작하기 (호스팅)
설치할 바이너리 없음. 관리할 토큰 없음. URL 하나와 브라우저에서 OAuth 인증만으로 완료됩니다.
Last9 URL에서 조직 슬러그를 찾으세요: app.last9.io/<org_slug>/...
Claude Code
claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcp
/mcp을 입력하고 last9을 선택한 후 인증하세요. 끝입니다.
Cursor
설정 > MCP > 새 MCP 서버 추가:
{
"mcpServers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
연결을 클릭하고 OAuth를 완료하세요.
VS Code
v1.99 이상이 필요합니다. 명령 팔레트 열기 → MCP: 서버 추가, URL을 붙여넣고 인증하세요.
또는 settings.json에서 직접:
{
"mcp": {
"servers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
}
Windsurf
설정 > Cascade > MCP 마켓플레이스 열기 > 톱니바퀴 아이콘 (mcp_config.json):
{
"mcpServers": {
"last9": {
"serverUrl": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
Claude Web/Desktop
설정 > 커넥터 > 사용자 정의 커넥터 추가. 이름을 last9로 지정하고 URL을 붙여넣은 후 인증하세요.
Claude 조직에 대한 관리자 액세스 권한이 필요합니다.
자체 호스팅 (STDIO)
MCP 클라이언트가 HTTP 전송을 지원하지 않거나 서버를 로컬에서 실행해야 할 때 사용하세요.
설치
Homebrew:
brew install last9/tap/last9-mcp
NPM:
npm install -g @last9/mcp-server@latest
# or directly:
npx -y @last9/mcp-server@latest
바이너리 릴리스 (Windows / 수동):
GitHub 릴리스에서 다운로드:
| 플랫폼 | 아카이브 |
|---|---|
| Windows (x64) | last9-mcp-server_Windows_x86_64.zip |
| Windows (ARM64) | last9-mcp-server_Windows_arm64.zip |
| Linux (x64) | last9-mcp-server_Linux_x86_64.tar.gz |
| Linux (ARM64) | last9-mcp-server_Linux_arm64.tar.gz |
| macOS (x64) | last9-mcp-server_Darwin_x86_64.tar.gz |
| macOS (ARM64) | last9-mcp-server_Darwin_arm64.tar.gz |
새로 고침 토큰 얻기
관리자만 토큰을 생성할 수 있습니다.
- API 액세스로 이동
- 쓰기 권한으로 토큰 생성 클릭
- 복사
클라이언트 구성
Homebrew:
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
NPM:
{
"mcpServers": {
"last9": {
"command": "npx",
"args": ["-y", "@last9/mcp-server@latest"],
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
붙여넣을 위치:
| 클라이언트 | 위치 |
|---|---|
| Claude Web/Desktop | 설정 > 개발자 > 구성 편집 (claude_desktop_config.json) |
| Cursor | 설정 > Cursor 설정 > MCP > 새 글로벌 MCP 서버 추가 |
| Windsurf | 설정 > Cascade > MCP 마켓플레이스 > 톱니바퀴 아이콘 (mcp_config.json) |
| VS Code | { "mcp": { "servers": { ... } } }로 settings.json에서 감싸기 — 세부 정보 |
VS Code STDIO 구성
{
"mcp": {
"servers": {
"last9": {
"type": "stdio",
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
}
NPM의 경우: "command": "npx"을 사용하고 "args": ["-y", "@last9/mcp-server@latest"]을 추가하세요.
Windows
GitHub 릴리스에서 다운로드한 후 압축을 풀고 전체 경로를 지정하세요:
{
"mcpServers": {
"last9": {
"command": "C:\\Users\\<user>\\AppData\\Local\\Programs\\last9-mcp-server.exe",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
Windows에서는 NPM 경로가 더 쉽습니다 — 경로 관리가 필요 없습니다.
환경 변수
| 변수 | 기본값 | 설명 |
|---|---|---|
LAST9_REFRESH_TOKEN | (필수) | API 액세스에서 가져온 새로 고침 토큰 |
LAST9_DATASOURCE | 조직 기본값 | 데이터 소스/클러스터 이름 — 여러 Levitate 클러스터가 있을 때 유용 |
LAST9_API_HOST | app.last9.io | API 호스트 재정의 |
LAST9_MAX_GET_LOGS_ENTRIES | 5000 | 청크된 get_logs 요청의 최대 항목 수 |
LAST9_DEBUG_CHUNKING | false | true로 설정하여 get_logs, get_service_logs, get_traces에 대한 청크 계획 세부 정보 기록 |
LAST9_DISABLE_TELEMETRY | true | false로 설정하여 내부 OTel 추적 활성화 |
OTEL_SDK_DISABLED | — | 표준 OTel 환경 변수. LAST9_DISABLE_TELEMETRY 재정의 |
OTEL_EXPORTER_OTLP_ENDPOINT | — | OTLP 수집기 엔드포인트 (원격 측정이 활성화된 경우에만) |
OTEL_EXPORTER_OTLP_HEADERS | — | OTLP 인증 헤더 (원격 측정이 활성화된 경우에만) |
가능한 작업
서비스 상태
get_service_summary— 모든 서비스의 처리량, 오류율, p95 응답 시간get_service_environments— 서비스에 사용 가능한 환경. 이 도구를 먼저 실행하세요 — 다른 APM 도구는 여기에서env이 필요합니다get_service_performance_details— 전체 분석: 처리량, 오류율, p50/p90/p95/평균/최대, apdex, 가용성get_service_operations_summary— HTTP 엔드포인트, DB 호출, 메시징, HTTP 클라이언트별로 그룹화된 작업get_service_dependency_graph— 업스트림/다운스트림/인프라에 대한 처리량, 지연 시간, 오류율이 포함된 종속성 맵get_exceptions— 서비스 및 스팬 필터가 있는 서버 측 예외
데이터베이스 관측 가능성
OpenTelemetry 트레이스 스팬에서 파생된 데이터베이스 성능을 직접 겨냥한 네 가지 도구. 이미 OTel을 사용 중이라면 추가 계측이 필요 없습니다.
get_databases— 인프라 전체의 모든 데이터베이스 검색: DB 유형, 호스트, 처리량(쿼리/분), p95 지연 시간, 오류율, 종속 서비스 수get_database_slow_queries— 지속 시간별로 정렬된 실제 가장 느린 쿼리 실행, 전체 트레이스로 드릴다운하기 위한 트레이스 ID 포함get_database_queries— 쿼리 패턴 및 집계: 쿼리 실행 빈도, 평균/p95 지속 시간, 오류율get_database_server_metrics— DB 호스트 자체의 서버 측 메트릭 (CPU, 연결, 버퍼 적중률 — DB 시스템에 따라 다름)
PostgreSQL, MySQL, MongoDB, Redis, Aerospike 및 db_system 속성이 있는 OTel 트레이스를 지원하는 모든 것을 지원합니다.
Prometheus / PromQL
prometheus_range_query— 모든 메트릭에 대한 PromQL 범위 쿼리prometheus_instant_query— 즉시 쿼리;avg_over_time,sum_over_time과 같은 롤업 함수 사용prometheus_label_values— 지정된 시리즈에 대한 레이블 값prometheus_labels— 시리즈에 사용 가능한 모든 레이블
LAST9_DATASOURCE을 설정하여 기본값이 아닌 다른 데이터 소스/클러스터를 지정하세요.
로그
get_logs— 전체 JSON 파이프라인 로그 쿼리 (집계, 필터, 필드 추출)get_service_logs— 서비스의 원시 로그 라인, 심각도 및 본문 내용으로 필터링 가능get_log_attributes— 시간 창에 대한 로그 스키마의 속성 글로벌 카탈로그get_log_attributes_for_pipeline— 진행 중인 파이프라인에 실제로 존재하는 로그 필드 (범위 지정 검색), 각각 정확한filter_field포함get_drop_rules— Last9 제어 평면의 로그 삭제 규칙add_drop_rule— 소스에서 로그 볼륨을 줄이기 위한 새 삭제 규칙 생성
트레이스
get_traces— 광범위한 검색 및 집계를 위한 JSON 파이프라인 트레이스 쿼리get_service_traces— 정확한 트레이스 ID 또는 서비스 이름으로 트레이스 조회. 트레이스 ID가 있을 때 사용하세요 — 더 빠릅니다get_trace_attributes— 트레이스 스키마의 속성 글로벌 카탈로그get_trace_attributes_for_pipeline— 진행 중인 파이프라인에 실제로 존재하는 속성 (범위 지정 검색), 각각 정확한filter_field포함get_trace_attribute_values— 트레이스 속성의 고유 값, 선택적으로 파이프라인으로 범위 지정
변경 이벤트 및 알림
get_change_events— 배포, 구성 변경, 롤백. 변경된 사항과 인시던트 연관get_alert_config— 알림 규칙 구성 — 이름, 심각도, 유형, 태그로 검색 가능get_alerts— 시간 창 내에 현재 발생 중인 알림get_alert_rule_state— 시간 범위에 걸친 알림 규칙별 과거 발생 상태 (1/0),rule_id로 그룹화. 알림 그룹, 규칙 이름, 레이블 필터 및 상태로 필터링 가능.get_notification_channels— 구성된 알림 채널 (Slack, PagerDuty, 이메일 등)
사용자 정의 대시보드
list_dashboards— 조직의 모든 사용자 정의 대시보드: ID, 이름 및 메타데이터get_dashboard— ID별 전체 대시보드 정의, 패널 및 쿼리 포함create_dashboard— 패널, 쿼리 및 메타데이터로 새 사용자 정의 대시보드 생성update_dashboard— ID로 기존 대시보드 업데이트 (읽기 전용 시스템 대시보드는 오류 반환)delete_dashboard— ID로 사용자 정의 대시보드 삭제
퍼지 이름 확인
did_you_mean— 에이전트가 엔티티 이름을 확신하지 못할 때, 카탈로그(서비스, 환경, 호스트, 데이터베이스, K8s 배포/네임스페이스, 작업)에서 가장 가까운 일치 항목을 반환합니다. 유사도 점수와 함께 최대 3개의 제안. 이름 조회가 비어 있을 때 대부분의 도구 전에 서버가 자동으로 호출합니다.
작동 방식
모든 응답에 딥 링크. 모든 도구는 deep_link 필드를 반환합니다 — 해당 쿼리 및 시간 범위에 대한 Last9 대시보드로 바로 연결되는 URL입니다. 에이전트가 링크를 건네주면 클릭하여 바로 이동할 수 있습니다.
실시간 속성 캐싱. 시작 시 서버는 데이터에서 실제 로그 및 트레이스 속성 이름을 가져와 도구 설명에 포함시킵니다. 즉, AI 어시스턴트는 일반 목록이 아닌 스키마에 존재하는 필드를 알게 됩니다. 캐시는 2시간마다 새로 고쳐집니다.
청크된 대용량 결과. get_logs 및 get_traces은 잘라내기 대신 청크를 통해 대용량 결과 집합을 처리합니다. 로그의 기본 제한은 5000개 항목이며 LAST9_MAX_GET_LOGS_ENTRIES를 통해 구성 가능합니다.
개발
HTTP 모드, curl 테스트, 소스에서 빌드
HTTP 모드에서 실행
export LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-server
서버가 http://localhost:8080/mcp에서 시작됩니다.
curl로 테스트
MCP 스트리밍 가능 HTTP는 먼저 초기화 핸드셰이크가 필요합니다. 첫 번째 요청에 Mcp-Session-Id를 설정하지 마세요.
# Step 1: Initialize
SESSION_ID=$(curl -si -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "curl-test", "version": "1.0"}
}
}' | grep -i "^Mcp-Session-Id:" | awk '{print $2}' | tr -d '\r')
echo "Session: $SESSION_ID"
# Step 2: Send initialized notification
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc": "2.0", "method": "notifications/initialized", "params": {}}'
# Step 3: List tools
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {}}'
# Step 4: Call a tool
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: $SESSION_ID" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_service_logs",
"arguments": {
"service": "your-service-name",
"lookback_minutes": 30,
"limit": 10
}
}
}'
소스에서 빌드
git clone https://github.com/last9/last9-mcp-server.git
cd last9-mcp-server
go build -o last9-mcp-server
LAST9_HTTP=true ./last9-mcp-server
LAST9_HTTP=true는 로컬 개발용입니다. 실제 사용 시에는 호스팅된 HTTP 엔드포인트가 더 쉽습니다.
도구 참조
모든 매개변수, 시간 입력 표준 및 세부 정보
시간 입력
- 절대 시간 (
start_time_iso/end_time_iso또는time_iso)이lookback_minutes보다 우선합니다. - 상대적 창의 경우:
lookback_minutes을 사용하세요. - 절대적 창의 경우: RFC3339/ISO8601 —
2026-02-09T15:04:05Z을 사용하세요. - 레거시
YYYY-MM-DD HH:MM:SS는 호환성을 위해서만 허용됩니다.
get_exceptions
limit(정수, 선택 사항): 최대 예외 수. 기본값: 20.lookback_minutes(정수, 선택 사항): 기본값: 60.start_time_iso/end_time_iso(문자열, 선택 사항): 절대 시간 범위.service_name(문자열, 선택 사항): 서비스별 필터.span_name(문자열, 선택 사항): 스팬 이름별 필터.deployment_environment(문자열, 선택 사항): 환경별 필터.
get_service_summary
start_time_iso/end_time_iso(문자열, 선택 사항)env(문자열, 선택 사항): 기본값은prod입니다.
get_service_environments
start_time_iso/end_time_iso(문자열, 선택 사항)
다른 모든 APM 도구에는
env값이 필요합니다. 이 값이 비어 있으면""을 사용하세요.
get_service_performance_details
service_name(문자열, 필수)lookback_minutes(정수, 선택 사항): 기본값: 60.start_time_iso/end_time_iso(문자열, 선택 사항)env(문자열, 선택 사항): 기본값은prod입니다.
get_service_operations_summary
service_name(문자열, 필수)lookback_minutes(정수, 선택): 기본값: 60.start_time_iso/end_time_iso(문자열, 선택)env(문자열, 선택): 기본값은prod.
get_service_dependency_graph
service_name(문자열, 선택)lookback_minutes(정수, 선택): 기본값: 60.start_time_iso/end_time_iso(문자열, 선택)env(문자열, 선택): 기본값은prod.
get_databases
env(문자열, 선택): 환경별 필터. 기본값: all.lookback_minutes(정수, 선택): 기본값: 60.start_time_iso/end_time_iso(문자열, 선택)
get_database_slow_queries
db_system(문자열, 선택): 예:postgresql,mysql,mongodb,redis.host(문자열, 선택): 데이터베이스 호스트 (net_peer_name).service_name(문자열, 선택): 호출 서비스 이름.env(문자열, 선택)min_duration_ms(실수, 선택): 최소 쿼리 지속 시간(ms).lookback_minutes(정수, 선택): 기본값: 60.start_time_iso/end_time_iso(문자열, 선택)limit(정수, 선택): 기본값: 20.
get_database_queries
db_system(문자열, 선택)host(문자열, 선택)service_name(문자열, 선택)env(문자열, 선택)lookback_minutes(정수, 선택): 기본값: 60.start_time_iso/end_time_iso(문자열, 선택)limit(정수, 선택): 기본값: 20.
get_database_server_metrics
db_system(문자열, 필수): 예:postgresql,mysql,mongodb,redis,aerospike.host(문자열, 선택)lookback_minutes(정수, 선택): 기본값: 60.start_time_iso/end_time_iso(문자열, 선택)
prometheus_range_query
query(문자열, 필수): PromQL 쿼리.start_time_iso/end_time_iso(문자열, 선택): 기본값은 최근 60분.lookback_minutes(실수, 선택): 기본값: 60.
prometheus_instant_query
query(문자열, 필수)time_iso(문자열, 선택): 기본값은 현재 시각.lookback_minutes(실수, 선택)
prometheus_label_values
match_query(문자열, 선택): PromQL 필터.label(문자열, 필수): 레이블 이름.start_time_iso/end_time_iso(문자열, 선택)
prometheus_labels
match_query(문자열, 선택): PromQL 필터.start_time_iso/end_time_iso(문자열, 선택)
get_logs
logjson_query(배열, 필수): JSON 파이프라인 쿼리.lookback_minutes(정수, 선택): 기본값: 5.start_time_iso/end_time_iso(문자열, 선택)limit(정수, 선택): 서버 기본값: 5000.index(문자열, 선택):physical_index:<name>또는rehydration_index:<block_name>.
로그 기반 서비스 인벤토리의 경우, 먼저 physical_index_service_count를 쿼리하세요:
sum by (name, service_name, env) (physical_index_service_count{destination="logs"})
service_name를 ServiceName으로, 환경이 있으면 env을 환경으로, name을 물리적 인덱스 이름으로 사용하세요. name="default"인 경우 index을 생략하고, 사용자가 선택한 비기본 물리적 인덱스의 경우 index: "physical_index:<name>"을 전달하세요. 백엔드가 명시적 물리적 인덱스 필터링을 거부하면 index 없이 재시도하고 해당 백엔드에서 명시적 물리적 인덱스 필터링을 사용할 수 없다고 보고하세요.
get_service_logs
service(문자열, 필수)lookback_minutes(정수, 선택): 기본값: 60.limit(정수, 선택): 기본값: 20.env(문자열, 선택)severity_filters(배열, 선택): 예:["error", "warn"]. OR 논리.body_filters(배열, 선택): 예:["timeout", "failed"]. OR 논리.start_time_iso/end_time_iso(문자열, 선택)index(문자열, 선택)
여러 필터 유형은 AND로 결합됩니다. 각 배열은 내부적으로 OR을 사용합니다.
먼저 get_logs를 사용하여 광범위한 집계 수를 얻고, 서비스/환경/인덱스 및 작은 샘플 세트로 좁힌 후에만 get_service_logs를 사용하세요.
get_log_attributes
lookback_minutes(정수, 선택): 기본값: 15.start_time_iso/end_time_iso(문자열, 선택)region(문자열, 선택)index(문자열, 선택)
get_log_attributes_for_pipeline
pipeline(배열, 필수): 검색 범위를 지정하는 사전 필터 단계, 예:[{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}].lookback_minutes(정수, 선택): 기본값: 15.start_time_iso/end_time_iso(문자열, 선택)region(문자열, 선택)index(문자열, 선택)
get_drop_rules
매개변수 없음.
add_drop_rule
name(문자열, 필수)filters(배열, 필수): 각 필터:key,value,operator(equals/not_equals),conjunction(and).
get_traces
광범위한 검색 및 집계에 사용합니다. 정확한 트레이스 ID 조회에는 get_service_traces를 사용하세요.
tracejson_query(배열, 필수)start_time_iso/end_time_iso(문자열, 선택)lookback_minutes(정수, 선택): 기본값: 60.limit(정수, 선택): 기본값: 5000.
get_service_traces
trace_id 또는 service_name 중 정확히 하나가 필수입니다.
trace_id(문자열, 선택): 기본 조회 기간: 72시간.service_name(문자열, 선택): 기본 조회 기간: 60분.lookback_minutes(정수, 선택)start_time_iso/end_time_iso(문자열, 선택)limit(정수, 선택): 기본값: 10.env(문자열, 선택)
get_trace_attributes
lookback_minutes(정수, 선택): 기본값: 15.start_time_iso/end_time_iso(문자열, 선택)region(문자열, 선택)
get_trace_attributes_for_pipeline
pipeline(배열, 필수): 검색 범위를 지정하는 사전 필터 단계, 예:[{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}].lookback_minutes(정수, 선택): 기본값: 15.start_time_iso/end_time_iso(문자열, 선택)region(문자열, 선택)
get_trace_attribute_values
tag_name(문자열, 필수):get_trace_attributes의 속성 이름 (예:resource_department또는attributes['http.method']).pipeline(배열, 선택): 값의 범위를 지정하는 사전 필터 단계; 전역 값의 경우 생략.region(문자열, 선택)
get_change_events
start_time_iso/end_time_iso(문자열, 선택)lookback_minutes(정수, 선택): 기본값: 60.service(문자열, 선택)environment(문자열, 선택)event_name(문자열, 선택):available_event_names를 얻으려면 먼저 이 매개변수 없이 호출하세요.
get_alert_config
search_term(문자열, 선택): 이름, 그룹, 데이터 소스, 태그 전반의 자유 텍스트 검색.rule_name(문자열, 선택)severity(문자열, 선택)rule_type(문자열, 선택):static또는anomaly.alert_group_name/alert_group_type/data_source_name(문자열, 선택)tags(배열, 선택): 모두 일치해야 함 (AND 논리).
get_alerts
time_iso(문자열, 선택): RFC3339 형식의 평가 시간.window(정수, 선택): 조회 기간(초). 기본값: 900. 범위: 60–86400.lookback_minutes(정수, 선택): 범위: 1–1440.
get_alert_rule_state
start_time(정수, 필수): 범위의 Unix epoch 시작 (포함).end_time(정수, 필수): 범위의 Unix epoch 종료 (포함).step(정수, 필수): 샘플 간 해상도(초). 샘플 수((end_time - start_time) / step + 1)는 100으로 제한됩니다.alert_group_id(문자열, 선택): 알림 그룹 ID로 필터링.rule_name(문자열, 선택): 규칙 이름에 대한 정규식 필터.alert_group_name(문자열, 선택): 알림 그룹 이름에 대한 정규식 필터.label_filters(문자열, 선택): 쉼표로 구분된key=value레이블 필터.state(문자열, 선택): 상태별 필터 (예:firing).
rule_id -> [{timestamp, is_firing}]의 JSON 맵을 반환합니다. 업스트림 응답에 규칙이 없는 타임스탬프는 is_firing=0로 보고됩니다 — 이는 "발생 중으로 관찰되지 않음"을 의미하며, 확인된 정상 상태가 아닙니다.
get_notification_channels
매개변수 없음. 구성된 모든 알림 채널(Slack, PagerDuty, 이메일, 웹훅 등)을 반환합니다.
did_you_mean
query(문자열, 필수): 검색할 이름 — 부분, 철자 오류 또는 약어.type(문자열, 선택): 엔티티 유형으로 제한:service,environment,host,database,k8s_deployment,k8s_namespace,job.
유사도 점수와 함께 최대 3개의 가장 가까운 일치 항목을 반환합니다. 엔티티 이름이 불확실한 도구 호출 전에 사용하세요. 이전 호출에서 빈 결과가 반환된 경우 재시도하기 전에 이 도구를 사용해 보세요.
list_dashboards
매개변수 없음. 조직의 모든 사용자 정의 대시보드를 id, name 및 메타데이터가 포함된 JSON 배열로 반환합니다.
get_dashboard
id(문자열, 필수): 대시보드 UUID.region(문자열, 선택): 패널 쿼리 채우기를 위한 리전. 기본값은 구성된 데이터 소스 리전입니다.
create_dashboard
dashboard(객체, 필수):name및panels[]이 포함된 대시보드 정의. 각 패널에는name,version,layout(x,y,w,h),visualization.type및queries[]이 필요합니다.metadata(객체, 선택): 대시보드 메타데이터 —_category및_type필드 (예:{"_category":"custom","_type":"metrics"}).
update_dashboard
id(문자열, 필수): 업데이트할 대시보드 UUID.dashboard(객체, 필수): 전체 교체 대시보드 본문 (생성과 동일한 형태).metadata(객체, 선택): 교체 메타데이터. 읽기 전용 시스템 대시보드는 403 오류를 반환합니다.
delete_dashboard
id(문자열, 필수): 삭제할 대시보드 UUID. 읽기 전용 시스템 대시보드는 삭제할 수 없습니다.
테스트
통합 테스트 설정 및 지침은 TESTING.md를 참조하세요.
