返回市场
MCP服务器-Kibana

MCP服务器-Kibana

作者:TocharianOU41 星标更新:2025-11-19

项目介绍

MseeP.ai 安全评估徽章

Kibana MCP 服务器

npm 版本 下载量 询问 DeepWiki

API 规范

该项目基于官方的 Elastic Kibana API 文档,并使用 Elastic Stack 8.x (ES8) 的 OpenAPI YAML 规范动态检索和管理所有 Kibana API 端点。详情请参阅 Kibana API 文档

一个实现 Kibana MCP 服务器,允许任何兼容 MCP 的客户端(如 Claude Desktop)通过自然语言或编程请求访问您的 Kibana 实例。

此项目由社区维护,不是 Elastic 或 MCP 的官方产品。

💡 相关项目

若要实现完整的 Elastic Stack 集成,请与 Elasticsearch MCP 服务器 结合使用,以直接进行 Elasticsearch 数据操作。它们共同提供了对您的 Elastic Stack 环境的全面可观测性和数据管理能力。


🚀 安装

快速安装

# 全局安装(推荐)
npm install -g @tocharian/mcp-server-kibana

# 或本地安装
npm install @tocharian/mcp-server-kibana

替代方案:从源码安装

git clone https://github.com/TocharianOU/mcp-server-kibana.git
cd mcp-server-kibana
npm install
npm run build

🎯 快速开始

方法 1:直接使用 CLI

使用基本认证

# 设置您的 Kibana 凭证并运行
KIBANA_URL=http://your-kibana-server:5601 \
KIBANA_USERNAME=your-username \
KIBANA_PASSWORD=your-password \
npx @tocharian/mcp-server-kibana

使用 Cookie 认证

# 设置您的 Kibana 会话 Cookie 并运行
KIBANA_URL=http://your-kibana-server:5601 \
KIBANA_COOKIES="sid=your-session-id; security-session=your-security-session" \
npx @tocharian/mcp-server-kibana

使用 API 密钥认证

# 设置您的 Kibana API 密钥并运行
KIBANA_URL=http://your-kibana-server:5601 \
KIBANA_API_KEY=your-base64-encoded-api-key \
npx @tocharian/mcp-server-kibana

方法 2:Claude Desktop 集成(推荐)

在您的 Claude Desktop 配置文件中添加以下内容:

配置文件位置:

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

使用基本认证

