npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@nihaal084/todoist-mcp-server

v1.3.0

Published

MCP server for Todoist API integration (Fixed enum types for Gemini compatibility)

Readme

@nihaal084/todoist-mcp-server (ADK-Compatible)

Fixed version with Google Gemini API compatibility

An MCP (Model Context Protocol) server implementation that integrates AI assistants with Todoist, enabling natural language task management. This server allows AI models to interact with your Todoist tasks using everyday language.

What's Fixed

This is a patched version of @nihaal084/todoist-mcp-server that resolves enum type validation issues with Google's Gemini API and Google ADK.

Background: Google ADK enforces strict schema validation, and the original MCP server was using integers for fields like priority (e.g., 4), whereas ADK expected strings (e.g., "4"). This led to runtime errors that couldn’t be fixed with prompt engineering or wrapping the server with a custom toolset.

Original Issue

The original server defined priority enums as type: "number" with integer values [1, 2, 3, 4], causing validation errors with Gemini API.

Fix Applied

  • Changed priority field types from "number" to "string" in the input schemas for all tools
  • Updated enum values to strings: ["1", "2", "3", "4"]
  • Added runtime conversion from strings back to integers when calling Todoist API
  • Updated all tool schemas and handlers to match this change
  • Ensured compatibility with Gemini, Claude, and other MCP clients

Features

  • Natural Language Task Management: Create, update, complete, and delete tasks using everyday language
  • Smart Task Search: Find tasks using partial name matches
  • Flexible Filtering: Filter tasks by due date, priority, and other attributes
  • Rich Task Details: Support for descriptions, due dates, and priority levels
  • Intuitive Error Handling: Clear feedback for better user experience

Installation

npm install -g @nihaal084/todoist-mcp-server

Tools

todoist_create_task

Create new tasks with various attributes:

  • Required: content (task title)
  • Optional: description, due date, priority level (1-4, as string)
  • Example: "Create task 'Team Meeting' with description 'Weekly sync' due tomorrow"

todoist_get_tasks

Retrieve and filter tasks:

  • Filter by due date, priority, or project
  • Natural language date filtering
  • Optional result limit
  • Example: "Show high priority tasks due this week"

todoist_update_task

Update existing tasks using natural language search:

  • Find tasks by partial name match
  • Update any task attribute (content, description, due date, priority)
  • Example: "Update meeting task to be due next Monday"

todoist_complete_task

Mark tasks as complete using natural language search:

  • Find tasks by partial name match
  • Confirm completion status
  • Example: "Mark the documentation task as complete"

todoist_delete_task

Remove tasks using natural language search:

  • Find and delete tasks by name
  • Confirmation messages
  • Example: "Delete the PR review task"

Setup

Getting a Todoist API Token

  1. Log in to your Todoist account
  2. Navigate to Settings → Integrations
  3. Find your API token under "Developer"

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "todoist": {
      "command": "npx",
      "args": ["-y", "@nihaal084/todoist-mcp-server"],
      "env": {
        "TODOIST_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Example Usage

Creating Tasks

"Create task 'Team Meeting'"
"Add task 'Review PR' due tomorrow at 2pm"
"Create high priority task 'Fix bug' with description 'Critical performance issue'"

Getting Tasks

"Show all my tasks"
"List tasks due today"
"Get high priority tasks"
"Show tasks due this week"

Updating Tasks

"Update documentation task to be due next week"
"Change priority of bug fix task to urgent"
"Add description to team meeting task"

Completing Tasks

"Mark the PR review task as complete"
"Complete the documentation task"

Deleting Tasks

"Delete the PR review task"
"Remove meeting prep task"

Development

Building from source

# Clone the repository
git clone https://github.com/NIHAAL084/todoist-mcp-server.git

# Navigate to directory
cd todoist-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

Contributing

Contributions are welcome! Feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.