IBM Instana MCP Server

官方

IBM Instana MCP服务器支持与IBM Instana可观测性平台无缝交互,使您能够直接在开发工作流中访问实时可观测性数据。

你可以用 IBM Instana MCP 做什么?

  • 检索基础设施快照 — 使用 get_infra_snapshot 请求特定主机、进程或容器的快照。
  • 分析应用或服务指标 — 使用 get_app_metricsget_service_metrics 请求调用、错误或延迟的时间序列指标。
  • 列出活跃告警和事件 — 通过 get_alertsget_incidents 获取当前告警、事件或全局智能告警。
  • 检查 Kubernetes 事件 — 使用 get_k8s_events 拉取集群或命名空间的近期 Kubernetes 事件。
  • 查询网站监控数据 — 通过 get_website_metrics 获取网站性能指标或信标结果。

文档

目录

IBM Instana MCP 服务器

📚 快速链接


Instana MCP 服务器支持与 Instana 可观测性平台的无缝交互,让您可以直接在开发工作流中访问实时可观测性数据。

它充当客户端(如 AI 代理或自定义工具)与 Instana REST API 之间的桥梁,将用户查询转换为 Instana API 请求,并将响应格式化为结构化、易于使用的格式。

该服务器同时支持 Streamable HTTPStdio 传输模式,以最大限度地兼容不同的 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

工作流程

考虑一个简单的例子:您正在使用一个连接到 Instana MCP 服务器的 MCP 主机(如 Claude Desktop、VS Code 或其他客户端)。当您请求有关 Instana 告警的信息时,会发生以下过程:

  1. MCP 客户端从 Instana MCP 服务器检索可用工具列表
  2. 您的查询连同工具描述一起发送给 LLM
  3. LLM 分析可用工具并选择合适的一个(或多个)来检索 Instana 告警
  4. 客户端通过 Instana MCP 服务器执行所选工具
  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 模式时,您必须通过 HTTP 请求头传递 Instana 凭据。这种方法通过以下方式增强了安全性和灵活性:

  • 避免在环境变量中存储凭据
  • 支持为不同请求使用不同凭据
  • 支持在限制修改环境变量的共享环境中使用
  • 同时支持 API 令牌和基于会话的认证

支持的认证模式:

1. API 令牌认证(直接 API 调用)

必需的请求头:

  • instana-base-url:您的 Instana 实例 URL
  • instana-api-token:您的 Instana API 令牌

示例:

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

2. 会话令牌认证(UI 发起的调用)

必需的请求头:

  • instana-base-url:您的 Instana 实例 URL
  • instana-auth-token:来自 UI 后端的会话认证令牌
  • instana-csrf-token:来自 UI 后端的 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 平台集成)

必需的请求头:

  • instana-base-url:您的 Instana 实例 URL
  • instana-jwt-token:来自 IBM 平台的 JWT 令牌
  • 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 平台集成优先
  2. 会话令牌(如果同时提供了 auth_token 和 csrf_token)
  3. API 令牌(如果提供)- 标准认证
  4. 环境变量INSTANA_API_TOKEN)- 回退方案

认证流程:

  1. 每个请求中必须包含 HTTP 请求头
  2. 服务器根据优先级顺序验证凭据
  3. 没有有效认证的请求将失败

此设计确保了安全的凭据传输,并支持多种认证流程,包括通过 WebSocket → 协调器 → MCP 服务器发起的 UI 调用。

确保使用的令牌具有调用 MCP 工具的必要权限。请查看此处了解更多信息。

启动本地 MCP 服务器

在配置任何 MCP 客户端(Claude Desktop、GitHub Copilot 或自定义 MCP 客户端)之前,您需要启动本地 MCP 服务器。该服务器支持两种传输模式:Streamable HTTPStdio

服务器命令选项

使用 CLI(PyPI 安装)

如果您从 PyPI 安装了 mcp-instana,请使用 mcp-instana 命令:

mcp-instana [OPTIONS]

使用开发环境安装

对于本地开发,请使用 uv run 命令:

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

