IBM Instana MCP Server

официальный

Сервер IBM Instana MCP обеспечивает бесшовное взаимодействие с платформой наблюдаемости IBM Instana, позволяя получать доступ к данным наблюдаемости в реальном времени непосредственно в вашем рабочем процессе разработки.

Что можно делать с IBM Instana MCP?

  • Запрос производительности приложений — Запрашивайте метрики приложений, оповещения или сведения из каталога с помощью инструментов категории app, таких как get_app_metrics или get_app_alerts.
  • Мониторинг состояния инфраструктуры — Получайте ресурсы инфраструктуры, топологию и метрики через инструменты infra, например get_infra_metrics или get_infra_topology.
  • Отслеживание событий и инцидентов — Доступ к событиям Kubernetes или данным мониторинга агентов с помощью инструментов events, таких как get_k8s_events или get_agent_status.
  • Анализ мониторинга веб-сайтов — Получайте метрики веб-сайтов, информацию из каталога или конфигурацию с помощью инструментов website, например get_website_metrics или get_website_config.
  • Фильтрация инструментов по категориям — Включайте только нужные категории инструментов при запуске с помощью флага --tools (например, --tools infra,events) для оптимизации производительности.

Документация

Содержание

MCP-сервер для IBM Instana

📚 Быстрые ссылки


MCP-сервер Instana обеспечивает бесшовное взаимодействие с платформой observability Instana, позволяя получать доступ к данным observability в реальном времени непосредственно в вашем рабочем процессе разработки.

Он служит мостом между клиентами (такими как AI-агенты или пользовательские инструменты) и REST API Instana, преобразуя пользовательские запросы в API-запросы Instana и форматируя ответы в структурированные, легко потребляемые форматы.

Сервер поддерживает оба режима транспорта: Streamable HTTP и Stdio для максимальной совместимости с различными MCP-клиентами. Для получения дополнительных сведений обратитесь к спецификации режимов транспорта MCP.

Обзор архитектуры

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

Рабочий процесс

Рассмотрим простой пример: вы используете MCP-хост (например, Claude Desktop, VS Code или другой клиент), подключенный к MCP-серверу Instana. Когда вы запрашиваете информацию об оповещениях Instana, происходит следующий процесс:

  1. MCP-клиент получает список доступных инструментов от MCP-сервера Instana
  2. Ваш запрос отправляется в LLM вместе с описаниями инструментов
  3. LLM анализирует доступные инструменты и выбирает подходящий(ие) для получения оповещений Instana
  4. Клиент выполняет выбранный(ые) инструмент(ы) через MCP-сервер Instana
  5. Результаты (последние оповещения) возвращаются в LLM
  6. LLM формулирует ответ на естественном языке
  7. Ответ отображается вам
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

Предварительные требования

Вариант 1: Установка из PyPI (рекомендуется)

Самый простой способ использовать mcp-instana — установить его напрямую из PyPI:

pip install mcp-instana

После установки вы можете запустить сервер, используя команду mcp-instana напрямую.

Вариант 2: Установка для разработки

Для разработки или локальной настройки вы можете клонировать проект и настроить его локально.

Установка uv

В этом проекте используется uv, быстрый установщик и резолвер Python-пакетов. Для установки uv у вас есть несколько вариантов:

Использование pip:

pip install uv

Использование Homebrew (macOS):

brew install uv

Для получения дополнительных вариантов установки и подробных инструкций посетите документацию uv.

Настройка окружения

После установки uv настройте окружение проекта, выполнив:

uv sync

Аутентификация на основе заголовков для режима Streamable HTTP

При использовании режима Streamable HTTP вы должны передавать учетные данные Instana через HTTP-заголовки. Этот подход повышает безопасность и гибкость, поскольку:

  • Исключает хранение учетных данных в переменных окружения
  • Позволяет использовать разные учетные данные для разных запросов
  • Поддерживает общие окружения, где изменение переменных окружения ограничено
  • Поддерживает как аутентификацию по API-токену, так и по токену сессии

Поддерживаемые режимы аутентификации:

1. Аутентификация по API-токену (прямые вызовы API)

Обязательные заголовки:

  • instana-base-url: URL вашего экземпляра Instana
  • instana-api-token: Ваш API-токен Instana

Пример:

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

2. Аутентификация по токену сессии (вызовы, инициированные из интерфейса)

Обязательные заголовки:

  • instana-base-url: URL вашего экземпляра Instana
  • instana-auth-token: Токен аутентификации сессии из бэкенда интерфейса
  • instana-csrf-token: CSRF-токен из бэкенда интерфейса
  • instana-cookie-name: (Необязательно) Имя cookie для аутентификации сессии (по умолчанию: instanaAuthToken)

Пример:

--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. Аутентификация по JWT-токену (интеграция с IBM Platform)

Обязательные заголовки:

  • instana-base-url: URL вашего экземпляра Instana
  • instana-jwt-token: JWT-токен из IBM Platform
  • instana-csrf-token: CSRF-токен для проверки запросов

Пример конфигурации:

{
  "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"
      ]
    }
  }
}

Приоритет аутентификации:

  1. JWT-токен (если предоставлен с CSRF-токеном) — имеет приоритет для интеграции с IBM Platform
  2. Токены сессии (если предоставлены и auth_token, и csrf_token)
  3. API-токен (если предоставлен) — стандартная аутентификация
  4. Переменная окружения (INSTANA_API_TOKEN) — запасной вариант

