IBM Instana MCP Server

resmi

Server MCP IBM Instana memungkinkan interaksi yang mulus dengan platform observabilitas IBM Instana, sehingga Anda dapat mengakses data observabilitas waktu nyata langsung dalam alur kerja pengembangan Anda.

Apa yang bisa Anda lakukan dengan IBM Instana MCP?

  • Ambil cuplikan infrastruktur — Minta cuplikan dari host, proses, atau wadah tertentu menggunakan get_infra_snapshot.
  • Analisis metrik aplikasi atau layanan — Minta metrik deret waktu untuk panggilan, kesalahan, atau latensi dengan get_app_metrics atau get_service_metrics.
  • Daftar peringatan dan insiden aktif — Dapatkan peringatan, insiden, atau peringatan pintar global saat ini melalui get_alerts dan get_incidents.
  • Periksa peristiwa Kubernetes — Tarik peristiwa Kubernetes terbaru untuk klaster atau namespace dengan get_k8s_events.
  • Kueri data pemantauan situs web — Ambil metrik kinerja situs web atau hasil beacon melalui get_website_metrics.

Dokumentasi

Daftar Isi

Server MCP untuk IBM Instana

📚 Tautan Cepat


Server MCP Instana memungkinkan interaksi yang mulus dengan platform observabilitas Instana, memungkinkan Anda mengakses data observabilitas waktu nyata langsung dalam alur kerja pengembangan Anda.

Server ini berfungsi sebagai jembatan antara klien (seperti agen AI atau alat kustom) dan REST API Instana, mengonversi kueri pengguna menjadi permintaan API Instana dan memformat respons ke dalam format terstruktur yang mudah digunakan.

Server mendukung mode transport HTTP Streamable dan Stdio untuk kompatibilitas maksimum dengan berbagai klien MCP. Untuk detail lebih lanjut, lihat spesifikasi Mode Transport MCP.

Ikhtisar Arsitektur

graph LR
    subgraph "Application Host Process"
        MH[MCP Host]
        MSI[Instana MCP Server]
        MST[ProductA MCP Server]
        MSC[ProductB MCP Server]

        MH <--> MSI
        MH <--> MSC
        MH <--> MST
    end

    subgraph "Remote Service"
        II[Instana Instance]
        TI[ProductA Instance]
        CI[ProductB Instance]

        MSI <--> II
        MST <--> TI
        MSC <--> CI
    end

    subgraph "LLM"
        L[LLM]
        MH <--> L
    end

Alur Kerja

Pertimbangkan contoh sederhana: Anda menggunakan Host MCP (seperti Claude Desktop, VS Code, atau klien lain) yang terhubung ke Server MCP Instana. Saat Anda meminta informasi tentang peringatan Instana, proses berikut terjadi:

  1. Klien MCP mengambil daftar alat yang tersedia dari server MCP Instana
  2. Kueri Anda dikirim ke LLM bersama dengan deskripsi alat
  3. LLM menganalisis alat yang tersedia dan memilih yang sesuai untuk mengambil peringatan Instana
  4. Klien menjalankan alat yang dipilih melalui server MCP Instana
  5. Hasil (peringatan terbaru) dikembalikan ke LLM
  6. LLM merumuskan respons bahasa alami
  7. Respons ditampilkan kepada Anda
sequenceDiagram
    participant User
    participant ChatBot as MCP Host
    participant MCPClient as MCP Client
    participant MCPServer as Instana MCP Server
    participant LLM
    participant Instana as Instana Instance

    ChatBot->>MCPClient: Load available tools from MCP Server
    MCPClient->>MCPServer: Request available tool list
    MCPServer->>MCPClient: Return list of available tools
    User->>ChatBot: Ask "Show me the latest alerts from Instana for application robot-shop"
    ChatBot->>MCPClient: Forward query
    MCPClient->>LLM: Send query and tool description
    LLM->>MCPClient: Select appropriate tool(s) for Instana alert query
    MCPClient->>MCPServer: Execute selected tool(s)
    MCPServer->>Instana: Retrieve alerts for application robot-shop
    MCPServer->>MCPClient: Send alerts of Instana result
    MCPClient->>LLM: Forward alerts of Instana
    LLM->>ChatBot: Generate natural language response for Instana alerts
    ChatBot->>User: Show Instana alert response

Prasyarat

Opsi 1: Instal dari PyPI (Direkomendasikan)

Cara termudah untuk menggunakan mcp-instana adalah dengan menginstalnya langsung dari PyPI:

pip install mcp-instana

Setelah instalasi, Anda dapat menjalankan server menggunakan perintah mcp-instana secara langsung.

Opsi 2: Instalasi Pengembangan

Untuk pengembangan atau kustomisasi lokal, Anda dapat mengkloning dan menyiapkan proyek secara lokal.

Menginstal uv

Proyek ini menggunakan uv, penginstal dan penyelesai paket Python yang cepat. Untuk menginstal uv, Anda memiliki beberapa opsi:

Menggunakan pip:

pip install uv

Menggunakan Homebrew (macOS):

brew install uv

Untuk opsi instalasi lainnya dan petunjuk terperinci, kunjungi dokumentasi uv.

Menyiapkan Lingkungan

Setelah menginstal uv, siapkan lingkungan proyek dengan menjalankan:

uv sync

Autentikasi Berbasis Header untuk Mode HTTP Streamable

Saat menggunakan mode HTTP Streamable, Anda harus meneruskan kredensial Instana melalui header HTTP. Pendekatan ini meningkatkan keamanan dan fleksibilitas dengan:

  • Menghindari penyimpanan kredensial di variabel lingkungan
  • Memungkinkan penggunaan kredensial yang berbeda untuk permintaan yang berbeda
  • Mendukung lingkungan bersama di mana modifikasi variabel lingkungan dibatasi
  • Mendukung autentikasi berbasis token API dan sesi

Mode Autentikasi yang Didukung:

1. Autentikasi Token API (Panggilan API Langsung)

Header yang Diperlukan:

  • instana-base-url: URL instans Instana Anda
  • instana-api-token: Token API Instana Anda

Contoh:

--header "instana-base-url: https://your-instance.instana.io"
--header "instana-api-token: your-api-token"

2. Autentikasi Token Sesi (Panggilan yang Dimulai UI)

Header yang Diperlukan:

  • instana-base-url: URL instans Instana Anda
  • instana-auth-token: Token autentikasi sesi dari backend UI
  • instana-csrf-token: Token CSRF dari backend UI
  • instana-cookie-name: (Opsional) Nama cookie untuk auth sesi (default: instanaAuthToken)

