Kibana MCP服务器
识别到的语言类型为英语。 翻译结果:Kibana MCP服务器
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"kibana-mcp-server": {
"args": [
"@tocharian/mcp-server-kibana"
],
"command": "npx",
"env": {
"KIBANA_DEFAULT_SPACE": "default",
"KIBANA_PASSWORD": "your-password",
"KIBANA_URL": "http://your-kibana-server:5601",
"KIBANA_USERNAME": "your-username",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}
服务介绍
Kibana MCP 服务器
API 规范
本项目基于 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 APIs
- 类型安全、可扩展且易于集成
目录结构
├── 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_objectskibana-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 APIs。推荐大多数用户使用。 |
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 证书验证(谨慎使用) | 否 |
使用方法
启动服务器
bash
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):
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 请求 /api/status。"
- "获取 Kibana 中的所有仪表板列表。"
- "查询与端点事件相关的 API 端点。"
- "列出所有与案件相关的 API 端点。"
- "在 Kibana 中创建一个新案件。"
- "在 Kibana 中创建一个新的仪表板。"
Claude Desktop 中的两种提示模式
当使用此服务器与 Claude Desktop 结合时,支持两种不同的提示交互模式:
1. 基于工具的提示模式
- 工作原理: Claude Desktop 可以直接调用服务器工具(如
get_status、execute_api、search_kibana_api_paths等)来回答您的问题或执行操作。 - 最适合: 希望获得对话式、引导式体验的用户。服务器将自动搜索、执行并解释 Kibana API。
- 示例: "显示所有与保存对象相关的 Kibana API 端点。"
- 测试提示: 在 Claude Desktop 中选择
kibana-tool-expert提示进行集成测试,然后开始使用。
2. 基于资源的提示模式
- 工作原理: Claude Desktop 通过资源 URI(如
kibana-api://paths或kibana-api://path/GET/%2Fapi%2Fstatus)与服务器交互,服务器返回结构化数据供 Claude 解析。 - 最适合: 高级用户、仅支持资源访问的 MCP 客户端或需要原始 API 元数据的编程场景。
- 示例: "获取资源 kibana-api://paths?search=dashboard"
注意: resources 中的两个端点(kibana-api://paths 和 kibana-api://path/{method}/{encoded_path})有对应的基工具(list_all_kibana_api_paths、get_kibana_api_detail)。这种设计确保了与无法智能选择多个资源的 MCP 客户端的兼容性,使像 Claude Desktop 这样的工具更容易与 Kibana 交互。
提示: 大多数用户建议使用工具模式以获得更自然和强大的体验;资源模式则为高级和兼容性用例提供了最大的灵活性。
开发
安装依赖项:
bash
npm install
构建服务器:
bash
npm run build
开发模式下自动重建:
bash
npm run watch
调试由于MCP服务器通过stdio进行通信,调试可能不太方便。建议使用MCP Inspector:
bash
npm run inspector
启动后,Inspector将提供一个可通过浏览器访问的调试工具URL。
社区
本项目由社区维护。欢迎贡献和反馈!请在所有交流中保持尊重和包容,并遵守Elastic Community Code of Conduct。
许可证
本项目采用Apache License 2.0许可。详情请参阅LICENSE文件。
故障排除
- 检查MCP配置是否正确
- 确保Kibana地址可访问
- 验证认证凭据是否有足够的权限
- 如果使用自定义CA,请确保证书路径正确且可读
- 如果使用
NODE_TLS_REJECT_UNAUTHORIZED=0,请注意安全风险 - 检查终端输出的错误信息