Поток аутентификации:

  1. HTTP-заголовки должны присутствовать в каждом запросе
  2. Сервер проверяет учетные данные в порядке приоритета
  3. Запросы без действительной аутентификации будут отклонены

Такая конструкция обеспечивает безопасную передачу учетных данных и поддерживает несколько потоков аутентификации, включая вызовы, инициированные из интерфейса через WebSocket → Coordinator → MCP-сервер.

Убедитесь, что используемый токен имеет необходимые разрешения для вызова MCP-инструментов. Дополнительную информацию см. здесь.

Запуск локального MCP-сервера

Перед настройкой любого MCP-клиента (Claude Desktop, GitHub Copilot или пользовательских MCP-клиентов) необходимо запустить локальный MCP-сервер. Сервер поддерживает два режима транспорта: Streamable HTTP и Stdio.

Параметры команд сервера

Использование CLI (установка из PyPI)

Если вы установили mcp-instana из PyPI, используйте команду mcp-instana:

mcp-instana [OPTIONS]

Использование установки для разработки

Для локальной разработки используйте команду uv run:

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

Доступные параметры:

  • --transport <mode>: Режим транспорта (варианты: streamable-http, stdio)
  • --env KEY=VALUE: Установить переменную окружения (можно повторять для нескольких переменных, например, --env INSTANA_BASE_URL=https://... --env INSTANA_API_TOKEN=...)
  • --debug: Включить режим отладки с дополнительным логированием
  • --log-level <level>: Установить уровень логирования (варианты: DEBUG, INFO, WARNING, ERROR, CRITICAL)
  • --tools <categories>: Список категорий инструментов через запятую для включения (например, infra,app,events,website). Включение категории также включает связанные с ней промпты. Например: --tools infra включает инструменты инфраструктуры и все связанные с инфраструктурой промпты.
  • --list-tools: Вывести список всех доступных категорий инструментов и выйти
  • --port <port>: Порт MCP-сервера (по умолчанию: 8080, можно переопределить переменной окружения PORT)
  • --verify-ssl: Включить проверку SSL-сертификатов для исходящих вызовов API Instana. Эквивалентно установке INSTANA_SSL_VERIFY=true. Проверка SSL отключена по умолчанию.
  • --help: Показать справочное сообщение и выйти

Запуск в режиме Streamable HTTP

Режим Streamable HTTP предоставляет REST API-интерфейс и рекомендуется для большинства случаев использования.

Использование CLI (установка из 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

Использование установки для разработки

# 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

Ключевые особенности режима Streamable HTTP:

  • Использует HTTP-заголовки для аутентификации (переменные окружения не требуются)
  • Поддерживает разные учетные данные для каждого запроса
  • Лучше подходит для общих окружений
  • Порт MCP-сервера по умолчанию: 8080
  • Конечная точка MCP: http://0.0.0.0:8080/mcp/

Запуск в режиме Stdio

Режим Stdio использует стандартный ввод/вывод для связи и требует переменные окружения для аутентификации.

Использование CLI (установка из 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

Использование установки для разработки

# 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

Ключевые особенности режима Stdio:

  • Использует переменные окружения для аутентификации (можно задать через export или флаг --env)
  • Прямая связь через stdin/stdout
  • Требуется для определенных конфигураций MCP-клиентов
  • Флаг --env предоставляет удобный способ задать учетные данные без изменения окружения оболочки

Категории инструментов

Вы можете оптимизировать производительность сервера, включив только нужные категории инструментов и промптов:

Использование CLI (установка из 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

Использование установки для разработки

# 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

Доступные категории:

  • infra: Инструменты и промпты для мониторинга инфраструктуры (ресурсы, каталог, топология, анализ, метрики)
  • app: Инструменты и промпты для производительности приложений (ресурсы, метрики, оповещения, каталог, топология, анализ, настройки, глобальные оповещения)
  • events: Инструменты и промпты для мониторинга событий (события Kubernetes, мониторинг агентов)
  • website: Инструменты и промпты для мониторинга веб-сайтов (метрики, каталог, анализ, конфигурация)

Проверка SSL-сертификатов

Проверка SSL-сертификатов для исходящих вызовов API Instana отключена по умолчанию. Это относится к обоим режимам транспорта: Streamable HTTP и Stdio.

Чтобы включить проверку SSL-сертификатов, используйте опцию CLI --verify-ssl или переменную окружения INSTANA_SSL_VERIFY.

Использование опции CLI

uv run src/core/server.py --verify-ssl

Опция --verify-ssl эквивалентна установке:

export INSTANA_SSL_VERIFY=true

Использование переменной окружения

export INSTANA_SSL_VERIFY=true
uv run src/core/server.py

Проверка SSL отключается, когда INSTANA_SSL_VERIFY установлено в 0, false или no (без учета регистра) или не задано. Любое другое значение включает проверку — используйте true, 1 или yes в качестве стандартных вариантов.

Использование пользовательского набора CA-сертификатов

Когда проверка SSL включена, по умолчанию используется системный набор CA-сертификатов. Чтобы использовать пользовательский набор CA-сертификатов, задайте INSTANA_CA_BUNDLE:

export INSTANA_SSL_VERIFY=true
export INSTANA_CA_BUNDLE=/path/to/ca-bundle.crt
uv run src/core/server.py

INSTANA_CA_BUNDLE используется только когда проверка SSL-сертификатов включена.

Сервер регистрирует фактическое состояние проверки SSL при запуске, поэтому вы можете сразу подтвердить, была ли применена ваша переменная окружения или флаг CLI.

Проверка статуса сервера

После запуска вы можете проверить, что сервер работает:

Для режима Streamable HTTP:

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

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

Для режима Stdio: Сервер запустится и будет ожидать ввода из stdin от MCP-клиентов.

Частые проблемы при запуске

Проблемы с SSL / сертификатами: См. раздел Проверка SSL-сертификатов выше для параметров настройки. Если вы сталкиваетесь с ошибками SSL при включенной проверке и используете macOS, убедитесь, что ваше окружение Python имеет доступ к системным сертификатам:

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

Порт уже используется: Если порт 8080 уже занят, укажите другой порт:

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

Отсутствующие зависимости: Убедитесь, что все зависимости установлены:

uv sync

Настройка и использование

Bob IDE

Bob — это AI-ориентированная IDE от IBM, которая нативно поддерживает интеграцию MCP. Bob обеспечивает бесшовный опыт разработки со встроенной AI-помощью и инструментами наблюдаемости.

Режим Streamable HTTP

Режим Streamable HTTP предоставляет REST API интерфейс для MCP-коммуникации с использованием JSON-RPC поверх HTTP.

Шаг 1: Запустите MCP-сервер в режиме Streamable HTTP

Перед настройкой Bob вам нужно запустить MCP-сервер в режиме Streamable HTTP. Пожалуйста, обратитесь к разделу Запуск локального MCP-сервера для подробных инструкций.

Шаг 2: Настройте Bob

В правом верхнем углу панели Bob вы увидите выпадающий список с MCP-серверами:

При выборе этого пункта вы должны увидеть возможность настроить MCP на уровне проекта или на глобальном уровне.

Области конфигурации MCP

Bob поддерживает два уровня конфигурации MCP, что позволяет выбрать область, которая лучше всего подходит для вашего случая использования:

1. Глобальная конфигурация (на уровне пользователя)

Глобальная конфигурация применяет MCP-серверы ко всем проектам для текущего пользователя. Это идеально, когда вы хотите, чтобы одни и те же MCP-серверы были доступны в каждом проекте, над которым вы работаете.

Расположение файлов:

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

2. Конфигурация проекта (на уровне проекта)

Конфигурация проекта применяет MCP-серверы только к конкретному проекту. Это полезно, когда разные проекты требуют разных конфигураций MCP-серверов или когда вы хотите поделиться настройками MCP с вашей командой через систему контроля версий.

Расположение файла:

  • .bob/bob_config.json в корневом каталоге вашего проекта

Выбор между глобальной и проектной конфигурацией:

  • Используйте глобальную конфигурацию для MCP-серверов, которые вы хотите иметь доступными во всех ваших проектах
  • Используйте конфигурацию проекта для MCP-серверов, специфичных для проекта, или для обмена конфигурациями с вашей командой
  • Обе конфигурации могут сосуществовать — настройки уровня проекта имеют приоритет над глобальными настройками для одного и того же имени сервера

Для получения дополнительной информации о Bob и конфигурации MCP посетите: https://bob.ibm.com/docs/ide/configuration/mcp/mcp-in-bob

Локальная конфигурация:

Настройте Bob для подключения к вашему локальному Instana MCP-серверу:

{
  "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"
      ]
    }
  }
}

Удаленная конфигурация:

Настройте Bob для подключения к удаленному Instana MCP-серверу (например, развернутому на 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"
      ]
    }
  }
}

