@doist/todoist-mcp 13.10.1 → 13.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/dist/index.js +3 -3
- package/dist/main-http.js +2 -2
- package/dist/main.js +1 -1
- package/dist/{mcp-server-Dk7rBod1.js → mcp-server-zsdPZLt2.js} +1 -1
- package/dist/{require-valid-todoist-token-C43pfSGR.js → require-valid-todoist-token-ClKraU9q.js} +1 -1
- package/package.json +9 -26
- package/scripts/bump-plugin-version.mjs +15 -5
package/README.md
CHANGED
|
@@ -106,6 +106,18 @@ claude mcp add --transport http todoist https://ai.todoist.net/mcp
|
|
|
106
106
|
|
|
107
107
|
Then launch `claude`, execute `/mcp`, and select the `todoist` MCP server to authenticate.
|
|
108
108
|
|
|
109
|
+
#### Gemini CLI
|
|
110
|
+
|
|
111
|
+
Install the official Todoist extension with [Gemini CLI](https://geminicli.com/docs/get-started/installation/) 0.67.0 or later:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
gemini extensions install https://github.com/Doist/todoist-mcp
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Start or restart Gemini CLI, then run `/mcp auth todoist` and sign in with your Todoist account. Todoist hosts the server; no API key or local server is needed.
|
|
118
|
+
|
|
119
|
+
The assistant can read and change your Todoist tasks and projects. Revoke access at any time in Todoist under Settings → Integrations.
|
|
120
|
+
|
|
109
121
|
#### Visual Studio Code
|
|
110
122
|
|
|
111
123
|
1. Open Command Palette → MCP: Add Server
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as s } from "./mcp-server-
|
|
2
|
-
import { F as r, a as d, b as i, c as n, d as c, e as l, f as m, h as p, i as f, j as T, k as j, l as u, m as g, n as k, o as v, p as P, q as S, r as h, s as b, u as y, v as A, w as C, x as R, y as x, z as F, g as M, A as O, B as E, C as L, D as U, E as w, G as H, H as I, I as W, J as q, K as z, L as B, M as D, N, O as V, P as _, Q as G, R as J, S as K, T as Q, U as X, V as Y, W as Z, X as $, Y as ss, Z as as, _ as es } from "./mcp-server-
|
|
3
|
-
import { r as os, v as rs } from "./require-valid-todoist-token-
|
|
1
|
+
import { t as s } from "./mcp-server-zsdPZLt2.js";
|
|
2
|
+
import { F as r, a as d, b as i, c as n, d as c, e as l, f as m, h as p, i as f, j as T, k as j, l as u, m as g, n as k, o as v, p as P, q as S, r as h, s as b, u as y, v as A, w as C, x as R, y as x, z as F, g as M, A as O, B as E, C as L, D as U, E as w, G as H, H as I, I as W, J as q, K as z, L as B, M as D, N, O as V, P as _, Q as G, R as J, S as K, T as Q, U as X, V as Y, W as Z, X as $, Y as ss, Z as as, _ as es } from "./mcp-server-zsdPZLt2.js";
|
|
3
|
+
import { r as os, v as rs } from "./require-valid-todoist-token-ClKraU9q.js";
|
|
4
4
|
const e = s;
|
|
5
5
|
export {
|
|
6
6
|
r as FEATURE_NAMES,
|
package/dist/main-http.js
CHANGED
|
@@ -4,8 +4,8 @@ import S from "dotenv";
|
|
|
4
4
|
import { toNodeHandler as w } from "@modelcontextprotocol/node";
|
|
5
5
|
import { createMcpHandler as v } from "@modelcontextprotocol/server";
|
|
6
6
|
import h from "express";
|
|
7
|
-
import { g as I } from "./mcp-server-
|
|
8
|
-
import { r as g } from "./require-valid-todoist-token-
|
|
7
|
+
import { g as I } from "./mcp-server-zsdPZLt2.js";
|
|
8
|
+
import { r as g } from "./require-valid-todoist-token-ClKraU9q.js";
|
|
9
9
|
function p(e) {
|
|
10
10
|
return e.startsWith("[") && e.endsWith("]") ? e.slice(1, -1) : e;
|
|
11
11
|
}
|
package/dist/main.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { serveStdio as t } from "@modelcontextprotocol/server/stdio";
|
|
3
3
|
import s from "dotenv";
|
|
4
|
-
import { g as n } from "./mcp-server-
|
|
4
|
+
import { g as n } from "./mcp-server-zsdPZLt2.js";
|
|
5
5
|
function i() {
|
|
6
6
|
const o = process.env.TODOIST_BASE_URL, r = process.env.TODOIST_API_KEY;
|
|
7
7
|
if (!r)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doist/todoist-mcp",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.11.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -41,6 +41,8 @@
|
|
|
41
41
|
"test": "vitest run",
|
|
42
42
|
"test:watch": "vitest",
|
|
43
43
|
"test:coverage": "vitest run --coverage",
|
|
44
|
+
"verify": "node .agents/scripts/verify.ts",
|
|
45
|
+
"review:worktree": "node .agents/scripts/review-worktree.ts",
|
|
44
46
|
"build": "npm run build:lib && npm run build:apps",
|
|
45
47
|
"build:lib": "vite build",
|
|
46
48
|
"build:apps": "vite build --config src/mcp-apps/vite.config.ts",
|
|
@@ -56,13 +58,13 @@
|
|
|
56
58
|
"tool:list": "tsx scripts/run-tool.ts --list",
|
|
57
59
|
"eval": "tsx scripts/eval-instructions.ts",
|
|
58
60
|
"test:executable": "npm run build && node scripts/test-executable.cjs",
|
|
59
|
-
"type-check": "npx tsc --noEmit",
|
|
60
|
-
"format:check": "oxlint src scripts && oxfmt --check",
|
|
61
|
-
"format:fix": "oxlint src scripts --fix && oxfmt",
|
|
61
|
+
"type-check": "npx tsc --noEmit && npx tsc --noEmit -p .agents/scripts",
|
|
62
|
+
"format:check": "oxlint src scripts .agents/scripts && oxfmt --check",
|
|
63
|
+
"format:fix": "oxlint src scripts .agents/scripts --fix && oxfmt",
|
|
62
64
|
"lint:schemas": "npm run build && npx tsx scripts/validate-schemas.ts",
|
|
63
|
-
"check": "oxlint src scripts && oxfmt --check && npm run lint:schemas",
|
|
65
|
+
"check": "oxlint src scripts .agents/scripts && oxfmt --check && npm run lint:schemas",
|
|
64
66
|
"prepublishOnly": "npm run build && npm test",
|
|
65
|
-
"prepare": "
|
|
67
|
+
"prepare": "lefthook install --reset-hooks-path"
|
|
66
68
|
},
|
|
67
69
|
"dependencies": {
|
|
68
70
|
"@doist/todoist-sdk": "16.0.0",
|
|
@@ -95,8 +97,7 @@
|
|
|
95
97
|
"concurrently": "9.2.5",
|
|
96
98
|
"conventional-changelog-conventionalcommits": "9.3.1",
|
|
97
99
|
"gpt-tokenizer": "3.4.0",
|
|
98
|
-
"
|
|
99
|
-
"lint-staged": "16.4.0",
|
|
100
|
+
"lefthook": "2.2.2",
|
|
100
101
|
"morgan": "1.11.0",
|
|
101
102
|
"nodemon": "3.1.14",
|
|
102
103
|
"oxfmt": "0.55.0",
|
|
@@ -112,23 +113,5 @@
|
|
|
112
113
|
"vite-plugin-dts": "4.5.4",
|
|
113
114
|
"vite-plugin-singlefile": "2.3.4",
|
|
114
115
|
"vitest": "4.1.12"
|
|
115
|
-
},
|
|
116
|
-
"lint-staged": {
|
|
117
|
-
"*.{ts,tsx,js,jsx}": [
|
|
118
|
-
"oxlint --fix",
|
|
119
|
-
"oxfmt --no-error-on-unmatched-pattern"
|
|
120
|
-
],
|
|
121
|
-
"*.{md,yml,yaml,css,json}": [
|
|
122
|
-
"oxfmt --no-error-on-unmatched-pattern"
|
|
123
|
-
],
|
|
124
|
-
"src/tools/!(*.test).ts": [
|
|
125
|
-
"npm run lint:schemas"
|
|
126
|
-
],
|
|
127
|
-
"src/index.ts": [
|
|
128
|
-
"npm run lint:schemas"
|
|
129
|
-
],
|
|
130
|
-
"scripts/validate-schemas.ts": [
|
|
131
|
-
"npm run lint:schemas"
|
|
132
|
-
]
|
|
133
116
|
}
|
|
134
117
|
}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { readFileSync, writeFileSync } from 'node:fs'
|
|
3
3
|
|
|
4
|
-
const [version, manifestPath
|
|
4
|
+
const [version, manifestPath] = process.argv.slice(2)
|
|
5
5
|
|
|
6
6
|
if (!version) {
|
|
7
7
|
console.error('Usage: bump-plugin-version.mjs <version> [manifestPath]')
|
|
8
8
|
process.exit(1)
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
const paths = manifestPath
|
|
12
|
+
? [manifestPath]
|
|
13
|
+
: [
|
|
14
|
+
'.claude-plugin/plugin.json',
|
|
15
|
+
'plugins/todoist/.claude-plugin/plugin.json',
|
|
16
|
+
'gemini-extension.json',
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
for (const path of paths) {
|
|
20
|
+
const manifest = JSON.parse(readFileSync(path, 'utf8'))
|
|
21
|
+
manifest.version = version
|
|
22
|
+
writeFileSync(path, `${JSON.stringify(manifest, null, 4)}\n`)
|
|
23
|
+
console.log(`Updated ${path} to ${version}`)
|
|
24
|
+
}
|