🚀 本地日志MCP服务器
模型上下文协议(MCP)服务器,用于监控本地应用程序日志,具备实时跟踪、错误追踪和日志搜索功能。
非常适合监控Node.js应用程序、Web服务器或任何写入日志文件的应用程序。

✨ 主要特性
- 📁 日志文件发现 - 自动查找并列出可用的日志文件
- 📜 实时日志跟踪 - 从任何日志文件中获取最后N行
- ⚠️ 错误监控 - 快速检查错误日志以发现问题
- 📊 服务器状态 - 通过日志分析获取服务器状态摘要
- 👀 日志监控 - 监控日志文件的更改
- 🔍 日志搜索 - 在日志中搜索特定的文本模式
- 🔧 可配置 - 支持自定义日志目录和文件扩展名
- 🚀 易于设置 - 可与Cursor、Claude Desktop、VS Code Copilot等工具配合使用
🛠️ 可用工具
| 工具 |
描述 |
参数 |
get_log_files |
列出带有元数据的可用日志文件 |
无 |
tail_log |
从日志文件中获取最后N行 |
filename、lines |
get_errors |
获取最近的错误日志条目 |
lines |
get_server_status |
从日志中获取服务器状态摘要 |
无 |
watch_log |
监控日志文件的更改 |
filename |
search_logs |
在日志文件中搜索文本 |
query、filename、lines |
📦 安装指南
🚀 一键安装(推荐)
Linux/Mac:
curl -sSL https://raw.githubusercontent.com/mariosss/local-logs-mcp-server/main/install-new.js | node
Windows(PowerShell):
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/mariosss/local-logs-mcp-server/main/install-new.js" | Invoke-Expression
就这么简单! 安装脚本将直接下载服务器文件并自动配置Cursor。只需重启Cursor即可开始使用!
替代方案:两步安装
npm install -g https://github.com/mariosss/local-logs-mcp-server
local-logs-setup
替代方案:手动安装
npm install -g local-logs-mcp-server
local-logs-setup
NPX使用(无需安装)
npx local-logs-mcp-server
手动克隆安装
git clone https://github.com/mariosss/local-logs-mcp-server.git
cd local-logs-mcp-server
npm install -g .
⚙️ 配置
✅ 自动配置(默认)
该软件包会自动为你配置Cursor!无需手动设置。
🔧 手动配置(如有需要)
对于Cursor IDE
添加到你的 .cursor/mcp.json(项目特定)或全局MCP配置中:
{
"mcpServers": {
"local-logs": {
"command": "npx",
"args": ["-y", "local-logs-mcp-server"],
"env": {
"LOGS_DIR": "./logs"
}
}
}
}
对于Claude Desktop
添加到你的Claude Desktop MCP配置中(Mac上的路径为 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"local-logs": {
"command": "npx",
"args": ["-y", "local-logs-mcp-server"],
"env": {
"LOGS_DIR": "/path/to/your/logs"
}
}
}
}
对于VS Code(GitHub Copilot)
添加到你的 .vscode/mcp.json 中:
{
"servers": {
"local-logs": {
"command": "npx",
"args": ["-y", "local-logs-mcp-server"],
"env": {
"LOGS_DIR": "./logs"
}
}
}
}
对于Windsurf(Codium)
添加到你的Windsurf MCP配置中:
{
"mcpServers": {
"local-logs": {
"command": "npx",
"args": ["-y", "local-logs-mcp-server"],
"env": {
"LOGS_DIR": "./logs"
}
}
}
}
🔧 环境变量
| 变量 |
描述 |
默认值 |
LOGS_DIR |
包含日志文件的目录 |
自动检测(见下文) |
LOG_EXTENSIONS |
以逗号分隔的日志文件扩展名 |
.log,.txt |
日志目录自动检测
如果未指定 LOGS_DIR,服务器将按以下优先级顺序自动搜索日志:
./logs(当前目录)
./apps/backend/logs(单仓库结构)
./server/logs(服务器目录)
./backend/logs(后端目录)
/var/log(Linux/Mac上的系统日志)
C:\logs(Windows上的系统日志)
💻 使用示例
基础用法
配置好MCP客户端后,你可以使用自然语言命令:
- "检查我的服务器日志"
- "日志中是否有错误?"
- "我的服务器状态如何?"
- "显示可用的日志文件"
高级用法
- "显示error.log的最后50行"
- "在日志中搜索'database connection'"
- "监控access.log的更改"
- "查找所有包含'TypeError'的日志条目"
🏗️ 项目结构示例
标准Node.js项目
your-project/
├── logs/
│ ├── combined.log # 主应用程序日志
│ ├── error.log # 错误日志
│ └── access.log # 访问日志(可选)
├── .cursor/
│ └── mcp.json # MCP配置
├── src/
└── package.json
单仓库结构
your-monorepo/
├── apps/
│ └── backend/
│ └── logs/
│ ├── combined.log
│ └── error.log
├── .cursor/
│ └── mcp.json
└── package.json
🔍 支持的日志格式
该服务器可处理任何基于文本的日志文件,并能解析:
- Winston日志(JSON和文本格式)
- Morgan访问日志
- Pino日志
- Bunyan日志
- 自定义应用程序日志
- 系统日志
- 任何.log或.txt文件
示例日志格式
Winston文本格式:
2024-01-15 10:30:45 [INFO]: Server started on port 3000
2024-01-15 10:30:50 [ERROR]: Database connection failed
Winston JSON格式:
{"level":"info","message":"Server started","timestamp":"2024-01-15T10:30:45.123Z"}
{"level":"error","message":"Database connection failed","timestamp":"2024-01-15T10:30:50.456Z"}
🛡️ 安全性
- 只读访问 - 服务器仅读取日志文件,从不写入或修改
- 目录范围 - 仅访问指定日志目录中的文件
- 无网络访问 - 完全在本地文件上运行
- 权限遵循 - 遵循文件系统权限
🚀 性能
- 高效文件读取 - 对大日志文件使用流式处理
- 内存管理 - 不将整个文件加载到内存中
- 快速搜索 - 优化的文本搜索算法
- 依赖极少 - 仅使用Node.js内置模块
🤝 贡献
- 分叉仓库
- 创建你的功能分支 (
git checkout -b feature/amazing-feature)
- 提交你的更改 (
git commit -m 'Add amazing feature')
- 推送到分支 (
git push origin feature/amazing-feature)
- 打开拉取请求
📄 许可证
本项目采用MIT许可证 - 详情请参阅 LICENSE 文件。
🐛 故障排除
服务器显示红色/错误状态
- 检查日志目录是否存在且可访问
- 验证日志文件是否具有正确的读取权限
- 确保Node.js版本为14或更高
- 检查MCP配置中的服务器路径是否正确
没有可用工具
- 重启你的MCP客户端(Cursor、Claude、VS Code)
- 验证MCP配置语法是否为有效的JSON
- 检查MCP服务器是否响应(使用
echo '{"jsonrpc":"2.0","method":"initialize","id":1}' | npx local-logs-mcp-server 进行测试)
未找到日志文件
- 设置正确的
LOGS_DIR 环境变量
- 确保你的应用程序实际写入了日志文件
- 检查文件扩展名是否与
LOG_EXTENSIONS 设置匹配
- 验证目录权限是否允许读取
常见日志目录问题
问题: "未找到日志目录"
export LOGS_DIR="/path/to/your/logs"
问题: "未找到日志文件"
export LOG_EXTENSIONS=".log,.txt,.out"
📚 示例
Cursor完整设置
- 全局安装:
npm install -g local-logs-mcp-server
- 添加到
.cursor/mcp.json:
{
"mcpServers": {
"local-logs": {
"command": "local-logs-mcp",
"env": {
"LOGS_DIR": "./logs"
}
}
}
}
- 重启Cursor并测试:
Claude Desktop完整设置
- 打开Claude Desktop配置:
open ~/Library/Application\ Support/Claude/claude_desktop_config.json
notepad %APPDATA%\Claude\claude_desktop_config.json
- 添加配置:
{
"mcpServers": {
"local-logs": {
"command": "npx",
"args": ["-y", "local-logs-mcp-server"],
"env": {
"LOGS_DIR": "/Users/yourusername/projects/myapp/logs"
}
}
}
}
- 重启Claude Desktop
🔗 相关项目
为MCP社区用心打造 ❤️