Skip to main content
Glama
AryanBansal-launch

observer-launch-mcp

observer-launch-mcp

Observe のデータについてClaudeに質問できます。最近のエラー、よくある障害、ポッドごとのログ量など、OPALを手書きせずに確認できます。これは、ClaudeにObserveテナントへの直接のライブアクセスを提供するMCPサーバーです。

セットアップ(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をコマンドとして使用すると、静かに「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

1つのサービスの最近の生エラー(新しい順)

get_error_summary

件数でランク付けされた上位の繰り返しエラー -- 数日/数週間にわたっても高速

get_log_stats

ポッド/ノード/コンテナ/ストリーム/名前空間でグループ化されたログ数

run_opal_query

その他すべて -- 任意のデータセットに対する任意のOPALパイプライン

get_error_summaryget_log_stats はサーバー側で集約するため、時間枠に関係なく高速です。get_service_errorsrun_opal_query は、集約なしで6時間以上のウィンドウをクエリすると警告を追加します。広いウィンドウでの生の行ダンプは、Observeの10万行の上限のリスクがあるためです。

ログ形式

1つのテナント内のデータセットが同じログスキーマを共有することはほとんどないため、get_service_errorsget_error_summary はデータセットごとに形式を検出し(プロセスごとに1回)、一致するクエリを構築します。

形式

見た目

エラーは

level

{"level":"error","message":...,"context":...} — アプリサービス

level が error/fatal/critical/panic/…

http

{"http.status":"500","http.method":...} — nginx/アクセスログ

http.status 5xx(4xxも含めるには minStatus=400 を渡す)

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_*containerIdclusterUid 列を保持するには 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 が有用なものを返さない → 結果の「検出されたログ形式」の注記を確認してください。誤って推測された場合は、{"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