Contoh:

--header "instana-base-url: https://your-instance.instana.io"
--header "instana-auth-token: your-session-token"
--header "instana-csrf-token: your-csrf-token"
--header "instana-cookie-name: in-token"

3. Autentikasi Token JWT (Integrasi Platform IBM)

Header yang Diperlukan:

  • instana-base-url: URL instans Instana Anda
  • instana-jwt-token: Token JWT dari Platform IBM
  • instana-csrf-token: Token CSRF untuk validasi permintaan

Contoh Konfigurasi:

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://0.0.0.0:8080/mcp",
        "--allow-http",
        "--header",
        "instana-base-url: https://your-instana-instance.instana.io",
        "--header",
        "instana-jwt-token: your_jwt_token_here",
        "--header",
        "instana-csrf-token: your_csrf_token_here"
      ]
    }
  }
}

Prioritas Autentikasi:

  1. Token JWT (jika disediakan dengan token CSRF) - Diutamakan untuk integrasi Platform IBM
  2. Token Sesi (jika auth_token dan csrf_token disediakan)
  3. Token API (jika disediakan) - Autentikasi standar
  4. Variabel Lingkungan (INSTANA_API_TOKEN) - Fallback

Alur Autentikasi:

  1. Header HTTP harus ada di setiap permintaan
  2. Server memvalidasi kredensial berdasarkan urutan prioritas
  3. Permintaan tanpa autentikasi yang valid akan gagal

Desain ini memastikan transmisi kredensial yang aman dan mendukung berbagai alur autentikasi termasuk panggilan yang dimulai UI melalui WebSocket → Coordinator → Server MCP.

Pastikan token yang digunakan memiliki izin yang diperlukan untuk menjalankan alat MCP. Periksa di sini untuk informasi lebih lanjut.

Memulai Server MCP Lokal

Sebelum mengonfigurasi klien MCP apa pun (Claude Desktop, GitHub Copilot, atau klien MCP kustom), Anda perlu memulai server MCP lokal. Server mendukung dua mode transport: HTTP Streamable dan Stdio.

Opsi Perintah Server

Menggunakan CLI (Instalasi PyPI)

Jika Anda menginstal mcp-instana dari PyPI, gunakan perintah mcp-instana:

mcp-instana [OPTIONS]

Menggunakan Instalasi Pengembangan

Untuk pengembangan lokal, gunakan perintah uv run:

uv run src/core/server.py [OPTIONS]

