If you're experiencing incorrect project creation dates (all showing today's date), run:
./scripts/repair-analytics-dates.sh
This fixes a bug where analytics were re-migrated on every restart. Fixed in v1.3.2.
An MCP (Model Context Protocol) server for managing and coordinating multiple Xcode/Swift projects. This server provides tools for tracking project status, searching code patterns, and maintaining a knowledge base of development insights.
- π Project Management: Track multiple Xcode projects with status, notes, and metadata
- π Smart Search: Search across projects and documentation for code patterns
- π Knowledge Base: Maintain patterns, templates, and troubleshooting guides
- π€ Auto-Detection: Automatically detects SwiftUI, UIKit, SPM, and other technologies
- πΎ Persistent Storage: All data stored locally in structured JSON format
- π Security First: Comprehensive input validation and path traversal protection
- π Project Analytics: Time tracking, activity heat maps, and health scoring (v1.3.0+)
- π Technology Trends: Analyze framework usage and adoption patterns (v1.3.0+)
- π‘οΈ Input Validation: Comprehensive validation of all user inputs
- π« Path Traversal Protection: Blocks malicious paths like
../../../etc/passwd
- π Directory Access Control: Configurable allowed directories for projects
- π¨ Injection Prevention: Validates search patterns to prevent command injection
- βοΈ Reasonable Limits: Input length limits to prevent buffer overflow attacks
- π Clear Error Messages: Helpful guidance when security validation fails
- βοΈ Hardcoded Security: Security policies are compiled into the binary for reliability
- macOS with Swift 5.9+
- Claude Desktop app
- Clone the repository:
git clone https://github.com/M-Pineapple/Claude-Project-Coordinator.git
cd Claude-Project-Coordinator
- Build the project:
swift build -c release
- Note the path to the built executable:
.build/release/project-coordinator
- Open Claude Desktop
- Navigate to: Settings β Developer β Model Context Protocol
- Add the configuration:
{
"mcpServers": {
"project-coordinator": {
"command": "/path/to/Claude-Project-Coordinator/.build/release/project-coordinator",
"args": []
}
}
}
- Restart Claude Desktop
Once configured, you can interact with the Project Coordinator through Claude:
- List projects: "Show me all my tracked projects"
- Add project: "Add my WeatherApp project at ~/Developer/WeatherApp"
- Update status: "Update WeatherApp status to 'Implementing API integration'"
- Search patterns: "Find all SwiftUI patterns"
- Get project details: "What's the status of my TodoApp?"
- Time tracking: "How long has Ubermania been in development?"
- Activity heat map: "Show me my project activity this week"
- Technology trends: "What technologies am I using most?"
- Health check: "Which projects need my attention?"
π See ANALYTICS-EXAMPLES.md for detailed output examples and productive prompts!
You: "Add my new SwiftUI project called FinanceTracker at ~/Developer/FinanceTracker"
Claude: "Successfully added project: FinanceTracker..."
You: "Update FinanceTracker status to 'Working on Core Data models'"
Claude: "Successfully updated FinanceTracker"
You: "Which of my projects use Core Data?"
Claude: [Shows all projects with Core Data in their tech stack or notes]
You: "Show my project activity this week"
Claude:
## Project Activity Heat Map (Past 7 Days)
π₯π₯π₯ **TodoApp** (15 activity points - 6 events)
π₯π₯ **WeatherStation** (8 activity points - 3 events)
π₯ **PortfolioSite** (3 activity points - 2 events)
π€ **OldBlogEngine** (0 activity points)
### Daily Activity Breakdown:
- Monday: 4 events
- Tuesday: 8 events
- Wednesday: 3 events
Security settings are hardcoded in the Swift source code for reliability and security. The default configuration includes:
Allowed Project Directories:
~/Developer
~/Documents
~/GitHub
~/Projects
~/Desktop/Development
~/Xcode
Input Limits:
- Project names: 100 characters maximum
- Project paths: 500 characters maximum
- Descriptions: 2,000 characters maximum
- Notes: 10,000 characters maximum
- Search patterns: 300 characters maximum
To modify security settings:
-
Edit the source code: Open
Sources/ProjectCoordinator/SecurityValidator.swift
-
Modify the configuration values:
// Add/remove allowed base paths static let allowedBasePaths = [ NSHomeDirectory() + "/Developer", NSHomeDirectory() + "/Documents", NSHomeDirectory() + "/GitHub", NSHomeDirectory() + "/Projects", NSHomeDirectory() + "/Desktop/Development", NSHomeDirectory() + "/Xcode" // Add your custom paths here ] // Adjust length limits static let maxProjectNameLength = 100 static let maxDescriptionLength = 2000 static let maxNotesLength = 10000 static let maxSearchPatternLength = 300
-
Rebuild the project:
swift build -c release
-
Restart Claude Desktop to use the updated binary
- Security: Configuration cannot be tampered with at runtime
- Reliability: No risk of configuration file corruption or manipulation
- Simplicity: No additional file management or parsing complexity
- Performance: Settings are compiled in, no runtime parsing overhead
Lists all tracked projects with their metadata
Adds a new project to track
- Parameters:
name
,path
,description
(optional) - Security: Validates project name, path, and description
Gets detailed information about a specific project
- Parameters:
projectName
- Security: Validates project name
Updates project status and/or notes
- Parameters:
projectName
,status
(optional),notes
(optional) - Security: Validates all text inputs
Searches through projects and knowledge base
- Parameters:
pattern
- Security: Validates search pattern for injection attempts
Claude-Project-Coordinator/
βββ Sources/
β βββ ProjectCoordinator/
β βββ main.swift # Entry point
β βββ MCPServer.swift # MCP protocol implementation
β βββ ProjectManager.swift # Project management logic
β βββ SecurityValidator.swift # Input validation and security configuration
βββ KnowledgeBase/
β βββ projects/ # Project data storage
β βββ patterns/ # Code patterns
β βββ templates/ # Project templates
β βββ tools/ # Development tools/guides
βββ scripts/
β βββ build.sh # Build script
βββ Package.swift # Swift package manifest
βββ CHANGELOG.md # Version history
βββ README.md # This file
The Knowledge Base comes pre-populated with:
- SwiftUI patterns and best practices
- Xcode keyboard shortcuts
- Troubleshooting guides
- Project templates
You can add your own content by creating markdown files in the appropriate directories.
The analytics system runs automatically in the background, tracking:
- Automatically tracks time spent in each project status
- No manual timers needed - just update status normally
- View complete timeline with:
get_project_timeline
- Records all interactions: status changes, notes, searches
- Generates heat maps showing project activity levels
- Identify your most and least active projects
- Tracks framework and tool usage across all projects
- Identifies emerging technologies you're experimenting with
- Shows adoption trends over time
- Multi-factor analysis of project health (0-100 score)
- Factors: activity level, staleness, documentation, task completion
- Provides actionable recommendations for improvement
Note: Analytics are presented as formatted text in Claude chat, optimized for readability and quick insights. See ANALYTICS-EXAMPLES.md for real output examples.
If CPC has helped streamline your development workflow or saved you time managing projects, consider supporting its development:
Your support helps me:
- Maintain and improve CPC with new features
- Keep the project open-source and free for everyone
- Dedicate more time to addressing user requests and bug fixes
- Explore new tools that enhance developer productivity
Thank you for considering supporting my work! π
The Project Coordinator:
- Communicates with Claude Desktop using the MCP protocol over stdio
- Validates all inputs through the comprehensive security system
- Stores project data as JSON files in
KnowledgeBase/projects/
- Stores analytics data in
KnowledgeBase/analytics/
- Automatically detects technologies by scanning project directories
- Maintains an index for quick searching and retrieval
- Tracks all project interactions for analytics
For Individual Developers:
- Default security settings are designed for personal development workflows
- Protects against common attack vectors while maintaining usability
- Security settings can be customized by modifying source code and rebuilding
For Organizations:
- Organizations should evaluate their own security requirements
- Additional security measures may be needed for production environments
- Consider implementing additional authentication and audit logging for shared use
- Hardcoded configuration prevents runtime tampering
- ANALYTICS-EXAMPLES.md - Real output examples and productive prompts
- CHANGELOG.md - Detailed version history
- Security Features - See the Security Configuration section above
Contributions are welcome! Please feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Improve documentation
- Share your patterns and templates
- Built with Swift using no external dependencies
- Uses JSON-RPC for MCP communication
- Async/await for modern Swift concurrency
- Actor-based architecture for thread safety
- Comprehensive input validation and security hardening
MIT License - feel free to use this in your own projects!
See CHANGELOG.md for detailed version history and security improvements.
Built as part of exploring the Model Context Protocol (MCP) ecosystem for enhancing AI-assisted development workflows.
Made with β€οΈ from π Pineapple