Microsoft To Do
STDIOService allowing AI assistant interaction with Microsoft To Do tasks.
Service allowing AI assistant interaction with Microsoft To Do tasks.
This MCP (Model Context Protocol) service allows you to interact with Microsoft To Do tasks using an AI assistant.
There are two parts to installing this tool:
npm install -g @jhirono/todomcp
Even if you install the package globally, you'll need to clone the repository to complete the authentication process:
git clone https://github.com/jhirono/todoMCP.git cd todoMCP npm install
http://localhost:3000/callback
Create a .env
file in the root directory with the following information:
CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secret
TENANT_ID=your_tenant_setting
REDIRECT_URI=http://localhost:3000/callback
TENANT_ID Options:
organizations
- For multi-tenant organizational accounts (default if not specified)consumers
- For personal Microsoft accounts onlycommon
- For both organizational and personal accountsyour-specific-tenant-id
- For single-tenant configurationsExamples:
# For multi-tenant organizational accounts (default)
TENANT_ID=organizations
# For personal Microsoft accounts
TENANT_ID=consumers
# For both organizational and personal accounts
TENANT_ID=common
# For a specific organization tenant
TENANT_ID=00000000-0000-0000-0000-000000000000
Authenticate to get tokens (must be done from the cloned repository)
npm run auth
This will open a browser window for you to authenticate with Microsoft and create a tokens.json
file.
Create MCP config file (must be done from the cloned repository)
npm run create-config
This creates an mcp.json
file with your authentication tokens.
Set up the global MCP configuration
# Copy the mcp.json file to your global Cursor configuration directory cp mcp.json ~/.cursor/mcp-servers.json
This makes the Microsoft To Do MCP available across all your Cursor projects.
Start using with your AI assistant
auth status
or list up todos
to get startedThe Claude Desktop configuration file is located at:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
auth-status
: Check your authentication statusget-task-lists
: Get all your To Do task listscreate-task-list
: Create a new task listupdate-task-list
: Update an existing task listdelete-task-list
: Delete a task listget-tasks
: Get all tasks in a listcreate-task
: Create a new taskupdate-task
: Update an existing taskdelete-task
: Delete a taskget-checklist-items
: Get checklist items for a taskcreate-checklist-item
: Create a checklist itemupdate-checklist-item
: Update a checklist itemdelete-checklist-item
: Delete a checklist item"MailboxNotEnabledForRESTAPI" error: This typically means you're using a personal Microsoft account. Microsoft To Do API access is limited for personal accounts through the Graph API.
Token acquisition failures: Make sure your CLIENT_ID
, CLIENT_SECRET
, and TENANT_ID
are correct in your .env
file.
Permission issues: Ensure you have granted admin consent for the required permissions in your Azure App registration.
Work/School Accounts: These typically work best with the To Do API. Use TENANT_ID=organizations
or your specific tenant ID.
Personal Accounts: These have limited access to the To Do API. If you must use a personal account, try TENANT_ID=consumers
or TENANT_ID=common
.
You can check your authentication status using the auth-status
tool or by examining the expiration time in your tokens:
cat tokens.json | grep expiresAt
To convert the timestamp to a readable date:
date -r $(echo "$(cat tokens.json | grep expiresAt | cut -d ":" -f2 | cut -d "," -f1) / 1000" | bc)