Opsi yang Tersedia:

  • --transport <mode>: Mode transport (pilihan: streamable-http, stdio)
  • --env KEY=VALUE: Atur variabel lingkungan (dapat diulang untuk beberapa variabel, mis., --env INSTANA_BASE_URL=https://... --env INSTANA_API_TOKEN=...)
  • --debug: Aktifkan mode debug dengan logging tambahan
  • --log-level <level>: Atur level logging (pilihan: DEBUG, INFO, WARNING, ERROR, CRITICAL)
  • --tools <categories>: Daftar kategori alat yang dipisahkan koma untuk diaktifkan (mis., infra,app,events,website). Mengaktifkan kategori juga akan mengaktifkan prompt terkaitnya. Contoh: --tools infra mengaktifkan alat infra dan semua prompt terkait infra.
  • --list-tools: Tampilkan semua kategori alat yang tersedia dan keluar
  • --port <port>: Port server MCP (default: 8080, dapat ditimpa dengan env var PORT)
  • --help: Tampilkan pesan bantuan dan keluar

Memulai dalam Mode HTTP Streamable

Mode HTTP Streamable menyediakan antarmuka REST API dan direkomendasikan untuk sebagian besar kasus penggunaan.

Menggunakan CLI (Instalasi PyPI)

# Start with all tools enabled (default)
mcp-instana --transport streamable-http

# Start with debug logging
mcp-instana --transport streamable-http --debug

# Start with a specific log level
mcp-instana --transport streamable-http --log-level WARNING

# Start with specific tool categories only
mcp-instana --transport streamable-http --tools infra,events

# Combine options (specific log level, custom tools)
mcp-instana --transport streamable-http --log-level DEBUG --tools app,events

Menggunakan Instalasi Pengembangan

# Start with all tools enabled (default)
uv run src/core/server.py --transport streamable-http

# Start with debug logging
uv run src/core/server.py --transport streamable-http --debug

# Start with a specific log level
uv run src/core/server.py --transport streamable-http --log-level WARNING

# Start with specific tool and prompts categories only
uv run src/core/server.py --transport streamable-http --tools infra,events

# Start with custom port
uv run src/core/server.py --transport streamable-http --port 9000

# Combine options (specific log level, custom tools and prompts)
uv run src/core/server.py --transport streamable-http --log-level DEBUG --tools app,events

Fitur Utama Mode HTTP Streamable:

  • Menggunakan header HTTP untuk autentikasi (tidak perlu variabel lingkungan)
  • Mendukung kredensial berbeda per permintaan
  • Lebih cocok untuk lingkungan bersama
  • Port default server MCP: 8080
  • Endpoint MCP: http://0.0.0.0:8080/mcp/

Memulai dalam Mode Stdio

Mode Stdio menggunakan input/output standar untuk komunikasi dan memerlukan variabel lingkungan untuk autentikasi.

Menggunakan CLI (Instalasi PyPI)

# Option 1: Set environment variables first
export INSTANA_BASE_URL="https://your-instana-instance.instana.io"
export INSTANA_API_TOKEN="your_instana_api_token"

# Start the server (stdio is the default if no transport specified)
mcp-instana

# Or explicitly specify stdio mode
mcp-instana --transport stdio

# Option 2: Use --env flag to set environment variables directly
mcp-instana --env INSTANA_BASE_URL=https://your-instana-instance.instana.io --env INSTANA_API_TOKEN=your_instana_api_token

# Or with explicit stdio mode
mcp-instana --transport stdio --env INSTANA_BASE_URL=https://your-instana-instance.instana.io --env INSTANA_API_TOKEN=your_instana_api_token

Menggunakan Instalasi Pengembangan

# Option 1: Set environment variables first
export INSTANA_BASE_URL="https://your-instana-instance.instana.io"
export INSTANA_API_TOKEN="your_instana_api_token"

# Start the server (stdio is the default if no transport specified)
uv run src/core/server.py

# Or explicitly specify stdio mode
uv run src/core/server.py --transport stdio

# Option 2: Use --env flag to set environment variables directly
uv run src/core/server.py --env INSTANA_BASE_URL=https://your-instana-instance.instana.io --env INSTANA_API_TOKEN=your_instana_api_token

# Or with explicit stdio mode
uv run src/core/server.py --transport stdio --env INSTANA_BASE_URL=https://your-instana-instance.instana.io --env INSTANA_API_TOKEN=your_instana_api_token

Fitur Utama Mode Stdio:

  • Menggunakan variabel lingkungan untuk autentikasi (dapat diatur melalui flag export atau --env)
  • Komunikasi langsung melalui stdin/stdout
  • Diperlukan untuk konfigurasi klien MCP tertentu
  • Flag --env menyediakan cara mudah untuk mengatur kredensial tanpa mengubah lingkungan shell

Kategori Alat

Anda dapat mengoptimalkan kinerja server dengan hanya mengaktifkan kategori alat dan prompt yang Anda butuhkan:

Menggunakan CLI (Instalasi PyPI)

# List all available categories
mcp-instana --list-tools

# Enable specific categories
mcp-instana --transport streamable-http --tools infra,app
mcp-instana --transport streamable-http --tools events

Menggunakan Instalasi Pengembangan

# List all available categories
uv run src/core/server.py --list-tools

# Enable specific categories
uv run src/core/server.py --transport streamable-http --tools infra,app
uv run src/core/server.py --transport streamable-http --tools events

Kategori yang Tersedia:

  • infra: Alat dan prompt pemantauan infrastruktur (sumber daya, katalog, topologi, analisis, metrik)
  • app: Alat dan prompt kinerja aplikasi (sumber daya, metrik, peringatan, katalog, topologi, analisis, pengaturan, peringatan global)
  • events: Alat dan prompt pemantauan peristiwa (peristiwa Kubernetes, pemantauan agen)
  • website: Alat dan prompt pemantauan situs web (metrik, katalog, analisis, konfigurasi)

Memverifikasi Status Server

Setelah dimulai, Anda dapat memverifikasi bahwa server berjalan:

Untuk mode HTTP Streamable:

# Check MCP server
curl http://0.0.0.0:8080/mcp/

# Or with custom port
curl http://0.0.0.0:9000/mcp/

Untuk mode Stdio: Server akan mulai dan menunggu input stdin dari klien MCP.

Masalah Umum Saat Memulai

Masalah Sertifikat: Jika Anda mengalami kesalahan sertifikat SSL, pastikan lingkungan Python Anda memiliki akses ke sertifikat sistem:

# macOS - Install certificates for Python
/Applications/Python\ 3.13/Install\ Certificates.command

Port Sudah Digunakan: Jika port 8080 sudah digunakan, tentukan port yang berbeda:

uv run src/core/server.py --transport streamable-http --port 9000

Dependensi Hilang: Pastikan semua dependensi terinstal:

uv sync

Penyiapan dan Penggunaan

Bob IDE

Bob adalah IDE bertenaga AI dari IBM yang secara native mendukung integrasi MCP. Bob menyediakan pengalaman pengembangan yang mulus dengan bantuan AI bawaan dan alat observabilitas.

Mode HTTP Streamable

Mode HTTP Streamable menyediakan antarmuka REST API untuk komunikasi MCP menggunakan JSON-RPC melalui HTTP.

Langkah 1: Mulai Server MCP dalam Mode HTTP Streamable

Sebelum mengonfigurasi Bob, Anda perlu memulai server MCP dalam mode HTTP Streamable. Silakan merujuk ke bagian Memulai Server MCP Lokal untuk petunjuk detail.

Langkah 2: Konfigurasi Bob

Di sudut kanan atas panel Bob, Anda akan melihat dropdown dengan server MCP:

Saat memilih ini, Anda seharusnya dapat melihat opsi untuk mengonfigurasi MCP di tingkat proyek atau tingkat global.

Cakupan Konfigurasi MCP

Bob mendukung dua tingkat konfigurasi MCP, memungkinkan Anda memilih cakupan yang paling sesuai dengan kasus penggunaan Anda:

1. Konfigurasi Global (Tingkat Pengguna)

Konfigurasi global menerapkan server MCP di semua proyek untuk pengguna saat ini. Ini ideal ketika Anda ingin server MCP yang sama tersedia di setiap proyek yang Anda kerjakan.

Lokasi File:

  • macOS: ~/Library/Application Support/Bob/bob_config.json
  • Windows: %APPDATA%\Bob\bob_config.json
  • Linux: ~/.config/Bob/bob_config.json

2. Konfigurasi Proyek (Tingkat Proyek)

Konfigurasi proyek menerapkan server MCP hanya ke proyek tertentu. Ini berguna ketika proyek yang berbeda memerlukan konfigurasi server MCP yang berbeda atau ketika Anda ingin berbagi pengaturan MCP dengan tim Anda melalui kontrol versi.

Lokasi File:

  • .bob/bob_config.json di direktori root proyek Anda

Memilih Antara Konfigurasi Global dan Proyek:

  • Gunakan konfigurasi global untuk server MCP yang ingin Anda sediakan di semua proyek Anda
  • Gunakan konfigurasi proyek untuk server MCP spesifik proyek atau untuk berbagi konfigurasi dengan tim Anda
  • Kedua konfigurasi dapat hidup berdampingan - pengaturan tingkat proyek lebih diutamakan daripada pengaturan global untuk nama server yang sama

Untuk informasi lebih lanjut tentang Bob dan konfigurasi MCP, kunjungi: https://bob.ibm.com/docs/ide/configuration/mcp/mcp-in-bob

Konfigurasi Lokal:

Konfigurasikan Bob untuk terhubung ke server MCP Instana lokal Anda:

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "npx",
      "args": [
        "mcp-remote", "http://0.0.0.0:8080/mcp/",
        "--allow-http",
        "--header", "instana-base-url: https://your-instana-instance.instana.io",
        "--header", "instana-api-token: your_instana_api_token"
      ]
    }
  }
}

Konfigurasi Jarak Jauh:

Konfigurasikan Bob untuk terhubung ke server MCP Instana jarak jauh (misalnya, di-deploy di IBM Code Engine):

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "npx",
      "args": [
        "mcp-remote", "https://app-instana-750.1zetetanw8ul.us-east.codeengine.appdomain.cloud/mcp/",
        "--allow-http",
        "--header", "instana-base-url: https://your-instana-instance.instana.io",
        "--header", "instana-api-token: your_instana_api_token"
      ]
    }
  }
}

Catatan: Untuk menggunakan npx, kami sarankan menginstal NVM (Node Version Manager) terlebih dahulu, lalu menggunakannya untuk menginstal Node.js. Petunjuk instalasi tersedia di: https://nodejs.org/en/download

