{"_id":"@ams-dev/dev-watcher","_rev":"4-752d3071cbba9b4dad62e23f1d1ea49c","name":"@ams-dev/dev-watcher","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@ams-dev/dev-watcher","version":"0.1.0","keywords":["mcp","model-context-protocol","error-detection","monitoring","development-tools"],"author":{"name":"mastoica"},"license":"MIT","_id":"@ams-dev/dev-watcher@0.1.0","maintainers":[{"name":"stoyca_maryus","email":"stoyca_maryus@yahoo.com"}],"homepage":"https://github.com/mastoica/vibecoding-mcp-servers#readme","bugs":{"url":"https://github.com/mastoica/vibecoding-mcp-servers/issues"},"bin":{"dev-watcher":"dist/index.js"},"dist":{"shasum":"9e75627d57a32db6d159b5d36affa7bc68352345","tarball":"https://registry.npmjs.org/@ams-dev/dev-watcher/-/dev-watcher-0.1.0.tgz","fileCount":18,"integrity":"sha512-vKEXNTsKD5gsI1Zz15dHuvCsXc/kbwYYZAjYoHndMwV/f3WI6I5YFQxdgEnlGtqKEnb+pIUOGVCL8eo3AucRkQ==","signatures":[{"sig":"MEYCIQDCUgThaVkvNA++PZwmfYrwjheGHq1bVuA3zojbuc/SdwIhANrupj/k2EgcVaJIAaeb1cIv09lxxYaBDTUqMndrkeCd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40712},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e543dec253e2df6dabb7927517729b75020b3aa6","scripts":{"dev":"tsc --watch","test":"echo 'No tests yet'","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"stoyca_maryus","email":"stoyca_maryus@yahoo.com"},"repository":{"url":"git+https://github.com/mastoica/vibecoding-mcp-servers.git","type":"git","directory":"packages/dev-watcher"},"_npmVersion":"10.9.3","description":"MCP server for real-time error detection and pattern matching across development sources","directories":{},"_nodeVersion":"22.20.0","dependencies":{"eventemitter3":"^5.0.1","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dev-watcher_0.1.0_1760747446285_0.26193874314826404","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ams-dev/dev-watcher","version":"0.1.1","keywords":["mcp","model-context-protocol","error-detection","monitoring","development-tools"],"author":{"name":"mastoica"},"license":"MIT","_id":"@ams-dev/dev-watcher@0.1.1","maintainers":[{"name":"stoyca_maryus","email":"stoyca_maryus@yahoo.com"}],"homepage":"https://github.com/mastoica/vibecoding-mcp-servers#readme","bugs":{"url":"https://github.com/mastoica/vibecoding-mcp-servers/issues"},"bin":{"dev-watcher":"dist/index.js"},"dist":{"shasum":"eb73aa69e4ae57efb33e44e5e799df4d1015887c","tarball":"https://registry.npmjs.org/@ams-dev/dev-watcher/-/dev-watcher-0.1.1.tgz","fileCount":18,"integrity":"sha512-EQIoVdQdgIceB+evVvQo+vPf18QVeZLw46aUE/NsRIfF+zC4epjjhO+X+5dp5b9Z9Z7NnQrpRRgFTuyIr3xnvg==","signatures":[{"sig":"MEUCIQC+TuY4vx9XxOl2zA6sjEC1D6Cg0QGeto39Q4+kRiLZeQIgWAwtdkfLp6K3VzgXtFOvxY2ea/ozaJ1q0dZboQ/3S2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40694},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2fca1e8e201b6c9ad55dfbdb3c5a08153cff26ea","scripts":{"dev":"tsc --watch","test":"echo 'No tests yet'","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"stoyca_maryus","email":"stoyca_maryus@yahoo.com"},"repository":{"url":"git+https://github.com/mastoica/vibecoding-mcp-servers.git","type":"git","directory":"packages/dev-watcher"},"_npmVersion":"10.9.3","description":"MCP server for real-time error detection and pattern matching across development sources","directories":{},"_nodeVersion":"22.20.0","dependencies":{"eventemitter3":"^5.0.1","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dev-watcher_0.1.1_1760747613640_0.3274538636256361","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ams-dev/dev-watcher","version":"0.1.2","keywords":["mcp","model-context-protocol","error-detection","monitoring","development-tools"],"author":{"name":"mastoica"},"license":"MIT","_id":"@ams-dev/dev-watcher@0.1.2","maintainers":[{"name":"stoyca_maryus","email":"stoyca_maryus@yahoo.com"}],"homepage":"https://github.com/mastoica/vibecoding-mcp-servers#readme","bugs":{"url":"https://github.com/mastoica/vibecoding-mcp-servers/issues"},"bin":{"dev-watcher":"dist/index.js"},"dist":{"shasum":"67eeb51a22fd715102e2243efb40a87398028c65","tarball":"https://registry.npmjs.org/@ams-dev/dev-watcher/-/dev-watcher-0.1.2.tgz","fileCount":19,"integrity":"sha512-is02qSzyfO0f2IDur+sV/KHi+aM0hL8H62mJXGGdxIViwR+SMSq9pT+CqgfKotaVXeMQz3b9cRv3+b4ySiqY2A==","signatures":[{"sig":"MEUCIH10heRfgJD2PO7KqkusSzIrzvSQi8xRrMt9T8uY3UVvAiEAr352gtNCeOhZkvBpcFYKQhwzPQ9s8VxqkRHyAn4QZfQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41763},"main":"./dist/index.js","type":"module","_from":"file:ams-dev-dev-watcher-0.1.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","test":"echo 'No tests yet'","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"stoyca_maryus","email":"stoyca_maryus@yahoo.com"},"_resolved":"/tmp/55d54084e3bb0f7e733cc95da1f09c32/ams-dev-dev-watcher-0.1.2.tgz","_integrity":"sha512-is02qSzyfO0f2IDur+sV/KHi+aM0hL8H62mJXGGdxIViwR+SMSq9pT+CqgfKotaVXeMQz3b9cRv3+b4ySiqY2A==","repository":{"url":"git+https://github.com/mastoica/vibecoding-mcp-servers.git","type":"git","directory":"packages/dev-watcher"},"_npmVersion":"10.8.2","description":"MCP server for real-time error detection and pattern matching across development sources","directories":{},"_nodeVersion":"20.19.5","dependencies":{"eventemitter3":"^5.0.1","@modelcontextprotocol/sdk":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dev-watcher_0.1.2_1760748225987_0.6905354099217689","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@ams-dev/dev-watcher","version":"0.1.3","description":"MCP server for real-time error detection and pattern matching across development sources","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"dev-watcher":"dist/index.js"},"keywords":["mcp","model-context-protocol","error-detection","monitoring","development-tools"],"author":{"name":"mastoica"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/mastoica/vibecoding-mcp-servers.git","directory":"packages/dev-watcher"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.4","eventemitter3":"^5.0.1"},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.3.0","vitest":"^1.1.0"},"engines":{"node":">=18.0.0"},"scripts":{"build":"tsc","dev":"tsc --watch","clean":"rm -rf dist","test":"echo 'No tests yet'"},"_id":"@ams-dev/dev-watcher@0.1.3","bugs":{"url":"https://github.com/mastoica/vibecoding-mcp-servers/issues"},"homepage":"https://github.com/mastoica/vibecoding-mcp-servers#readme","_integrity":"sha512-Vb7oTqdQOu+/i30T3ztiidf0N7/Fids9BQ+RSl5h0+Zz2etavqOIYisGJtjBXWZaIUh7ihjmklgJEiOWeHMSEg==","_resolved":"/tmp/3a80c6a56072abad2956810566c21d0a/ams-dev-dev-watcher-0.1.3.tgz","_from":"file:ams-dev-dev-watcher-0.1.3.tgz","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Vb7oTqdQOu+/i30T3ztiidf0N7/Fids9BQ+RSl5h0+Zz2etavqOIYisGJtjBXWZaIUh7ihjmklgJEiOWeHMSEg==","shasum":"bef859ceda57f58be5069e75fdac2b6d6667d82b","tarball":"https://registry.npmjs.org/@ams-dev/dev-watcher/-/dev-watcher-0.1.3.tgz","fileCount":19,"unpackedSize":41763,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFEdwWiP0dmLKhI3/8tVZyxMnpp1ZUUvH8Ejg7Lfl7ROAiAxirnv97CwADrRTy1B15jy78PYORFtHWNo83YzqdaWMA=="}]},"_npmUser":{"name":"stoyca_maryus","email":"stoyca_maryus@yahoo.com"},"directories":{},"maintainers":[{"name":"stoyca_maryus","email":"stoyca_maryus@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dev-watcher_0.1.3_1760748458867_0.8279693732134541"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-18T00:30:46.145Z","modified":"2025-10-18T00:47:39.298Z","0.1.0":"2025-10-18T00:30:46.522Z","0.1.1":"2025-10-18T00:33:33.829Z","0.1.2":"2025-10-18T00:43:46.182Z","0.1.3":"2025-10-18T00:47:39.053Z"},"bugs":{"url":"https://github.com/mastoica/vibecoding-mcp-servers/issues"},"author":{"name":"mastoica"},"license":"MIT","homepage":"https://github.com/mastoica/vibecoding-mcp-servers#readme","keywords":["mcp","model-context-protocol","error-detection","monitoring","development-tools"],"repository":{"type":"git","url":"git+https://github.com/mastoica/vibecoding-mcp-servers.git","directory":"packages/dev-watcher"},"description":"MCP server for real-time error detection and pattern matching across development sources","maintainers":[{"name":"stoyca_maryus","email":"stoyca_maryus@yahoo.com"}],"readme":"# @ams-dev/dev-watcher\n\n> MCP server for real-time error detection and pattern matching across development sources\n\n## Overview\n\nA Model Context Protocol (MCP) server that provides intelligent error detection and pattern matching across multiple development sources including processes, Docker containers, and log files. Features automatic alert deduplication, severity classification, and flexible filtering.\n\n## Features\n\n- 🔍 Real-time pattern matching with regex\n- 🎯 Multi-source log aggregation (processes, Docker, files)\n- 🚨 Automatic severity classification (error, warning, info)\n- ⚡ Alert deduplication to prevent spam\n- 📊 Statistics and filtering capabilities\n- 🔔 Configurable alert patterns and debouncing\n\n## Installation\n\n```bash\n# Global installation\nnpm install -g @ams-dev/dev-watcher\n\n# Or use with npx\nnpx @ams-dev/dev-watcher\n```\n\n## Usage\n\nAdd to your Claude Code MCP configuration (`~/.config/claude/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"dev-watcher\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ams-dev/dev-watcher\"]\n    }\n  }\n}\n```\n\n## Available Tools\n\n### `watch_logs`\n\nStart watching logs from multiple sources with pattern matching.\n\n**Input:**\n```typescript\n{\n  sources: Array<{\n    type: 'process' | 'docker' | 'file';\n    id: string;              // Process ID, container ID, or file path\n    patterns?: string[];     // Regex patterns to match\n  }>;\n  alertOn?: string[];        // Global alert patterns\n  debounceMs?: number;       // Debounce rapid alerts (default: 1000)\n}\n```\n\n**Example:**\n```typescript\n{\n  \"sources\": [\n    {\n      \"type\": \"process\",\n      \"id\": \"proc-1\",\n      \"patterns\": [\"ERROR\", \"TS\\\\d+\"]\n    },\n    {\n      \"type\": \"docker\",\n      \"id\": \"postgres-dev\",\n      \"patterns\": [\"FATAL\", \"ERROR\"]\n    }\n  ],\n  \"alertOn\": [\"Failed to compile\", \"ECONNREFUSED\"],\n  \"debounceMs\": 2000\n}\n```\n\n### `subscribe_errors`\n\nSubscribe to automatic error notifications with default patterns.\n\n**Input:**\n```typescript\n{\n  severity?: ('error' | 'warning' | 'info')[];\n  sources?: ('process' | 'docker' | 'file' | 'custom')[];\n  patterns?: string[];       // Custom regex patterns\n}\n```\n\n**Default Patterns:**\n- `ERROR`, `FATAL`, `CRITICAL`\n- `Exception`\n- `TS\\\\d+` (TypeScript errors)\n- `Failed to compile`\n- `ECONNREFUSED`\n- `Cannot find module`\n\n### `get_alerts`\n\nRetrieve accumulated alerts with filtering.\n\n**Input:**\n```typescript\n{\n  since?: number;            // Unix timestamp\n  severity?: string[];       // Filter by severity\n  source?: string;           // Filter by source type\n  limit?: number;            // Max number of alerts\n}\n```\n\n**Returns:**\n```json\n{\n  \"Found 5 alert(s)\",\n  \"Stats\": {\n    \"totalAlerts\": 5,\n    \"alertsBySeverity\": {\n      \"error\": 3,\n      \"warning\": 2,\n      \"info\": 0\n    },\n    \"alertsBySource\": {\n      \"process:proc-1\": 3,\n      \"docker:postgres-dev\": 2\n    },\n    \"watchedSources\": 2\n  },\n  \"Alerts\": [ /* array of alerts */ ]\n}\n```\n\n### `clear_alerts`\n\nClear alert history.\n\n**Input:**\n```typescript\n{\n  olderThan?: number;        // Unix timestamp\n  severity?: string[];       // Clear specific severity levels\n}\n```\n\n## Alert Structure\n\nEach alert contains:\n\n```typescript\n{\n  id: string;                // Unique alert ID\n  timestamp: Date;           // When the alert was created\n  severity: 'error' | 'warning' | 'info';\n  source: 'process' | 'docker' | 'file' | 'custom';\n  sourceId: string;          // ID of the source\n  pattern?: string;          // Regex pattern that matched\n  message: string;           // The matched content\n  context?: string;          // Full log line for context\n}\n```\n\n## Example Workflows\n\n### Monitor NX Build Process\n\n```\nDeveloper: \"Watch the build process for errors\"\nClaude:\n- Sets up: watch_logs for NX process\n- Patterns: TypeScript errors, compile failures\n- Reports: Alerts when errors occur\n```\n\n### Track Docker Container Issues\n\n```\nDeveloper: \"Monitor the database container for errors\"\nClaude:\n- Watches: PostgreSQL container logs\n- Patterns: FATAL, ERROR, connection issues\n- Alerts: When database errors occur\n```\n\n### Aggregate Multi-Source Monitoring\n\n```\nDeveloper: \"Watch all services for problems\"\nClaude:\n- Watches: Frontend process, API process, database container\n- Patterns: Common error patterns across all sources\n- Deduplicates: Repeated errors\n- Reports: Unified view of all issues\n```\n\n## Pattern Matching\n\nPatterns are JavaScript regular expressions. Examples:\n\n```javascript\n// Exact match\n\"ERROR\"\n\n// TypeScript errors\n\"TS\\\\d+\"\n\n// Connection errors\n\"ECONNREFUSED|Connection refused\"\n\n// Case-insensitive\n\"(?i)warning\"\n\n// Capture specific formats\n\"Error: .+\"\n```\n\n## Severity Classification\n\nAutomatic severity detection based on keywords:\n\n- **Error**: Contains \"error\", \"fatal\", \"critical\"\n- **Warning**: Contains \"warn\", \"warning\"\n- **Info**: Everything else\n\n## Deduplication\n\nAlerts are deduplicated based on:\n- Source + Source ID\n- Pattern\n- Message content\n\nDuplicates within the debounce window (default 1000ms) are suppressed.\n\n## Development\n\n```bash\n# Install dependencies\npnpm install\n\n# Build\npnpm build\n\n# Watch mode\npnpm dev\n\n# Run tests\npnpm test\n```\n\n## Requirements\n\n- Node.js >= 18.0.0\n\n## License\n\nMIT © [mastoica](https://github.com/mastoica)\n\n## Related\n\n- [@ams-dev/process-manager](../process-manager) - Development process management\n- [@ams-dev/docker-manager](../docker-manager) - Docker container management\n","readmeFilename":"README.md"}