本项目基于官方 Elastic Kibana API 文档,利用 Elastic Stack 8.x (ES8) 的 OpenAPI YAML 规范动态检索和管理所有 Kibana API 端点。最新详情请参阅 Kibana API 文档。
这是一个 Kibana MCP 服务器的实现,它允许任何兼容 MCP 的客户端(如 Claude Desktop)通过自然语言或编程请求访问你的 Kibana 实例。
本项目由社区维护,并非 Elastic 或 MCP 的官方产品。
├── 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 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
添加到 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"
}
}
}
}
在将此服务器与 Claude Desktop 一起使用时,支持两种不同的提示交互模式:
get_status、execute_api、search_kibana_api_paths 等)来回答你的问题或执行操作。kibana-tool-expert 提示进行集成测试,然后开始使用。kibana-api://paths 或 kibana-api://path/GET/%2Fapi%2Fstatus)与服务器交互,服务器返回结构化数据供 Claude 解析。注意: resources 中的两个端点(kibana-api://paths 和 kibana-api://path/{method}/{encoded_path})有对应的基础工具(list_all_kibana_api_paths、get_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 文件。
NODE_TLS_REJECT_UNAUTHORIZED=0,请注意安全风险