Langkah 3: Uji Koneksi

Setelah Anda menyiapkan konfigurasi MCP, server MCP yang baru dikonfigurasi akan muncul sebagai diaktifkan. Titik hijau menunjukkan bahwa server berjalan dengan sukses.

Anda sekarang dapat menjalankan kueri di IDE Bob:

get me all applications from Instana in the last 24 hours

Mode Stdio

Konfigurasi menggunakan CLI (Instalasi PyPI - Direkomendasikan):

Opsi 1: Menggunakan variabel lingkungan di config:

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "mcp-instana",
      "args": ["--transport", "stdio"],
      "env": {
        "INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
        "INSTANA_API_TOKEN": "your_instana_api_token"
      }
    }
  }
}

Opsi 2: Menggunakan flag --env (metode alternatif):

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "mcp-instana",
      "args": [
        "--transport", "stdio",
        "--env", "INSTANA_BASE_URL=https://your-instana-instance.instana.io",
        "--env", "INSTANA_API_TOKEN=your_instana_api_token"
      ]
    }
  }
}

Catatan: Jika Anda mengalami kesalahan "command not found", gunakan path lengkap ke mcp-instana. Temukan dengan which mcp-instana dan gunakan path tersebut sebagai gantinya.

Konfigurasi menggunakan Instalasi Pengembangan:

Opsi 1: Menggunakan variabel lingkungan di config:

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "uv",
      "args": [
        "--directory",
        "<path-to-mcp-instana-folder>",
        "run",
        "src/core/server.py"
      ],
      "env": {
        "INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
        "INSTANA_API_TOKEN": "your_instana_api_token"
      }
    }
  }
}

Opsi 2: Menggunakan flag --env (metode alternatif):

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "uv",
      "args": [
        "--directory",
        "<path-to-mcp-instana-folder>",
        "run",
        "src/core/server.py",
        "--env", "INSTANA_BASE_URL=https://your-instana-instance.instana.io",
        "--env", "INSTANA_API_TOKEN=your_instana_api_token"
      ]
    }
  }
}

Claude Desktop

Claude Desktop mendukung mode HTTP Streamable dan Stdio untuk integrasi MCP.

Konfigurasikan Claude Desktop dengan mengedit file konfigurasi:

Lokasi File:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Mode HTTP Streamable

Mode HTTP Streamable menyediakan antarmuka REST API untuk komunikasi MCP menggunakan JSON-RPC melalui HTTP.

Langkah 1: Mulai Server MCP dalam Mode HTTP Streamable

Sebelum mengonfigurasi Claude Desktop, Anda perlu memulai server MCP dalam mode HTTP Streamable. Silakan merujuk ke bagian Memulai Server MCP Lokal untuk petunjuk detail.

Langkah 2: Konfigurasi Claude Desktop

Konfigurasikan Claude Desktop untuk meneruskan kredensial Instana melalui header:

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "npx",
      "args": [
        "mcp-remote", "http://0.0.0.0:8080/mcp/",
        "--allow-http",
        "--header", "instana-base-url: https://your-instana-instance.instana.io",
        "--header", "instana-api-token: your_instana_api_token"
      ]
    }
  }
}

Catatan: Untuk menggunakan npx, kami sarankan menginstal NVM (Node Version Manager) terlebih dahulu, lalu menggunakannya untuk menginstal Node.js. Petunjuk instalasi tersedia di: https://nodejs.org/en/download

Langkah 3: Uji Koneksi

Mulai ulang Claude Desktop. Anda sekarang akan melihat Server MCP Instana di antarmuka Claude Desktop seperti yang ditunjukkan di bawah ini:

Anda sekarang dapat menjalankan kueri di Claude Desktop:

get me all endpoints from Instana

Mode Stdio

Konfigurasi menggunakan CLI (Instalasi PyPI - Direkomendasikan):

Opsi 1: Menggunakan variabel lingkungan di config:

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "mcp-instana",
      "args": ["--transport", "stdio"],
      "env": {
        "INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
        "INSTANA_API_TOKEN": "your_instana_api_token"
      }
    }
  }
}

Opsi 2: Menggunakan flag --env (metode alternatif):

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "mcp-instana",
      "args": [
        "--transport", "stdio",
        "--env", "INSTANA_BASE_URL=https://your-instana-instance.instana.io",
        "--env", "INSTANA_API_TOKEN=your_instana_api_token"
      ]
    }
  }
}

Catatan: Jika Anda mengalami kesalahan "command not found", gunakan path lengkap ke mcp-instana. Temukan dengan which mcp-instana dan gunakan path tersebut sebagai gantinya.

Konfigurasi menggunakan Instalasi Pengembangan:

Opsi 1: Menggunakan variabel lingkungan di config:

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "uv",
      "args": [
        "--directory",
        "<path-to-mcp-instana-folder>",
        "run",
        "src/core/server.py"
      ],
      "env": {
        "INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
        "INSTANA_API_TOKEN": "your_instana_api_token"
      }
    }
  }
}

Opsi 2: Menggunakan flag --env (metode alternatif):

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "uv",
      "args": [
        "--directory",
        "<path-to-mcp-instana-folder>",
        "run",
        "src/core/server.py",
        "--env", "INSTANA_BASE_URL=https://your-instana-instance.instana.io",
        "--env", "INSTANA_API_TOKEN=your_instana_api_token"
      ]
    }
  }
}

Pengaturan Kiro

Kiro adalah IDE agentik, bukan ekstensi yang dapat diunduh ke dalam VS Code atau IDE lainnya.

Langkah 1: Unduh dan instal Kiro untuk sistem operasi Anda dari https://kiro.dev/.

Langkah 2: Setelah instalasi, luncurkan Kiro dan buka proyek apa pun di IDE. alt text

Langkah 3: Klik ikon Kiro (Ghost) di bilah sisi kiri untuk mengakses fitur Kiro. alt text

Langkah 4: Pilih ikon Edit Config di sudut kanan atas bagian MCP Servers. alt text

Langkah 5: Buka file konfigurasi server MCP (mcp.json) dan konfigurasikan berdasarkan mode transport pilihan Anda:

Mode HTTP Streamable (Direkomendasikan untuk Kiro)

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "npx",
      "args": [
        "mcp-remote", "http://0.0.0.0:8080/mcp/",
        "--allow-http",
        "--header", "instana-base-url: https://your-instana-instance.instana.io",
        "--header", "instana-api-token: your_instana_api_token"
      ]
    }
  }
}

