This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+2 more
Affected surfaces
Summary
AI summaryComprehensive code refactoring and new permissions management system enhance stability.
Full changelog
Apple Reminders MCP Server v0.7.1
Hotfix Release - Code Refactoring & Permissions Enhancement
This hotfix release introduces comprehensive code refactoring following SOLID principles and adds a robust permissions management system for enhanced stability and maintainability.
Major Refactoring
Modular Architecture
- Restructured codebase with 9 new utility modules following separation of concerns
- Applied SOLID principles throughout with clear separation of responsibilities
- All functions reduced to <20 lines (previously 100+ lines in some cases)
- Eliminated 800+ lines of duplicated code
- Reduced cyclomatic complexity from 15+ to 3-5 in most functions
Design Patterns Implementation
- Repository Pattern: Clean data access abstraction with
ReminderRepository - Strategy Pattern: Pluggable organization strategies (priority, due date, category, completion status)
- Builder Pattern: Reusable AppleScript generation with structured builders
- Composition over Inheritance: Functional approach where appropriate
Permissions Management System
Proactive Permission Checks
- Comprehensive EventKit and AppleScript permission validation
- Detailed permission setup instructions with system-specific guidance
- Proactive permission verification before operations
- Enhanced Swift binary integration with permission checking
Error Handling & User Experience
- Centralized error handling with consistent response patterns
- User-friendly permission guidance messages
- Automated permission troubleshooting suggestions
New Utility Modules
| Module | Purpose |
|--------|---------|
| errorHandling.ts | Centralized error response patterns |
| appleScriptBuilders.ts | Reusable AppleScript generation utilities |
| organizationStrategies.ts | Strategy pattern for reminder organization |
| reminderRepository.ts | Repository pattern for data access |
| dateFiltering.ts | Centralized date filtering operations |
| constants.ts | Centralized constants eliminating magic numbers |
| permissions.ts | Consolidated permissions management |
Validation Improvements
Conditional Subschemas
- Action-specific parameter validation using JSON Schema
allOf/if/then - Precise validation requirements for each tool action:
create/update/deleteactions requiretitleparametermoveaction requirestitle,fromList,toListparametersorganizeaction requiresstrategyparameterlistactions support intelligent defaults (no required list parameter)
Technical Fixes
Swift Permission Handling
- Fixed deadlock in Swift permission checking workflow
- Improved async dispatch group management
- Better error handling for permission failures
Module System
- Replaced
require()with proper ES module imports - Enhanced TypeScript compilation and type safety
- Comprehensive validation testing (16/16 test cases pass)
Breaking Changes
None. All existing MCP client integrations continue to work without modification.
Installation & Upgrade
npm install -g @example/[email protected]
Requirements
- macOS 10.15+ (for EventKit support)
- Node.js 18+ with ES modules support
- Xcode Command Line Tools (for Swift compilation)
Quality Assurance
- TypeScript compilation successful with no breaking changes
- Swift binary compilation working
- Core functionality preserved (verified through existing test suite)
- MCP server integration maintained
- All tool operations functional
- Error handling consistent across operations
- 16/16 conditional validation tests passing
Migration Guide
No migration required - this is a drop-in replacement that maintains full backward compatibility.
Full Changelog: v0.7.0...v0.7.1
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About fradser/mcp-server-apple-reminders
An MCP server for interacting with Apple Reminders on macOS
Related context
Beta — feedback welcome: [email protected]