Todoist Meeting MCP
Connects Claude to Todoist for transforming meeting notes into actionable tasks with inferred due dates and priorities. It enables full task lifecycle management, including creating subtasks, listing projects, and completing tasks through natural language.
README
Todoist Meeting MCP
A production-ready Model Context Protocol (MCP) server that connects Claude with Todoist for intelligent meeting note processing. Parse meeting notes into actionable Todoist tasks with inferred due dates and priorities, create and complete tasks by name, and list projects and tasks—all through natural language in Claude.
What this does
This MCP server exposes Todoist as tools to Claude: you can paste meeting notes and have action items turned into tasks, create tasks with natural-language due dates (e.g. "by Friday"), add subtasks, list projects and tasks, update tasks, and complete them by name. Tasks are routed to projects/sections by keyword matching or an optional target project hint.
Prerequisites
- Node.js 18+
- Claude Desktop (or another MCP client)
- A Todoist account and API token
Quick setup
-
Get your Todoist API token
Todoist → Settings → Integrations → Developer → copy your API token. -
Configure Claude Desktop
Edit (or create) the MCP config file. If it doesn't exist, create theClaudefolder and the file:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add (or merge in) the following, replacing
your_todoist_api_token_herewith your token:{ "mcpServers": { "todoist-meeting-mcp": { "command": "npx", "args": ["-y", "todoist-meeting-mcp"], "env": { "TODOIST_API_TOKEN": "your_todoist_api_token_here" } } } } - macOS:
-
Restart Claude Desktop
The server will start when Claude needs it. EnsureTODOIST_API_TOKENis set or the server will exit with a clear error.
Example prompts
-
Meeting notes → tasks:
"Here are my standup notes: [paste notes]. Create Todoist tasks." -
Single task:
"Create a task called 'Review PR #42' in my Engineering project due Friday." -
Subtasks:
"Add subtasks to my 'Q2 Planning' task: research competitors, draft slides, schedule review." -
List & complete:
"List my tasks due today." / "Complete the task 'Review PR #42'."
Tool reference
| Tool | Description |
|---|---|
parse_meeting_notes |
Parse raw meeting note text; extract action items, deadlines, priorities; create Todoist tasks (optional target project). |
create_task |
Create a single task with content, description, project/section by name, natural-language due date, priority, labels, optional parent (subtask). |
create_subtasks |
Add multiple subtasks to a parent task (parent found by name). |
list_projects |
List all projects with IDs, names, and section names (for routing context). |
list_tasks |
List tasks with optional filters: project_name, section_name, priority, due_today. |
update_task |
Update a task (found by name): content, description, due date, priority, project, section. |
complete_task |
Mark a task complete (found by name, fuzzy match). |
GitHub release / self-hosted usage
Releases are built and published on GitHub when you push a tag v*.*.* (e.g. v1.0.0). The workflow uploads todoist-meeting-mcp.js as a release asset.
-
Run with npx (no download): use the config block above; npx will run the published package.
-
Run from a downloaded asset:
- Download
todoist-meeting-mcp.jsfrom the Releases page. - Point Claude at it:
"mcpServers": { "todoist-meeting-mcp": { "command": "node", "args": ["/absolute/path/to/todoist-meeting-mcp.js"], "env": { "TODOIST_API_TOKEN": "your_todoist_api_token_here" } } } - Download
Build and test locally
From the project root:
# Install dependencies
npm ci
# Typecheck and lint (same as CI)
npm run typecheck
npm run lint
# Build (single file to dist/index.js)
npm run build
# Run the server (reads MCP over stdio; set token first)
export TODOIST_API_TOKEN=your_token_here
npm start
For development with auto-reload:
npm run dev
Code quality (CI)
On every push and pull request to main/master, the CI workflow runs:
- Typecheck —
tsc --noEmit - Lint — ESLint (TypeScript) on
src/ - Build —
npm run build
The badges at the top show the status of the CI and Release workflows once you set YOUR_ORG to your GitHub org or username.
License
MIT
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.