Catatan: Pastikan untuk memulai server MCP dalam mode streamable-http sebelum menggunakan konfigurasi ini:

mcp-instana --transport streamable-http

Mode Stdio

Opsi 1: Menggunakan variabel lingkungan di config:

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "mcp-instana",
      "args": ["--transport", "stdio"],
      "env": {
        "INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
        "INSTANA_API_TOKEN": "your_instana_api_token"
      }
    }
  }
}

Opsi 2: Menggunakan flag --env (metode alternatif):

{
  "mcpServers": {
    "Instana MCP Server": {
      "command": "mcp-instana",
      "args": [
        "--transport", "stdio",
        "--env", "INSTANA_BASE_URL=https://your-instana-instance.instana.io",
        "--env", "INSTANA_API_TOKEN=your_instana_api_token"
      ]
    }
  }
}

Langkah 6: Setelah menyimpan file, Klik tombol Enable MCP dan Anda akan melihat server MCP Anda dan alat yang tersedia muncul di bagian kiri bawah Kiro. alt text

Langkah 7: Buka panel AI Chat, masukkan prompt yang terkait dengan server MCP Anda, dan lihat responsnya langsung di dalam Kiro. alt text

GitHub Copilot

GitHub Copilot mendukung integrasi MCP melalui konfigurasi VS Code. Untuk integrasi GitHub Copilot dengan VS Code, lihat panduan pengaturan ini.

Mode HTTP Streamable

Langkah 1: Mulai Server MCP dalam Mode HTTP Streamable

Sebelum mengonfigurasi VS Code, Anda perlu memulai server MCP dalam mode HTTP Streamable. Silakan merujuk ke bagian Memulai Server MCP Lokal untuk petunjuk detail.

Langkah 2: Konfigurasi VS Code

Lihat Gunakan server MCP di VS Code untuk konfigurasi detail.

Anda dapat langsung membuat atau memperbarui .vscode/mcp.json dengan konfigurasi berikut:

{
  "servers": {
    "Instana MCP Server": {
      "command": "npx",
      "args": [
        "mcp-remote", "http://0.0.0.0:8080/mcp/",
        "--allow-http",
        "--header", "instana-base-url: https://your-instana-instance.instana.io",
        "--header", "instana-api-token: your_instana_api_token"
      ],
      "env": {
        "PATH": "/usr/local/bin:/bin:/usr/bin",
        "SHELL": "/bin/sh"
      }
    }
  }
}

Catatan: Ganti nilai berikut dengan konfigurasi Anda yang sebenarnya:

  • instana-base-url: URL instans Instana Anda
  • instana-api-token: Token API Instana Anda
  • command: Perbarui path npx agar sesuai dengan instalasi Node.js sistem Anda (misalnya, /path/to/your/node/bin/npx)
  • Variabel lingkungan: Sesuaikan PATH dan variabel lingkungan lainnya sesuai kebutuhan sistem Anda

Mode Stdio

Langkah 1: Buat Konfigurasi MCP VS Code

Menggunakan CLI (Instalasi PyPI - Direkomendasikan):

Buat .vscode/mcp.json di root proyek Anda:

Opsi 1: Menggunakan variabel lingkungan di config:

{
  "servers": {
    "Instana MCP Server": {
      "command": "mcp-instana",
      "args": ["--transport", "stdio"],
      "env": {
        "INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
        "INSTANA_API_TOKEN": "your_instana_api_token"
      }
    }
  }
}

Opsi 2: Menggunakan flag --env (metode alternatif):

{
  "servers": {
    "Instana MCP Server": {
      "command": "mcp-instana",
      "args": [
        "--transport", "stdio",
        "--env", "INSTANA_BASE_URL=https://your-instana-instance.instana.io",
        "--env", "INSTANA_API_TOKEN=your_instana_api_token"
      ]
    }
  }
}

Menggunakan Instalasi Pengembangan:

Buat .vscode/mcp.json di root proyek Anda:

Opsi 1: Menggunakan variabel lingkungan di config:

{
  "servers": {
    "Instana MCP Server": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/your/project/mcp-instana",
        "run",
        "src/core/server.py"
      ],
      "env": {
        "INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
        "INSTANA_API_TOKEN": "your_instana_api_token"
      }
    }
  }
}

Opsi 2: Menggunakan flag --env (metode alternatif):

{
  "servers": {
    "Instana MCP Server": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/your/project/mcp-instana",
        "run",
        "src/core/server.py",
        "--env", "INSTANA_BASE_URL=https://your-instana-instance.instana.io",
        "--env", "INSTANA_API_TOKEN=your_instana_api_token"
      ]
    }
  }
}

Catatan: Ganti nilai berikut dengan konfigurasi Anda yang sebenarnya:

  • Untuk instalasi CLI: Pastikan mcp-instana ada di PATH Anda
  • Untuk instalasi pengembangan:
    • command: Perbarui path uv agar sesuai dengan instalasi uv sistem Anda (misalnya, /path/to/your/uv/bin/uv atau /usr/local/bin/uv)
    • --directory: Perbarui dengan path absolut ke direktori proyek mcp-instana Anda
  • INSTANA_BASE_URL: URL instans Instana Anda
  • INSTANA_API_TOKEN: Token API Instana Anda

Langkah 2: Kelola Server di VS Code

  1. Buka .vscode/mcp.json - Anda akan melihat kontrol manajemen server di bagian atas
  2. Klik Start di samping Instana MCP Server untuk memulai server
  3. Status berjalan beserta jumlah alat menunjukkan bahwa server sedang berjalan

Langkah 3: Uji Integrasi

Beralih ke Mode Agen di GitHub Copilot dan muat ulang alat. Berikut adalah contoh respons GitHub Copilot:

GitHub Copilot Response

Mistral AI

Mistral AI mendukung integrasi MCP secara eksklusif melalui mode HTTP Streamable.

Langkah 1: Luncurkan Server MCP dalam Mode HTTP Streamable

Mulai server MCP dalam mode HTTP Streamable dengan memberikan kredensial Instana Anda. Jalankan perintah berikut:

uv run src/core/server.py --transport streamable-http \
  --api-token "your_instana_api_token" \
  --base-url "https://your-instana-instance.instana.io" \
  --port 8080

Langkah 2: Siapkan Port Forwarding dengan Ngrok

Konfigurasikan port forwarding untuk mengekspos server lokal Anda. Ikuti dokumentasi pengaturan Ngrok untuk petunjuk detail.

