返回市场
MCP-殷塔纳监控服务器

MCP-殷塔纳监控服务器

作者:instana12 星标更新:2025-11-17

项目介绍

<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

目录

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

IBM Instana 的 MCP 服务器

Instana MCP 服务器允许与 Instana 可观察性平台进行交互,帮助实时获取可观察性数据并直接集成到开发工作流中。

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

架构图

graph LR
    subgraph "应用主机进程"
        MH[MCP 主机]
        MSI[Instana MCP 服务器]
        MST[产品 A MCP 服务器]
        MSC[产品 B MCP 服务器]

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

    subgraph "远程服务"
        II[Instana 实例]
        TI[产品 A 实例]
        CI[产品 B 实例]

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

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

工作流程图

让我们举一个简单的例子。假设您正在使用 MCP 主机,它可以是 Claude Desktop、VSCode 或其他一些工具,并且它连接到了 Instana 的 MCP 服务器。这里我将请求 Instana MCP 服务器显示一些警报。以下是发生的情况:

  • MCP 客户端从 Instana MCP 服务器获取可用工具列表。
  • 您的查询连同工具描述一起发送给 LLM。
  • LLM 分析可用工具并决定使用哪一个(些)。在这种情况下,一些与获取 Instana 警报和应用程序相关的工具返回给 Instana MCP 客户端。
  • 客户端通过 Instana MCP 服务器执行选定的工具,因为工具在服务器上。
  • 结果(最新的警报)被发送回 LLM。
  • LLM 制定自然语言响应。
  • 响应显示给您。
sequenceDiagram
    participant 用户
    participant 聊天机器人 as MCP 主机
    participant MCP客户端 as MCP 客户端
    participant MCP服务器 as Instana MCP 服务器
    participant LLM
    participant Instana as Instana 实例

    聊天机器人->>MCP客户端: 从 MCP 服务器加载可用工具
    MCP客户端->>MCP服务器: 请求可用工具列表
    MCP服务器->>MCP客户端: 返回可用工具列表
    用户->>聊天机器人: 询问 "显示来自 Instana 的最新机器人商店应用程序警报"
    聊天机器人->>MCP客户端: 转发查询
    MCP客户端->>LLM: 发送查询和工具描述
    LLM->>MCP客户端: 选择适当的工具以查询 Instana 警报
    MCP客户端->>MCP服务器: 执行选定的工具
    MCP服务器->>Instana: 获取机器人商店应用程序的警报
    MCP服务器->>MCP客户端: 发送 Instana 警报结果
    MCP客户端->>LLM: 转发 Instana 警报
    LLM->>聊天机器人: 生成关于 Instana 警报的自然语言响应
    聊天机器人->>用户: 显示 Instana 警报响应

前置条件

安装 Instana Python SDK

pip install instana-client

配置 MCP 主机

这里我们使用 Claude Desktop 作为示例。根据 https://modelcontextprotocol.io/quickstart/user 配置 Claude Desktop。对于 claude_desktop_config.json,其位置在 macOS 和 Windows 上有所不同如下:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "Instana Tools": {
      "command": "/path/to/.local/bin/uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "/path/to/mcp_server.py"
      ],
      "env": {
        "INSTANA_BASE_URL": "<INSTANA_BASE_URL>",
        "INSTANA_API_TOKEN": "<INSTANA_API_TOKEN>"
      }
    }
  }
}

运行和测试

使用 Claude Desktop 测试

重启 Claude Desktop 后,您现在可以在 Claude Desktop 中运行查询。

给我所有来自 Instana 的端点

使用 llm 客户端测试

您也可以使用 llm 客户端进行测试。

请更新 mcp-instana.json 文件 [mcpclient](<path to mcpclient>/mcp-instana.json),给出本地目录的路径。

然后在 mcpclient 文件夹下运行以下命令:

cd mcpclient
streamlit run mcpclient.py

您现在可以通过 http://localhost:8501 在浏览器中查看您的 Streamlit 应用程序。

您可以在查询框中提问。

使用 GitHub Copilot 测试