Примечание: Для использования npx мы рекомендуем сначала установить NVM (Node Version Manager), а затем использовать его для установки Node.js. Инструкции по установке доступны по адресу: https://nodejs.org/en/download

Шаг 3: Проверьте подключение

После настройки конфигурации MCP вновь настроенный MCP-сервер должен отображаться как включенный. Зеленая точка указывает на то, что сервер успешно работает.

Теперь вы можете выполнять запросы в Bob IDE:

get me all applications from Instana in the last 24 hours

Режим Stdio

Конфигурация с использованием CLI (установка PyPI — рекомендуется):

Вариант 1: Использование переменных окружения в конфигурации:

{
  "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"
      }
    }
  }
}

Вариант 2: Использование флага --env (альтернативный метод):

{
  "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"
      ]
    }
  }
}

Примечание: Если вы столкнулись с ошибками "command not found", используйте полный путь к mcp-instana. Найдите его с помощью which mcp-instana и используйте этот путь.

Конфигурация с использованием установки для разработки:

Вариант 1: Использование переменных окружения в конфигурации:

{
  "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"
      }
    }
  }
}

Вариант 2: Использование флага --env (альтернативный метод):

{
  "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 поддерживает оба режима — Streamable HTTP и Stdio — для интеграции MCP.

Настройте Claude Desktop, отредактировав файл конфигурации:

Расположение файлов:

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

Режим Streamable HTTP

Режим Streamable HTTP предоставляет REST API интерфейс для MCP-коммуникации с использованием JSON-RPC поверх HTTP.

Шаг 1: Запустите MCP-сервер в режиме Streamable HTTP

Перед настройкой Claude Desktop вам нужно запустить MCP-сервер в режиме Streamable HTTP. Пожалуйста, обратитесь к разделу Запуск локального MCP-сервера для подробных инструкций.

Шаг 2: Настройте Claude Desktop

Настройте Claude Desktop для передачи учетных данных Instana через заголовки:

{
  "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"
      ]
    }
  }
}