Langkah 3: Konfigurasikan Mistral AI

  1. Arahkan ke tab Intelligence di bilah sisi kiri dan pilih Connectors Mistral HomePage

  2. Klik Add Connector Connector

  3. Buat konektor kustom dengan memasukkan nama konektor dan URL server MCP yang diteruskan Ngrok Custom Connector

  4. Mulai sesi obrolan baru dan verifikasi bahwa alat MCP diaktifkan. Anda dapat melihat responsnya di sini Testing MCP connection Response

Fitur yang Didukung

  • Manajemen Aplikasi & Infrastruktur Terpadu (manage_instana_resources)
    • Metrik Aplikasi
      • Kueri metrik aplikasi dengan pemfilteran fleksibel
      • Daftar layanan dan titik akhir
      • Kelompokkan berdasarkan tag dan agregasi metrik
    • Konfigurasi Peringatan Aplikasi
      • Temukan konfigurasi peringatan aktif
      • Dapatkan versi konfigurasi peringatan
      • Buat, perbarui, dan hapus konfigurasi peringatan
      • Aktifkan, nonaktifkan, dan pulihkan konfigurasi peringatan
      • Perbarui baseline historis
    • Konfigurasi Peringatan Aplikasi Global
      • Kelola konfigurasi peringatan global
      • Kontrol versi untuk peringatan global
    • Pengaturan Aplikasi
      • Kelola perspektif aplikasi
      • Konfigurasikan titik akhir dan layanan
      • Kelola layanan manual
    • Katalog Aplikasi
      • Dapatkan katalog tag aplikasi
      • Dapatkan katalog metrik aplikasi
  • Analisis Infrastruktur (analyze_infrastructure)
    • Elisitasi dua langkah untuk kueri entitas/metrik
    • Dukungan dinamis untuk semua tipe entitas dari katalog API Instana (JVM, Kubernetes, Docker, host, basis data, antrean pesan, dan lainnya)
    • Disinkronkan secara otomatis dengan plugin yang tersedia di instalasi Instana Anda
    • Agregasi metrik fleksibel (maks, rata-rata, jumlah, dll.)
    • Pemfilteran lanjutan berdasarkan tag dan properti
    • Kemampuan pengelompokan dan pengurutan
    • Kueri rentang waktu
  • Manajemen Peristiwa Terpadu (manage_events)
    • Pemantauan Peristiwa
      • Dapatkan Peristiwa berdasarkan ID (operation="get_event")
      • Dapatkan Peristiwa berdasarkan ID (operation="get_events_by_ids")
      • Dapatkan Peristiwa Pemantauan Agen (operation="get_agent_monitoring_events")
      • Dapatkan Peristiwa Info Kubernetes (operation="get_kubernetes_info_events")
      • Dapatkan Peristiwa (operation="get_events")
    • Perutean cerdas ke alat peristiwa khusus
    • Validasi parameter terpadu (rentang waktu, max_events)
    • Dukungan untuk rentang waktu bahasa alami ("24 jam terakhir", "2 hari terakhir")
    • Pemfilteran dan pengoptimalan peristiwa
  • Manajemen Situs Web Terpadu (manage_website_resources)
    • Analisis Situs Web (resource_type="analyze")
      • Dapatkan Grup Beacon Situs Web - data beacon yang dikelompokkan/diagregasi (operation="get_beacon_groups")
      • Dapatkan Beacon Situs Web - data beacon individual dengan paginasi (operation="get_beacons")
      • Validasi tag otomatis dan alur kerja elisitasi berbasis katalog
      • Ringkasan respons (pengurangan payload 70-80%)
      • Dukungan untuk berbagai tipe beacon: PAGELOAD, PAGECHANGE, RESOURCELOAD, CUSTOM, HTTPREQUEST, ERROR
    • Katalog Situs Web (resource_type="catalog")
      • Dapatkan Katalog Metrik Situs Web (operation="get_metrics")
      • Dapatkan Katalog Tag Situs Web berdasarkan tipe beacon dan kasus penggunaan (operation="get_tag_catalog")
    • Konfigurasi Situs Web (resource_type="configuration")
      • Dapatkan Semua Situs Web (operation="get_all")
      • Dapatkan Situs Web berdasarkan ID atau nama dengan resolusi nama otomatis (operation="get")
    • Konfigurasi Lanjutan - HANYA BACA (resource_type="advanced_config")
      • Dapatkan Konfigurasi Geo-Lokasi (operation="get_geo_config")
      • Dapatkan Konfigurasi Penyamaran IP (operation="get_ip_masking")
      • Dapatkan Aturan Pemetaan Geo (operation="get_geo_rules")
  • Manajemen Otomatisasi Terpadu (manage_automation)
    • Katalog Tindakan (resource_type="catalog")
      • Daftar semua tindakan otomatisasi yang tersedia (operation="get_actions")
      • Dapatkan informasi detail tentang tindakan tertentu (operation="get_action_details")
      • Cari tindakan yang cocok berdasarkan nama/deskripsi (operation="get_action_matches")
      • Dapatkan kecocokan tindakan berdasarkan ID aplikasi atau snapshot dan jendela waktu (operation="get_action_matches_by_id_and_time_window")
      • Dapatkan tipe tindakan yang tersedia (operation="get_action_types")
      • Dapatkan tag tindakan yang tersedia (operation="get_action_tags")
    • Riwayat Tindakan (resource_type="history")
      • Daftar instance eksekusi tindakan dengan pemfilteran (operation="list")
      • Dapatkan detail eksekusi tindakan tertentu (operation="get_details")
  • Dasbor Kustom (manage_custom_dashboards)
    • Dapatkan semua dasbor kustom
    • Dapatkan dasbor tertentu berdasarkan ID
    • Buat dasbor kustom baru
    • Perbarui dasbor kustom yang ada
    • Hapus dasbor kustom
    • Dapatkan pengguna yang dapat berbagi untuk dasbor
    • Dapatkan token API yang dapat berbagi untuk dasbor

Alat yang Tersedia

