Skip to main content
Glama
AryanBansal-launch

observer-launch-mcp

observer-launch-mcp

Observe 데이터에 대해 Claude에게 질문하세요 -- 최근 오류, 흔한 실패, 포드별 로그 볼륨 등을 OPAL을 직접 작성하지 않고도 알 수 있습니다. 이 MCP 서버는 Claude에게 Observe 테넌트에 대한 직접적이고 실시간 액세스를 제공합니다.

설정 (2단계)

1. 설정 마법사를 실행하세요. Observe 자격 증명과 데이터셋 별칭을 묻고, Claude Code에 자동으로 등록합니다:

npx @aryanbansal-launch/observer-launch-mcp init

다음 항목을 입력하라는 메시지가 표시됩니다:

  • Observe 고객 ID -- 숫자이며, Observe URL에서 찾을 수 있습니다.

  • Observe API 키 -- 계정 관리 → 내 API 토큰에서 생성하세요. (수집/데이터스트림 토큰이 아닙니다 -- 비슷해 보이지만 여기서는 작동하지 않습니다.)

  • 클러스터 -- 예: eu-1. 기본 US 테넌트를 사용하는 경우 비워 두세요.

  • 데이터셋 별칭 (선택 사항) -- 자주 질문할 데이터셋의 친숙한 이름, 예: launch-management41249178. ID는 Observe UI에서 찾을 수 있습니다: 데이터셋을 열면 URL에 있습니다. 이 단계를 건너뛰고 원시 데이터셋 ID를 사용하거나 나중에 별칭을 추가할 수 있습니다.

2. Claude Code를 다시 시작 (또는 새 세션 시작)하여 새 서버를 인식하게 하세요. 작동하는지 확인하세요:

Is the Observe connection working?

이것으로 끝입니다 -- 아래의 다른 도구들이 이제 채팅에서 사용 가능합니다.

claude mcp add observe -s user \
  -e OBSERVE_CUSTOMER_ID=<your id> \
  -e OBSERVE_API_KEY=<your token> \
  -e OBSERVE_CLUSTER=eu-1 \
  -e OBSERVE_DATASETS='{"launch-management":"41249178"}' \
  -- node <path to installed server.js>

절대 경로만 원한다면 먼저 npx @aryanbansal-launch/observer-launch-mcp init을 한 번 실행하세요 -- 실행 직전에 실행할 정확한 명령을 출력합니다. 최종 항목으로 npx <package>가 아닌 직접 node <path> 명령을 사용하세요 -- Claude Code는 등록된 서버를 빈 환경(PATH 없음)으로 실행하며, npx의 shebang은 node를 찾기 위해 PATH가 필요하므로, npx-as-command는 조용히 "Failed to connect."를 표시합니다. 마법사는 이미 이를 피해 줍니다.

Related MCP server: Fathom AI MCP Server

무엇을 물어볼 수 있나요

설정이 완료되면 Claude에게 자연스럽게 말하세요:

  • "Observe 연결이 작동하나요?"

  • "어떤 서비스/데이터셋 별칭이 구성되어 있나요?"

  • "지난 1시간 동안 launch-management의 최근 오류를 보여줘"

  • "이번 주 launch-nginx에서 가장 흔한 오류는 무엇인가요?"

  • "지금 launch-management-bg에서 가장 많이 로그를 기록하는 포드는 무엇인가요?"

  • "launch-nginx가 지난 6시간 동안 얼마나 많은 stderr 출력을 생성하나요?"

  • "지난 1시간 동안 launch-telemetry에서 포드별 로그 줄 수를 세어줘"

  • "launch-logs-bg-exporter에서 마지막 20개의 원시 로그 줄을 가져와"

특정 질문 형태로 다루지 않는 모든 것에 대해, 원하는 것을 설명하기만 하면 됩니다 -- Claude가 일반 쿼리 도구를 사용하여 OPAL 파이프라인을 작성할 것입니다.

도구 참조

도구

용도

observe_health_check

"연결이 작동하나요?"

list_known_services

"어떤 데이터셋/별칭이 있나요?"

get_service_errors

한 서비스의 최근 원시 오류, 최신순

get_error_summary

개수별로 정렬된 상위 반복 오류 -- 며칠/몇 주 동안에도 빠름

get_log_stats

포드/노드/컨테이너/스트림/네임스페이스별 로그 개수

run_opal_query

그 외 모든 것 -- 모든 데이터셋에 대한 임의 OPAL 파이프라인

get_error_summaryget_log_stats는 서버 측에서 집계하므로 시간 창에 관계없이 빠릅니다. get_service_errorsrun_opal_query는 집계 없이 6시간 이상의 창을 쿼리하면 경고를 추가합니다. 넓은 창에서 원시 행 덤프는 Observe의 100k 행 제한에 걸릴 수 있기 때문입니다.

로그 형식

한 테넌트의 데이터셋은 로그 스키마를 공유하는 경우가 드물므로, get_service_errorsget_error_summary는 데이터셋별로 형식을 감지하고 (프로세스당 한 번) 일치하는 쿼리를 구성합니다:

형식

모양

오류는

level

{"level":"error","message":...,"context":...} — 앱 서비스

level이 error/fatal/critical/panic/…

http

{"http.status":"500","http.method":...} — nginx/access 로그

http.status 5xx (minStatus=400을 전달하면 4xx도 포함)

text

구조화되지 않은 모든 것

원시 줄의 키워드 일치

모든 결과는 감지된 형식을 알려줍니다. 프로브를 건너뛰려면 데이터셋 구성에 선언하세요:

{ "launch-nginx": { "id": "41250854", "shape": "http" } }

일반 "alias": "id" 항목은 여전히 작동하며 자동 감지됩니다.

적용 범위는 보고되며 숨겨지지 않습니다. level 데이터셋에서 일부 줄에는 구문 분석 가능한 level 필드가 없으며(스택 추적, 단순 문자열, 비-JSON 출력) 심각도 필터가 이를 볼 수 없습니다. 그 비율이 1%를 초과하면 도구가 이를 알려줍니다:

Note: 529 of 2136 rows (24.8%) have no parseable "level" field and were not
scanned. Pass includeUnparsed=true to keyword-match those too.

includeUnparsed=true는 해당 줄을 키워드 스캔합니다. 키워드 일치는 "error"라는 단어를 포함하는 info 줄도 표시하므로 선택 사항입니다.

구성 참조

변수

필수

설명

OBSERVE_CUSTOMER_ID

Observe 고객 ID (숫자).

OBSERVE_API_KEY

계정 관리 → 내 API 토큰의 베어러 토큰 (또는 장기 사용을 위한 서비스 계정 토큰).

OBSERVE_CLUSTER

아니요

예: eu-1. 기본(US) 테넌트의 경우 설정하지 마세요.

OBSERVE_BASE_URL

아니요

테넌트가 {id}.{cluster}.observeinc.com 패턴을 따르지 않는 경우 전체 재정의.

OBSERVE_LOOKUP_TIMEOUT_SEC

아니요

쿼리 시간 제한(초) (기본값 300).

OBSERVE_DATASETS

아니요

별칭 → 데이터셋 ID의 인라인 JSON 매핑, 예: {"logs":"41001999"}. 항목은 {"id":"...","shape":"level|http|text"}일 수 있습니다.

OBSERVE_DATASETS_FILE

아니요

더 큰 구성을 위한 동일한 형태의 JSON 파일 경로.

OBSERVE_MAX_RESPONSE_BYTES

아니요

단일 도구 응답의 상한 (기본값 200000). 초과하면 행이 삭제되고 응답이 이를 알려줍니다.

OBSERVE_KEEP_INTERNAL_COLS

아니요

기본적으로 제거되는 link_*, containerId, clusterUid 열을 유지하려면 1로 설정.

데이터셋 ID는 테넌트별로 다르며 의도적으로 이 패키지에 포함되지 않습니다. 구성된 것이 없으면 별칭 조회는 대체되고 원시 숫자 데이터셋 ID를 모든 도구에 직접 전달할 수 있습니다.

문제 해결

  • 상태 확인 실패 → API 키가 계정 관리 → 내 API 토큰의 토큰이 아니라 수집/데이터스트림 토큰일 가능성이 높습니다. 다시 생성하세요.

  • 수동으로 등록한 항목에서 claude mcp list가 "Failed to connect"를 표시 → 명령이 node <path>인지 확인하세요. npx <package>가 아닌지 (위의 콜아웃 참조).

  • 도구가 "Unknown service/dataset"을 반환list_known_services를 실행하여 구성된 것을 확인하거나 원시 숫자 데이터셋 ID를 전달하세요.

  • get_service_errors/get_error_summary가 유용한 것을 반환하지 않음 → 결과의 "Detected log format" 메모를 확인하세요. 잘못 추측한 경우 {"alias": {"id": "...", "shape": "http"}}로 형식을 명시적으로 고정하세요 (로그 형식 참조). text라고 표시되면 로그에 심각도 필드가 없으며 일치는 키워드 기반입니다.

  • Observe UI에서 볼 수 있는 오류가 결과에 누락됨 → 적용 범위 메모를 찾으세요. 구문 분석 가능한 level이 없는 줄은 기본적으로 건너뜁니다. includeUnparsed=true를 전달하세요.

기여

npm install
npm run build   # tsc, then chmod +x on the bin entry
npm publish      # only if you intend to ship a new version

src/run-server.tsget_error_summary/get_log_stats 패턴을 복사하여 다른 반복 OPAL 쿼리(예: 서비스별 비용, 지연 시간 백분위수)에 사용하세요 -- 도구에 설명적인 이름/설명을 지정하여 Claude가 적절할 때 run_opal_query 대신 선택하도록 하세요.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AryanBansal-launch/Observe-launch-mcp-draft'

If you have feedback or need assistance with the MCP directory API, please join our Discord server