可用选项:

  • --transport <mode>:传输模式(选项:streamable-httpstdio
  • --env KEY=VALUE:设置环境变量(可重复用于多个变量,例如 --env INSTANA_BASE_URL=https://... --env INSTANA_API_TOKEN=...
  • --debug:启用调试模式并附加日志记录
  • --log-level <level>:设置日志记录级别(选项:DEBUGINFOWARNINGERRORCRITICAL
  • --tools <categories>:要启用的工具类别,以逗号分隔(例如 infra,app,events,website)。启用某个类别也会启用其相关的提示。例如:--tools infra 启用 infra 工具和所有 infra 相关的提示。
  • --list-tools:列出所有可用的工具类别并退出
  • --port <port>:MCP 服务器端口(默认:8080,可通过 PORT 环境变量覆盖)
  • --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 标志提供了一种无需修改 shell 环境即可设置凭据的便捷方式

工具类别

您可以通过仅启用所需的工具和提示类别来优化服务器性能:

使用 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:网站监控工具和提示(指标、目录、分析、配置)

验证服务器状态

启动后,您可以验证服务器是否正在运行:

对于 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 模式: 服务器将启动并等待来自 MCP 客户端的 stdin 输入。

常见启动问题

证书问题: 如果您遇到 SSL 证书错误,请确保您的 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 是 IBM 的 AI 驱动 IDE,原生支持 MCP 集成。Bob 提供无缝的开发体验,内置 AI 辅助和可观测性工具。

流式 HTTP 模式

流式 HTTP 模式通过 HTTP 上的 JSON-RPC 为 MCP 通信提供 REST API 接口。

步骤 1:在流式 HTTP 模式下启动 MCP 服务器

在配置 Bob 之前,您需要在流式 HTTP 模式下启动 MCP 服务器。请参阅启动本地 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 以连接到您的本地 IBM 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 以连接到远程 IBM 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 版本管理器),然后使用它来安装 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 支持流式 HTTP 和 Stdio 两种模式进行 MCP 集成。

通过编辑配置文件来配置 Claude Desktop:

文件位置:

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

流式 HTTP 模式

流式 HTTP 模式通过 HTTP 上的 JSON-RPC 为 MCP 通信提供 REST API 接口。

步骤 1:在流式 HTTP 模式下启动 MCP 服务器

在配置 Claude Desktop 之前,您需要在流式 HTTP 模式下启动 MCP 服务器。请参阅启动本地 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 版本管理器),然后使用它来安装 Node.js。 安装说明可在以下位置获取:https://nodejs.org/en/download

步骤 3:测试连接

重启 Claude Desktop。您现在应该会在 Claude Desktop 界面中看到 IBM Instana MCP 服务器,如下所示:

您现在可以在 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:从 https://kiro.dev/. 下载并安装适用于您操作系统的 Kiro**

步骤 2:安装后,启动 Kiro 并在 IDE 中打开任何项目。 alt text

步骤 3:点击左侧边栏中的 Kiro(Ghost)图标以访问 Kiro 的功能。 alt text

步骤 4:在 MCP 服务器部分右上角选择“编辑配置”图标。 alt text

步骤 5:打开 MCP 服务器配置文件(mcp.json),并根据您首选的传输模式进行配置:

流式 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"
      ]
    }
  }
}

注意: 在使用此配置之前,请确保在 streamable-http 模式下启动 MCP 服务器:

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:保存文件后,点击“启用 MCP”按钮,您将在 Kiro 的左下部分看到您的 MCP 服务器及其可用工具。 alt text

步骤 7:转到 AI 聊天面板,输入与您的 MCP 服务器相关的提示,并直接在 Kiro 中查看响应。 alt text

GitHub Copilot

GitHub Copilot 通过 VS Code 配置支持 MCP 集成。 有关 GitHub Copilot 与 VS Code 的集成,请参阅此设置指南

流式 HTTP 模式

步骤 1:在流式 HTTP 模式下启动 MCP 服务器

在配置 VS Code 之前,您需要在流式 HTTP 模式下启动 MCP 服务器。请参阅启动本地 MCP 服务器部分获取详细说明。

步骤 2:配置 VS Code

请参阅在 VS Code 中使用 MCP 服务器获取详细配置。

