fwornle/mcp-constraint-monitor
If you are the rightful owner of mcp-constraint-monitor and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP Constraint Monitor is a universal server designed for real-time coding constraint monitoring and live guardrails, enhancing code quality and compliance in Claude Code projects.
MCP Constraint Monitor
π‘οΈ Universal MCP server for real-time coding constraint monitoring and live guardrails
Add intelligent code quality monitoring to any Claude Code project with zero configuration. The constraint monitor provides real-time violation detection, compliance scoring, and live guardrails that keep your coding on track.
π― Features
- π‘οΈ Live Guardrails: Real-time constraint violation detection
- π Compliance Scoring: Automated code quality assessment
- π Web Dashboard: Comprehensive constraint management interface
- π Pattern Detection: Configurable rules for code patterns
- β‘ Ultra-Fast: Sub-10ms constraint checking
- π§ AI-Powered: Optional semantic analysis with Grok
- π Enhanced Status Line: Rich tooltips with visual progress bars
- π§ Zero Config: Works out of the box with sensible defaults
- π Universal: Works with any Claude Code project
π Quick Start
Installation Options
Option 1: Standalone Installation (Recommended for standalone use)
Clone and install with hooks configured automatically:
git clone https://github.com/fwornle/mcp-server-constraint-monitor.git
cd mcp-server-constraint-monitor
./install.sh
This will:
- β Install all dependencies (main + dashboard with Redux)
- β Configure Claude Code hooks automatically
- β
Set up
.claude/settings.local.json
with constraint enforcement
Option 2: Dependencies Only (For integration into larger projects)
./install.sh --skip-hooks
Use this when:
- You're integrating into a larger project (like
coding
repo) - The parent project manages hook configuration
- You only need dependency installation
Option 3: NPM Global Install
# Via npm (for CLI usage)
npm install -g mcp-constraint-monitor
# Or use npx (no installation)
npx mcp-constraint-monitor
Add to Claude Code
Step 1: Add MCP Server
Add to your ~/.claude/mcp.json
or project's .mcp.json
:
{
"mcpServers": {
"constraint-monitor": {
"command": "npx",
"args": ["mcp-constraint-monitor"]
}
}
}
Step 2: Configure Real-Time Hooks
Add to your ~/.claude/settings.local.json
for real-time constraint enforcement:
{
"hooks": {
"UserPromptSubmit": [{
"hooks": [{
"type": "command",
"command": "node /path/to/mcp-constraint-monitor/src/hooks/pre-prompt-hook-wrapper.js"
}]
}],
"PreToolUse": [{
"hooks": [{
"type": "command",
"command": "node /path/to/mcp-constraint-monitor/src/hooks/pre-tool-hook-wrapper.js"
}]
}]
}
}
Hook Types:
UserPromptSubmit
: Checks user prompts for constraint violationsPreToolUse
: Prevents tool execution that would violate constraints- Prevention: Violations are blocked before execution, not detected after
Start Monitoring
# In your project directory
mcp-constraint-monitor
That's it! The constraint monitor will:
- β Create default configuration
- β Initialize local databases
- β Start monitoring your code
- β Display status in Claude Code
π MCP Tools
The server exposes these tools for Claude Code:
Tool | Description |
---|---|
get_constraint_status | Get current monitoring status and compliance metrics |
check_action_constraints | Check code against defined constraints |
get_violation_history | Retrieve historical violations and trends |
add_constraint_rule | Modify or add constraint rules |
π‘οΈ Status Line & Dashboard Integration
Enhanced Status Line
The constraint monitor provides rich status line integration with enhanced tooltips:
π‘οΈ 8.5 πEX
Hover Tooltip:
π‘οΈ Constraint Monitor Status
ββββββββββββββββββββββββββββ
π Compliance: 8.5/10.0
βββββββββββββββ (Good)
β
Status: No active violations
π Activity: Exploring
π’ Risk Level: Low
π§ Interventions: 0
π’ System: Operational
ββββββββββββββββββββββββββββ
π±οΈ Click to open dashboard
π Updates every 5 seconds
Status Elements:
- π‘οΈ 8.5 - Compliance score (0-10)
- πEX - Current trajectory (Exploring, On Track, Implementing, etc.)
- Click Action - Opens web dashboard
Status Colors:
- π’ Green: Excellent compliance (9.0+)
- π΅ Cyan: Good compliance (7.0-8.9)
- π‘ Yellow: Warning compliance (5.0-6.9)
- π΄ Red: Critical violations or offline
Web Dashboard
Access the comprehensive web dashboard at http://localhost:3030/dashboard
Dashboard Features:
- π Real-time Metrics: Live compliance scoring and violation tracking
- π Constraint Management: View and manage all constraint rules
- β‘ Activity Feed: Real-time system activity and events
- π± Responsive Design: Works on desktop and mobile devices
- π Dark/Light Mode: Automatic theme detection
- π§ Health Monitoring: System status and performance metrics
- π Violation Trends: Historical analysis with configurable time ranges
- β οΈ Real-time Alerts: Live notification of constraint violations
Quick Access:
# Launch dashboard (development)
cd integrations/mcp-constraint-monitor
PORT=3030 npm run dashboard
# Launch API server (production)
PORT=3031 npm run api
# Health check
curl http://localhost:3031/api/health
API Endpoints:
GET /api/health
- System health and uptimeGET /api/status
- Current compliance metrics and hook statusGET /api/constraints
- All constraint rules and configurationGET /api/violations
- Active violation history with filteringGET /api/activity
- Real-time event feed and hook executionsGET /api/projects
- Multi-project constraint monitoring status
Health Monitoring: The dashboard includes comprehensive health monitoring for:
- Hook System Status: Real-time verification of Claude Code hook integration
- API Response Times: Sub-10ms constraint checking performance
- Constraint Engine Health: Pattern matching and violation detection status
- Database Connectivity: SQLite, Qdrant (optional), and Redis (optional) status
- Memory Usage: System resource utilization and performance metrics
βοΈ Configuration
Default Constraints
The monitor comes with sensible defaults:
constraints:
- id: no-console-log
pattern: "console\\.log"
message: "Use Logger.log() instead of console.log"
severity: warning
- id: no-var-declarations
pattern: "\\bvar\\s+"
message: "Use 'let' or 'const' instead of 'var'"
severity: warning
- id: no-hardcoded-secrets
pattern: "(api[_-]?key|password|secret)\\s*[=:]\\s*['\"][^'\"]{8,}['\"]"
message: "Potential hardcoded secret detected"
severity: critical
Project-Specific Rules
Create constraints.yaml
in your project:
constraints:
# Your project-specific rules
- id: react-hooks-deps
pattern: "useEffect\\([^,]*,\\s*\\[\\]"
message: "Verify useEffect dependencies"
severity: info
enabled: true
# Framework-specific patterns
- id: redux-direct-mutation
pattern: "state\\.[\\w.]+\\s*="
message: "Direct state mutation - use Redux patterns"
severity: error
Environment Variables
Optional configuration via environment:
export XAI_API_KEY="your-key" # Enable AI analysis
export QDRANT_HOST="localhost" # Vector database
export ANALYTICS_DB_PATH="./data.db" # Persistent analytics
ποΈ Architecture
Real-Time Guardrails Architecture
β οΈ Important: This system uses pre-tool hook prevention for real-time constraint enforcement, not post-hoc file monitoring.
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Claude Code βββββΊβ Hook System βββββΊβ Constraint β
β β β β β Engine β
β β’ PreToolUse β ββΊ β β’ Pre-Tool Hook β ββΊ β β’ Pattern Check β
β β’ UserPrompt β ββΊ β β’ Pre-Prompt β ββΊ β β’ Violation β
β β’ Status Line β β β’ Real-time β β β’ Prevention β
βββββββββββββββββββ β Prevention β βββββββββββββββββββ
ββββββββββββββββββββ β
β β
βββββββββββββββββββ ββββββββββββββββββββ β
β Web Dashboard βββββΊβ MCP Server ββββββββββββββββ
β β β β
β β’ Real-time UI β β β’ Status API β
β β’ Health Monitorβ β β’ Config Mgmt β
β β’ Violation Mgmtβ β β’ History β
βββββββββββββββββββ ββββββββββββββββββββ
Hook-Based Prevention Flow
- Pre-Tool Hook: Intercepts tool calls before execution
- Constraint Check: Real-time pattern matching (< 1ms)
- Violation Prevention: Blocks violating actions immediately
- Status Update: Real-time dashboard and status line updates
Logging Architecture Status
Component | Status | Implementation | Notes |
---|---|---|---|
Post-Session Logging | β Working | post-session-logger.js | Traditional conversation capture |
Live Logging Coordinator | β Working | live-logging-coordinator.js | Real-time tool interaction capture with semantic analysis |
Semantic Tool Interpretation | β Working | Groq API integration | Sub-millisecond analysis of tool interactions |
Dashboard Integration | β Working | Web interface | Real-time status display |
Performance Targets
Component | Target Latency | Technology | Status |
---|---|---|---|
Hook Interception | <0.5ms | Claude Code hooks | β Working |
Pattern Matching | <1ms | Regex engine | β Working |
Constraint Engine | <2ms | JavaScript evaluation | β Working |
Vector Search | <3ms | Qdrant + quantization | β Working |
Semantic Analysis | <50ms | Groq inference | β Working |
Total Prevention | <5ms | End-to-end hook | β Achieved |
System Status
- Pre-Tool Hooks: β Real-time tool interception working
- Pre-Prompt Hooks: β User prompt constraint checking active
- Constraint Engine: β Sub-5ms violation prevention achieved
- Dashboard Health: β Real-time monitoring and API endpoints operational
- Claude Integration: β Hook system integrated with settings.local.json
π§ Development
Local Setup
git clone https://github.com/fwornle/mcp-constraint-monitor
cd mcp-constraint-monitor
npm install
npm run setup
Testing
npm test # Run tests
npm run start # Start server
npm run dev # Development mode
./bin/demo # Complete system demo
Custom Engines
Add custom analysis engines:
import { ConstraintEngine } from 'mcp-constraint-monitor';
class CustomEngine extends ConstraintEngine {
async checkCustomPattern(code) {
// Your custom logic
}
}
π Examples
React Project
constraints:
- id: react-memo
pattern: "export default function\\s+\\w+.*\\{[^}]*useState"
message: "Consider React.memo for components with complex state"
severity: info
Node.js API
constraints:
- id: async-error-handling
pattern: "app\\.(get|post|put|delete).*async.*\\{(?![^}]*catch)"
message: "Async routes should have error handling"
severity: error
Security-Focused
constraints:
- id: sql-injection
pattern: "\\$\\{[^}]*\\}.*SELECT|INSERT.*\\$\\{[^}]*\\}"
message: "Potential SQL injection - use parameterized queries"
severity: critical
π Advanced Features
Real-Time Semantic Analysis
- Sub-50ms Analysis: Groq's mixtral-8x7b model delivers 1000+ tokens/sec
- Trajectory Thinking: Evaluates accumulated intent vs individual actions
- Context Persistence: Maintains constraint state across conversation auto-compaction
- Multi-Step Workflow Recognition: Distinguishes exploration from violation
Predictive Risk Assessment
The system learns from violation patterns to predict and prevent issues:
// Risk assessment before action execution
{
"riskScore": 0.85,
"reason": "Similar pattern led to violations in 3 recent sessions",
"alternatives": [
"Read configuration files first",
"Check user constraints in previous messages"
]
}
Database Options
Basic Mode (SQLite only):
- Fast constraint checking
- Violation history
- Local analytics
Enhanced Mode (with Docker):
- Vector similarity search (Qdrant)
- Advanced analytics (Redis)
- Semantic analysis
- Pattern learning
π API Reference
MCP Tools
// Check constraint status
mcp__constraint_monitor__get_constraint_status()
// Check specific code
mcp__constraint_monitor__check_action_constraints({
action: { type: "code", content: "console.log('test')" }
})
// Add custom constraint
mcp__constraint_monitor__add_constraint_rule({
id: "custom-rule",
type: "pattern",
matcher: "TODO:",
message: "No TODO comments in production code"
})
// Get violation history
mcp__constraint_monitor__get_violation_history({ limit: 10 })
π€ Contributing
- Fork the repository
- Create feature branch:
git checkout -b feature-name
- Add tests for new functionality
- Submit pull request
Development Workflow
# Install dependencies
npm install
# Run tests
npm test
# Start development server
npm run dev
# Build for production
npm run build
π License
MIT License - see for details.
π Support
- π Documentation
- π Issues
- π¬ Discussions
Built for the Claude Code ecosystem - Add intelligence to your coding workflow π
Why Use MCP Constraint Monitor?
For Individual Developers:
- Catch coding mistakes before they become bugs
- Learn better coding patterns through real-time feedback
- Maintain consistent code quality across projects
For Teams:
- Enforce shared coding standards automatically
- Reduce code review time with automated checks
- Share constraint configurations across team members
For Projects:
- Zero-configuration setup works immediately
- Scales from simple scripts to complex applications
- Integrates with existing development workflows
Get started in under 30 seconds - just add the MCP server to your configuration and start coding with intelligent guardrails!