MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

L
Log MCP Server

MCP server by xjdxjd

Created 6/8/2026
Updated about 4 hours ago
Repository documentation and setup instructions

Log MCP Server

Structured logging for AI Agent teams via Model Context Protocol 通过 MCP 协议为 AI 智能体团队提供结构化日志管理服务

Node.js TypeScript License MCP


🤔 Why?

当 AI Agent 团队(多个 AI 智能体协作)执行复杂项目时,面临一个共同痛点:日志管理混乱

  • 📝 日志散落在多个 Markdown 文件中,格式不统一
  • 🔍 无法按时间、智能体、级别等条件快速检索
  • 📊 统计和报告完全依赖人工整理,耗时且易出错
  • ⏱️ 每次日志写入需要 1-3 分钟手动编辑文件

Log MCP Server 将这些问题一次性解决:通过 MCP 协议暴露 4 个标准 Tool,让 AI 智能体以结构化方式写入、查询、统计和渲染日志——纯本地运行,不联网,零数据库依赖

| 指标 | Before | After | |------|--------|-------| | 日志写入时间 | 1-3 分钟 | < 5 秒 | | 日志解析成功率 | ~70% | 100% | | 报告生成 | 手动整理 | 一键自动 |


✨ Features

  • 4 个 MCP Toollog_write / log_query / log_stats / log_render,覆盖日志全生命周期
  • 8 种日志类型:智能体调用、任务、违规、反馈、申诉、变更、绩效报告、质检动作
  • JSONL 存储:append-only 写入,无数据库依赖,轻量且易备份
  • 自动报告:内置 3 个 Markdown 报告模板(运营聚合 / 绩效周报 / 违规汇总)
  • 多维查询:支持时间、智能体、级别、状态、关键词过滤 + 分页
  • 聚合统计:支持 count / rate / avg 三种统计方式 + groupBy 分组
  • 广泛兼容:支持所有 MCP 协议客户端(Claude Desktop、Cursor、Qoder 等)
  • 纯本地运行:stdio 通信(JSON-RPC 2.0),不暴露网络端口,数据完全离线

🚀 Quick Start

Prerequisites

| 依赖 | 版本要求 | |------|---------| | Node.js | ≥ 18.0.0(需支持 ESM) | | npm | ≥ 9.0 |

Installation

git clone https://github.com/xjdxjd/log-mcp-server.git
cd log-mcp-server
npm install
npm run build

MCP Configuration

将以下配置添加到你的 MCP 客户端配置文件中:

通用配置模板

{
  "mcpServers": {
    "log-mcp-server": {
      "command": "node",
      "args": ["/absolute/path/to/log-mcp-server/dist/index.js"],
      "env": {
        "LOG_DATA_DIR": "logs"
      }
    }
  }
}

各客户端配置文件位置

| 客户端 | 配置文件路径 | |--------|-------------| | Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json | | Cursor | Settings → MCP → Add Server | | Qoder | .qoder/mcp.json(项目级) |

💡 请将 /absolute/path/to/ 替换为实际安装路径。LOG_DATA_DIR 控制数据文件存放目录(相对于工作目录)。

配置完成后重启客户端,确认 log-mcp-server 状态为 connected 即可。


🛠️ Tools

log_write — 写入日志

将一条结构化日志写入对应的 JSONL 文件。Server 自动补充 id(UUID v4)、timestamp(ISO 8601)和 _meta 字段。

输入

{
  "logType": "agent-calls",
  "data": {
    "caller": "Solo Agent",
    "callee": "product-manager",
    "taskDesc": "编写 PRD 文档",
    "callReason": "主流程调度",
    "result": "完成 PRD 编写",
    "accuracy": "correct"
  }
}

输出

{
  "success": true,
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "logType": "agent-calls",
  "message": "Successfully wrote to agent-calls.jsonl"
}

log_query — 条件查询

