@nihalcastelino/project-brain-mcp 1.0.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.
@@ -0,0 +1,495 @@
1
+ // FREE TIER MCP TOOLS - SIMPLIFIED
2
+ // Essential task management with search and import/export
3
+ import { createFormatter } from "../formatter.js";
4
+ // Tool definitions (FREE TIER - 17 COMMANDS)
5
+ export const tools = [
6
+ // ============================================================================
7
+ // PROJECT MANAGEMENT (5 commands)
8
+ // ============================================================================
9
+ {
10
+ name: "pb_create_project",
11
+ description: "Create a new project. Projects help organize your tasks.",
12
+ inputSchema: {
13
+ type: "object",
14
+ properties: {
15
+ name: { type: "string", description: "Project name (required)" },
16
+ description: { type: "string", description: "Project description (optional)" },
17
+ },
18
+ required: ["name"],
19
+ },
20
+ },
21
+ {
22
+ name: "pb_list_projects",
23
+ description: "List all projects",
24
+ inputSchema: {
25
+ type: "object",
26
+ properties: {},
27
+ },
28
+ },
29
+ {
30
+ name: "pb_get_project",
31
+ description: "Get project details by ID",
32
+ inputSchema: {
33
+ type: "object",
34
+ properties: {
35
+ projectId: { type: "string", description: "Project ID" },
36
+ },
37
+ required: ["projectId"],
38
+ },
39
+ },
40
+ {
41
+ name: "pb_update_project",
42
+ description: "Update project name or description",
43
+ inputSchema: {
44
+ type: "object",
45
+ properties: {
46
+ projectId: { type: "string", description: "Project ID to update" },
47
+ name: { type: "string", description: "New project name (optional)" },
48
+ description: { type: "string", description: "New project description (optional)" },
49
+ },
50
+ required: ["projectId"],
51
+ },
52
+ },
53
+ {
54
+ name: "pb_delete_project",
55
+ description: "Delete a project and all related tasks",
56
+ inputSchema: {
57
+ type: "object",
58
+ properties: {
59
+ projectId: { type: "string", description: "Project ID to delete" },
60
+ },
61
+ required: ["projectId"],
62
+ },
63
+ },
64
+ // ============================================================================
65
+ // TASK MANAGEMENT (6 commands)
66
+ // ============================================================================
67
+ {
68
+ name: "pb_create_task",
69
+ description: "Create a new task. FREE TIER LIMIT: 100 tasks per project.",
70
+ inputSchema: {
71
+ type: "object",
72
+ properties: {
73
+ projectId: { type: "string", description: "Project ID (required - get from pb_list_projects)" },
74
+ title: { type: "string", description: "Task title (required)" },
75
+ description: { type: "string", description: "Task description (optional)" },
76
+ type: { type: "string", description: "Task type: feature, bug, chore (default: feature)" },
77
+ status: { type: "string", description: "Task status: todo, in-progress, done, blocked (default: todo)" },
78
+ priority: { type: "string", description: "Priority: low, medium, high (default: medium)", enum: ["low", "medium", "high"] },
79
+ due_date: { type: "string", description: "Due date in YYYY-MM-DD format (optional)" },
80
+ assignee: { type: "string", description: "Agent/person assigned (optional)" },
81
+ },
82
+ required: ["projectId", "title"],
83
+ },
84
+ },
85
+ {
86
+ name: "pb_list_tasks",
87
+ description: "List all tasks in a project. Can filter by status, priority, assignee, or due date.",
88
+ inputSchema: {
89
+ type: "object",
90
+ properties: {
91
+ projectId: { type: "string", description: "Project ID (required)" },
92
+ status: { type: "string", description: "Filter by status: todo, in-progress, done, blocked (optional)" },
93
+ assignee: { type: "string", description: "Filter by assignee (optional)" },
94
+ priority: { type: "string", description: "Filter by priority: low, medium, high (optional)", enum: ["low", "medium", "high"] },
95
+ due_date_before: { type: "string", description: "Filter tasks due before date YYYY-MM-DD (optional)" },
96
+ },
97
+ required: ["projectId"],
98
+ },
99
+ },
100
+ {
101
+ name: "pb_get_task",
102
+ description: "Get task details by ID",
103
+ inputSchema: {
104
+ type: "object",
105
+ properties: {
106
+ taskId: { type: "string", description: "Task ID" },
107
+ },
108
+ required: ["taskId"],
109
+ },
110
+ },
111
+ {
112
+ name: "pb_update_task",
113
+ description: "Update task details (title, description, status, priority, due date, assignee)",
114
+ inputSchema: {
115
+ type: "object",
116
+ properties: {
117
+ taskId: { type: "string", description: "Task ID to update" },
118
+ title: { type: "string", description: "New title (optional)" },
119
+ description: { type: "string", description: "New description (optional)" },
120
+ type: { type: "string", description: "New type (optional)" },
121
+ status: { type: "string", description: "New status (optional)" },
122
+ assignee: { type: "string", description: "New assignee (optional)" },
123
+ priority: { type: "string", description: "New priority (optional)" },
124
+ due_date: { type: "string", description: "New due date (optional)" },
125
+ },
126
+ required: ["taskId"],
127
+ },
128
+ },
129
+ {
130
+ name: "pb_complete_task",
131
+ description: "Mark a task as complete (status: done)",
132
+ inputSchema: {
133
+ type: "object",
134
+ properties: {
135
+ taskId: { type: "string", description: "Task ID" },
136
+ notes: { type: "string", description: "Completion notes (optional)" },
137
+ },
138
+ required: ["taskId"],
139
+ },
140
+ },
141
+ {
142
+ name: "pb_delete_task",
143
+ description: "Delete a task",
144
+ inputSchema: {
145
+ type: "object",
146
+ properties: {
147
+ taskId: { type: "string", description: "Task ID to delete" },
148
+ },
149
+ required: ["taskId"],
150
+ },
151
+ },
152
+ // ============================================================================
153
+ // SEARCH (3 commands) - COMPETITIVE ADVANTAGE!
154
+ // ============================================================================
155
+ {
156
+ name: "pb_search_tasks",
157
+ description: "Search tasks by keyword in title, description, or notes. Returns up to 50 matches.",
158
+ inputSchema: {
159
+ type: "object",
160
+ properties: {
161
+ query: { type: "string", description: "Search query (required)" },
162
+ projectId: { type: "string", description: "Limit search to specific project (optional)" },
163
+ },
164
+ required: ["query"],
165
+ },
166
+ },
167
+ {
168
+ name: "pb_search_conversations",
169
+ description: "Search past conversations by keyword. Returns up to 50 matches. (Searches conversation history even though conversation management is not available in free tier)",
170
+ inputSchema: {
171
+ type: "object",
172
+ properties: {
173
+ query: { type: "string", description: "Search query (required)" },
174
+ projectId: { type: "string", description: "Limit search to specific project (optional)" },
175
+ },
176
+ required: ["query"],
177
+ },
178
+ },
179
+ {
180
+ name: "pb_search_decisions",
181
+ description: "Search past decisions by keyword. Returns up to 50 matches. (Searches decision history even though decision management is not available in free tier)",
182
+ inputSchema: {
183
+ type: "object",
184
+ properties: {
185
+ query: { type: "string", description: "Search query (required)" },
186
+ projectId: { type: "string", description: "Limit search to specific project (optional)" },
187
+ },
188
+ required: ["query"],
189
+ },
190
+ },
191
+ // ============================================================================
192
+ // IMPORT/EXPORT (3 commands) - NO VENDOR LOCK-IN!
193
+ // ============================================================================
194
+ {
195
+ name: "pb_export_project",
196
+ description: "Export project with all tasks in Markdown, chat, or plain text format",
197
+ inputSchema: {
198
+ type: "object",
199
+ properties: {
200
+ projectId: { type: "string", description: "Project ID (required)" },
201
+ format: {
202
+ type: "string",
203
+ description: "Output format: markdown (default), chat, or plain",
204
+ enum: ["markdown", "chat", "plain"],
205
+ default: "markdown"
206
+ },
207
+ },
208
+ required: ["projectId"],
209
+ },
210
+ },
211
+ {
212
+ name: "pb_export_project_json",
213
+ description: "Export complete project backup as JSON (tasks and all data). Can be imported later with pb_import_project.",
214
+ inputSchema: {
215
+ type: "object",
216
+ properties: {
217
+ projectId: { type: "string", description: "Project ID (required)" },
218
+ },
219
+ required: ["projectId"],
220
+ },
221
+ },
222
+ {
223
+ name: "pb_import_project",
224
+ description: "Import project from JSON backup. Creates new project with all data. Respects 100 task limit.",
225
+ inputSchema: {
226
+ type: "object",
227
+ properties: {
228
+ data: { type: "object", description: "Project backup data from pb_export_project_json (required)" },
229
+ },
230
+ required: ["data"],
231
+ },
232
+ },
233
+ ];
234
+ // Default project tracking
235
+ let defaultProjectId = null;
236
+ async function getDefaultProjectId(storage) {
237
+ if (defaultProjectId) {
238
+ const project = await storage.getProject(defaultProjectId);
239
+ if (project)
240
+ return defaultProjectId;
241
+ defaultProjectId = null;
242
+ }
243
+ const projects = await storage.listProjects();
244
+ if (projects.length > 0) {
245
+ defaultProjectId = projects[0].id;
246
+ return projects[0].id;
247
+ }
248
+ // Create default project
249
+ const project = await storage.createProject({
250
+ name: "Default Project",
251
+ description: "Auto-created project (Free Tier)",
252
+ });
253
+ defaultProjectId = project.id;
254
+ return project.id;
255
+ }
256
+ // Tool execution handler (FREE TIER ONLY - no conversations, no decisions, no AI features)
257
+ export async function handleToolCall(params, storage) {
258
+ const { name, arguments: args = {} } = params;
259
+ try {
260
+ switch (name) {
261
+ // PROJECT MANAGEMENT
262
+ case "pb_create_project": {
263
+ const project = await storage.createProject({
264
+ name: args.name,
265
+ description: args.description,
266
+ });
267
+ defaultProjectId = project.id;
268
+ return {
269
+ content: [{
270
+ type: "text",
271
+ text: JSON.stringify({
272
+ project,
273
+ message: "Project created successfully (set as default)"
274
+ }, null, 2)
275
+ }]
276
+ };
277
+ }
278
+ case "pb_list_projects": {
279
+ const projects = await storage.listProjects();
280
+ return {
281
+ content: [{
282
+ type: "text",
283
+ text: JSON.stringify({ projects, count: projects.length }, null, 2)
284
+ }]
285
+ };
286
+ }
287
+ case "pb_get_project": {
288
+ const project = await storage.getProject(args.projectId);
289
+ return {
290
+ content: [{
291
+ type: "text",
292
+ text: JSON.stringify({ project }, null, 2)
293
+ }]
294
+ };
295
+ }
296
+ case "pb_update_project": {
297
+ const project = await storage.updateProject(args.projectId, {
298
+ name: args.name,
299
+ description: args.description,
300
+ });
301
+ return {
302
+ content: [{
303
+ type: "text",
304
+ text: JSON.stringify({ project, message: "Project updated successfully" }, null, 2)
305
+ }]
306
+ };
307
+ }
308
+ case "pb_delete_project": {
309
+ await storage.deleteProject(args.projectId);
310
+ return {
311
+ content: [{
312
+ type: "text",
313
+ text: JSON.stringify({ success: true, message: "Project deleted successfully" }, null, 2)
314
+ }]
315
+ };
316
+ }
317
+ // TASK MANAGEMENT
318
+ case "pb_create_task": {
319
+ const task = await storage.createTask({
320
+ projectId: args.projectId,
321
+ title: args.title,
322
+ description: args.description,
323
+ type: args.type || "feature",
324
+ status: args.status || "todo",
325
+ priority: args.priority || "medium",
326
+ due_date: args.due_date,
327
+ assignee: args.assignee,
328
+ });
329
+ return {
330
+ content: [{
331
+ type: "text",
332
+ text: JSON.stringify({ task }, null, 2)
333
+ }]
334
+ };
335
+ }
336
+ case "pb_list_tasks": {
337
+ const tasks = await storage.listTasks(args.projectId, {
338
+ status: args.status,
339
+ assignee: args.assignee,
340
+ priority: args.priority,
341
+ due_date_before: args.due_date_before,
342
+ });
343
+ return {
344
+ content: [{
345
+ type: "text",
346
+ text: JSON.stringify({ tasks, count: tasks.length }, null, 2)
347
+ }]
348
+ };
349
+ }
350
+ case "pb_get_task": {
351
+ const task = await storage.getTask(args.taskId);
352
+ return {
353
+ content: [{
354
+ type: "text",
355
+ text: JSON.stringify({ task }, null, 2)
356
+ }]
357
+ };
358
+ }
359
+ case "pb_update_task": {
360
+ const task = await storage.updateTask(args.taskId, {
361
+ title: args.title,
362
+ description: args.description,
363
+ type: args.type,
364
+ status: args.status,
365
+ assignee: args.assignee,
366
+ priority: args.priority,
367
+ due_date: args.due_date,
368
+ });
369
+ return {
370
+ content: [{
371
+ type: "text",
372
+ text: JSON.stringify({ task, message: "Task updated successfully" }, null, 2)
373
+ }]
374
+ };
375
+ }
376
+ case "pb_complete_task": {
377
+ const task = await storage.updateTaskStatus(args.taskId, "done", args.notes);
378
+ return {
379
+ content: [{
380
+ type: "text",
381
+ text: JSON.stringify({ task, message: "Task marked as complete" }, null, 2)
382
+ }]
383
+ };
384
+ }
385
+ case "pb_delete_task": {
386
+ await storage.deleteTask(args.taskId);
387
+ return {
388
+ content: [{
389
+ type: "text",
390
+ text: JSON.stringify({ success: true, message: "Task deleted successfully" }, null, 2)
391
+ }]
392
+ };
393
+ }
394
+ // SEARCH
395
+ case "pb_search_tasks": {
396
+ const results = await storage.searchTasks(args.query, args.projectId);
397
+ return {
398
+ content: [{
399
+ type: "text",
400
+ text: JSON.stringify({
401
+ query: args.query,
402
+ results,
403
+ count: results.length,
404
+ message: results.length === 0 ? "No tasks found" : `Found ${results.length} task(s)`
405
+ }, null, 2)
406
+ }]
407
+ };
408
+ }
409
+ case "pb_search_conversations": {
410
+ const results = await storage.searchConversations(args.query, args.projectId);
411
+ return {
412
+ content: [{
413
+ type: "text",
414
+ text: JSON.stringify({
415
+ query: args.query,
416
+ results,
417
+ count: results.length,
418
+ message: results.length === 0 ? "No conversations found" : `Found ${results.length} conversation(s)`
419
+ }, null, 2)
420
+ }]
421
+ };
422
+ }
423
+ case "pb_search_decisions": {
424
+ const results = await storage.searchDecisions(args.query, args.projectId);
425
+ return {
426
+ content: [{
427
+ type: "text",
428
+ text: JSON.stringify({
429
+ query: args.query,
430
+ results,
431
+ count: results.length,
432
+ message: results.length === 0 ? "No decisions found" : `Found ${results.length} decision(s)`
433
+ }, null, 2)
434
+ }]
435
+ };
436
+ }
437
+ // IMPORT/EXPORT
438
+ case "pb_export_project": {
439
+ const project = await storage.getProject(args.projectId);
440
+ const tasks = await storage.listTasks(args.projectId);
441
+ const formatter = createFormatter(args.format || "markdown");
442
+ const formatted = formatter.formatProject(project, tasks);
443
+ return {
444
+ content: [{
445
+ type: "text",
446
+ text: formatted
447
+ }]
448
+ };
449
+ }
450
+ case "pb_export_project_json": {
451
+ const exportData = await storage.exportProject(args.projectId);
452
+ return {
453
+ content: [{
454
+ type: "text",
455
+ text: JSON.stringify(exportData, null, 2)
456
+ }]
457
+ };
458
+ }
459
+ case "pb_import_project": {
460
+ const result = await storage.importProject(args.data);
461
+ return {
462
+ content: [{
463
+ type: "text",
464
+ text: JSON.stringify({
465
+ ...result,
466
+ message: `Project imported successfully! Created ${result.imported.tasks} tasks.`
467
+ }, null, 2)
468
+ }]
469
+ };
470
+ }
471
+ default:
472
+ throw new Error(`Unknown tool: ${name}`);
473
+ }
474
+ }
475
+ catch (error) {
476
+ // Check if it's a free tier limit error
477
+ if (error.message && error.message.includes("FREE TIER LIMIT")) {
478
+ return {
479
+ content: [{
480
+ type: "text",
481
+ text: error.message
482
+ }],
483
+ isError: true,
484
+ };
485
+ }
486
+ return {
487
+ content: [{
488
+ type: "text",
489
+ text: JSON.stringify({ error: error.message }, null, 2)
490
+ }],
491
+ isError: true,
492
+ };
493
+ }
494
+ }
495
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
package/nul ADDED
@@ -0,0 +1,2 @@
1
+ ERROR: Invalid argument/option - 'F:/'.
2
+ Type "TASKKILL /?" for usage.
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@nihalcastelino/project-brain-mcp",
3
+ "version": "1.0.0",
4
+ "description": "Local task management for AI coding agents (Free Tier)",
5
+ "type": "module",
6
+ "main": "./dist/server.js",
7
+ "bin": {
8
+ "project-brain-mcp": "./dist/server.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "watch": "tsc --watch",
13
+ "start": "node dist/server.js",
14
+ "dev": "tsc && node dist/server.js",
15
+ "setup": "node scripts/setup.cjs",
16
+ "postinstall": "node scripts/setup.cjs",
17
+ "prepare": "npm run build",
18
+ "publish:auto": "node publish-auto.js"
19
+ },
20
+ "keywords": [
21
+ "mcp",
22
+ "ai",
23
+ "task-management",
24
+ "claude",
25
+ "cursor",
26
+ "copilot",
27
+ "project-management",
28
+ "offline",
29
+ "local-first"
30
+ ],
31
+ "author": "Project Brain",
32
+ "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/nihalcastelino/project-brain-mcp.git"
36
+ },
37
+ "homepage": "https://project-brain.io",
38
+ "bugs": {
39
+ "url": "https://github.com/nihalcastelino/project-brain-mcp/issues"
40
+ },
41
+ "dependencies": {
42
+ "@modelcontextprotocol/sdk": "^1.0.4",
43
+ "better-sqlite3": "^11.7.0"
44
+ },
45
+ "devDependencies": {
46
+ "@types/better-sqlite3": "^7.6.11",
47
+ "@types/node": "^22.10.5",
48
+ "typescript": "^5.7.2"
49
+ },
50
+ "engines": {
51
+ "node": ">=16.0.0"
52
+ }
53
+ }
Binary file