Примечание: Для использования npx мы рекомендуем сначала установить NVM (Node Version Manager), а затем использовать его для установки Node.js. Инструкции по установке доступны по адресу: https://nodejs.org/en/download

Шаг 3: Проверьте подключение

Перезапустите Claude Desktop. Теперь вы должны увидеть Instana MCP Server в интерфейсе Claude Desktop, как показано ниже:

Теперь вы можете выполнять запросы в Claude Desktop:

get me all endpoints from Instana

Режим Stdio

Конфигурация с использованием CLI (установка PyPI — рекомендуется):

Вариант 1: Использование переменных окружения в конфигурации:

{
  "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"
      }
    }
  }
}

Вариант 2: Использование флага --env (альтернативный метод):

{
  "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"
      ]
    }
  }
}

Примечание: Если вы столкнулись с ошибками "command not found", используйте полный путь к mcp-instana. Найдите его с помощью which mcp-instana и используйте этот путь.

Конфигурация с использованием установки для разработки:

Вариант 1: Использование переменных окружения в конфигурации:

{
  "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"
      }
    }
  }
}

Вариант 2: Использование флага --env (альтернативный метод):

{
  "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"
      ]
    }
  }
}

Настройка Kiro

Kiro — это агентная IDE, а не расширение, которое можно загрузить в VS Code или другую IDE.

Шаг 1: Загрузите и установите Kiro для вашей операционной системы с https://kiro.dev/.

Шаг 2: После установки запустите Kiro и откройте любой проект в IDE. alt text

Шаг 3: Нажмите на значок Kiro (Призрак) на левой боковой панели, чтобы получить доступ к функциям Kiro. alt text

Шаг 4: Выберите значок Edit Config в правом верхнем углу раздела MCP Servers. alt text

Шаг 5: Откройте файл конфигурации MCP-сервера (mcp.json) и настройте его в зависимости от предпочитаемого режима транспорта:

Режим Streamable HTTP (рекомендуется для 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"
      ]
    }
  }
}

Примечание: Убедитесь, что вы запустили MCP-сервер в режиме streamable-http перед использованием этой конфигурации:

mcp-instana --transport streamable-http

Режим Stdio

Вариант 1: Использование переменных окружения в конфигурации:

{
  "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"
      }
    }
  }
}

Вариант 2: Использование флага --env (альтернативный метод):

{
  "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"
      ]
    }
  }
}

Шаг 6: После сохранения файла нажмите кнопку Enable MCP, и вы увидите ваш MCP-сервер и его доступные инструменты в нижней левой части Kiro. alt text

Шаг 7: Перейдите на панель AI Chat, введите запрос, связанный с вашим MCP-сервером, и просмотрите ответ непосредственно в Kiro. alt text

GitHub Copilot

GitHub Copilot поддерживает интеграцию MCP через конфигурацию VS Code. Для интеграции GitHub Copilot с VS Code обратитесь к этому руководству по настройке.

Режим Streamable HTTP

Шаг 1: Запустите MCP-сервер в режиме Streamable HTTP

Перед настройкой VS Code вам нужно запустить MCP-сервер в режиме Streamable HTTP. Пожалуйста, обратитесь к разделу Запуск локального MCP-сервера для подробных инструкций.

Шаг 2: Настройте VS Code

Обратитесь к Использование MCP-серверов в VS Code для подробной конфигурации.

Вы можете напрямую создать или обновить .vscode/mcp.json со следующей конфигурацией:

{
  "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"
      }
    }
  }
}

Примечание: Замените следующие значения вашей фактической конфигурацией:

  • instana-base-url: URL вашего экземпляра Instana
  • instana-api-token: Ваш API-токен Instana
  • command: Обновите путь к npx в соответствии с установкой Node.js в вашей системе (например, /path/to/your/node/bin/npx)
  • Переменные окружения: Настройте PATH и другие переменные окружения по мере необходимости для вашей системы

Режим Stdio

Шаг 1: Создайте конфигурацию MCP в VS Code

Использование CLI (установка PyPI — рекомендуется):

Создайте .vscode/mcp.json в корневом каталоге вашего проекта:

Вариант 1: Использование переменных окружения в конфигурации:

{
  "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"
      }
    }
  }
}

Вариант 2: Использование флага --env (альтернативный метод):

{
  "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"
      ]
    }
  }
}

Использование установки для разработки:

Создайте .vscode/mcp.json в корневом каталоге вашего проекта:

Вариант 1: Использование переменных окружения в конфигурации:

{
  "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"
      }
    }
  }
}

Вариант 2: Использование флага --env (альтернативный метод):

{
  "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"
      ]
    }
  }
}

Примечание: Замените следующие значения вашей фактической конфигурацией:

  • Для установки CLI: Убедитесь, что mcp-instana находится в вашем PATH
  • Для установки для разработки:
    • command: Обновите путь к uv в соответствии с установкой uv в вашей системе (например, /path/to/your/uv/bin/uv или /usr/local/bin/uv)
    • --directory: Обновите абсолютным путем к каталогу вашего проекта mcp-instana
  • INSTANA_BASE_URL: URL вашего экземпляра Instana
  • INSTANA_API_TOKEN: Ваш API-токен Instana

Шаг 2: Управление сервером в VS Code

  1. Откройте .vscode/mcp.json — вы увидите элементы управления управлением сервером вверху
  2. Нажмите Start рядом с Instana MCP Server, чтобы запустить сервер
  3. Статус выполнения вместе с количеством инструментов указывает на то, что сервер работает

