MCP Server¶
什么是 MCP Server?¶
MCP Server,模型上下文协议(Model Context Protocol,简称 MCP) 是一个开放协议,旨在标准化应用程序与 AI 模型之间的安全连接和数据源访问。它的核心目标是让开发者能够通过统一的“工具”和“资源”,轻松地为模型提供上下文信息(如数据、内容、操作),从而增强模型能力,而无需重新训练模型。
基于 MCP Server 构建的服务,最终提供一个统一的多模型可调用接口。该服务支持多客户端接入,并采用 API Key 鉴权机制,以此安全访问观测云的各项核心功能,包括监控器、日志、仪表板及 DQL 查询。
开始接入¶
此处以通过 Cherry Studio 接入方式为例。
接入方式
其他更多接入方式正在开发中,敬请期待!
下载版本¶
-
下载 MCP Server 客⼾端 Cherry Studio,选择对应版本;
-
打开 Cherry Studio,开始配置大模型基础服务。
此处以火山引擎为例,配置 API 密钥。
配置观测云 MCP 服务¶
- ⾃定义输入服务名称和描述;
- 类型选择 streamableHttp;
- 定义 URL:https://obsy-ai.guance.com/obsy_ai_mcp/mcp;
- 请求头格式为:
Authorization=DF-API-KEY;Endpoint=SITE_KEY; - 配置完 MCP 服务后保存后开启,再回到⾸⻚,选择 MCP 服务。
配置说明¶
-
接⼝以 API KEY 为认证⽅式,每⼀次请求使⽤请求体 Header 中的 DF-API-KEY 的值作为有效性检验,以及本次请求的⼯作空间限定依据(取此 DF-API-KEY 所属的⼯作空间);
-
当前 MCP 服务所展⽰的所有接⼝都只需要提供 API KEY(Header:DF-API-KEY)作为凭证。如果凭据存在且有效,则视为认证通过。
-
MCP Endpoint 配置参数为 SITE_KEY,例如:
cn1。具体对应 MAP 参考如下:
SITE_KEY_MAP = {
# === 中国区 SaaS 部署 ===
"cn1": "https://openapi.guance.com", # 中国区1(杭州)——默认
"cn2": "https://aws-openapi.guance.com", # 中国区2(宁夏)
"cn4": "https://cn4-openapi.guance.com", # 中国区4(广州)
"cn6": "https://cn6-openapi.guance.one", # 中国区6(香港)
"us1": "https://us1-openapi.guance.com", # 海外区1(俄勒冈)
"eu1": "https://eu1-openapi.guance.one", # 欧洲区1(法兰克福)
"ap1": "https://ap1-openapi.guance.one", # 亚太区1(新加坡)
"za1": "https://za1-openapi.guance.com", # 非洲区1(南非)
"id1": "https://id1-openapi.guance.com", # 印尼区1(雅加达)
}
调用 MCP 服务¶
工具名 |
功能 | 输入示例 | 备注 |
|---|---|---|---|
| 监控器管理 | 列出观测云中的监控器列表 | 列出观测云中的监控器列表 | 默认查询前 10 条数据 |
| 日志数据访问规则 | 列出观测云的日志数据访问规则 | 列出观测云的日志数据访问规则 | 默认查询前 10 条数据 |
| 仪表板管理 | 获取观测云的仪表板列表 | 获取观测云的仪表板列表 | 默认查询前 10 条数据 |
| 日志查询 | 执行 DQL 日志查询 | 最近 15 分钟查询指标 "namespace": "L",指标集 "datasource": "worker-0",查询方式 "select-clause": "last(*)",过滤 "where-clause": "{ host = 'cluster' }",分组为 "group-by-clause": "host" |
默认查询:最近 5 分钟,namespace为L,指标集为default,获取所有日志和字段,无额外过滤 必要字段: namespace:指标类别(M/L/T/R等)datasource:指标来源(cpu/worker/kodo-inner/view等)select-clause:查询方式(如last(*)) |
| 指标查询 | 执行 DQL 指标查询 | 最近 15 分钟查询指标 "namespace": "M",指标集 "datasource": "cpu",查询方式 "select-clause": "avg(load5s)",过滤 "where-clause": "{ host = 'cluster' }",分组为 "group-by-clause": "host" |
默认查询:最近 5 分钟 cpu 指标集下 load5s 的平均值,无过滤与分组 必要字段: namespace:指标类别(M/L/T/R等)datasource:指标来源select-clause:查询方式(如avg(load5s)) |
| 链路查询 | 执行 DQL 链路查询 | 最近 15 分钟查询指标 "namespace": "T",指标集 "datasource": "kodo-inner",查询方式 "select-clause": "last(*)",过滤 "where-clause": "{ host = 'cluster' }",分组为 "group-by-clause": "service" |
默认查询:最近 5 分钟 kodo-inner 链路指标最新值,无过滤与分组 必要字段: namespacedatasourceselect-clause |
| RUM查询 | 执行 DQL RUM 查询 | 最近 15 分钟查询指标 "namespace": "R",指标集 "datasource": "view",查询方式 "select-clause": "avg('loading_time') as 平均",过滤 "where-clause": "{ view_path = xxxx AND app_id = 'xxx' }",分组为 "group-by-clause": "app_id" |
默认查询:最近 5 分钟所有视图的loading_time平均值,无过滤与分组 必要字段: namespacedatasourceselect-clause |