按时间、智能体、级别、关键词等条件过滤日志,支持分页。

输入

{
  "logType": "violations",
  "filters": {
    "timeRange": { "start": "2026-06-01T00:00:00Z", "end": "2026-06-08T23:59:59Z" },
    "level": "P0"
  },
  "limit": 20
}

输出

{
  "total": 2,
  "records": [
    { "id": "...", "timestamp": "2026-06-05T14:00:00Z", "level": "P0", "agent": "backend-engineer", "..." : "..." }
  ],
  "pagination": { "offset": 0, "count": 2, "limit": 20, "hasMore": false }
}

log_stats — 聚合统计

对日志做分组统计,支持 count(计数)、rate(成功率)、avg(平均值)。

输入

{
  "logType": "tasks",
  "metrics": "rate",
  "groupBy": "agent"
}

输出

{
  "stats": {
    "groups": {
      "backend-engineer": { "count": 5, "rate": 0.8 },
      "frontend-engineer": { "count": 3, "rate": 1.0 }
    }
  },
  "generatedAt": "2026-06-09T10:00:00Z",
  "totalRecords": 8
}

log_render — Markdown 报告渲染

基于日志数据自动生成 Markdown 报告,支持 3 种预设模板。不传 data 时自动从内部获取。

输入

{
  "template": "aggregator-report",
  "timeRange": { "start": "2026-06-01T00:00:00Z", "end": "2026-06-08T23:59:59Z" }
}

输出

{
  "markdown": "# 📊 运营聚合报告\n\n## 调用统计\n...",
  "template": "aggregator-report",
  "dataSource": "auto"
}

可用模板

| 模板 | 说明 | 数据来源 | |------|------|---------| | aggregator-report | 运营聚合报告 | agent-calls + tasks + violations | | perf-weekly | 绩效周报 | agent-calls + tasks + violations + feedback | | violation-summary | 违规汇总 | violations |


📋 Log Types

| # | logType 值 | 用途 | 存储文件 | |---|-------------|------|---------| | 1 | agent-calls | 智能体之间的调用记录 | agent-calls.jsonl | | 2 | tasks | 任务执行记录 | tasks.jsonl | | 3 | violations | 违规记录(P0/P1/P2) | violations.jsonl | | 4 | feedback | 用户或系统反馈 | feedback.jsonl | | 5 | appeals | 违规申诉记录 | appeals.jsonl | | 6 | changes | 代码/配置变更记录 | changes.jsonl | | 7 | perf-reports | 智能体绩效评分报告 | perf-reports.jsonl | | 8 | inspector-actions | 质检动作(检查/警告/处罚等) | inspector-actions.jsonl |

📖 每种类型的完整字段定义参见 data-model-reference.md


⚠️ Error Codes

所有错误通过 MCP CallToolResultisError: true)返回,格式:

{ "success": false, "errorCode": "WRITE_VALIDATION_FAILED", "message": "...", "details": [] }

| 错误码 | Tool | 说明 | |--------|------|------| | WRITE_INVALID_LOG_TYPE | log_write | 无效的日志类型 | | WRITE_VALIDATION_FAILED | log_write | 数据校验失败(缺少必填字段) | | WRITE_FILE_ERROR | log_write | 文件写入错误(磁盘满/权限不足) | | WRITE_LOCK_TIMEOUT | log_write | 文件锁超时(预留) | | WRITE_INTERNAL_ERROR | log_write | 内部错误 | | QUERY_INVALID_LOG_TYPE | log_query | 无效日志类型 | | QUERY_INVALID_TIME_RANGE | log_query | start 晚于 end | | QUERY_INVALID_PAGINATION | log_query | limit/offset 超出范围 | | QUERY_FILE_READ_ERROR | log_query | 文件读取异常 | | QUERY_PARSE_ERROR | log_query | JSONL 文件严重损坏 | | QUERY_INTERNAL_ERROR | log_query | 内部错误 | | STATS_INVALID_LOG_TYPE | log_stats | 无效日志类型 | | STATS_INVALID_TIME_RANGE | log_stats | start 晚于 end | | STATS_INVALID_GROUP_BY | log_stats | groupBy 不适用于当前 logType | | STATS_INVALID_METRICS | log_stats | metrics 不适用于当前 logType | | STATS_FILE_READ_ERROR | log_stats | 文件读取异常 | | STATS_INTERNAL_ERROR | log_stats | 内部错误 | | RENDER_INVALID_TEMPLATE | log_render | 无效模板名称 | | RENDER_STATS_FAILED | log_render | 统计数据获取失败 | | RENDER_INTERNAL_ERROR | log_render | 渲染异常 |