Шаг 3: Проверьте интеграцию

Переключитесь в режим агента в GitHub Copilot и перезагрузите инструменты. Вот пример ответа GitHub Copilot:

GitHub Copilot Response

Mistral AI

Mistral AI поддерживает интеграцию MCP исключительно через режим Streamable HTTP.

Шаг 1: Запустите MCP-сервер в режиме Streamable HTTP

Запустите MCP-сервер в режиме Streamable HTTP, указав ваши учетные данные Instana. Выполните следующую команду:

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

Шаг 2: Настройте переадресацию портов с помощью Ngrok

Настройте переадресацию портов, чтобы открыть ваш локальный сервер. Следуйте документации по настройке Ngrok для подробных инструкций.

Шаг 3: Настройте Mistral AI

  1. Перейдите на вкладку Intelligence на левой боковой панели и выберите Connectors Mistral HomePage

  2. Нажмите Add Connector Connector

  3. Создайте пользовательский коннектор, введя имя коннектора и URL MCP-сервера, переадресованный через Ngrok Custom Connector

  4. Начните новый чат-сеанс и убедитесь, что MCP-инструменты включены. Вы можете просмотреть ответ здесь Testing MCP connection Response

Подключение к нескольким Instana MCP-серверам

Вы можете настроить ваш MCP-клиент для подключения к нескольким экземплярам. Ниже приведен пример конфигурации:

{
  "mcpServers": {
    "Instana MCP Server1": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://0.0.0.0:8080/mcp/",
        "--allow-http",
        "--header",
        "instana-base-url: ENV1_INSTANA_URL",
        "--header",
        "instana-api-token: ENV1_INSTANA_API_TOKEN"
      ]
    },
    "Instana MCP Server2": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://0.0.0.0:8080/mcp/",
        "--allow-http",
        "--header",
        "instana-base-url: ENV2_INSTANA_URL",
        "--header",
        "instana-api-token: ENV2_INSTANA_API_TOKEN"
      ]
    }
  }
}

Чтобы нацелиться на конкретный сервер, убедитесь, что:

  • Сервер настроен с соответствующим именем окружения в конфигурации MCP (например, Instana MCP Server1)
  • Запрос явно упоминает имя сервера/окружения.

Затем запрос будет направлен на соответствующий настроенный сервер. Если сервер/окружение явно не указаны в запросе, MCP использует первый сервер, определённый в конфигурации, как сервер по умолчанию.

Примечание: Если запрошенный сервер недоступен или не отвечает, MCP ведёт себя ожидаемым образом и передаёт ошибку API. Пользователь получит соответствующую ошибку, возвращённую API, указывающую на недоступность сервера. MCP полагается на доступность базового API и не выполняет автоматическое переключение.

