Skip to content

Releases: mbmccormick/things-mcpb

v1.5.2 - Package Size Optimization

Choose a tag to compare

@mbmccormick mbmccormick released this 05 Nov 17:31

Package Size Optimization

Changed

  • MAJOR IMPROVEMENT: Reduced package size from 12MB to 4.2MB (65% reduction)
  • Optimized package script to exclude devDependencies (esbuild, @esbuild, @anthropic-ai/mcpb) from bundle
  • Faster installation and reduced disk space usage

This optimization significantly reduces download time and disk space requirements while maintaining all functionality from v1.5.1. The extension now matches the package size of other similar MCPB extensions.

Package Details:

  • Old size: 12MB
  • New size: 4.2MB
  • Reduction: 65%
  • Files excluded: Development tools not needed at runtime

All features from v1.5.1 are preserved, including:

  • Tool metadata annotations for MCP Directory compliance
  • Manifest schema 0.2 for Claude Desktop compatibility
  • 21 fully functional tools for Things 3 integration

v1.5.1 - Critical Hotfix: Manifest Schema Compatibility

Choose a tag to compare

@mbmccormick mbmccormick released this 05 Nov 17:12

Critical Hotfix: Manifest Schema Compatibility

Fixed

  • CRITICAL: Reverted manifest schema from 0.3 back to 0.2 for Claude Desktop compatibility
  • Claude Desktop v1.0.211 only supports manifest version 0.2 (0.3 support coming in future release)

This hotfix ensures the extension works correctly with the current version of Claude Desktop. All functionality from v1.5.0 is preserved.

For more details, see MCPB PR #144.

v1.5.0

Choose a tag to compare

@mbmccormick mbmccormick released this 05 Nov 17:05

Added

  • Tool metadata annotations (readOnlyHint, destructiveHint) for MCP Directory compliance
  • All 21 tools now properly annotated with behavior hints

Changed

  • BREAKING: Upgraded manifest schema from 0.2 to 0.3
  • Updated to latest @anthropic-ai/mcpb package (2.0.1)
  • Updated all npm dependencies to latest versions

Fixed

  • Improved tool metadata for better MCP client integration

🤖 Generated with Claude Code

v1.4.1

Choose a tag to compare

@mbmccormick mbmccormick released this 21 Oct 21:58

What's Fixed

This is a critical bugfix release that resolves issues with several tools that were failing with "Tool execution failed" errors.

Fixed Tools

  • ✅ get_logbook: Fixed filtering by period parameter (e.g., period: "7d", period: "2w")
  • ✅ get_recent: Fixed filtering by days parameter
  • ✅ search_todos: Fixed search functionality
  • ✅ search_advanced: Fixed canceled item filtering

Root Cause

JXA (JavaScript for Automation) collections don't have JavaScript array methods like .filter() and .sort(). The code was attempting to call these methods directly on JXA collections, causing runtime errors.

Solution

Convert JXA collections to JavaScript arrays using Array.from() before applying array methods.

Technical Details

Files Modified:

  • jxa/src/lists.js: Fixed getLogbook()
  • jxa/src/search.js: Fixed searchTodos(), getRecent(), and searchAdvanced()

Testing:

  • Manually verified get_logbook with period: "7d" ✅
  • Manually verified get_recent with days: 7 ✅

Upgrade Instructions

Download and install things-mcpb.mcpb. The fix is fully backward compatible.

Fixes #20


🤖 Generated with Claude Code

v1.4.0

Choose a tag to compare

@mbmccormick mbmccormick released this 21 Oct 21:47

What's Changed

📦 MCPB Format Migration

This release migrates the extension from the legacy DXT format to the new MCPB (MCP Bundle) format specification v0.2, aligning with Anthropic's updated standards for Claude Desktop extensions.

Key Updates

  • Format Migration: Updated manifest from dxt_version: "0.1" to manifest_version: "0.2"
  • Package Name: Renamed from things-dxt to things-mcpb
  • Updated Dependencies:
    • @modelcontextprotocol/sdk: v0.5.0 → v1.20.1
    • esbuild: v0.25.8 → v0.25.11
    • Added @anthropic-ai/mcpb v1.0.0 for packaging
  • Tooling: Migrated from dxt CLI to mcpb CLI for packaging
  • Documentation: Updated all documentation and references to reflect MCPB naming

Compatibility

✅ Full backward compatibility maintained - All 21 tools and existing functionality remain unchanged. This is purely a format and packaging update.

Installation

Download the `things-mcpb.mcpb` file and install it in Claude Desktop following the MCPB installation process.

Requirements

  • macOS (Darwin platform)
  • Node.js ≥ 18.0.0
  • Things 3 application
  • Claude Desktop with MCPB support

🤖 Generated with Claude Code

v1.3.1

Choose a tag to compare

@mbmccormick mbmccormick released this 29 Sep 18:43

What's Changed

