🚀 本地日誌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社區用心打造 ❤️