Sequ MCP服务器
   ](<>)  
A. 模型上下文协议(MCP) 将AI代理连接到的服务器 序列 --集中式结构化日志平台。此服务器使LLM能够通过自然语言交互搜索日志事件、执行SQL查询、检查仪表板、警报、信号等。
______________________________________________________________________
用例
- 原木调查:使用Seq筛选器表达式搜索和筛选日志事件。让AI帮助您发现错误、跟踪问题并分析日志数据中的模式。
- SQL分析:对Seq事件流执行SQL查询。使用转换为Seq SQL的自然语言聚合、分组和分析日志数据。
- 仪表板检查:浏览共享仪表板及其图表定义,以了解监控配置。
- 警报监控:检查配置的警报及其当前状态,以快速评估系统运行状况。
- 信号发现:列出共享信号(保存的过滤器/视图),以了解您的团队如何对日志数据进行分类。
- 基础设施洞察:检索服务器诊断、保留策略和系统指标,以提高操作意识。
______________________________________________________________________
先决条件
- .NET 9.0 SDK 或更高版本
- 跑步 序列 例子 2025.1或更晚 (本地或远程)
- MCP兼容客户端(VS Code、Claude Desktop、Cursor、Windsurf或任何其他MCP主机)
______________________________________________________________________
版本兼容性
每个SeqMcpServer版本都是针对特定版本的 Seq。Api SDK,它确定了所需的最小Seq服务器版本。选择与您的Seq安装相匹配的MCP服务器版本。
| SeqMcpServer | 序列。Api SDK | 序列Api | 最小序列服务器 | 。NET | 状态 |
|---|---|---|---|---|---|
| 2.0.1 | 2025.2.2 | v11 | 2025.1+ | 9.0 | 当前 |
| 2.0.0 | 2025.2.2 | v11 | 2025.1+ | 9.0 | 维护 |
| 1.1.0 | 2024.3.0 | v10 | 2024.x及更早版本¹ | 9.0 | 维护 |
| 1.0.0 | 2024.3.0 | v10 | 2024.x及更早版本¹ | 9.0 | 维护 |
¹ *Seq。Api SDK版本号遵循Seq服务器发布周期。SDK 2024.3.0针对Seq 2024.x进行测试。支持API v10的较旧Seq版本也可以工作,但尚未正式测试。*
提示: 不确定使用哪个版本?如果您的Seq服务器 2025.1或更新版本,使用SeqMcpServer 2.0.0.对于Seq 2024.x 或更早,使用SeqMcpServer 1.1.0.版本兼容性表将随着新版本针对较新的Seq API版本而更新。
______________________________________________________________________
入门指南
1.构建服务器
git clone
cd src/SeqMcpServer
dotnet build2.配置您的MCP客户端
服务器通过以下方式进行通信 标准 并且完全通过环境变量进行配置。
VS Code
将以下内容添加到VS代码MCP设置中(.vscode/mcp.json 或用户设置):
{
"servers": {
"seq": {
"type": "stdio",
"command": "dotnet",
"args": ["run", "--project", "/absolute/path/to/SeqMcpServer"],
"env": {
"SEQ_URL": "http://localhost:5341",
"SEQ_API_KEY": "your-seq-api-key"
}
}
}
}Claude Desktop
编辑您的 claude_desktop_config.json:
{
"mcpServers": {
"seq": {
"command": "dotnet",
"args": ["run", "--project", "/absolute/path/to/SeqMcpServer"],
"env": {
"SEQ_URL": "http://localhost:5341",
"SEQ_API_KEY": "your-seq-api-key"
}
}
}
}Cursor
添加到光标MCP配置中:
{
"mcpServers": {
"seq": {
"command": "dotnet",
"args": ["run", "--project", "/absolute/path/to/SeqMcpServer"],
"env": {
"SEQ_URL": "http://localhost:5341",
"SEQ_API_KEY": "your-seq-api-key"
}
}
}
}Using a compiled binary
为了获得更好的启动性能,请先发布服务器:
dotnet publish -c Release -o ./publish然后直接在MCP客户端配置中引用二进制文件:
{
"servers": {
"seq": {
"type": "stdio",
"command": "/absolute/path/to/publish/SeqMcpServer.exe",
"env": {
"SEQ_URL": "http://localhost:5341",
"SEQ_API_KEY": "your-seq-api-key"
}
}
}
}______________________________________________________________________
配置
服务器是通过环境变量专门配置的,不需要配置文件。
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
SEQ_URL | 没有 | http://localhost:5341 | Seq实例的基本URL |
SEQ_API_KEY | 没有 | *(无)* | 按API密钥进行身份验证。如果省略,则连接时不进行身份验证 |
注: 启动诊断(包括服务器版本和身份验证状态)被写入 stderr 在不干扰MCP stdio传输的情况下实现可见性。______________________________________________________________________
可用工具
服务器暴露 8个MCP工具 提供对Seq功能的全面访问:
日志查询
| 工具 | 说明 |
|---|---|
seq_query_logs | 使用筛选表达式搜索序列日志事件 |
seq_run_sql | 对Seq日志数据执行SQL查询 |
配置和监控
| 工具 | 说明 |
|---|---|
seq_list_signals | 列出共享信号(保存的过滤器/视图) |
seq_list_dashboards | 列出带有图表定义的共享仪表板 |
seq_get_alerts | 获取已配置的警报及其当前状态 |
seq_get_retention | 在Seq中配置保留策略 |
服务器信息
| 工具 | 说明 |
|---|---|
seq_get_diagnostics | 获取Seq服务器诊断和系统指标 |
| 获取MCP服务器版本和运行时信息 |
______________________________________________________________________
工具参考
seq_query_logs
使用筛选表达式搜索Seq日志事件。返回具有时间戳、级别、消息和属性的匹配事件。
参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
filter | string | 没有 | "" | 序列滤波器表达式(例如。, @Level = "Error", Application = "MyApp").为所有事件留空。 |
count | int | 没有 | 50 | 返回的最大事件数(1-500) |
fromUtc | string | 否 | 最近24小时 | ISO 8601开始时间(例如。, 2025-01-15T00:00:00Z) |
toUtc | string | 否 | 现在 | ISO 8601结束时间 |
示例提示:
- *“显示最近10个错误日志”*
- *“查找过去一小时内PaymentService的所有日志”*
- *“搜索包含警告或错误级别的'timeout'的日志”*
______________________________________________________________________
seq_run_sql
使用标准Seq SQL语法对Seq日志数据执行SQL查询。
参数:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
query | string | 是 | -- | 要执行的SQL查询(例如。, select count(*) from stream group by @Level) |
fromUtc | string | 否 | 最近24小时 | ISO 8601范围开始 |
toUtc | string | 否 | 现在 | ISO 8601范围结束 |
安全: A. LIMIT 1000 如果没有指定限制以防止过度的数据检索,则会自动附加子句。示例提示:
- *“统计过去24小时内按级别分组的日志事件”*
- *“显示本周最常见的10条错误消息”*
- *“每个端点的平均响应时间是多少?”*
______________________________________________________________________
seq_list_signals
列出序列中定义的所有共享信号(保存的日志过滤器/视图)。
*无需参数。*
退货: 每个共享信号的信号ID、标题、描述和过滤器表达式。
______________________________________________________________________
seq_list_dashboards
列出Seq中配置的所有共享仪表板及其图表定义。
*无需参数。*
退货: 仪表板ID、标题和嵌套图表定义,包括带筛选器和分组子句的查询。
______________________________________________________________________
seq_get_alerts
从Seq获取所有配置的警报及其当前状态。
*无需参数。*
退货: 警报状态数据,包括配置和当前触发状态。
______________________________________________________________________
seq_get_retention
在Seq中配置所有保留策略,显示日志数据的保留时间。
*无需参数。*
退货: 策略ID、保留期(以天为单位)和相关的信号表达式。
______________________________________________________________________
seq_get_diagnostics
获取Seq服务器诊断,包括摄取状态、存储使用情况和系统指标。
*无需参数。*
退货: 包含摄取、存储和系统健康指标的全面诊断报告。
______________________________________________________________________
seq_get_version
获取MCP服务器版本、名称和运行时信息。
*无需参数。*
退货: 服务器名称、版本号和。NET运行时描述。
______________________________________________________________________
建筑
SeqMcpServer/
├── Program.cs # Entry point, DI registration, MCP server setup
├── VersionInfo.cs # Assembly-based version resolution
└── Tools/
├── JsonDefaults.cs # Shared JSON serialization options
├── QueryLogsTool.cs # seq_query_logs — event search
├── SqlQueryTool.cs # seq_run_sql — SQL queries
├── SignalsTool.cs # seq_list_signals
├── DashboardsTool.cs # seq_list_dashboards
├── AlertsTool.cs # seq_get_alerts
├── RetentionPoliciesTool.cs # seq_get_retention
├── DiagnosticsTool.cs # seq_get_diagnostics
└── VersionTool.cs # seq_get_version- 运输: 标准输入/输出
- 工具发现: 自动通过
[McpServerToolType]和[McpServerTool]属性 - Seq集成: SDK优先方法-- Seq。Api SDK 用于键入访问(7个工具),命名为
HttpClient用于原始API端点(1个工具) - 错误处理: 所有工具都返回JSON序列化错误——没有异常传播到MCP主机
______________________________________________________________________
安全注意事项
SeqMcpServer充当 透明代理 在AI代理(LLM)和Seq API之间。用户提供的SQL查询(seq_run_sql)和过滤表达式(seq_query_logs)在没有服务器端净化的情况下转发到Seq。这是经过精心设计的:
- Seq SQL是只读的 --Seq查询语言仅支持
SELECT事件流上的语句和聚合。没有DML操作(INSERT、UPDATE、DELETE)或DDL操作(CREATE、DROP、ALTER)。 - 授权由Seq执行 -Seq服务器基于API密钥权限来控制访问。MCP服务器不实现自己的授权层。
- 内置护栏 --MCP服务器自动附加
LIMIT 1000对于缺少限制子句的SQL查询,将日志查询的事件计数限制在1-500,以防止过度的数据检索。
建议: 始终将Seq API密钥与 所需的最低权限 (最小特权原则)。如果密钥只需要读取日志,则不要授予管理或写入权限。看 Seq API关键文档 有关配置关键权限的详细信息。
______________________________________________________________________
技术栈
| 组件 | 版本 |
|---|---|
| .净值 | 9.0 |
| 模型上下文协议 | 0.1.0-复习。9 |
| Seq。应用程序编程接口 | 2025.2.2 |
| 微软。扩展。主机 | 9.0.0 |
| 微软。扩展。Http | 9.0.0 |
有关SeqMcpServer版本与Seq服务器兼容性的详细映射,请参阅 版本兼容性.
______________________________________________________________________
测试
该项目包括单元测试和集成测试。
单元测试
dotnet test SeqMcpServer.Tests.Unit无需外部依赖——完全在进程内使用模拟的HTTP处理程序运行。
集成测试
dotnet test SeqMcpServer.Tests.Integration需要 码头工人 — 测试容器 自动启动 datalust/seq:2025.2 容器,种子测试数据,运行所有测试并清理。
所有测试
dotnet test______________________________________________________________________
代码质量
该项目不断被分析 SonarCloud 为了代码质量和安全。
- 基于CI的分析:The
sonar.yml工作流运行SonarScanner。NET每次推送main、版本分支和拉取请求。 - 代码覆盖率:单元和集成测试通过以下方式生成OpenCover覆盖率报告 床罩,上传到SonarCloud进行覆盖分析和PR装饰。
- 公关装修:SonarCloud会自动将分析结果作为对拉取请求的评论发布,包括新问题、质量门状态和覆盖范围更改。
- 质量门:该项目使用“声纳方式”质量门——新代码在合并之前必须通过所有条件。
SonarQube for IDE(实时分析)
SonarQube集成开发环境 (前身为SonarLink)直接在VS code中提供实时代码分析。随着 已连接模式,它同步SonarCloud的质量配置文件,确保在本地和CI中应用相同的规则。
要求: Java 17+,SonarCloud帐户,可访问 finfinder 组织。
安装:
- 从VS Code Marketplace安装扩展:搜索“SonarQube for IDE”或运行:
code --install-extension SonarSource.sonarlint-vscode- 在VS Code中打开此项目。扩展程序将检测
.sonarlint/connectedMode.json共享绑定,并提示您配置连接模式。 - 点击 “使用配置” 出现提示时,请提供您的 用户令牌.
- 要生成用户令牌,请转到 SonarCloud安全 并创建新令牌(类型: 用户令牌).
重要提示: 您的用户令牌是个人令牌,必须 不 提交到存储库。每个开发人员生成自己的令牌。
连接模式提供了什么:
- SonarCloud的同步质量配置文件规则
- 抑制服务器上标记为“接受/误报”的问题
- 专注于新代码分析
- 关于质量门更改的智能通知
- 分支感知与项目的版本化分支模型兼容
SonarQube MCP服务器(可选)
这 SonarQube MCP服务器 使AI代理(GitHub Copilot)能够直接从VS Code查询SonarCloud分析结果。此集成由 code-reviewer 和 software-engineer 代理人。
要求: 码头工人
将以下内容添加到您的 .vscode/mcp.json:
{
"servers": {
"sonarqube": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "SONAR_TOKEN",
"-e", "SONAR_HOST_URL=https://sonarcloud.io",
"-e", "SONAR_ORGANIZATION=finfinder",
"mcp/sonarqube"
],
"env": {
"SONAR_TOKEN": "${input:sonarToken}"
}
}
}
}生成一个 SONAR_TOKEN首选 SonarCloud安全 并使用创建新令牌 执行分析 范围。
______________________________________________________________________
贡献
欢迎投稿!请阅读 贡献.md 了解如何开始的指导方针。
______________________________________________________________________
安全
要报告安全漏洞,请参阅 安全.md 以获取说明。
______________________________________________________________________
更新日志
看 更改日志.md 查看详细的变化历史。
______________________________________________________________________
许可证
该项目根据 MIT许可证.
