@baitong-dev/todo-mcp 0.0.2 → 0.0.5
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/index.js +18 -55
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,57 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
38
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
6
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
40
7
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
41
|
-
const fs = __importStar(require("fs"));
|
|
42
8
|
const path_1 = __importDefault(require("path"));
|
|
43
9
|
const zod_1 = __importDefault(require("zod"));
|
|
44
10
|
const todowrite_txt_1 = __importDefault(require("../todowrite.txt"));
|
|
45
11
|
const todoread_txt_1 = __importDefault(require("../todoread.txt"));
|
|
46
12
|
const mcp_helpers_1 = require("@baitong-dev/mcp-helpers");
|
|
47
13
|
const MCP_NAME = 'Todo MCP';
|
|
48
|
-
const MCP_VERSION = '0.0.
|
|
49
|
-
function
|
|
50
|
-
|
|
51
|
-
if (!fs.existsSync(dir)) {
|
|
52
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
53
|
-
}
|
|
54
|
-
return dir;
|
|
14
|
+
const MCP_VERSION = '0.0.5';
|
|
15
|
+
function createTodoTempFile(sessionID) {
|
|
16
|
+
return path_1.default.join(mcp_helpers_1.MCP_HOME_DIR, 'temp', 'baitong-tools', 'todos', `todos-${sessionID}.json`);
|
|
55
17
|
}
|
|
56
18
|
const server = new mcp_js_1.McpServer({
|
|
57
19
|
name: MCP_NAME,
|
|
@@ -77,44 +39,45 @@ const todoInfo = zod_1.default
|
|
|
77
39
|
* @param sessionId The session ID to update the todo list for
|
|
78
40
|
* @param todos The updated todo list
|
|
79
41
|
*/
|
|
80
|
-
function setTodoList(sessionId, todos) {
|
|
81
|
-
|
|
82
|
-
fs.writeFileSync(path_1.default.join(todoDir, `todos-${sessionId}.json`), JSON.stringify(todos));
|
|
42
|
+
async function setTodoList(sessionId, todos) {
|
|
43
|
+
await mcp_helpers_1.Filesystem.writeJson(createTodoTempFile(sessionId), todos);
|
|
83
44
|
}
|
|
84
45
|
/**
|
|
85
46
|
* Get the todo list for a session
|
|
86
47
|
* @param sessionId The session ID to read the todo list for
|
|
87
48
|
* @returns The todo list for the session
|
|
88
49
|
*/
|
|
89
|
-
function getTodoList(sessionId) {
|
|
90
|
-
|
|
91
|
-
const todos = fs.readFileSync(path_1.default.join(todoDir, `todos-${sessionId}.json`), 'utf-8');
|
|
92
|
-
return JSON.parse(todos);
|
|
50
|
+
async function getTodoList(sessionId) {
|
|
51
|
+
return mcp_helpers_1.Filesystem.readJson(createTodoTempFile(sessionId)).catch(() => []);
|
|
93
52
|
}
|
|
94
53
|
server.registerTool('todowrite', {
|
|
95
54
|
description: todowrite_txt_1.default,
|
|
96
55
|
inputSchema: zod_1.default.object({
|
|
97
56
|
todos: zod_1.default.array(todoInfo).describe('The updated todo list'),
|
|
98
|
-
toolInfo: mcp_helpers_1.
|
|
57
|
+
toolInfo: mcp_helpers_1.ToolInfoSchema
|
|
99
58
|
})
|
|
100
59
|
}, async (args) => {
|
|
101
|
-
setTodoList(args.toolInfo.sessionId, args.todos);
|
|
60
|
+
await setTodoList(args.toolInfo.sessionId, args.todos);
|
|
61
|
+
const todos = args.todos;
|
|
102
62
|
const result = {
|
|
103
|
-
title: `${
|
|
104
|
-
|
|
63
|
+
title: `${todos.filter(x => x.status !== 'completed').length} todos`,
|
|
64
|
+
metadata: {
|
|
65
|
+
todos
|
|
66
|
+
},
|
|
67
|
+
output: JSON.stringify(todos, null, 2)
|
|
105
68
|
};
|
|
106
69
|
return {
|
|
107
|
-
content: [{ type: 'text', text:
|
|
70
|
+
content: [{ type: 'text', text: result.output }],
|
|
108
71
|
structuredContent: result
|
|
109
72
|
};
|
|
110
73
|
});
|
|
111
74
|
server.registerTool('todoread', {
|
|
112
75
|
description: todoread_txt_1.default,
|
|
113
76
|
inputSchema: zod_1.default.object({
|
|
114
|
-
toolInfo: mcp_helpers_1.
|
|
77
|
+
toolInfo: mcp_helpers_1.ToolInfoSchema
|
|
115
78
|
})
|
|
116
79
|
}, async (args) => {
|
|
117
|
-
const todos = getTodoList(args.toolInfo.sessionId);
|
|
80
|
+
const todos = await getTodoList(args.toolInfo.sessionId);
|
|
118
81
|
const result = {
|
|
119
82
|
title: `${todos.filter(x => x.status !== 'completed').length} todos`,
|
|
120
83
|
todos
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baitong-dev/todo-mcp",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"bin": {
|
|
6
6
|
"@baitong-dev/todo-mcp": "./dist/index.js"
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
21
21
|
"zod": "^4.3.4",
|
|
22
|
-
"@baitong-dev/mcp-helpers": "0.0.
|
|
22
|
+
"@baitong-dev/mcp-helpers": "0.0.7"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"typescript": "^5.9.2"
|