Seq事件搜索与流式处理服务器

Seq MCP Server是一个基于模型上下文协议(MCP)的工具,提供从Seq平台搜索和流式传输事件的功能,适用于日志分析和监控场景。

  • by willibrandon
  • C#
  • 本地部署
  • 22 星标
  • 更新于
在 GitHub 查看 willibrandon/seq-mcp-server

使用说明

Sequ MCP服务器

一种模型上下文协议(MCP)服务器,提供从Seq搜索和流式传输事件的工具。

安装

作为一个。NET全局工具(推荐)

# Install
dotnet tool install -g SeqMcpServer

# Update to latest version
dotnet tool update -g SeqMcpServer

# Uninstall
dotnet tool uninstall -g SeqMcpServer

需求

  • .NET 10.0运行时或SDK
  • 序列服务器(本地或远程)
  • 有效的Seq API密钥

快速开始

开发环境

# Clone the repository
git clone https://github.com/willibrandon/seq-mcp-server
cd seq-mcp-server

# Setup development environment (fully automated)
# PowerShell (Windows)
./scripts/setup-dev.ps1

# Bash (Linux/Mac)
./scripts/setup-dev.sh

# Build and run the MCP server
dotnet build
dotnet run --project SeqMcpServer

安装脚本会自动执行以下操作:

  • 在端口15341/18081上启动Seq容器
  • 配置身份验证并创建API密钥
  • 设置环境变量
  • 创建一个 .env 应用程序的文件

生产部署

MCP服务器不是直接运行的,而是由MCP客户端启动的。生产:

  1. 构建并部署可执行文件:
dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true
  1. 配置您的MCP客户端以使用已部署的可执行文件:
{
  "mcpServers": {
    "seq": {
      "command": "/path/to/seq-mcp-server",
      "env": {
        "SEQ_SERVER_URL": "http://your-seq-server:5341",
        "SEQ_API_KEY": "your-production-api-key"
      }
    }
  }
}

MCP工具

以下工具可通过MCP协议使用:

  • SeqSearch -使用过滤器、日期范围、信号和分页搜索Seq事件

    • 参数:
      • filter (必需):序列过滤器表达式(使用空字符串 "" 对于所有事件)
      • count:要返回的事件数(默认值:100,最大值:1000)
      • signalId (可选):用于过滤事件的信号ID(使用 SignalList 查找ID)
      • fromDateUtc (可选):最早日期/时间(ISO 8601。, "2024-01-01T00:00:00Z")
      • toDateUtc (可选):最新日期/时间(ISO 8601。, "2024-01-31T23:59:59Z")
      • afterId (可选):要搜索的事件ID(独占)-用于分页
      • timeoutSeconds (可选):超时秒数(1-300)
      • workspace (可选):要查询的特定工作区
    • 返回:匹配事件列表(从最小到最近排序)
    • 注: 对于日期筛选,请使用 fromDateUtc/toDateUtc 参数而不是 @Timestamp 在过滤器表达式中,以获得更好的性能
    • 分页: 要获取1000多个事件,请使用 afterId 具有上次搜索中最后一个事件的ID
    • 过滤器示例:
      • "" -所有事件
      • "error" -包含“错误”的事件
      • @Level = "Error" -错误级别事件
      • Application = "MyApp" -来自特定应用程序的事件
    • 日期范围示例:
      • filter: "@Level = 'Error'", fromDateUtc: "2024-01-01T00:00:00Z", toDateUtc: "2024-01-31T23:59:59Z"
    • 分页示例:
      • 第一通电话: filter: "", count: 1000 → 返回带有ID的事件
      • 第二次通话: filter: "", count: 1000, afterId: "event-<last-id>" → 返回下一批
  • SeqWaitForEvents -等待并捕获Seq的实时事件(5秒超时)

    • 参数:
      • filter (可选):序列过滤器表达式
      • count:要捕获的事件数(默认值:10,最大值:100)
      • workspace (可选):要查询的特定工作区
    • 返回:等待期间捕获的事件快照(如果没有匹配的事件,则可能为空)
  • SignalList -列出可用信号(只读)

    • 参数:
      • workspace (可选):要查询的特定工作区
    • 返回:信号及其定义列表
  • SeqConvertFilter -将模糊过滤器转换为严格过滤器表达式

    • 参数:
      • fuzzyFilter (必填):模糊搜索文本(例如“错误”、“超时”)
      • workspace (可选):要查询的特定工作区
    • 返回:用于 SeqSearch
    • 用例:帮助用户编写正确的筛选器表达式
    • 示例:将“error”转换为正确的Seq过滤器表达式