{
  "mcpServers": {
    "kibana-mcp-server": {
      "command": "npx",
      "args": ["@tocharian/mcp-server-kibana"],
      "env": {
        "KIBANA_URL": "http://your-kibana-server:5601",
        "KIBANA_USERNAME": "your-username",
        "KIBANA_PASSWORD": "your-password",
        "KIBANA_DEFAULT_SPACE": "default",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}

使用 Cookie 认证

{
  "mcpServers": {
    "kibana-mcp-server": {
      "command": "npx",
      "args": ["@tocharian/mcp-server-kibana"],
      "env": {
        "KIBANA_URL": "http://your-kibana-server:5601",
        "KIBANA_COOKIES": "sid=your-session-id; security-session=your-security-session",
        "KIBANA_DEFAULT_SPACE": "default",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}

使用 API 密钥认证

{
  "mcpServers": {
    "kibana-mcp-server": {
      "command": "npx",
      "args": ["@tocharian/mcp-server-kibana"],
      "env": {
        "KIBANA_URL": "http://your-kibana-server:5601",
        "KIBANA_API_KEY": "your-base64-encoded-api-key",
        "KIBANA_DEFAULT_SPACE": "default",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}

方法 3:使用环境文件

# 创建 .env 文件
cat > kibana-mcp.env << EOF
KIBANA_URL=http://your-kibana-server:5601
KIBANA_USERNAME=your-username
KIBANA_PASSWORD=your-password
NODE_TLS_REJECT_UNAUTHORIZED=0
EOF

# 使用环境文件运行
env $(cat kibana-mcp.env | xargs) npx @tocharian/mcp-server-kibana

方法 4:可流式传输的 HTTP 模式(v0.4.0 新增)

作为独立的 HTTP 服务运行,用于远程访问和 API 集成:

# 启动 HTTP 服务器(默认端口 3000)
MCP_TRANSPORT=http \
KIBANA_URL=http://your-kibana-server:5601 \
KIBANA_USERNAME=your-username \
KIBANA_PASSWORD=your-password \
npx @tocharian/mcp-server-kibana

# 或自定义端口和主机
MCP_TRANSPORT=http \
MCP_HTTP_PORT=9000 \
MCP_HTTP_HOST=0.0.0.0 \
KIBANA_URL=http://your-kibana-server:5601 \
KIBANA_USERNAME=your-username \
KIBANA_PASSWORD=your-password \
npx @tocharian/mcp-server-kibana

HTTP 模式特性:

  • http://host:port/mcp 端点暴露 MCP 服务器
  • 健康检查位于 http://host:port/health
  • 基于会话的连接管理
  • 支持 POST(JSON-RPC 请求)和 GET(SSE 流)
  • 与任何 HTTP 客户端或 MCP SDK 兼容

示例 HTTP 客户端用法:

// 初始化连接
const response = await fetch('http://localhost:3000/mcp', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'initialize',
    params: {
      protocolVersion: '2024-11-05',
      capabilities: {},
      clientInfo: { name: 'my-client', version: '1.0.0' }
    },
    id: 1
  })
});

const sessionId = response.headers.get('mcp-session-id');

// 后续请求包括会话 ID
const toolsResponse = await fetch('http://localhost:3000/mcp', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'mcp-session-id': sessionId
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'tools/list',
    params: {},
    id: 2
  })
});

功能

核心功能

  • 连接到本地或远程 Kibana 实例
  • 双传输模式
    • Stdio 传输(默认)- 适用于 Claude Desktop 和本地 MCP 客户端
    • 可流式传输的 HTTP 传输(v0.4.0 新增)- 用于远程访问、API 集成和 Web 应用程序
  • 双认证支持
    • 基于 Cookie 的认证(推荐用于浏览器会话)
    • 基本认证(用户名/密码)
  • SSL/TLS 和自定义 CA 证书支持
  • 多空间支持,适用于企业级 Kibana 环境
  • 将 Kibana API 端点暴露为工具和资源
  • 从 MCP 客户端搜索、查看和执行 Kibana API
  • 类型安全、可扩展且易于集成
  • 会话管理,在 HTTP 模式下自动生成 UUID
  • 健康检查端点,用于监控和负载均衡

可视化层(VL)功能

  • 完整的 CRUD 操作,针对 Kibana 已保存的对象
  • 通用已保存对象管理 - 适用于所有对象类型
  • 智能参数处理 - 支持多种输入格式(数组、JSON 字符串、逗号分隔)
  • 优化搜索,支持分页和性能提示
  • 批量操作,高效地进行大量更新和删除
  • 乐观并发控制,确保安全更新
  • 引用管理,用于对象关系
  • 多格式类型支持 - 灵活的输入解析,提升用户体验

目录结构

├── index.ts                # 服务器入口点
├── src/
│   ├── types.ts            # 类型定义和模式
│   ├── base-tools.ts       # 工具注册和 API 逻辑
│   ├── prompts.ts          # 提示注册(专家和资源助手)
│   ├── resources.ts        # 资源注册(API 路径/URI)
│   ├── vl_search_tools.ts  # 可视化层 - 搜索工具
│   ├── vl_get_tools.ts     # 可视化层 - 获取工具
│   ├── vl_create_tools.ts  # 可视化层 - 创建工具
│   ├── vl_update_tools.ts  # 可视化层 - 更新工具
│   └── vl_delete_tools.ts  # 可视化层 - 删除工具
├── kibana-openapi-source.yaml # Kibana API OpenAPI 索引
├── README.md               # 英文文档
├── README_zh.md            # 中文文档

资源

资源 URI描述
kibana-api://paths返回所有可用的 Kibana API 端点(可通过 search 参数过滤)
kibana-api://path/{method}/{encoded_path}返回特定 API 端点的详细信息

示例:

  • kibana-api://paths?search=saved_objects
  • kibana-api://path/GET/%2Fapi%2Fstatus

工具

基础工具

工具名称描述输入参数
get_status获取 Kibana 服务器当前状态space(可选字符串)- 目标 Kibana 空间
execute_kb_api执行自定义 Kibana API 请求method(GET/POST/PUT/DELETE),path(字符串),body(可选),params(可选),space(可选字符串)
get_available_spaces获取可用的 Kibana 空间和当前上下文include_details(可选布尔值)- 包含完整的空间详细信息
search_kibana_api_paths通过关键词搜索 Kibana API 端点search(字符串)
list_all_kibana_api_paths列出所有 Kibana API 端点
get_kibana_api_detail获取特定 Kibana API 端点的详细信息method(字符串),path(字符串)

可视化层(VL)工具 - 已保存对象管理

工具名称描述输入参数
vl_search_saved_objects搜索 Kibana 已保存的对象(通用)types(必需数组),search(可选),fields(可选),perPage(可选),page(可选),space(可选)
vl_get_saved_object通过类型和 ID 获取单个已保存的对象type(必需),id(必需),useResolve(可选),space(可选)
vl_create_saved_object创建新的已保存对象(通用)type(必需),attributes(必需),id(可选),overwrite(可选),references(可选),space(可选)
vl_update_saved_object更新单个已保存的对象type(必需),id(必需),attributes(必需),references(可选),version(可选),space(可选)
vl_bulk_update_saved_objects批量更新多个已保存的对象objects(必需数组),space(可选)
vl_bulk_delete_saved_objects批量删除多个已保存的对象objects(必需数组),force(可选),space(可选)

支持的已保存对象类型: dashboardvisualizationindex-patternsearchconfiglensmaptagcanvas-workpadcanvas-element


提示

提示名称描述
kibana-tool-expert工具专家模式(强烈推荐在 Claude Desktop 中使用),支持通过工具进行智能分析、搜索、执行和解释 Kibana API。推荐大多数用户使用。
kibana-resource-helper资源助手模式,指导如何通过资源 URI 访问和使用 Kibana API 信息。适合仅支持资源访问的客户端或需要原始 API 元数据的情况。

配置

通过环境变量配置服务器:

Kibana 连接设置

变量名称描述必需
KIBANA_URLKibana 服务器地址(例如 http://localhost:5601
KIBANA_API_KEYKibana API 密钥(base64 编码,用于 API 密钥认证)否*
KIBANA_USERNAMEKibana 用户名(用于基本认证)否*
KIBANA_PASSWORDKibana 密码(用于基本认证)否*
KIBANA_COOKIESKibana 会话 Cookie(用于 Cookie 认证)否*
KIBANA_DEFAULT_SPACE默认 Kibana 空间(默认:'default')
KIBANA_CA_CERTCA 证书路径(可选,用于 SSL 验证)
KIBANA_TIMEOUT请求超时时间(毫秒,默认 30000)
KIBANA_MAX_RETRIES最大重试次数(默认 3)
NODE_TLS_REJECT_UNAUTHORIZED设置为 0 以禁用 SSL 证书验证(谨慎使用)

*必须提供以下认证方法之一:KIBANA_API_KEYKIBANA_COOKIES,或同时提供 KIBANA_USERNAMEKIBANA_PASSWORD。优先顺序:API 密钥 > 基本认证 > Cookie。

传输模式设置(v0.4.0 新增)

变量名称描述默认值取值
MCP_TRANSPORT传输模式选择stdiostdiohttp
MCP_HTTP_PORTHTTP 服务器端口(当使用 HTTP 传输时)30001-65535
MCP_HTTP_HOSTHTTP 服务器主机(当使用 HTTP 传输时)localhost任意有效主机

传输模式详情:

  • Stdio 模式(默认):适用于 Claude Desktop 和本地 MCP 客户端
  • HTTP 模式:作为独立的 HTTP 服务器运行,用于远程访问、API 集成和 Web 应用程序

📦 包信息