Поддерживаемые функции

  • Единое управление приложениями и инфраструктурой (manage_instana_resources)
    • Метрики приложений
      • Запрос метрик приложений с гибкой фильтрацией
      • Список сервисов и конечных точек
      • Группировка по тегам и агрегация метрик
    • Конфигурация оповещений приложений
      • Поиск активных конфигураций оповещений
      • Получение версий конфигураций оповещений
      • Создание, обновление и удаление конфигураций оповещений
      • Включение, отключение и восстановление конфигураций оповещений
      • Обновление исторических базовых линий
    • Глобальная конфигурация оповещений приложений
      • Управление глобальными конфигурациями оповещений
      • Контроль версий глобальных оповещений
    • Настройки приложений
      • Управление перспективами приложений
      • Настройка конечных точек и сервисов
      • Управление ручными сервисами
    • Каталог приложений
      • Получение каталога тегов приложений
      • Получение каталога метрик приложений
  • Управление инфраструктурой (manage_infrastructure)
    • Единый интеллектуальный маршрутизатор, заменяющий analyze_infrastructure — единый инструмент для анализа, каталога и снимков ресурсов
    • get_plugin_schema — получает метрики и теги для плагина за один вызов API (заменяет два отдельных вызова)
    • Динамическая поддержка всех типов сущностей из каталога API Instana (JVM, Kubernetes, Docker, хосты, базы данных, очереди сообщений и другие)
    • Статические файлы схемы удалены — вся схема загружается в реальном времени из API Instana
    • Операции со снимками ресурсов: get_snapshot, get_snapshots
    • Гибкая агрегация метрик (max, mean, sum и т.д.)
    • Расширенная фильтрация по тегам и свойствам
    • Возможности группировки и сортировки
    • Запросы по временным диапазонам
  • Единое управление событиями (manage_events)
    • Мониторинг событий
      • Получение события по ID (operation="get_event")
      • Получение событий по ID (operation="get_events_by_ids")
      • Получение событий мониторинга агентов (operation="get_agent_monitoring_events")
      • Получение информационных событий Kubernetes (operation="get_kubernetes_info_events")
      • Получение событий (operation="get_events")
    • Интеллектуальная маршрутизация к специализированным инструментам событий
    • Единая проверка параметров (временные диапазоны, max_events)
    • Поддержка временных диапазонов на естественном языке («последние 24 часа», «последние 2 дня»)
    • Фильтрация и оптимизация событий
  • Мониторинг мобильных приложений (manage_mobile_apps)
    • Воспроизведение сессий — новое (resource_type="session_replay")
      • get_session_replay_action_beacons — постраничное получение маяков действий по ID мобильного приложения и ID сессии
      • Постраничная навигация на основе курсора (cursor, page_size, hasMore)
    • Анализ маяков, метрики производительности, географический и устройственный анализ, управление оповещениями (существующие)
  • Единое управление веб-сайтами (manage_website_resources)
    • Анализ веб-сайта (resource_type="analyze")
      • Получение групп маяков веб-сайта — сгруппированные/агрегированные данные маяков (operation="get_beacon_groups")
      • Получение маяков веб-сайта — отдельные данные маяков с постраничной навигацией (operation="get_beacons")
      • Автоматическая проверка тегов и рабочий процесс выявления на основе каталога
      • Суммаризация ответов (сокращение полезной нагрузки на 70–80%)
      • Поддержка нескольких типов маяков: PAGELOAD, PAGECHANGE, RESOURCELOAD, CUSTOM, HTTPREQUEST, ERROR
    • Каталог веб-сайта (resource_type="catalog")
      • Получение каталога метрик веб-сайта (operation="get_metrics")
      • Получение каталога тегов веб-сайта по типу маяка и сценарию использования (operation="get_tag_catalog")
    • Конфигурация веб-сайта (resource_type="configuration")
      • Получение всех веб-сайтов (operation="get_all")
      • Получение веб-сайта по ID или имени с автоматическим разрешением имени (operation="get")
    • Расширенная конфигурация — ТОЛЬКО ЧТЕНИЕ (resource_type="advanced_config")
      • Получение конфигурации геолокации (operation="get_geo_config")
      • Получение конфигурации маскирования IP (operation="get_ip_masking")
      • Получение правил гео-сопоставления (operation="get_geo_rules")
  • Единое управление автоматизацией (manage_automation)
    • Каталог действий (resource_type="catalog")
      • Список всех доступных действий автоматизации (operation="get_actions")
      • Получение подробной информации о конкретном действии (operation="get_action_details")
      • Поиск подходящих действий по имени/описанию (operation="get_action_matches")
      • Получение совпадений действий по ID приложения или снимка и временному окну (operation="get_action_matches_by_id_and_time_window")
      • Получение доступных типов действий (operation="get_action_types")
      • Получение доступных тегов действий (operation="get_action_tags")
    • История действий (resource_type="history")
      • Список экземпляров выполнения действий с фильтрацией (operation="list")
      • Получение деталей конкретного выполнения действия (operation="get_details")
  • Единый синтетический мониторинг (manage_synthetics)
    • Синтетический каталог (resource_type="catalog")
      • Получение доступных метрик с поддерживаемыми агрегациями для планирования запросов (operation="get_synthetic_catalog_metrics")
      • Получение допустимых имён тегов для фильтрации, группировки и интеллектуальных оповещений (operation="get_synthetic_tag_catalog")
    • Синтетические метрики (resource_type="metrics")
      • Получение агрегированных синтетических метрик, сгруппированных по местоположению или имени теста (operation="get_metrics_result")
    • Синтетические настройки (resource_type="settings")
      • Получение полной конфигурации синтетического теста по ID или имени (operation="get_synthetic_test")
      • Список синтетических тестов с необязательной фильтрацией по приложению, местоположению или учётным данным (operation="get_synthetic_tests")
      • Список всех мест мониторинга с типом, гео-данными и метаданными возможностей (operation="get_locations")
      • Получение одного местоположения по ID или имени с автоматическим разрешением имени (operation="get_location_by_id")
      • Получение всех местоположений центров обработки данных (Managed) с количеством онлайн (operation="get_all_datacenters")
    • Воспроизведение синтетических тестов (resource_type="test_playback")
      • Получение агрегированных метрик воспроизведения по каждому тесту (operation="get_synthetic_result")
      • Получение самого последнего результата по каждому тесту с использованием аналитики LAST_VALUE (operation="get_synthetic_result_analytic")
      • Получение результатов отдельных запусков тестов с исходным статусом, ошибками и временными метками (operation="get_synthetic_result_list")
      • Получение сводных метаданных на уровне местоположения, включая время последнего запуска и версию PoP (operation="get_location_summary_list")
      • Получение показателей успешности по каждому тесту с разбивкой по местоположениям (operation="get_test_summary_list")
      • Получение доступных типов детальных данных для конкретного результата теста (operation="get_synthetic_result_metadata")
      • Получение содержимого файлов детальных данных, таких как журналы, HAR или скриншоты (operation="get_synthetic_result_detail_data")
  • Пользовательские панели мониторинга (manage_custom_dashboards)
    • Получение всех пользовательских панелей мониторинга
    • Получение конкретной панели мониторинга по ID
    • Создание новой пользовательской панели мониторинга
    • Обновление существующей пользовательской панели мониторинга
    • Удаление пользовательской панели мониторинга
    • Получение пользователей, доступных для совместного использования панели мониторинга
    • Получение API-токенов, доступных для совместного использования панели мониторинга

Доступные инструменты