AlatKategoriDeskripsi
manage_applicationsAplikasi & InfrastrukturAlat terpadu untuk mengelola metrik aplikasi, konfigurasi peringatan, pengaturan, dan katalog
manage_websitesPemantauan Situs WebPerute cerdas terpadu untuk analisis situs web, katalog, konfigurasi, dan operasi konfigurasi lanjutan
manage_custom_dashboardsDasbor KustomAlat terpadu untuk mengelola operasi CRUD dasbor kustom
analyze_infrastructureAnalisis InfrastrukturAnalisis infrastruktur dua langkah dengan elisitasi entitas/metrik
manage_automationOtomatisasiPerute cerdas terpadu untuk otomatisasi: jelajahi katalog tindakan dan lihat riwayat eksekusi
manage_eventsPeristiwaPerute cerdas terpadu untuk pemantauan peristiwa: dapatkan peristiwa berdasarkan ID, dapatkan peristiwa berdasarkan ID, peristiwa Kubernetes, peristiwa pemantauan agen, dan semua peristiwa
manage_sloManajemen SLOPerute cerdas terpadu untuk konfigurasi SLO, laporan, peringatan, dan jendela koreksi dengan penanganan zona waktu cerdas
manage_releasesManajemen RilisPerute cerdas terpadu untuk pelacakan rilis: daftar rilis dengan paginasi dan pemfilteran nama, dapatkan detail rilis, buat/perbarui/hapus rilis dengan dukungan zona waktu
manage_maintenance_windowsJendela PemeliharaanPerute cerdas terpadu untuk manajemen siklus hidup jendela pemeliharaan: buat, modifikasi, tutup, dan daftar jendela pemeliharaan dengan dukungan template dan integrasi ServiceNow
manage_mobile_appsPemantauan Aplikasi SelulerPerute cerdas terpadu untuk pemantauan aplikasi seluler: analisis beacon, metrik kinerja, konfigurasi, dan manajemen peringatan

👉 Untuk dokumentasi alat yang detail, kemampuan, dan referensi teknis, lihat Alat & Contoh

Pemfilteran Alat

Server MCP mendukung pemuatan alat selektif untuk mengoptimalkan kinerja dan mengurangi penggunaan sumber daya. Anda dapat mengaktifkan hanya kategori alat yang Anda butuhkan untuk kasus penggunaan spesifik Anda.

Kategori Alat yang Tersedia

  • router: Manajemen aplikasi dan infrastruktur terpadu

    • manage_instana_resources: Alat tunggal untuk metrik aplikasi, konfigurasi peringatan, pengaturan, dan katalog
    • Mendukung perspektif aplikasi, titik akhir, layanan, dan layanan manual
    • Mengelola konfigurasi peringatan spesifik aplikasi dan global
    • Menyediakan akses ke katalog tag aplikasi dan katalog metrik
  • dashboard: Manajemen dasbor kustom

    • manage_custom_dashboards: Operasi CRUD untuk dasbor kustom
    • Mendukung pembuatan, pengambilan, pembaruan, dan penghapusan dasbor
    • Mengelola pengguna dan token API yang dapat berbagi untuk dasbor
  • infra: Alat analisis infrastruktur

    • analyze_infrastructure: Analisis infrastruktur dua langkah dengan elisitasi entitas/metrik
    • Mendukung secara dinamis semua tipe entitas yang tersedia di instalasi Instana Anda (dimuat otomatis dari katalog API)
    • Termasuk JVM, Kubernetes, Docker, host, basis data, antrean pesan, dan tipe entitas kustom atau yang baru ditambahkan
    • Agregasi metrik, pemfilteran, pengelompokan, dan kueri rentang waktu yang fleksibel
  • automation: Alat tindakan otomatisasi

    • manage_automation: Perute cerdas terpadu untuk katalog otomatisasi dan riwayat eksekusi
    • Katalog Tindakan: jelajahi tindakan, dapatkan detail, cari berdasarkan nama/deskripsi, filter berdasarkan ID aplikasi atau snapshot
    • Riwayat Tindakan: daftar instance eksekusi dengan pemfilteran, dapatkan detail eksekusi
  • events: Alat pemantauan peristiwa

    • Peristiwa: Peristiwa Kubernetes, pemantauan agen, dan pelacakan peristiwa sistem
  • website: Alat pemantauan situs web

    • Metrik Situs Web: Pengukuran kinerja untuk situs web
    • Katalog Situs Web: Metadata dan definisi situs web
    • Analisis Situs Web: Analisis kinerja situs web
    • Konfigurasi Situs Web: Manajemen konfigurasi situs web
  • slo: Manajemen Service Level Objective (SLO)

    • manage_slo: Perute cerdas terpadu untuk operasi SLO yang komprehensif
    • Manajemen Konfigurasi: Buat, baca, perbarui, hapus konfigurasi SLO dengan dukungan untuk indikator berbasis waktu dan berbasis peristiwa
    • Pembuatan Laporan: Hasilkan laporan SLO detail dengan nilai SLI, anggaran kesalahan, laju pembakaran, dan bagan deret waktu
    • Konfigurasi Peringatan: Kelola konfigurasi peringatan SLO untuk pemantauan anggaran kesalahan dan pelacakan laju pembakaran
    • Jendela Koreksi: Buat dan kelola jendela pemeliharaan untuk mengecualikan waktu henti yang direncanakan dari perhitungan SLO
    • Penanganan Zona Waktu Cerdas: Elisitasi zona waktu otomatis untuk input datetime guna memastikan konteks waktu yang akurat
    • Elisitasi Dua Langkah: Pengumpulan parameter interaktif untuk operasi kompleks yang memerlukan banyak input
  • releases: Pelacakan rilis dan manajemen deployment

    • manage_releases: Perute cerdas terpadu untuk operasi rilis
    • Daftar Rilis: Dapatkan semua rilis dengan paginasi efisien (page_number, page_size) dan pemfilteran berdasarkan nama
    • Detail Rilis: Ambil informasi rilis spesifik berdasarkan ID termasuk aplikasi, layanan, dan cakupan
    • Buat/Perbarui/Hapus: Operasi CRUD penuh untuk manajemen rilis
    • Penanganan Zona Waktu Cerdas: Elisitasi zona waktu otomatis untuk waktu mulai rilis
    • Paginasi Efisien: Hindari pengambilan data berlebihan dengan navigasi berbasis halaman yang tepat
    • Pemfilteran Nama: Pencocokan substring tidak peka huruf besar/kecil untuk menemukan rilis berdasarkan nama
  • maintenance_window: Manajemen siklus hidup jendela pemeliharaan

    • manage_maintenance_windows: Perute cerdas terpadu untuk operasi jendela pemeliharaan
    • Operasi Jendela: Buat, modifikasi, tutup, dan daftar jendela pemeliharaan (aktif, terjadwal, semua, kedaluwarsa)
    • Operasi Massal: Buat jendela pemeliharaan untuk beberapa aplikasi secara bersamaan
    • Dukungan Template: Template yang telah ditentukan untuk skenario umum (deployment, database_migration, infrastructure_upgrade, emergency, routine)
    • Jendela Berulang: Dukungan untuk jendela pemeliharaan berulang menggunakan format RFC 5545 RRULE
    • Integrasi ServiceNow: Integrasi opsional dengan permintaan perubahan ServiceNow
    • Validasi: Validasi parameter sebelum pembuatan jendela
    • Durasi Fleksibel: Tentukan durasi dalam menit, jam, atau hari
  • mobile_app: Pemantauan aplikasi seluler

    • manage_mobile_apps: Router pintar terpadu untuk operasi pemantauan aplikasi seluler
    • Analisis Beacon: Kueri data beacon aplikasi seluler dengan pengelompokan dan penyaringan
    • Metrik Kinerja: Lacak durasi sesi, tingkat kerusakan, dan kinerja permintaan HTTP
    • Analisis Geografis: Analisis distribusi pengguna berdasarkan negara, kota, dan wilayah
    • Analisis Perangkat: Pantau kinerja di berbagai perangkat, platform, dan versi OS
    • Manajemen Konfigurasi: Kelola konfigurasi aplikasi seluler, pengaturan geo-lokasi, dan penyamaran IP
    • Manajemen Peringatan: Konfigurasikan dan kelola konfigurasi peringatan aplikasi seluler