有关 GitHub Copilot 与 VSCode 的集成,请参阅此链接 https://code.visualstudio.com/docs/copilot/setup。

这是 GitHub Copilot 响应的一个示例: alt text

特性

  • 应用程序
    • 应用程序指标
      • 应用程序指标
      • 端点指标
      • 服务指标
      • 数据指标
    • 应用程序资源
      • 应用程序
      • 服务
      • 端点
    • 应用程序警报配置
      • 获取所有智能警报配置
      • 获取智能警报配置
      • 获取智能警报配置版本
      • 创建智能警报配置
      • 更新智能警报配置
      • 删除智能警报配置
      • 重新计算智能警报配置基线
      • 启用应用程序警报配置
      • 禁用智能警报配置
      • 恢复智能警报配置
  • 基础设施
    • 基础设施分析
    • 获取可用指标
    • 获取基础设施实体
    • 获取具有聚合指标的分组实体
    • 获取可用实体类型
    • 基础设施目录
      • 根据插件 ID 获取有效载荷键
      • 获取基础设施目录指标
      • 获取基础设施目录插件
      • 获取具有自定义指标的基础设施目录插件
      • 获取基础设施目录搜索字段
      • 获取具有自定义指标的基础设施目录搜索字段
      • 获取标签目录
      • 获取标签目录全部
    • 基础设施资源
      • 监控状态
      • 快照有效载荷
      • 搜索快照
      • 快照详情
      • 多个快照详情
      • 软件版本
    • 基础设施拓扑
      • 获取快照主机
      • 获取拓扑

工具

工具类别描述
get_application_metrics应用程序指标获取应用程序指标
get_endpoints_metrics应用程序指标获取端点指标
get_services_metrics应用程序指标获取服务指标
get_application_data_metrics_v2应用程序指标获取应用程序数据指标
get_applications应用程序资源获取应用程序
get_application_services应用程序资源获取应用程序/服务
get_application_endpoints应用程序资源获取端点
get_services应用程序资源获取服务
get_monitoring_state基础设施资源监控主机计数
get_plugin_payload基础设施资源获取快照的有效载荷
get_snapshots基础设施资源搜索快照
post_snapshots基础设施资源获取多个快照的详细信息
get_snapshot基础设施资源获取快照详细信息
software_versions基础设施资源获取已安装软件
get_available_payload_keys_by_plugin_id基础设施目录根据插件 ID 获取有效载荷键
get_infrastructure_catalog_metrics基础设施目录获取基础设施目录指标
get_infrastructure_catalog_plugins基础设施目录获取基础设施目录插件
get_infrastructure_catalog_plugins_with_custom_metrics基础设施目录获取具有自定义指标的基础设施目录插件
get_infrastructure_catalog_search_fields基础设施目录获取基础设施目录搜索字段
get_tag_catalog基础设施目录获取标签目录
get_tag_catalog_all基础设施目录获取标签目录全部
get_related_hosts基础设施拓扑获取相关主机
get_topology基础设施拓扑获取拓扑
get_available_metrics基础设施分析获取可用指标
get_entities基础设施分析获取基础设施实体
get_aggregated_entity_groups基础设施分析获取具有聚合指标的分组实体
get_available_plugins基础设施分析获取可用实体类型
get_application_alert_configs应用程序警报配置获取所有智能警报配置
find_application_alert_config应用程序警报配置获取智能警报配置
find_application_alert_config_versions应用程序警报配置获取智能警报配置版本
create_application_alert_config应用程序警报配置创建智能警报配置
update_application_alert_config应用程序警报配置更新智能警报配置
delete_application_alert_config应用程序警报配置删除智能警报配置
update_application_historic_baseline应用程序警报配置重新计算智能警报配置基线
enable_application_alert_config应用程序警报配置启用应用程序警报配置
disable_application_alert_config应用程序警报配置禁用智能警报配置
restore_application_alert_config应用程序警报配置恢复智能警报配置

示例提示

这里是一些示例提示(包含查询和结果),您可以使用这些提示开始使用 Instana 可观察性平台 API:

  • 查询 1