ИнструментКатегорияОписание
manage_applicationsПриложения и инфраструктураЕдиный инструмент для управления метриками приложений, конфигурациями оповещений, настройками и каталогом
manage_websitesМониторинг веб-сайтовЕдиный интеллектуальный маршрутизатор для анализа веб-сайтов, каталога, конфигурации и операций расширенной конфигурации
manage_custom_dashboardsПользовательские панели мониторингаЕдиный инструмент для управления CRUD-операциями пользовательских панелей мониторинга
manage_infrastructureИнфраструктураЕдиный интеллектуальный маршрутизатор для анализа инфраструктуры, каталога (get_plugin_schema) и операций со снимками ресурсов
manage_automationАвтоматизацияЕдиный интеллектуальный маршрутизатор для автоматизации: просмотр каталога действий и истории выполнения
manage_eventsСобытияЕдиный интеллектуальный маршрутизатор для мониторинга событий: получение события по ID, получение событий по ID, события Kubernetes, события мониторинга агентов и все события
manage_sloУправление SLOЕдиный интеллектуальный маршрутизатор для конфигураций SLO, отчётов, оповещений и окон коррекции с интеллектуальной обработкой часовых поясов
manage_releasesУправление релизамиЕдиный интеллектуальный маршрутизатор для отслеживания релизов: список релизов с постраничной навигацией и фильтрацией по имени, получение деталей релиза, создание/обновление/удаление релизов с поддержкой часовых поясов
manage_maintenance_windowsОкна обслуживанияЕдиный интеллектуальный маршрутизатор для управления жизненным циклом окон обслуживания: создание, изменение, закрытие и список окон обслуживания с поддержкой шаблонов и интеграцией с ServiceNow
manage_mobile_appsМониторинг мобильных приложенийЕдиный интеллектуальный маршрутизатор для мониторинга мобильных приложений: анализ маяков, метрики производительности, воспроизведение сессий, конфигурация и управление оповещениями
manage_syntheticsСинтетический мониторингЕдиный интеллектуальный маршрутизатор для синтетического мониторинга: каталог, метрики, настройки (только чтение) и результаты воспроизведения тестов

👉 Подробную документацию по инструментам, возможностям и техническую справку см. в разделе Инструменты и примеры

Фильтрация инструментов

Сервер MCP поддерживает выборочную загрузку инструментов для оптимизации производительности и снижения использования ресурсов. Вы можете включить только те категории инструментов, которые нужны для вашего конкретного сценария использования.

Доступные категории инструментов

  • router: Единое управление приложениями и инфраструктурой

    • manage_instana_resources: Единый инструмент для метрик приложений, конфигураций оповещений, настроек и каталога
    • Поддерживает перспективы приложений, конечные точки, сервисы и ручные сервисы
    • Управляет как специфичными для приложений, так и глобальными конфигурациями оповещений
    • Предоставляет доступ к каталогу тегов приложений и каталогу метрик
  • dashboard: Управление пользовательскими панелями мониторинга

    • manage_custom_dashboards: CRUD-операции для пользовательских панелей мониторинга
    • Поддерживает создание, получение, обновление и удаление панелей мониторинга
    • Управляет пользователями и API-токенами, доступными для совместного использования панелей мониторинга
  • infra: Инструменты управления инфраструктурой

    • manage_infrastructure: Единый интеллектуальный маршрутизатор для анализа инфраструктуры, каталога и операций со снимками ресурсов
    • get_plugin_schema объединяет get_metrics + get_tag_catalog в один вызов API
    • Динамически поддерживает все типы сущностей, доступные в вашей установке Instana (автоматически загружаются из каталога API)
    • Включает JVM, Kubernetes, Docker, хосты, базы данных, очереди сообщений и любые пользовательские или недавно добавленные типы сущностей
    • Гибкая агрегация метрик, фильтрация, группировка и запросы по временным диапазонам
  • automation: Инструменты для действий автоматизации

    • manage_automation: Единый интеллектуальный маршрутизатор для каталога автоматизации и истории выполнения
    • Каталог действий: просмотр действий, получение деталей, поиск по имени/описанию, фильтрация по идентификатору приложения или снимка
    • История действий: список экземпляров выполнения с фильтрацией, получение деталей выполнения
  • events: Инструменты мониторинга событий

    • События: события Kubernetes, мониторинг агентов и отслеживание системных событий
  • website: Инструменты мониторинга веб-сайтов

    • Метрики веб-сайтов: измерение производительности веб-сайтов
    • Каталог веб-сайтов: метаданные и определения веб-сайтов
    • Анализ веб-сайтов: анализ производительности веб-сайтов
    • Конфигурация веб-сайтов: управление конфигурацией веб-сайтов
  • slo: Управление целевыми уровнями обслуживания (SLO)

    • manage_slo: Единый интеллектуальный маршрутизатор для комплексных операций SLO
    • Управление конфигурацией: Создание, чтение, обновление, удаление конфигураций SLO с поддержкой временных и событийных индикаторов
    • Генерация отчетов: Создание подробных отчетов SLO со значениями SLI, бюджетами ошибок, скоростью выгорания и временными рядами
    • Настройка оповещений: Управление конфигурациями оповещений SLO для мониторинга бюджета ошибок и отслеживания скорости выгорания
    • Окна коррекции: Создание и управление окнами технического обслуживания для исключения плановых простоев из расчетов SLO
    • Интеллектуальная обработка часовых поясов: Автоматическое определение часового пояса для ввода даты и времени для обеспечения точного временного контекста
    • Двухэтапный сбор данных: Интерактивный сбор параметров для сложных операций, требующих множества входных данных
  • releases: Отслеживание релизов и управление развертыванием

    • manage_releases: Единый интеллектуальный маршрутизатор для операций с релизами
    • Список релизов: Получение всех релизов с эффективной пагинацией (page_number, page_size) и фильтрацией по имени
    • Детали релиза: Получение информации о конкретном релизе по идентификатору, включая приложения, сервисы и области
    • Создание/Обновление/Удаление: Полные операции CRUD для управления релизами
    • Интеллектуальная обработка часовых поясов: Автоматическое определение часового пояса для времени начала релиза
    • Эффективная пагинация: Избегание избыточной загрузки данных с помощью правильной навигации по страницам
    • Фильтрация по имени: Поиск без учета регистра по подстроке для поиска релизов по имени
  • maintenance_window: Управление жизненным циклом окон технического обслуживания

    • manage_maintenance_windows: Единый интеллектуальный маршрутизатор для операций с окнами технического обслуживания
    • Операции с окнами: Создание, изменение, закрытие и список окон технического обслуживания (активные, запланированные, все, истекшие)
    • Массовые операции: Создание окон технического обслуживания для нескольких приложений одновременно
    • Поддержка шаблонов: Предопределенные шаблоны для распространенных сценариев (deployment, database_migration, infrastructure_upgrade, emergency, routine)
    • Повторяющиеся окна: Поддержка повторяющихся окон технического обслуживания с использованием формата RFC 5545 RRULE
    • Интеграция с ServiceNow: Необязательная интеграция с запросами на изменения ServiceNow
    • Проверка: Проверка параметров перед созданием окна
    • Гибкая продолжительность: Указание продолжительности в минутах, часах или днях
  • mobile_app: Мониторинг мобильных приложений

    • manage_mobile_apps: Единый интеллектуальный маршрутизатор для операций мониторинга мобильных приложений
    • Воспроизведение сеансов: Получение постраничных маячков воспроизведения сеансов по идентификатору мобильного приложения и идентификатору сеанса (resource_type="session_replay")
    • Анализ маячков: Запрос данных маячков мобильных приложений с группировкой и фильтрацией
    • Метрики производительности: Отслеживание продолжительности сеансов, частоты сбоев и производительности HTTP-запросов
    • Географический анализ: Анализ распределения пользователей по странам, городам и регионам
    • Анализ устройств: Мониторинг производительности на различных устройствах, платформах и версиях ОС
    • Управление конфигурацией: Управление конфигурациями мобильных приложений, геолокацией и настройками маскирования IP
    • Управление оповещениями: Настройка и управление конфигурациями оповещений мобильных приложений
  • synthetics: Управление синтетическим мониторингом

    • manage_synthetics: Единый интеллектуальный маршрутизатор для всех операций синтетического мониторинга
    • Каталог: Обнаружение допустимых идентификаторов метрик и имен тегов перед созданием запросов
    • Метрики: Получение агрегированных времен отклика и коэффициентов успеха, сгруппированных по местоположению или имени теста
    • Настройки: Список и поиск тестов и местоположений с автоматическим разрешением имен; определение центров обработки данных (Managed) и самостоятельных (Private) точек присутствия
    • Воспроизведение тестов: Необработанные результаты для каждого запуска, аналитика LAST_VALUE, сводки коэффициента успеха по местоположению и загрузка файлов деталей (LOGS, HAR, скриншоты)

