@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.
Files changed (2) hide show
  1. package/dist/index.js +18 -55
  2. 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.2';
49
- function getTodoDir() {
50
- const dir = path_1.default.join(mcp_helpers_1.MCP_HOME_DIR, 'todos');
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
- const todoDir = getTodoDir();
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
- const todoDir = getTodoDir();
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.Tool.Info
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: `${args.todos.filter(x => x.status !== 'completed').length} todos`,
104
- todos: args.todos
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: JSON.stringify(result) }],
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.Tool.Info
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.2",
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.5"
22
+ "@baitong-dev/mcp-helpers": "0.0.7"
23
23
  },
24
24
  "devDependencies": {
25
25
  "typescript": "^5.9.2"