Enhanced code review and frontend validation with intelligent triggers: Code Review Agent Enhancement: - Added Sequential Thinking MCP integration for complex issues - Triggers on 2+ rejections or 3+ critical issues - New escalation format with root cause analysis - Comprehensive solution strategies with trade-off evaluation - Educational feedback to break rejection cycles - Files: .claude/agents/code-review.md (+308 lines) - Docs: CODE_REVIEW_ST_ENHANCEMENT.md, CODE_REVIEW_ST_TESTING.md Frontend Design Skill Enhancement: - Automatic invocation for ANY UI change - Comprehensive validation checklist (200+ checkpoints) - 8 validation categories (visual, interactive, responsive, a11y, etc.) - 3 validation levels (quick, standard, comprehensive) - Integration with code review workflow - Files: .claude/skills/frontend-design/SKILL.md (+120 lines) - Docs: UI_VALIDATION_CHECKLIST.md (462 lines), AUTOMATIC_VALIDATION_ENHANCEMENT.md (587 lines) Settings Optimization: - Repaired .claude/settings.local.json (fixed m365 pattern) - Reduced permissions from 49 to 33 (33% reduction) - Removed duplicates, sorted alphabetically - Created SETTINGS_PERMISSIONS.md documentation Checkpoint Command Enhancement: - Dual checkpoint system (git + database) - Saves session context to API for cross-machine recall - Includes git metadata in database context - Files: .claude/commands/checkpoint.md (+139 lines) Decision Rationale: - Sequential Thinking MCP breaks rejection cycles by identifying root causes - Automatic frontend validation catches UI issues before code review - Dual checkpoints enable complete project memory across machines - Settings optimization improves maintainability Total: 1,200+ lines of documentation and enhancements Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Feature Management MCP Server
Source: AutoCoder project Type: Model Context Protocol (MCP) Server Purpose: Manage autonomous coding features with priority-based workflow
Overview
The Feature Management MCP Server provides tools for managing a feature queue in an autonomous coding workflow. It replaces the previous FastAPI-based REST API with a native MCP implementation that integrates directly with Claude Code.
Key Capabilities:
- Track feature implementation progress
- Priority-based feature queue management
- Mark features as passing/in-progress/skipped
- Regression testing support
- Bulk feature creation from app specifications
Architecture
Database
- Backend: SQLite (via SQLAlchemy)
- Migration: Auto-migrates legacy JSON to SQLite
- Storage:
{PROJECT_DIR}/features.db
Feature Model
{
"id": int, # Auto-increment primary key
"priority": int, # Lower = higher priority
"category": str, # Feature category (e.g., "authentication", "ui")
"name": str, # Short feature name
"description": str, # Detailed description
"steps": list[str], # Implementation/test steps
"passes": bool, # True if feature is implemented and working
"in_progress": bool # True if currently being worked on
}
Available Tools
1. feature_get_stats
Purpose: Get overall progress statistics
Usage:
feature_get_stats()
Returns:
{
"passing": 42,
"in_progress": 1,
"total": 100,
"percentage": 42.0
}
When to use: At the start/end of coding sessions to track progress
2. feature_get_next
Purpose: Get the next feature to implement
Usage:
feature_get_next()
Returns:
{
"id": 15,
"priority": 15,
"category": "authentication",
"name": "User login endpoint",
"description": "Create POST /api/auth/login endpoint...",
"steps": [
"Create SQLAlchemy User model",
"Implement login route",
"Add JWT token generation",
"Write tests"
],
"passes": false,
"in_progress": false
}
When to use: At the start of each implementation cycle
3. feature_mark_passing
Purpose: Mark a feature as successfully implemented
Usage:
feature_mark_passing(feature_id=15)
Returns: Updated feature object with passes=true, in_progress=false
When to use: After implementing and verifying a feature works
4. feature_mark_in_progress
Purpose: Mark a feature as being worked on
Usage:
feature_mark_in_progress(feature_id=15)
Returns: Updated feature object with in_progress=true
When to use: Immediately after feature_get_next() to claim the feature
Important: Prevents other parallel agent sessions from working on the same feature
5. feature_skip
Purpose: Move a feature to the end of the queue
Usage:
feature_skip(feature_id=15)
Returns:
{
"id": 15,
"name": "User login endpoint",
"old_priority": 15,
"new_priority": 101,
"message": "Feature 'User login endpoint' moved to end of queue"
}
When to use:
- Feature has unmet dependencies
- External blockers (missing assets, unclear requirements)
- Technical prerequisites needed
6. feature_clear_in_progress
Purpose: Reset in-progress status
Usage:
feature_clear_in_progress(feature_id=15)
Returns: Updated feature object with in_progress=false
When to use:
- Abandoning a feature midway
- Manually unsticking a stuck feature
- Resetting state after errors
7. feature_get_for_regression
Purpose: Get random passing features for regression testing
Usage:
feature_get_for_regression(limit=3) # 1-10, default 3
Returns:
{
"features": [
{"id": 3, "name": "User registration", "passes": true, ...},
{"id": 7, "name": "Login validation", "passes": true, ...},
{"id": 12, "name": "Password reset", "passes": true, ...}
],
"count": 3
}
When to use: After implementing new features to verify no regressions
8. feature_create_bulk
Purpose: Create multiple features at once
Usage:
feature_create_bulk(features=[
{
"category": "authentication",
"name": "User registration",
"description": "Allow users to create accounts...",
"steps": ["Create User model", "Create POST /register", "Add validation"]
},
{
"category": "authentication",
"name": "User login",
"description": "Allow users to log in...",
"steps": ["Create POST /login", "Add JWT tokens", "Write tests"]
}
])
Returns:
{
"created": 2
}
When to use: Initializing a new project from an app specification
Installation & Configuration
1. Install Dependencies
The MCP server requires SQLAlchemy and FastMCP. In the AutoCoder project these are already included, but for standalone use:
pip install sqlalchemy fastmcp pydantic
2. Configure Claude Desktop
Add to ~/.config/claude/claude_desktop_config.json (macOS/Linux) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"features": {
"command": "python",
"args": ["D:\\ClaudeTools\\mcp-servers\\feature-management\\feature_mcp.py"],
"env": {
"PROJECT_DIR": "D:\\ClaudeTools\\projects\\your-project"
}
}
}
}
3. Set PROJECT_DIR
The PROJECT_DIR environment variable determines where the SQLite database is stored:
# Windows (PowerShell)
$env:PROJECT_DIR="D:\ClaudeTools\projects\your-project"
# Linux/macOS
export PROJECT_DIR="/path/to/your/project"
The database will be created at {PROJECT_DIR}/features.db
Typical Workflow
Autonomous Coding Agent Session
# 1. Check progress at start of session
stats = feature_get_stats()
# Output: 42/100 features passing (42.0%)
# 2. Get next feature to work on
next_feature = feature_get_next()
# Output: Feature #15 - "User login endpoint"
# 3. Mark it in-progress (claim it)
feature_mark_in_progress(feature_id=15)
# 4. Implement the feature
# ... write code, run tests, verify ...
# 5. Mark as passing when done
feature_mark_passing(feature_id=15)
# 6. Optional: Run regression tests
regression = feature_get_for_regression(limit=5)
# Output: 5 random passing features to re-test
Handling Blockers
# Get next feature
next_feature = feature_get_next()
# Feature #20 - "OAuth integration"
# Realize it depends on feature #25 which isn't done yet
feature_skip(feature_id=20)
# Feature moved to end of queue (priority 101)
# Get actual next feature
next_feature = feature_get_next()
# Feature #21 - "Email validation"
Database Schema
CREATE TABLE features (
id INTEGER PRIMARY KEY AUTOINCREMENT,
priority INTEGER NOT NULL,
category VARCHAR(100) NOT NULL,
name VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
steps TEXT NOT NULL, -- JSON array of strings
passes BOOLEAN DEFAULT 0,
in_progress BOOLEAN DEFAULT 0
);
CREATE INDEX idx_priority ON features(priority);
CREATE INDEX idx_passes ON features(passes);
Integration with ClaudeTools
This MCP server can be integrated with the ClaudeTools context recall system:
- Store feature completion decisions in
decision_logstable - Save feature implementation context in
conversation_contexts - Track feature work sessions in
sessionstable - Log feature-related errors in
problem_solutions
Example:
# After marking feature passing, log the decision
POST /api/decision-logs
{
"project_id": "uuid",
"decision_type": "technical",
"decision_text": "Implemented user login endpoint",
"rationale": "Feature #15 completed with JWT authentication",
"tags": ["authentication", "feature-15", "jwt"]
}
Troubleshooting
Database not found
Error: Database not initialized
Solution: Ensure PROJECT_DIR environment variable is set and writable
Migration issues
Error: Migration failed
Solution: The server auto-migrates legacy JSON (features.json) to SQLite. If you have custom JSON structure, you may need to adjust the migration in api/migration.py
All features showing in-progress
Problem: Features stuck in in_progress=true state
Solution:
# Clear all stuck features
for feature_id in [1, 2, 3, ...]:
feature_clear_in_progress(feature_id=feature_id)
Or directly in SQLite:
UPDATE features SET in_progress = 0 WHERE in_progress = 1;
Differences from REST API
The original AutoCoder project used a FastAPI REST server. This MCP server provides the same functionality with these improvements:
| Feature | REST API | MCP Server |
|---|---|---|
| Integration | HTTP requests | Native Claude MCP tools |
| Authentication | API keys | Built into MCP protocol |
| Type safety | Manual validation | Pydantic models |
| Error handling | HTTP status codes | JSON error responses |
| Database | JSON files | SQLite (with JSON migration) |
| Startup time | ~1-2 seconds | ~100ms |
File Structure
mcp-servers/feature-management/
├── feature_mcp.py # Main MCP server implementation
├── __init__.py # Python module marker
├── README.md # This file
└── config.example.json # Example configuration
Dependencies
Required:
fastmcp- MCP protocol implementationsqlalchemy- Database ORMpydantic- Data validation
Optional:
api.database- Feature model and database setup (from AutoCoder)api.migration- JSON to SQLite migration (from AutoCoder)
License
Same license as the AutoCoder project (see LICENSE.txt in AutoCoder repository)
See Also
.claude/commands/create-spec.md- Create app specification.claude/commands/checkpoint.md- Create development checkpoint.claude/skills/frontend-design/- Frontend design skill.claude/templates/- Prompt templates for autonomous coding
Last Updated: 2026-01-17 Status: Production-ready (ported from AutoCoder)