@doist/todoist-mcp 13.4.1 → 13.6.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/dist/http-app.d.ts +11 -2
- package/dist/http-app.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/main-http.js +94 -91
- package/dist/main.js +12 -13
- package/dist/mcp-apps/index.html +37 -37
- package/dist/{mcp-server-DBifZKBF.js → mcp-server-DHMEVYZ1.js} +1223 -1224
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/{require-valid-todoist-token-Cx5-05Iv.js → require-valid-todoist-token-ErppL5lQ.js} +1 -1
- package/dist/tool-registry.d.ts +3 -2
- package/dist/tool-registry.d.ts.map +1 -1
- package/dist/tools/find-activity.d.ts +3 -2
- package/dist/tools/find-activity.d.ts.map +1 -1
- package/dist/utils/constants.d.ts +4 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/package.json +8 -8
package/dist/http-app.d.ts
CHANGED
|
@@ -5,6 +5,15 @@ type CreateHttpAppOptions = {
|
|
|
5
5
|
/** Hostnames trusted in the Host/Origin headers (DNS-rebinding protection). */
|
|
6
6
|
allowedHosts: string[];
|
|
7
7
|
};
|
|
8
|
+
type HttpApp = {
|
|
9
|
+
app: Express;
|
|
10
|
+
/**
|
|
11
|
+
* Ends the open `subscriptions/listen` streams and aborts in-flight MCP
|
|
12
|
+
* exchanges. Call it before closing the HTTP server, otherwise
|
|
13
|
+
* `server.close()` waits for those streams to end on their own.
|
|
14
|
+
*/
|
|
15
|
+
close: () => Promise<void>;
|
|
16
|
+
};
|
|
8
17
|
/**
|
|
9
18
|
* Build the Express app for the MCP HTTP server.
|
|
10
19
|
*
|
|
@@ -14,6 +23,6 @@ type CreateHttpAppOptions = {
|
|
|
14
23
|
* target's private IP in the Host header — keep working; it exposes no account
|
|
15
24
|
* data.
|
|
16
25
|
*/
|
|
17
|
-
declare function createHttpApp({ todoistApiKey, baseUrl, allowedHosts }: CreateHttpAppOptions):
|
|
18
|
-
export { createHttpApp, type CreateHttpAppOptions };
|
|
26
|
+
declare function createHttpApp({ todoistApiKey, baseUrl, allowedHosts }: CreateHttpAppOptions): HttpApp;
|
|
27
|
+
export { createHttpApp, type CreateHttpAppOptions, type HttpApp };
|
|
19
28
|
//# sourceMappingURL=http-app.d.ts.map
|
package/dist/http-app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-app.d.ts","sourceRoot":"","sources":["../src/http-app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http-app.d.ts","sourceRoot":"","sources":["../src/http-app.ts"],"names":[],"mappings":"AAEA,OAAgB,EAAE,KAAK,OAAO,EAA+B,MAAM,SAAS,CAAA;AAK5E,KAAK,oBAAoB,GAAG;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,EAAE,CAAA;CACzB,CAAA;AAED,KAAK,OAAO,GAAG;IACX,GAAG,EAAE,OAAO,CAAA;IACZ;;;;OAIG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B,CAAA;AAED;;;;;;;;GAQG;AACH,iBAAS,aAAa,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAoD9F;AAED,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,OAAO,EAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2709,6 +2709,7 @@ declare const tools: {
|
|
|
2709
2709
|
unarchived: "unarchived";
|
|
2710
2710
|
shared: "shared";
|
|
2711
2711
|
left: "left";
|
|
2712
|
+
moved: "moved";
|
|
2712
2713
|
}>>;
|
|
2713
2714
|
projectId: import('zod').ZodOptional<import('zod').ZodString>;
|
|
2714
2715
|
taskId: import('zod').ZodOptional<import('zod').ZodString>;
|
|
@@ -2744,7 +2745,7 @@ declare const tools: {
|
|
|
2744
2745
|
limit: number;
|
|
2745
2746
|
objectType?: "comment" | "task" | "project" | undefined;
|
|
2746
2747
|
objectId?: string | undefined;
|
|
2747
|
-
eventType?: "completed" | "added" | "updated" | "deleted" | "uncompleted" | "archived" | "unarchived" | "shared" | "left" | undefined;
|
|
2748
|
+
eventType?: "completed" | "added" | "updated" | "deleted" | "uncompleted" | "archived" | "unarchived" | "shared" | "left" | "moved" | undefined;
|
|
2748
2749
|
projectId?: string | undefined;
|
|
2749
2750
|
taskId?: string | undefined;
|
|
2750
2751
|
initiatorId?: string | undefined;
|
|
@@ -2772,7 +2773,7 @@ declare const tools: {
|
|
|
2772
2773
|
limit: number;
|
|
2773
2774
|
objectType?: "comment" | "task" | "project" | undefined;
|
|
2774
2775
|
objectId?: string | undefined;
|
|
2775
|
-
eventType?: "completed" | "added" | "updated" | "deleted" | "uncompleted" | "archived" | "unarchived" | "shared" | "left" | undefined;
|
|
2776
|
+
eventType?: "completed" | "added" | "updated" | "deleted" | "uncompleted" | "archived" | "unarchived" | "shared" | "left" | "moved" | undefined;
|
|
2776
2777
|
projectId?: string | undefined;
|
|
2777
2778
|
taskId?: string | undefined;
|
|
2778
2779
|
initiatorId?: string | undefined;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAe,CAAA;AAE1B,OAAO,EAEH,QAAQ,EACR,aAAa,EACb,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,eAAe,EAEf,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EAEX,WAAW,EACX,YAAY,EAEZ,WAAW,EACX,YAAY,EAEZ,YAAY,EACZ,aAAa,EACb,eAAe,EAEf,SAAS,EACT,UAAU,EACV,YAAY,EAEZ,UAAU,EACV,WAAW,EAEX,YAAY,EACZ,oBAAoB,EAEpB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EAEpB,wBAAwB,EACxB,iBAAiB,EAEjB,qBAAqB,EACrB,qBAAqB,EAErB,cAAc,EAEd,cAAc,EAEd,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,QAAQ,EACR,eAAe,EACf,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,WAAW,EAEX,MAAM,EACN,KAAK,EAEL,YAAY,EACZ,KAAK,EACL,eAAe,EACf,aAAa,EACb,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,QAAQ,EAEb,wBAAwB,EACxB,KAAK,+BAA+B,EAEpC,oBAAoB,GACvB,CAAA"}
|
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 g, m as k, n as u, o as v, p as P, q as h, r as b, s as S, 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 w, E as H, G as I, H as W, I as q, J as z, K as B, L as D, M as N, N as U, O as V, P as G, Q as J, R as K, S as Q, T as X, U as Y, V as _, W as Z, X as $, Y as ss } from "./mcp-server-
|
|
3
|
-
import { r as es, v as ts } from "./require-valid-todoist-token-
|
|
1
|
+
import { t as s } from "./mcp-server-DHMEVYZ1.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 g, m as k, n as u, o as v, p as P, q as h, r as b, s as S, 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 w, E as H, G as I, H as W, I as q, J as z, K as B, L as D, M as N, N as U, O as V, P as G, Q as J, R as K, S as Q, T as X, U as Y, V as _, W as Z, X as $, Y as ss } from "./mcp-server-DHMEVYZ1.js";
|
|
3
|
+
import { r as es, v as ts } from "./require-valid-todoist-token-ErppL5lQ.js";
|
|
4
4
|
const e = s;
|
|
5
5
|
export {
|
|
6
6
|
r as FEATURE_NAMES,
|
package/dist/main-http.js
CHANGED
|
@@ -1,130 +1,133 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { isIP as
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
import { isIP as f } from "node:net";
|
|
3
|
+
import S from "dotenv";
|
|
4
|
+
import { toNodeHandler as w } from "@modelcontextprotocol/node";
|
|
5
|
+
import { createMcpHandler as v } from "@modelcontextprotocol/server";
|
|
6
|
+
import h from "express";
|
|
7
|
+
import { g as I } from "./mcp-server-DHMEVYZ1.js";
|
|
8
|
+
import { r as g } from "./require-valid-todoist-token-ErppL5lQ.js";
|
|
9
|
+
function p(e) {
|
|
10
|
+
return e.startsWith("[") && e.endsWith("]") ? e.slice(1, -1) : e;
|
|
10
11
|
}
|
|
11
|
-
function
|
|
12
|
-
return
|
|
12
|
+
function _(e) {
|
|
13
|
+
return e = p(e), e === "localhost" || e === "::1" || e === "0:0:0:0:0:0:0:1" ? !0 : f(e) === 4 ? e.split(".")[0] === "127" : !1;
|
|
13
14
|
}
|
|
14
|
-
const
|
|
15
|
-
function
|
|
16
|
-
if (!
|
|
15
|
+
const L = ["localhost", "127.0.0.1", "[::1]"], A = /[@/\\?#\s]/;
|
|
16
|
+
function m(e) {
|
|
17
|
+
if (!A.test(e))
|
|
17
18
|
try {
|
|
18
|
-
return new URL(`http://${
|
|
19
|
+
return new URL(`http://${e}`).hostname.toLowerCase();
|
|
19
20
|
} catch {
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
|
-
function
|
|
24
|
-
let
|
|
24
|
+
function E(e) {
|
|
25
|
+
let o;
|
|
25
26
|
try {
|
|
26
|
-
|
|
27
|
+
o = new URL(e);
|
|
27
28
|
} catch {
|
|
28
29
|
return;
|
|
29
30
|
}
|
|
30
|
-
if (!(
|
|
31
|
-
return
|
|
31
|
+
if (!(o.username || o.password || o.pathname !== "/" || o.search || o.hash))
|
|
32
|
+
return o.hostname.toLowerCase();
|
|
32
33
|
}
|
|
33
|
-
function
|
|
34
|
-
const
|
|
35
|
-
for (const
|
|
36
|
-
const
|
|
37
|
-
|
|
34
|
+
function P(e, o) {
|
|
35
|
+
const n = new Set(L);
|
|
36
|
+
for (const c of (o ?? "").split(",")) {
|
|
37
|
+
const i = c.trim();
|
|
38
|
+
i && n.add(i);
|
|
38
39
|
}
|
|
39
|
-
const
|
|
40
|
-
return
|
|
40
|
+
const r = p(e);
|
|
41
|
+
return r && r !== "0.0.0.0" && r !== "::" && n.add(f(r) === 6 ? `[${r}]` : r), [...n];
|
|
41
42
|
}
|
|
42
|
-
function d(
|
|
43
|
-
|
|
43
|
+
function d(e, o) {
|
|
44
|
+
e.status(403).json({
|
|
44
45
|
jsonrpc: "2.0",
|
|
45
|
-
error: { code: -32e3, message:
|
|
46
|
+
error: { code: -32e3, message: o },
|
|
46
47
|
id: null
|
|
47
48
|
});
|
|
48
49
|
}
|
|
49
|
-
function
|
|
50
|
-
const
|
|
51
|
-
for (const
|
|
52
|
-
const
|
|
53
|
-
if (!
|
|
50
|
+
function $(e) {
|
|
51
|
+
const o = /* @__PURE__ */ new Set();
|
|
52
|
+
for (const n of e.allowedHosts) {
|
|
53
|
+
const r = m(n);
|
|
54
|
+
if (!r)
|
|
54
55
|
throw new Error(
|
|
55
|
-
`Invalid allowed host ${JSON.stringify(
|
|
56
|
+
`Invalid allowed host ${JSON.stringify(n)}: must be a hostname or host:port (IPv6 literals must be bracketed, e.g. [::1])`
|
|
56
57
|
);
|
|
57
|
-
|
|
58
|
+
o.add(r);
|
|
58
59
|
}
|
|
59
|
-
return (
|
|
60
|
-
const
|
|
61
|
-
if (!
|
|
62
|
-
d(
|
|
60
|
+
return (n, r, c) => {
|
|
61
|
+
const i = n.headers.host;
|
|
62
|
+
if (!i) {
|
|
63
|
+
d(r, "Missing Host header");
|
|
63
64
|
return;
|
|
64
65
|
}
|
|
65
|
-
const
|
|
66
|
-
if (!
|
|
67
|
-
d(
|
|
66
|
+
const a = m(i);
|
|
67
|
+
if (!a || !o.has(a)) {
|
|
68
|
+
d(r, `Invalid Host: ${i}`);
|
|
68
69
|
return;
|
|
69
70
|
}
|
|
70
|
-
const
|
|
71
|
-
if (
|
|
72
|
-
const
|
|
73
|
-
if (!
|
|
74
|
-
d(
|
|
71
|
+
const t = n.headers.origin;
|
|
72
|
+
if (t) {
|
|
73
|
+
const s = E(t);
|
|
74
|
+
if (!s || !o.has(s)) {
|
|
75
|
+
d(r, `Invalid Origin: ${t}`);
|
|
75
76
|
return;
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
+
c();
|
|
79
80
|
};
|
|
80
81
|
}
|
|
81
|
-
function
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
sessionIdGenerator: void 0
|
|
94
|
-
});
|
|
95
|
-
await v({ todoistApiKey: t, baseUrl: r }).connect(a), await a.handleRequest(n, i, n.body);
|
|
96
|
-
} catch (a) {
|
|
97
|
-
console.error("[Error] Request handling failed:", a), i.status(500).json({
|
|
98
|
-
jsonrpc: "2.0",
|
|
99
|
-
error: {
|
|
100
|
-
code: -32603,
|
|
101
|
-
message: "Internal server error"
|
|
102
|
-
},
|
|
103
|
-
id: null
|
|
104
|
-
});
|
|
105
|
-
}
|
|
82
|
+
function b({ todoistApiKey: e, baseUrl: o, allowedHosts: n }) {
|
|
83
|
+
const r = h(), c = $({ allowedHosts: n });
|
|
84
|
+
r.get("/health", (t, s) => {
|
|
85
|
+
s.json({ status: "ok" });
|
|
86
|
+
});
|
|
87
|
+
const i = v(() => I({ todoistApiKey: e, baseUrl: o }), {
|
|
88
|
+
onerror: (t) => {
|
|
89
|
+
console.error("[Error] MCP request rejected:", t);
|
|
90
|
+
}
|
|
91
|
+
}), a = w(i, {
|
|
92
|
+
onerror: (t) => {
|
|
93
|
+
console.error("[Error] Request handling failed:", t);
|
|
106
94
|
}
|
|
107
|
-
)
|
|
108
|
-
|
|
109
|
-
|
|
95
|
+
});
|
|
96
|
+
return r.post(
|
|
97
|
+
"/mcp",
|
|
98
|
+
c,
|
|
99
|
+
h.json(),
|
|
100
|
+
g({ type: "static", apiKey: e, baseUrl: o }),
|
|
101
|
+
(t, s) => a(t, s, t.body)
|
|
102
|
+
), r.get("/mcp", c, (t, s) => {
|
|
103
|
+
s.status(405).set("Allow", "POST").send("Method Not Allowed");
|
|
104
|
+
}), { app: r, close: i.close };
|
|
110
105
|
}
|
|
111
|
-
|
|
112
|
-
const
|
|
113
|
-
function
|
|
114
|
-
return
|
|
106
|
+
S.config({ quiet: !0 });
|
|
107
|
+
const l = Number.parseInt(process.env.PORT || "3000", 10), H = process.env.HOST || "127.0.0.1", u = p(H);
|
|
108
|
+
function R(e) {
|
|
109
|
+
return e === "0.0.0.0" || e === "::" ? "localhost" : T(e);
|
|
115
110
|
}
|
|
116
|
-
function
|
|
117
|
-
return
|
|
111
|
+
function T(e) {
|
|
112
|
+
return f(e) === 6 ? `[${e}]` : e;
|
|
118
113
|
}
|
|
119
|
-
function
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
console.error(`Todoist MCP HTTP Server started on ${H(u)}:${c}`), console.error(`MCP endpoint: http://${s}:${c}/mcp`), console.error(`Health check: http://${s}:${c}/health`), I(u) || console.error(
|
|
114
|
+
function y() {
|
|
115
|
+
const e = process.env.TODOIST_BASE_URL, o = process.env.TODOIST_API_KEY;
|
|
116
|
+
o || (console.error("Error: TODOIST_API_KEY environment variable is required"), process.exit(1));
|
|
117
|
+
const n = P(H, process.env.ALLOWED_HOSTS), { app: r, close: c } = b({ todoistApiKey: o, baseUrl: e, allowedHosts: n }), i = r.listen(l, u, () => {
|
|
118
|
+
const s = R(u);
|
|
119
|
+
console.error(`Todoist MCP HTTP Server started on ${T(u)}:${l}`), console.error(`MCP endpoint: http://${s}:${l}/mcp`), console.error(`Health check: http://${s}:${l}/health`), _(u) || console.error(
|
|
126
120
|
"Warning: todoist-mcp-http is reachable from other hosts. Set ALLOWED_HOSTS to the hostnames clients use and protect this service with trusted network/auth controls because requests run with TODOIST_API_KEY."
|
|
127
121
|
);
|
|
128
122
|
});
|
|
123
|
+
let a = !1;
|
|
124
|
+
const t = (s) => {
|
|
125
|
+
a || (a = !0, console.error(`Received ${s}, shutting down`), c().catch((O) => {
|
|
126
|
+
console.error("Error closing MCP handler:", O);
|
|
127
|
+
}).finally(() => {
|
|
128
|
+
i.close(() => process.exit(0)), i.closeIdleConnections();
|
|
129
|
+
}));
|
|
130
|
+
};
|
|
131
|
+
process.once("SIGTERM", t), process.once("SIGINT", t);
|
|
129
132
|
}
|
|
130
|
-
|
|
133
|
+
y();
|
package/dist/main.js
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { g as
|
|
5
|
-
function
|
|
6
|
-
const
|
|
2
|
+
import { serveStdio as t } from "@modelcontextprotocol/server/stdio";
|
|
3
|
+
import s from "dotenv";
|
|
4
|
+
import { g as n } from "./mcp-server-DHMEVYZ1.js";
|
|
5
|
+
function i() {
|
|
6
|
+
const o = process.env.TODOIST_BASE_URL, r = process.env.TODOIST_API_KEY;
|
|
7
7
|
if (!r)
|
|
8
8
|
throw new Error("TODOIST_API_KEY is not set");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
});
|
|
9
|
+
t(() => n({ todoistApiKey: r, baseUrl: o }), {
|
|
10
|
+
onerror: (e) => {
|
|
11
|
+
console.error("Todoist MCP server error:", e);
|
|
12
|
+
}
|
|
13
|
+
}), console.error("Server started");
|
|
15
14
|
}
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
s.config({ quiet: !0 });
|
|
16
|
+
i();
|