Claude桌面集成

选项1:使用。NET全局工具(推荐)

安装全局工具后,添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "seq": {
      "command": "seq-mcp-server",
      "env": {
        "SEQ_SERVER_URL": "http://localhost:5341",
        "SEQ_API_KEY": "your-api-key-here"
      }
    }
  }
}

选项2:预构建版本

下载适用于您平台的最新版本,并将其添加到MCP设置中:

{
  "mcpServers": {
    "seq": {
      "command": "C:\\\\Tools\\\\seq-mcp-server.exe",
      "args": [],
      "env": {
        "SEQ_SERVER_URL": "http://localhost:5341",
        "SEQ_API_KEY": "your-api-key-here"
      }
    }
  }
}

选项3:从源代码构建

生成单个文件可执行文件(需要.NET 10运行时):

# Windows
dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true

# macOS
dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=true

# Linux
dotnet publish -c Release -r linux-x64 -p:PublishSingleFile=true

可执行文件将位于 SeqMcpServer/bin/Release/net10.0/{runtime}/publish/

配置

Seq MCP服务器使用环境变量进行配置:

  • SEQ_SERVER_URL:您的Seq服务器的URL
  • SEQ_API_KEY:用于访问Seq的API密钥(必需)
  • SEQ_API_KEY_<WORKSPACE>:可选的特定于工作空间的API密钥(例如。, SEQ_API_KEY_PRODUCTION)

Seq兼容性

SeqSearch 偏爱 Events.EnumerateAsync(),它使用Seq Scan 当服务器通告它时,它会链接。较旧的Seq版本,如 2024.3.x 不要暴露 Scan 上 api/events/resources;在这种情况下,服务器现在回退到 PagedEnumerateAsync() 因此搜索继续工作,而不是失败:

System.NotSupportedException: The requested link `Scan` isn't available on entity `Seq.Api.Model.ResourceGroup`.

如果您正在调试兼容性问题:

  • 序列 2025.2.x 以及较新的曝光 Scan
  • 序列 2024.3.x 不暴露 Scan
  • 此MCP服务器通过自动回退来支持这两条路径

工作区支持

MCP服务器支持特定于工作空间的API密钥(未来功能):

export SEQ_API_KEY="default-key"
export SEQ_API_KEY_PRODUCTION="production-key"
export SEQ_API_KEY_STAGING="staging-key"

注意:目前设计了特定于工作区的键,但尚未在MCP工具中实现。

发展

先决条件

  • .NET 10.0 SDK
  • Docker(用于在本地运行Seq)

运行测试

dotnet test

发展

这 scripts 文件夹包含自动安装脚本:

  • setup-dev.ps1 / setup-dev.sh:自动配置您的开发环境

    • 使用身份验证启动Seq容器
    • 处理初始密码设置
    • 创建开发API密钥
    • 设置环境变量
    • 创造 .env 应用程序的文件
  • teardown-dev.ps1 / teardown-dev.sh:清理开发环境

    • 停止并移除容器
    • 清除环境变量

有关详细的开发设置,请参阅 docs/DEVELOPMENT.md.

建筑

这是一个纯MCP服务器实现,它:

  • 作为基于stdio的服务运行(无web服务器)
  • 通过JSON-RPC通过标准输入/输出进行通信
  • 不登录控制台以避免干扰MCP通信
  • 配置时,可选择登录到Seq本身进行调试

自我记录

当有效时,MCP服务器可以将自己的操作记录到Seq中 SEQ_SERVER_URL 和 SEQ_API_KEY 提供。这有助于调试和监控MCP服务器本身。

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。