Contoh Penggunaan

Menggunakan CLI (Instalasi PyPI)

# Enable only router (unified app/infra management) and events tools
mcp-instana --tools router,events --transport streamable-http

# Enable only infrastructure analysis tools
mcp-instana --tools infra --transport streamable-http

# Enable router and infrastructure analysis
mcp-instana --tools router,infra --transport streamable-http

# Enable events and website tools
mcp-instana --tools events,website --transport streamable-http

# Enable dashboard and router tools
mcp-instana --tools dashboard,router --transport streamable-http

# Enable releases and events tools
mcp-instana --tools releases,events --transport streamable-http

# Enable maintenance window and events tools
mcp-instana --tools maintenance_window,events --transport streamable-http

# Enable all tools (default behavior)
mcp-instana --transport streamable-http

# List all available tool categories and their tools
mcp-instana --list-tools

Menggunakan Instalasi Pengembangan

# Enable only router (unified app/infra management) and events tools
uv run src/core/server.py --tools router,events --transport streamable-http

# Enable only infrastructure analysis tools
uv run src/core/server.py --tools infra --transport streamable-http

# Enable router and infrastructure analysis
uv run src/core/server.py --tools router,infra --transport streamable-http

# Enable events and website tools
uv run src/core/server.py --tools events,website --transport streamable-http

# Enable dashboard and router tools
uv run src/core/server.py --tools dashboard,router --transport streamable-http

# Enable releases and events tools
uv run src/core/server.py --tools releases,events --transport streamable-http

# Enable maintenance window and events tools
uv run src/core/server.py --tools maintenance_window,events --transport streamable-http

# Enable all tools (default behavior)
uv run src/core/server.py --transport streamable-http

# List all available tool categories and their tools
uv run src/core/server.py --list-tools

Manfaat Penyaringan Alat

  • Kinerja: Mengurangi waktu startup dan penggunaan memori
  • Keamanan: Batasi paparan hanya pada API yang diperlukan
  • Kejelasan: Fokus pada kasus penggunaan tertentu (misalnya, hanya pemantauan infrastruktur)
  • Efisiensi Sumber Daya: Penggunaan CPU dan jaringan yang lebih rendah

👉 Untuk contoh penggunaan dan prompt, lihat Contoh Prompt

Penerapan Docker

Server MCP Instana dapat diterapkan menggunakan Docker untuk lingkungan produksi. Pengaturan Docker dioptimalkan untuk keamanan, kinerja, dan penggunaan sumber daya minimal.

Arsitektur Docker

Proyek ini menggunakan strategi manajemen dependensi dua file:

pyproject.toml

  • Tujuan: Konfigurasi terpadu untuk pengembangan dan produksi
  • Dependensi: Semua dependensi penting dengan dependensi pengembangan opsional
  • Penggunaan: Pengembangan lokal, pengujian, CI/CD, dan build produksi Docker
  • Manfaat: Sumber kebenaran tunggal untuk semua dependensi, pemeliharaan yang disederhanakan

Membangun Image Docker

Prasyarat

  • Docker terinstal dan berjalan
  • Akses ke kode sumber proyek
  • Docker BuildKit untuk build multi-arsitektur (diaktifkan secara default di versi Docker terbaru)

Perintah Build

# Build the optimized production image
docker build -t mcp-instana:latest .

# Build with a specific tag
docker build -t mcp-instana:<image_tag> .

#### **Run Command**
# Run the container (no credentials needed in the container)
docker run -p 8080:8080 mcp-instana

# Run with custom port
docker run -p 8081:8080 mcp-instana

📖 Untuk dokumentasi Docker yang komprehensif termasuk build multi-arsitektur, pengaturan Docker Compose, praktik terbaik keamanan, dan contoh penerapan produksi, lihat DOCKER.md.

Pemecahan Masalah

Masalah Docker

Kontainer Tidak Mau Mulai

# Check container logs
docker logs <container_id>
# Common issues:
# 1. Port already in use
# 2. Invalid container image
# 3. Missing dependencies
# Credentials are passed via HTTP headers from the MCP client

Masalah Koneksi

# Test container connectivity
docker exec -it <container_id> curl http://127.0.0.1:8080/health
# Check port mapping
docker port <container_id>

Masalah Kinerja

# Check container resource usage
docker stats <container_id>
# Monitor container health
docker inspect <container_id> | grep -A 10 Health

Masalah Umum

  • GitHub Copilot

    • Jika Anda mengalami masalah dengan GitHub Copilot, coba mulai/hentikan/mulai ulang server di file mcp.json dan hanya jalankan satu server pada satu waktu.
  • Masalah Sertifikat

    • Jika Anda mengalami masalah sertifikat, seperti [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate:
      • Periksa apakah Anda dapat mencapai endpoint API Instana menggunakan curl atau wget dengan verifikasi SSL.
        • Jika berhasil, lingkungan Python Anda mungkin tidak dapat memverifikasi sertifikat dan mungkin tidak memiliki akses ke sertifikat yang sama seperti shell atau sistem Anda. Pastikan lingkungan Python Anda menggunakan sertifikat sistem (macOS). Anda dapat melakukannya dengan menginstal sertifikat ke Python: //Applications/Python\ 3.13/Install\ Certificates.command
      • Jika Anda tidak dapat mencapai endpoint dengan verifikasi SSL, coba tanpa itu. Jika berhasil, periksa sertifikat CA sistem Anda dan pastikan mereka mutakhir.