📂 Project Structure

log-mcp-server/
├── package.json               # 项目配置
├── tsconfig.json              # TypeScript 配置
├── src/
│   ├── index.ts               # 入口:启动 MCP Server(stdio 模式)
│   ├── server.ts              # MCP 实例化 + 4 个 Tool 注册
│   ├── config.ts              # 配置:数据目录、常量
│   ├── types/
│   │   ├── index.ts           # 类型导出
│   │   └── models.ts          # 8 个数据模型 + 12 个枚举
│   ├── schemas/
│   │   ├── log-write.schema.ts   # log_write Zod Schema
│   │   ├── log-query.schema.ts   # log_query Zod Schema
│   │   ├── log-stats.schema.ts   # log_stats Zod Schema
│   │   └── log-render.schema.ts  # log_render Zod Schema
│   ├── tools/
│   │   ├── log-write.ts       # 日志写入
│   │   ├── log-query.ts       # 条件查询
│   │   ├── log-stats.ts       # 聚合统计
│   │   └── log-render.ts      # Markdown 渲染
│   └── utils/
│       ├── jsonl-store.ts     # JSONL 文件读写
│       └── time-filter.ts     # 时间过滤工具
└── dist/                      # 编译输出(tsc 生成)

运行时自动创建 logs/ 目录,包含 8 个 JSONL 数据文件。


🔧 Development

# 编译 TypeScript
npm run build

# 启动 MCP Server(stdio 模式)
npm start

# 开发模式(监听文件变化自动编译)
npm run dev

# 类型检查(不生成输出文件)
npm run typecheck

# 运行 Markdown → JSONL 数据迁移脚本
npm run migrate

⚙️ Environment Variables

| 变量名 | 必填 | 默认值 | 说明 | |--------|------|--------|------| | LOG_DATA_DIR | 否 | logs | JSONL 数据文件存放目录(相对于 cwd) |


🏗️ Tech Stack

| 类别 | 技术 | 说明 | |------|------|------| | Runtime | Node.js ≥ 18 | ESM 模块模式 | | Language | TypeScript 5.8 | 严格模式(strict: true) | | MCP SDK | @modelcontextprotocol/sdk ^1.12.1 | stdio 通信(JSON-RPC 2.0) | | Validation | Zod ^3.24.4 | 运行时输入校验 | | Storage | JSONL files | append-only,无数据库依赖 |


🤝 Contributing

欢迎贡献!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建你的特性分支:git checkout -b feature/my-feature
  3. 提交更改:git commit -m "feat: add my feature"
  4. 推送到分支:git push origin feature/my-feature
  5. 发起 Pull Request

Commit Convention

推荐使用 Conventional Commits 规范:

feat: 新功能
fix: 修复 bug
docs: 文档变更
refactor: 代码重构
chore: 构建/工具变更

📄 License

Apache License 2.0 — 允许商业使用、修改和分发,需保留版权声明和许可证副本。

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-log-mcp-server

Cursor configuration (mcp.json)

{ "mcpServers": { "xjdxjd-log-mcp-server": { "command": "npx", "args": [ "xjdxjd-log-mcp-server" ] } } }