I have a lot of todos and a lot of meetings. I hate playing task/calendar Tetris. Sometimes my task list gets way out in front of my calendar. I got pretty curious about “what is an MCP and how do they work?” So this morning, when I woke up early anyhow, I set about to work with Claude to make a Remember the Milk MCP using some stuff I learned from making imgup.

I set a goal of getting enough functionality in the MCP right away to start using the MCP to help manage development by keeping the project backlog in it.

And my long-term (for as long-term as “get this done before lunch” can be) goal was “get this into a place where I can use Claude’s connection to my calendar and RTM to do a planning session.”

A couple of things went well, a couple of things did not:

I did a test implementation of an MCP for Things last night. It went really quickly because the Things scripting API is pretty simple overall, until it didn’t go quickly because there are blind spots in either the Apple Events (Applescript/JXA) or URL scheme APIs. But a lot of time was eaten up by the fact that Applescript APIs are a bit more opaque to Claude than a published API. RTM on the other hand, has a pretty thoroughly documented one that Claude was able to grok in one shot most of the time.

I set aside the Things implementation because RTM is, overall, a more feature-complete tool, and its mental model is a bit more like mine. I think when I got to the part of the Things doc about prioritization that read sort of like a climb-down from an orthodox position, I felt a little impatient.

So, getting the foundations layed in for RTM worked well.

At one point, my very methodical approach to keeping project context intact worked against me, because I let Claude pick what to work on next and it rabbitholed on something it had done, but hadn’t marked as done in the project todos, because I have pretty rigid Project Instructions to keep things focused on preserving context. It managed to exhaust its chat length spinning out, left some half-complete work in place, and it took a lot of screwing around to sort out the damage.

At one point mid-morning the Claude API started getting irritable and dumped a few chats mid-session. I downshifted from Opus to Sonnet and that helped it move faster, but at the expense of having to get very controlling about its test cycle and occasionally needing to go look up API calls and explain them to it.

But by lunch time it was pretty far along. Far enough along that I set up Project Instructions for a personal organization project that:

  • Allows Claude to work with my Google calendar and RTM to examine priorities and figure out good start times given my time estimates
  • Catch when people, tasks, and meetings intersect, flagging those for a daily note
  • Create Markdown project notes out of projects I have it create in RTM so I’ve got a place to hold more context
  • Reprioritize, defer, flag, and remove assorted tasks

I’ve tried a few variants of this kind of workflow over the past month with different tools and approaches, and this is the most fluid I’ve managed to get it, combining calendar access, a todo app, and an LLM with structured guardrails on what goes where and what does what.

In the background, I’ve woken my plaintext people relationship manager idea back up, because once I realized MCPs are not the most complex things on the planet, and that I’ve got a working way to talk to an LLM about things I need to do, it’d be pretty simple to move the contact management workflow into sqlite for state, and delegate the contact workflow to whatever task backend I want to use. The last time I came at this idea I felt pretty sharply at odds with other peoples’ ideas of what a good contact manager on the Mac is for what I want to keep track of.

Anyhow, here’s the MCP. Just a hunk of Ruby with a script-driven OAuth onboarding workflow. I mean to just live with it for a while and see how it goes.