Mcp Server Kibana

Mcp Server Kibana

🚀 Kibana MCP Server

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

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

本项目由社区维护,并非 Elastic 或 MCP 的官方产品。


✨ 主要特性

  • 连接本地或远程 Kibana 实例
  • 安全认证(用户名/密码)
  • 支持 SSL/TLS 和自定义 CA 证书
  • 将 Kibana API 端点作为工具和资源公开
  • 从 MCP 客户端搜索、查看和执行 Kibana API
  • 类型安全、可扩展且易于集成

📁 目录结构

├── index.ts                # 服务器入口点
├── src/
│   ├── types.ts            # 类型定义和模式
│   ├── base-tools.ts       # 工具注册和 API 逻辑
│   ├── prompts.ts          # 提示注册(专家和资源助手)
│   └── resources.ts        # 资源注册(API 路径/URI)
├── 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 服务器的当前状态
execute_api 执行自定义 Kibana API 请求 method (GET/POST/PUT/DELETE)、path (字符串)、body (可选)、params (可选)
search_kibana_api_paths 按关键字搜索 Kibana API 端点 search (字符串)
list_all_kibana_api_paths 列出所有 Kibana API 端点
get_kibana_api_detail 获取特定 Kibana API 端点的详细信息 method (字符串)、path (字符串)

💬 提示

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

⚙️ 配置

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

变量名 描述 是否必需
KIBANA_URL Kibana 服务器地址(例如 http://localhost:5601)
KIBANA_USERNAME Kibana 用户名
KIBANA_PASSWORD Kibana 密码
KIBANA_CA_CERT CA 证书路径(可选,用于 SSL 验证)
KIBANA_TIMEOUT 请求超时时间(毫秒,默认 30000)
KIBANA_MAX_RETRIES 最大请求重试次数(默认 3)
NODE_TLS_REJECT_UNAUTHORIZED 设置为 0 以禁用 SSL 证书验证(谨慎使用)

💻 使用示例

启动服务器

KIBANA_URL=http://your-kibana-server:5601 \
KIBANA_USERNAME=your-username \
KIBANA_PASSWORD=your-password \
NODE_TLS_REJECT_UNAUTHORIZED=0 \
npm start

示例 MCP 客户端配置

添加到 Claude Desktop 配置文件(MacOS 路径:~/Library/Application Support/Claude/claude_desktop_config.json):

{
"mcpServers": {
"kibana-mcp-server": {
"command": "node",
"args": ["/path/to/mcp-server-kibana/dist/index.js"],
"env": {
"KIBANA_URL": "http://your-kibana-server:5601",
"KIBANA_USERNAME": "your-username",
"KIBANA_PASSWORD": "your-password",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}

示例查询

  • "我的 Kibana 服务器状态如何?"
  • "列出所有可用的 Kibana API 端点。"
  • "显示 POST /api/saved_objects/_find 端点的详细信息。"
  • "执行针对 /api/status 的自定义 API 请求。"
  • "获取 Kibana 中所有仪表板的列表。"
  • "查询与端点事件相关的 API 端点。"
  • "列出所有与案例相关的 API 端点。"
  • "在 Kibana 中创建一个新案例。"
  • "在 Kibana 中创建一个新仪表板。"

🗨️ Claude Desktop 中的两种提示模式

在将此服务器与 Claude Desktop 一起使用时,支持两种不同的提示交互模式:

1. 基于工具的提示模式

  • 工作原理: Claude Desktop 可以直接调用服务器工具(如 get_statusexecute_apisearch_kibana_api_paths 等)来回答你的问题或执行操作。
  • 适用场景: 希望获得对话式引导体验的用户。服务器将自动搜索、执行和解释 Kibana API。
  • 示例: "显示所有与保存对象相关的 Kibana API 端点。"
  • 测试提示: 在 Claude Desktop 中选择 kibana-tool-expert 提示进行集成测试,然后开始使用。

2. 基于资源的提示模式

  • 工作原理: Claude Desktop 通过资源 URI(如 kibana-api://pathskibana-api://path/GET/%2Fapi%2Fstatus)与服务器交互,服务器返回结构化数据供 Claude 解析。
  • 适用场景: 高级用户、仅支持资源访问的 MCP 客户端或需要原始 API 元数据的编程场景。
  • 示例: "获取资源 kibana-api://paths?search=dashboard"

注意: resources 中的两个端点(kibana-api://pathskibana-api://path/{method}/{encoded_path})有对应的基础工具(list_all_kibana_api_pathsget_kibana_api_detail)。这种设计确保了与无法智能选择多个资源的 MCP 客户端的兼容性,使 Claude Desktop 等工具更易于与 Kibana 交互。

提示: 大多数用户建议使用工具模式以获得更自然、强大的体验;资源模式为高级和兼容用例提供了最大的灵活性。


👨‍💻 开发

安装依赖:

npm install

构建服务器:

npm run build

在开发模式下自动重建:

npm run watch

🐞 调试

由于 MCP 服务器通过标准输入输出进行通信,调试可能不太方便。建议使用 MCP Inspector:

npm run inspector

启动后,Inspector 将提供一个可通过浏览器访问的调试工具 URL。


👥 社区

本项目由社区维护。欢迎贡献和反馈!请在所有交流中保持尊重和包容,并遵守 Elastic 社区行为准则


📄 许可证

本项目采用 Apache 许可证 2.0 版。详情请参阅 LICENSE 文件。


🚧 故障排除

  • 检查 MCP 配置是否正确
  • 确保 Kibana 地址可访问
  • 验证认证凭据是否有足够的权限
  • 如果使用自定义 CA,确保证书路径正确且可读
  • 如果使用 NODE_TLS_REJECT_UNAUTHORIZED=0,请注意安全风险
  • 检查终端输出的错误消息
  • 0 关注
  • 0 收藏,30 浏览
  • system 提出于 2025-10-06 18:45

相似服务问题

相关AI产品