Microsoft Todo MCP Service

Microsoft Todo MCP Service

A Model Context Protocol service for Claude that enables natural language interaction with Microsoft Todo tasks, including viewing task lists, creating tasks, and managing checklist items.

Category
Visit Server

Tools

auth-status

Check if you're authenticated with Microsoft Graph API. Shows current token status and expiration time, and indicates if the token needs to be refreshed.

get-task-lists

Get all Microsoft Todo task lists (the top-level containers that organize your tasks). Shows list names, IDs, and indicates default or shared lists.

create-task-list

Create a new task list (top-level container) in Microsoft Todo to help organize your tasks into categories or projects.

update-task-list

Update the name of an existing task list (top-level container) in Microsoft Todo.

delete-task-list

Delete a task list (top-level container) from Microsoft Todo. This will remove the list and all tasks within it.

get-tasks

Get tasks from a specific Microsoft Todo list. These are the main todo items that can contain checklist items (subtasks).

create-task

Create a new task in a specific Microsoft Todo list. A task is the main todo item that can have a title, description, due date, and other properties.

update-task

Update an existing task in Microsoft Todo. Allows changing any properties of the task including title, due date, importance, etc.

delete-task

Delete a task from a Microsoft Todo list. This will remove the task and all its checklist items (subtasks).

get-checklist-items

Get checklist items (subtasks) for a specific task. Checklist items are smaller steps or components that belong to a parent task.

create-checklist-item

Create a new checklist item (subtask) for a task. Checklist items help break down a task into smaller, manageable steps.

update-checklist-item

Update an existing checklist item (subtask). Allows changing the text content or completion status of the subtask.

delete-checklist-item

Delete a checklist item (subtask) from a task. This removes just the specific subtask, not the parent task.

README

Microsoft To Do MCP

This MCP (Model Context Protocol) service allows you to interact with Microsoft To Do tasks using an AI assistant.

Setup Instructions

1. Prerequisites

  • Node.js 16 or higher
  • npm
  • A Microsoft account
  • Azure App Registration (see setup below)

2. Installation

There are two parts to installing this tool:

  1. Installing the package
  2. Setting up authentication (requires cloning the repository)

Step 1: Install the Package

npm install -g @jhirono/todomcp

Step 2: Set Up Authentication

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

3. Azure App Registration

  1. Go to the Azure Portal
  2. Navigate to "App registrations" and create a new registration
  3. Name your application (e.g., "To Do MCP")
  4. For "Supported account types", select one of the following based on your needs:
    • Accounts in this organizational directory only (Single tenant) - For use within a single organization
    • Accounts in any organizational directory (Any Azure AD directory - Multitenant) - For use across multiple organizations
    • Accounts in any organizational directory and personal Microsoft accounts - For both work accounts and personal accounts
  5. Set the Redirect URI to http://localhost:3000/callback
  6. After creating the app, go to "Certificates & secrets" and create a new client secret
  7. Go to "API permissions" and add the following permissions:
    • Microsoft Graph > Delegated permissions:
      • Tasks.Read
      • Tasks.ReadWrite
      • User.Read
  8. Click "Grant admin consent" for these permissions

4. Configuration

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 only
  • common - For both organizational and personal accounts
  • your-specific-tenant-id - For single-tenant configurations

Examples:

# 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

Usage

Complete Workflow

  1. 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.

  2. 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.

  3. 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.

  4. Start using with your AI assistant

    • In Cursor, you can now use Microsoft To Do commands directly in any project
    • Try commands like auth status or list up todos to get started

The Claude Desktop configuration file is located at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Available Tools

  • auth-status: Check your authentication status
  • get-task-lists: Get all your To Do task lists
  • create-task-list: Create a new task list
  • update-task-list: Update an existing task list
  • delete-task-list: Delete a task list
  • get-tasks: Get all tasks in a list
  • create-task: Create a new task
  • update-task: Update an existing task
  • delete-task: Delete a task
  • get-checklist-items: Get checklist items for a task
  • create-checklist-item: Create a checklist item
  • update-checklist-item: Update a checklist item
  • delete-checklist-item: Delete a checklist item

Limitations

  • The API requires proper authentication and permissions
  • Rate limits may apply according to Microsoft's policies

Troubleshooting

Authentication Issues

  • "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.

Account Type Issues

  • 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.

Checking Authentication Status

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)

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured