项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,专门用于管理和配置 OpenTelemetry Collector。它允许 MCP 客户端通过标准化的 MCP 协议,动态查询和更新 OpenTelemetry Collector 的配置,例如 receivers(接收器)、processors(处理器)和 exporters(导出器)。

主要功能点

  • 动态配置 OpenTelemetry Collector 组件:支持通过 MCP 工具动态更新和管理 OpenTelemetry Collector 的 receivers, processors, 和 exporters。
  • 组件元数据查询:提供对 OpenTelemetry Collector 组件的元数据查询能力,包括组件的名称、描述和稳定性等级。
  • 组件配置 Schema 查询:允许客户端获取特定 OpenTelemetry Collector 组件的配置 Schema,用于指导用户进行正确的配置。
  • 资源同步工具:内置工具用于从 GitHub 仓库同步最新的 OpenTelemetry Collector 组件信息和配置 Schema,保持本地资源与官方仓库同步。

安装步骤

  1. 克隆仓库
    git clone https://github.com/mottibec/otelcol-mcp.git
  2. 进入仓库目录
    cd otelcol-mcp
  3. 安装依赖
    npm install
  4. 构建项目
    npm run build

服务器配置

MCP 客户端需要配置连接到此 MCP 服务器的信息。以下是一个 MCP 客户端配置示例 (通常在 'mcp.json' 或客户端配置中配置),用于连接到名为 "otelcol" 的服务器。这里假设服务器运行在本地,并使用 'npm run start' 启动:

{
  "mcpServers": {
    "otelcol": {
      "command": "npm",
      "args": ["run", "start"],
      "serverUrl": "http://localhost:3001/sse"
    }
  }
}
  • 'command': 启动 MCP 服务器的命令,这里使用 'npm'。
  • 'args': 传递给命令的参数,这里使用 'run start' 来执行 'package.json' 中定义的 'start' 脚本,该脚本通常会启动服务器。
  • 'serverUrl': MCP 服务器的 SSE (Server-Sent Events) 端点 URL,客户端通过此 URL 与服务器建立连接。

注意: 确保你的环境中已安装 Node.js 和 npm,并且在 'otelcol-mcp' 仓库目录下可以执行 'npm run start' 命令来启动服务器。

基本使用方法

  1. 启动服务器 在仓库根目录下执行命令启动服务器:

    npm run start

    服务器默认监听 'http://localhost:3001/sse' 地址。

  2. 配置 MCP 客户端 根据 MCP 客户端的要求,配置连接到 'otelcol' 服务器,并指定 'serverUrl' 为 'http://localhost:3001/sse'。

  3. 使用 MCP 客户端查询资源和调用工具

    • 查询资源
      • 'receivers://receivers': 获取所有可用 OpenTelemetry receivers 列表。
      • 'processors://processors': 获取所有可用 OpenTelemetry processors 列表。
      • 'exporters://exporters': 获取所有可用 OpenTelemetry exporters 列表。
      • 'component://{type}/{name}': 获取特定组件的配置 Schema,例如 'component://receiver/otlp'。
    • 调用工具
      • 'update-resources': 更新本地资源文件,同步最新的 OpenTelemetry Collector 组件信息。客户端可以调用此工具来确保本地数据是最新的。

通过以上步骤,MCP 客户端即可与 'otelcol-mcp' 服务器交互,实现对 OpenTelemetry Collector 组件的动态配置和管理。

信息

分类

开发者工具