Примеры использования

Использование CLI (установка через 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

Использование установки для разработки

# 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

Преимущества фильтрации инструментов

  • Производительность: Сокращение времени запуска и использования памяти
  • Безопасность: Ограничение доступа только необходимыми API
  • Ясность: Фокус на конкретных случаях использования (например, только мониторинг инфраструктуры)
  • Эффективность ресурсов: Снижение нагрузки на ЦП и сеть

👉 Примеры использования и подсказки см. в Примеры подсказок

Развертывание с помощью Docker

Сервер MCP Instana может быть развернут с помощью Docker для производственных сред. Настройка Docker оптимизирована для безопасности, производительности и минимального использования ресурсов.

Сборка образа Docker

Предварительные требования

  • Установленный и запущенный Docker
  • Доступ к исходному коду проекта

Сборка и запуск

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

# Build with a specific tag
docker build -t mcp-instana:<image_tag> .
# Run the container (credentials are supplied via HTTP headers at request time)
docker run -p 8080:8080 mcp-instana

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

📖 Полную документацию по Docker, включая сборки для нескольких архитектур, .dockerignore, рекомендации по безопасности и примеры производственного развертывания, см. в DOCKER.md.

Устранение неполадок

Проблемы с Docker

Контейнер не запускается

# 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

Проблемы с подключением

# Test container connectivity (expects 406 from a bare GET — means server is up)
curl http://localhost:8080/mcp
# Check port mapping
docker port <container_id>

Проблемы с производительностью

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

Общие проблемы

  • GitHub Copilot

    • Если у вас возникли проблемы с GitHub Copilot, попробуйте запустить/остановить/перезапустить сервер в файле mcp.json и оставьте запущенным только один сервер за раз.
  • Проблемы с сертификатами

    • Если у вас возникли проблемы с сертификатами, такие как [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate:
      • Проверьте, можете ли вы достичь конечной точки API Instana с помощью curl или wget с проверкой SSL.
        • Если это работает, ваша среда Python может не иметь возможности проверить сертификат и может не иметь доступа к тем же сертификатам, что и ваша оболочка или система. Убедитесь, что ваша среда Python использует системные сертификаты (macOS). Вы можете сделать это, установив сертификаты в Python: /Applications/Python\ 3.13/Install\ Certificates.command
      • Если вы не можете достичь конечной точки с проверкой SSL, попробуйте без нее. Если это работает, проверьте системные сертификаты CA и убедитесь, что они актуальны.