您可以直接使用以下配置创建或更新 .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:您的 Instana 实例 URL
  • instana-api-token:您的 Instana API 令牌
  • command:更新 npx 路径以匹配您系统的 Node.js 安装(例如,/path/to/your/node/bin/npx
  • 环境变量:根据需要为您的系统调整 PATH 和其他环境变量

Stdio 模式

步骤 1:创建 VS Code MCP 配置

使用 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:您的 Instana 实例 URL
  • INSTANA_API_TOKEN:您的 Instana API 令牌

步骤 2:在 VS Code 中管理服务器

  1. 打开 .vscode/mcp.json - 您将在顶部看到服务器管理控件
  2. 点击 Instana MCP Server 旁边的 Start 以启动服务器
  3. 运行状态以及工具数量表示服务器正在运行

步骤 3:测试集成

在 GitHub Copilot 中切换到代理模式并重新加载工具。 以下是 GitHub Copilot 响应的示例:

GitHub Copilot Response

Mistral AI

Mistral AI 仅通过流式 HTTP 模式支持 MCP 集成。

步骤 1:在流式 HTTP 模式下启动 MCP 服务器

通过提供您的 Instana 凭据,在流式 HTTP 模式下启动 MCP 服务器。运行以下命令:

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. 导航到左侧边栏中的智能选项卡,然后选择连接器 Mistral HomePage

  2. 点击添加连接器 Connector

  3. 通过输入连接器名称和 Ngrok 转发的 MCP 服务器 URL 来创建自定义连接器 Custom Connector

  4. 开始新的聊天会话,并验证 MCP 工具是否已启用。您可以在此处查看响应 Testing MCP connection Response

支持的功能

  • 统一应用与基础设施管理 (manage_instana_resources)
    • 应用指标
      • 使用灵活过滤查询应用指标
      • 列出服务和端点
      • 按标签分组并聚合指标
    • 应用告警配置
      • 查找活跃告警配置
      • 获取告警配置版本
      • 创建、更新和删除告警配置
      • 启用、禁用和恢复告警配置
      • 更新历史基线
    • 全局应用告警配置
      • 管理全局告警配置
      • 全局告警的版本控制
    • 应用设置
      • 管理应用视角
      • 配置端点和服​​务
      • 管理手动服务
    • 应用目录
      • 获取应用标签目录
      • 获取应用指标目录
  • 基础设施分析 (analyze_infrastructure)
    • 针对实体/指标查询的两轮引导
    • 动态支持 Instana API 目录中的所有实体类型(JVM、Kubernetes、Docker、主机、数据库、消息队列等)
    • 与您的 Instana 安装中可用的插件自动同步
    • 灵活的指标聚合(最大值、平均值、总和等)
    • 按标签和属性进行高级过滤
    • 分组和排序功能
    • 时间范围查询
  • 统一事件管理 (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_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_custom_dashboards)
    • 获取所有自定义仪表板
    • 按 ID 获取特定仪表板
    • 创建新的自定义仪表板
    • 更新现有的自定义仪表板
    • 删除自定义仪表板
    • 获取仪表板的可共享用户
    • 获取仪表板的可共享 API 令牌

可用工具

工具类别描述
manage_applications应用与基础设施用于管理应用指标、告警配置、设置和目录的统一工具
manage_websites网站监控用于网站分析、目录、配置和高级配置操作的统一智能路由器
manage_custom_dashboards自定义仪表板用于管理自定义仪表板 CRUD 操作的统一工具
analyze_infrastructure基础设施分析具有实体/指标引导的两轮基础设施分析
manage_automation自动化用于自动化的统一智能路由器:浏览操作目录和查看执行历史
manage_events事件用于事件监控的统一智能路由器:按 ID 获取事件、按多个 ID 获取事件、Kubernetes 事件、代理监控事件和所有事件
manage_sloSLO 管理用于 SLO 配置、报告、告警和修正窗口的统一智能路由器,具有智能时区处理功能
manage_releases发布管理用于发布跟踪的统一智能路由器:列出发布并支持分页和名称过滤、获取发布详情、创建/更新/删除发布并支持时区
manage_maintenance_windows维护窗口用于维护窗口生命周期管理的统一智能路由器:创建、修改、关闭和列出维护窗口,支持模板和 ServiceNow 集成
manage_mobile_apps移动应用监控用于移动应用监控的统一智能路由器:分析信标、性能指标、配置和告警管理

👉 有关详细的工具文档、功能和技术参考,请参阅 工具与示例

工具过滤

MCP 服务器支持选择性工具加载,以优化性能并减少资源使用。您可以仅启用特定用例所需的工具类别。

可用的工具类别

  • router:统一应用与基础设施管理

    • manage_instana_resources:用于应用指标、告警配置、设置和目录的单一工具
    • 支持应用视角、端点、服务和手动服务
    • 管理应用特定和全局告警配置
    • 提供对应用标签目录和指标目录的访问
  • dashboard:自定义仪表板管理

    • manage_custom_dashboards:自定义仪表板的 CRUD 操作
    • 支持仪表板的创建、检索、更新和删除
    • 管理仪表板的可共享用户和 API 令牌
  • infra:基础设施分析工具

    • analyze_infrastructure:具有实体/指标引导的两轮基础设施分析
    • 动态支持 Instana 安装中可用的所有实体类型(从 API 目录自动加载)
    • 包括 JVM、Kubernetes、Docker、主机、数据库、消息队列以及任何自定义或新添加的实体类型
    • 灵活的指标聚合、过滤、分组和时间范围查询
  • automation:自动化操作工具

    • manage_automation:用于自动化目录和执行历史的统一智能路由器
    • 操作目录:浏览操作、获取详细信息、按名称/描述搜索、按应用或快照 ID 过滤
    • 操作历史:列出执行实例并支持过滤、获取执行详细信息
  • events:事件监控工具

    • 事件:Kubernetes 事件、代理监控和系统事件跟踪
  • website:网站监控工具

    • 网站指标:网站性能测量
    • 网站目录:网站元数据和定义
    • 网站分析:网站性能分析
    • 网站配置:网站配置管理
  • slo:服务水平目标 (SLO) 管理

    • manage_slo:用于全面 SLO 操作的统一智能路由器
    • 配置管理:创建、读取、更新、删除 SLO 配置,支持基于时间和基于事件的指标
    • 报告生成:生成详细的 SLO 报告,包含 SLI 值、错误预算、消耗率和时间序列图表
    • 告警配置:管理用于错误预算监控和消耗率跟踪的 SLO 告警配置
    • 修正窗口:创建和管理维护窗口,以将计划停机时间排除在 SLO 计算之外
    • 智能时区处理:自动引导日期时间输入的时区,以确保准确的时间上下文
    • 两轮引导:针对需要多个输入的复杂操作进行交互式参数收集
  • releases:发布跟踪和部署管理

    • manage_releases:用于发布操作的统一智能路由器
    • 列出发布:获取所有发布,支持高效分页(page_number、page_size)和基于名称的过滤
    • 发布详情:按 ID 检索特定发布信息,包括应用、服务和范围
    • 创建/更新/删除:用于发布管理的完整 CRUD 操作
    • 智能时区处理:自动引导发布开始时间的时区
    • 高效分页:通过适当的基于页面的导航避免冗余数据获取
    • 名称过滤:不区分大小写的子字符串匹配,以按名称查找发布
  • maintenance_window:维护窗口生命周期管理

    • manage_maintenance_windows:用于维护窗口操作的统一智能路由器
    • 窗口操作:创建、修改、关闭和列出维护窗口(活跃、已计划、全部、已过期)
    • 批量操作:同时为多个应用创建维护窗口
    • 模板支持:针对常见场景的预定义模板(deployment、database_migration、infrastructure_upgrade、emergency、routine)
    • 定期窗口:支持使用 RFC 5545 RRULE 格式的定期维护窗口
    • ServiceNow 集成:可选的与 ServiceNow 变更请求的集成
    • 验证:窗口创建前的参数验证
    • 灵活的持续时间:以分钟、小时或天为单位指定持续时间
  • mobile_app:移动应用监控

    • manage_mobile_apps:用于移动应用监控操作的统一智能路由器
    • 信标分析:通过分组和过滤查询移动应用信标数据
    • 性能指标:跟踪会话时长、崩溃率和 HTTP 请求性能
    • 地理分析:按国家、城市和地区分析用户分布
    • 设备分析:监控不同设备、平台和操作系统版本的性能
    • 配置管理:管理移动应用配置、地理位置和 IP 掩码设置
    • 告警管理:配置和管理移动应用告警配置

使用示例

使用 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
  • 清晰:专注于特定用例(例如,仅基础设施监控)
  • 资源效率:降低 CPU 和网络使用

👉 有关使用示例和提示,请参阅示例提示

Docker 部署

MCP Instana 服务器可以使用 Docker 在生产环境中部署。Docker 设置针对安全性、性能和最小资源使用进行了优化。

Docker 架构

该项目采用双文件依赖管理策略

pyproject.toml

  • 用途:开发和生产环境的统一配置
  • 依赖:所有基本依赖以及可选的开发依赖
  • 用法:本地开发、测试、CI/CD 和 Docker 生产构建
  • 优势:所有依赖的单一事实来源,简化维护

构建 Docker 镜像

前提条件

  • 已安装并运行 Docker
  • 可访问项目源代码
  • 用于多架构构建的 Docker BuildKit(在最新的 Docker 版本中默认启用)

构建命令

# 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

📖 有关全面的 Docker 文档,包括多架构构建、Docker Compose 设置、安全最佳实践和生产部署示例,请参阅 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
docker exec -it <container_id> curl http://127.0.0.1:8080/health
# 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
      • 检查您是否可以使用 curlwget 通过 SSL 验证访问 Instana API 端点。
        • 如果可行,您的 Python 环境可能无法验证证书,并且可能无法访问与您的 shell 或系统相同的证书。确保您的 Python 环境使用系统证书(macOS)。您可以通过向 Python 安装证书来实现: //Applications/Python\ 3.13/Install\ Certificates.command
      • 如果您无法通过 SSL 验证访问端点,请尝试不使用 SSL 验证。如果可行,请检查系统的 CA 证书并确保它们是最新的。