Haystack日志搜索服务器

一个基于MCP协议的服务器,提供对Haystack(OpenSearch)生产日志的搜索工具。

  • by hacctarr
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 hacctarr/haystack-mcp-server

使用说明

Haystack MCP服务器

一 MCP(模型上下文协议) 提供搜索Haystack(OpenSearch)生产日志工具的服务器。

先决条件

  • Node.js 18+(使用内置 fetch)
  • 有效的Haystack SAML身份验证Cookie

安装

npm install

认证

服务器使用SAML Cookie向Haystack进行身份验证。在以下位置创建JSON文件 ~/.claude/haystack-cookies.json:

{
  "security_authentication_saml1": "<your-saml-cookie-value>",
  "security_authentication": "<your-auth-cookie-value>"
}

要获取这些值,请在浏览器中登录Haystack,并从浏览器的开发工具(应用程序>cookie)中复制cookie值。

注: 这些Cookie会定期过期。如果搜索开始失败,出现401/403错误,请刷新Cookie。

MCP客户端配置

将服务器添加到MCP客户端配置中:

{
  "mcpServers": {
    "haystack": {
      "command": "node",
      "args": ["/path/to/haystack-mcp-server/index.js"],
      "env": {
        "HAYSTACK_URL": "https://your-haystack-instance.example.com"
      }
    }
  }
}

这个 env 如果使用,则块是可选的 config.json 相反。

工具

search_haystack

使用Lucene查询语法搜索Haystack日志。

参数 必填 说明
query Yes Lucene查询字符串(例如。, level:ERROR AND service:symxchange)
timeFrom 否 开始时间--ISO 8601或ES相对格式(默认: now-24h)
timeTo 否 结束时间--ISO 8601或ES相对格式(默认值: now)
index 否 索引模式(默认值: current-logs-production).使用 *qa* 对于QA, *staging* 为了舞台。

最多返回500个按时间戳排序的结果(最新的第一个)。

示例查询:

level:ERROR AND service:symxchange
CommunicationException AND NOT "timeout"
kubernetes.pod_name:corelation* AND level:WARN

list_haystack_indices

列出可用的Haystack索引模式。不接受任何参数。

配置

创建一个 config.json 在项目根目录中:

{
  "haystackUrl": "https://your-haystack-instance.example.com",
  "osdVersion": "3.5.0"
}

环境变量覆盖 config.json 值:

变量 配置键 默认值 描述
HAYSTACK_URL haystackUrl (必填) Haystack基本URL
OSD_VERSION osdVersion 3.5.0 OpenSearch仪表板版本头

许可证

ISC