Bug Fixes

  • Fixed: Duplicate task creation when adding to list (#15)
    • Previously, when creating todos with a list_title parameter, two todos would be created: a filled-out todo in the inbox and an empty todo in the target list
    • Refactored todo creation logic to determine target location first, then add to appropriate location only once

Infrastructure

  • Updated: Claude Code GitHub Workflow (#18)
    • Added Claude Code GitHub Actions integration for AI-assisted development
    • Updated model references from Claude Opus 4 to Claude Opus 4.1
    • Enables @claude mentions in PRs and issues for automated assistance

Full Changelog

Previous release: v1.3.0
v1.3.0...v1.3.1


🤖 Generated with Claude Code

v1.3.0

Choose a tag to compare

@mbmccormick mbmccormick released this 11 Aug 13:50
c6486fb

What's Changed

This is a major architecture release that migrates from AppleScript to JavaScript for Automation (JXA) with a modular, security-first design.

🏗️ Architecture Overhaul

  • Complete JXA Migration: Replaced AppleScript with modular ES6 JavaScript sources compiled to JXA
  • Security-First Design: Uses execFile with JSON parameters instead of shell execution
  • Modular Architecture: 21 bundled JXA scripts from shared ES6 modules
  • Zero String Escaping: Parameters passed as JSON, eliminating injection vulnerabilities

🔧 Bug Fixes

  • Fixed: Date localization on non-English macOS systems (#13)
  • Fixed: Tag removal now works correctly with empty arrays
  • Fixed: Built-in list IDs corrected (Anytime: TMNextListSource, Upcoming: TMCalendarListSource)
  • Fixed: Timezone-aware date parsing using local timezone

📈 Performance & Reliability

  • Faster Execution: Direct JXA execution with pre-built scripts
  • Better Error Handling: Comprehensive error reporting with stack traces
  • Robust API: Full Things 3 SDEF compliance
  • Automatic Building: Scripts auto-compile on server start

🔒 Security Improvements

  • No Shell Injection: Secure parameter passing via JSON
  • Input Validation: Dangerous pattern detection and type checking
  • Timeout Protection: 30s execution limits with buffer protection

📚 Developer Experience

  • Modern JavaScript: ES6 modules with esbuild compilation
  • Better Debugging: DEBUG mode with detailed logging
  • Comprehensive Testing: Unit, integration, and regression test suites
  • Clear Documentation: Updated architecture guides and examples

🛠️ Tools & Compatibility

  • 21 MCP Tools: Complete toolset matching things-mcp
  • Backward Compatible: Same API surface with enhanced reliability
  • Version Auto-Detection: Reads version from package.json automatically

This release represents a complete rewrite of the underlying architecture while maintaining API compatibility. All existing integrations should continue working with improved performance and security.

Full technical details available in CLAUDE.md and README.md.

Installation

Download things-dxt.dxt and install via Claude Desktop Extensions.

v1.2.4

Choose a tag to compare

@mbmccormick mbmccormick released this 29 Jul 18:52

🎉 What's New in v1.2.4

This release fixes critical AppleScript syntax errors and enhances area assignment capabilities based on user feedback.

🐛 Bug Fixes

  • Fixed Apostrophe Handling (#7): Resolved AppleScript syntax errors when creating todos/projects containing apostrophes (e.g., "Matt's iPhone")
  • Enhanced Area Support (#8): Added area_id parameter support for precise area assignment by ID
  • Improved Shell Escaping: Fixed double escaping issues that caused malformed AppleScript commands

✨ Enhancements

  • Better Parameter Support: Added list_id parameter for todo assignment to projects by ID
  • Comprehensive Documentation: Added detailed AppleScript escaping guidance to CLAUDE.md for future reference
  • Enhanced Testing: Added comprehensive test suites for apostrophe handling and area_id support

🔧 Technical Improvements

  • Removed unnecessary apostrophe escaping in AppleScript strings (apostrophes work natively in double quotes)
  • Changed shell command execution to use double quotes to avoid escaping conflicts
  • Updated all escaping documentation with proper examples and anti-patterns

📊 Test Coverage

  • All 8 test suites passing
  • New tests for apostrophe escaping edge cases
  • New tests for area_id and list_id parameter support

🚀 Download

Download the latest DXT file below and install it in Claude Desktop to get these improvements.


Full Changelog: v1.2.3...v1.2.4

v1.2.3

Choose a tag to compare

@mbmccormick mbmccormick released this 29 Jul 14:49

What's Changed

🐛 Bug Fixes

  • Fixed issue where add_project with todos array wasn't creating the todos (#5, fixed in #6)

📝 Documentation

  • Added version bumping instructions to CLAUDE.md

🔧 Maintenance

  • Bumped version to v1.2.3

Installation

Download the things-dxt.dxt file below and install it in Claude Desktop.

Full Changelog: v1.2.2...v1.2.3

v1.2.2

Choose a tag to compare

@mbmccormick mbmccormick released this 18 Jul 22:13

What's Changed

  • Fixed: Tag removal in update_todo and update_project now works correctly when tags: [] is provided (#3)
  • Enhanced: Added input validation for tags parameter to ensure type safety
  • Added: Comprehensive test coverage for tag handling scenarios

Details

Previously, when calling update_todo or update_project with an empty tags array, the existing tags would remain unchanged. This release fixes that issue so that tags: [] properly removes all tags from the item.

Technical Changes

  • Modified tag handling condition from if (tags && tags.length > 0) to if (tags \!== undefined && tags \!== null)
  • Added array type checking with descriptive error messages
  • Created new test suite for tag handling scenarios

Full Changelog

v1.2.1...v1.2.2