目录
<!-- END doctoc generated TOC please keep comment here to allow auto update -->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 服务器显示一些警报。以下是发生的情况:
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 警报响应
pip install instana-client
这里我们使用 Claude Desktop 作为示例。根据 https://modelcontextprotocol.io/quickstart/user 配置 Claude Desktop。对于 claude_desktop_config.json,其位置在 macOS 和 Windows 上有所不同如下:
{
"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 中运行查询。
给我所有来自 Instana 的端点

您也可以使用 llm 客户端进行测试。
请更新 mcp-instana.json 文件 [mcpclient](<path to mcpclient>/mcp-instana.json),给出本地目录的路径。
然后在 mcpclient 文件夹下运行以下命令:
cd mcpclient
streamlit run mcpclient.py
您现在可以通过 http://localhost:8501 在浏览器中查看您的 Streamlit 应用程序。
您可以在查询框中提问。

有关 GitHub Copilot 与 VSCode 的集成,请参阅此链接 https://code.visualstudio.com/docs/copilot/setup。
这是 GitHub Copilot 响应的一个示例:

| 工具 | 类别 | 描述 |
|---|---|---|
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:
获取基础设施监控的可用插件,使用此有效载荷:
{ "tagFilterExpression": {
"type": "EXPRESSION",
"logicalOperator": "AND",
"elements": []
},
"timeFrame": { "to": 1743923995000, "windowSize": 3600000 }}
基础设施监控的可用插件有:
kubernetesNode
awsEs
gce
awsMskCluster
availabilityZone
rabbitMq
redis
awsDynamoDb
awsMq
kubernetesDeployment
processingStatisticsMember
phpRuntimePlatform
awsElb
openLDAP
host
hAProxy
kubernetesDaemonSet
kubernetesHorizontalPodAutoscaler
给我所有来自 Instana 的端点
函数 get_application_endpoints 返回所有服务的端点列表。该列表包括每个端点的信息,例如其 ID、标签、服务 ID 和使用的技术。列表是分页的,每页大小为 50,总共有 592 条记录。
给我当前 Instana 系统的监控状态
当前 Instana 系统的监控状态是:
有实体:True
主机数量:60
无服务器数量:28
你能给我 Instana 中的所有插件吗?
Instana 中的可用插件有:
业务活动
Azure 密钥库托管 HSM
Kafka Connect Worker
AWS DocumentDB 实例
AWS RDS
Amazon MQ
vSphere VM
PHP 运行时
AWS ELB
HAProxy
Kafka Connect 集群
OpenStack 计算实例
给我服务 tomcat 的服务 ID
服务 "tomcat" 的服务 ID 是 "536c0b339345616c1b33caf454454d8b8a190d6c"。
你能给我应用视角的详细信息,应用名称为 zAWSApp
应用视角名称为 "zAWSApp" 的详细信息如下:
边界范围:ALL
实体类型:APPLICATION
ID:kg8740PtQrK5U7E3Dhz_hQ
标签:zAWSApp
列出 3 个 Instana 目录插件
这里有三个 Instana 目录插件:
业务活动(插件:businessActivity)
Azure 密钥库托管 HSM(插件:azureManagedHSM)
Kafka Connect Worker(插件:kafkaConnectWorker)
在 Instana 中,插件 openTelemetry 可用的标签有哪些?
在 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 中过滤和分组数据。
给我 Instana 中安装的所有软件
在 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 个。
获取 5JkkTu1CTLyz0xetm9Q5Ew 的智能警报配置版本
5JkkTu1CTLyz0xetm9Q5Ew 的智能警报配置版本有:
DISABLE
RESTORE
DELETE
DISABLE
ENABLE
DISABLE
RESTORE
DELETE
UPDATE
DISABLE
CREATE
这些版本由不同的作者创建,包括 API 和 USER,有不同的更改类型,如 DISABLE、RESTORE、DELETE、UPDATE 和 CREATE。创建时间戳范围从 1724839116701 到 1747045186341。