What's New
iCal Calendar Subscription (#83)
- Subscribe to your renewal calendar from any calendar app (Google Calendar, Apple Calendar, Outlook, etc.)
- Token-protected URL that calendar apps can poll for live updates
- Toggle on/off from Settings, with one-click URL copy and token regeneration
- Subscribe button on the Calendar page when enabled
- Subscription-friendly iCal properties (
REFRESH-INTERVAL,X-PUBLISHED-TTL) for automatic hourly refresh
MCP Server (AI Integration)
- New
subtrackr-mcpbinary that implements the Model Context Protocol - Allows AI assistants (Claude Desktop, Claude Code) to read and manage subscriptions via natural language
- 6 tools:
list_subscriptions,get_subscription,create_subscription,update_subscription,delete_subscription,get_stats - Uses stdio transport — configure in your MCP client config and point at your database
- Included in Docker image, works via
docker exec
CNY Currency Support (#95)
- Added Chinese Yuan (CNY) with ¥ symbol
Base URL Setting
- Configurable base URL for external links (iCal subscription URLs, password reset emails)
- Properly handles reverse proxy setups by checking
X-Forwarded-ProtoandX-Forwarded-Hostheaders - Falls back to auto-detection when not configured
Technical Changes
- Extracted iCal generation into shared
generateICalContent()method (no breaking changes to existing export) - Added
/ical/:tokenpublic route with auth middleware whitelist - URL construction centralized in
buildBaseURL()helper, used by iCal, settings, and password reset flows - MCP server reuses existing service layer — no new business logic
- Added
github.com/modelcontextprotocol/go-sdk v1.3.0dependency - Dockerfile builds both
subtrackrandsubtrackr-mcpbinaries