获取基础设施监控的可用插件,使用此有效载荷:   
{ "tagFilterExpression": {
    "type": "EXPRESSION",
    "logicalOperator": "AND",
    "elements": []
  },
  "timeFrame": {   "to": 1743923995000,  "windowSize": 3600000  }}
  • 结果 1
基础设施监控的可用插件有:

kubernetesNode
awsEs
gce
awsMskCluster
availabilityZone
rabbitMq
redis
awsDynamoDb
awsMq
kubernetesDeployment
processingStatisticsMember
phpRuntimePlatform
awsElb
openLDAP
host
hAProxy
kubernetesDaemonSet
kubernetesHorizontalPodAutoscaler
  • 查询 2
给我所有来自 Instana 的端点
  • 结果 2
函数 get_application_endpoints 返回所有服务的端点列表。该列表包括每个端点的信息,例如其 ID、标签、服务 ID 和使用的技术。列表是分页的,每页大小为 50,总共有 592 条记录。
  • 查询 3
给我当前 Instana 系统的监控状态
  • 结果 3
当前 Instana 系统的监控状态是:

有实体:True
主机数量:60
无服务器数量:28
  • 查询 4
你能给我 Instana 中的所有插件吗?
  • 结果 4
Instana 中的可用插件有:

业务活动
Azure 密钥库托管 HSM
Kafka Connect Worker
AWS DocumentDB 实例
AWS RDS
Amazon MQ
vSphere VM
PHP 运行时
AWS ELB
HAProxy
Kafka Connect 集群
OpenStack 计算实例
  • 查询 5
给我服务 tomcat 的服务 ID
  • 结果 5
服务 "tomcat" 的服务 ID 是 "536c0b339345616c1b33caf454454d8b8a190d6c"。
  • 查询 6
你能给我应用视角的详细信息,应用名称为 zAWSApp
  • 结果 6
应用视角名称为 "zAWSApp" 的详细信息如下:

边界范围:ALL
实体类型:APPLICATION
ID:kg8740PtQrK5U7E3Dhz_hQ
标签:zAWSApp
  • 查询 7
列出 3 个 Instana 目录插件
  • 结果 7
这里有三个 Instana 目录插件:

业务活动(插件:businessActivity)
Azure 密钥库托管 HSM(插件:azureManagedHSM)
Kafka Connect Worker(插件:kafkaConnectWorker)
  • 查询 8
在 Instana 中,插件 openTelemetry 可用的标签有哪些?
  • 结果 8
在 Instana 中,插件 openTelemetry 的可用标签有:

metric.tag.direction
otel.attribute.process.executable.path
otel.attribute.process.command_args
otel.attribute.process.runtime.name
otel.attribute.pid
otel.attribute.process.runtime.description
otel.attribute.k8s.cluster.name
otel.attribute.process.executable.name
otel.attribute.host.id
dfq.selftype
otel.attribute.service.namespace
这些标签可用于在 Instana 中过滤和分组数据。
  • 查询 9
给我 Instana 中安装的所有软件
  • 结果 9
在 Instana 中安装的软件有:

brotli - 1.1.0
bytes - 3.1.2
icu - 76.1
media-typer - 1.1.0
redis - 7.2.1
Eclipse OpenJ9 VM - 21.0.5
object-inspect - 1.13.4
csv - 3.3.4
bytes - 3.1.2
accepts - 2.0.0
注意,总共有 666 个项目,但摘要中仅显示了 10 个。
  • 查询 10
获取 5JkkTu1CTLyz0xetm9Q5Ew 的智能警报配置版本
  • 结果 10
5JkkTu1CTLyz0xetm9Q5Ew 的智能警报配置版本有:

DISABLE
RESTORE
DELETE
DISABLE
ENABLE
DISABLE
RESTORE
DELETE
UPDATE
DISABLE
CREATE
这些版本由不同的作者创建,包括 API 和 USER,有不同的更改类型,如 DISABLE、RESTORE、DELETE、UPDATE 和 CREATE。创建时间戳范围从 1724839116701 到 1747045186341。