@noxsoft/mcp 0.1.0 → 0.2.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,390 @@
1
+ import { apiRequest } from "../client.js";
2
+ function timeAgo(dateStr) {
3
+ const now = Date.now();
4
+ const then = new Date(dateStr).getTime();
5
+ const diffMs = now - then;
6
+ const diffMins = Math.floor(diffMs / 60000);
7
+ if (diffMins < 1)
8
+ return "just now";
9
+ if (diffMins < 60)
10
+ return `${diffMins} minute${diffMins === 1 ? "" : "s"} ago`;
11
+ const diffHours = Math.floor(diffMins / 60);
12
+ if (diffHours < 24)
13
+ return `${diffHours} hour${diffHours === 1 ? "" : "s"} ago`;
14
+ const diffDays = Math.floor(diffHours / 24);
15
+ return `${diffDays} day${diffDays === 1 ? "" : "s"} ago`;
16
+ }
17
+ function formatTaskSummary(task) {
18
+ const status = (task.status || "open").toUpperCase();
19
+ const priority = (task.priority || "medium").toUpperCase();
20
+ const assignee = task.assignee_agent_name
21
+ ? `@${task.assignee_agent_name}`
22
+ : "unassigned";
23
+ const org = task.assignee_org_slug || "—";
24
+ const due = task.due_date
25
+ ? new Date(task.due_date).toISOString().split("T")[0]
26
+ : "—";
27
+ const labels = task.labels && task.labels.length ? task.labels.join(", ") : "—";
28
+ const created = task.created_at ? timeAgo(task.created_at) : "—";
29
+ const comments = task.comment_count ?? 0;
30
+ return [
31
+ `**[${status}] ${task.title}** (priority: ${priority})`,
32
+ ` Assigned to: ${assignee} | Org: ${org}`,
33
+ ` Due: ${due} | Labels: ${labels}`,
34
+ ` Comments: ${comments} | Created: ${created}`,
35
+ ` ID: ${task.id}`,
36
+ ].join("\n");
37
+ }
38
+ function formatTaskDetail(task) {
39
+ const status = (task.status || "open").toUpperCase();
40
+ const priority = (task.priority || "medium").toUpperCase();
41
+ const assignee = task.assignee_agent_name
42
+ ? `@${task.assignee_agent_name}`
43
+ : "unassigned";
44
+ const org = task.assignee_org_slug || "—";
45
+ const creator = task.creator_agent_name
46
+ ? `@${task.creator_agent_name}`
47
+ : "—";
48
+ const due = task.due_date
49
+ ? new Date(task.due_date).toISOString().split("T")[0]
50
+ : "—";
51
+ const labels = task.labels && task.labels.length ? task.labels.join(", ") : "—";
52
+ const created = task.created_at
53
+ ? new Date(task.created_at).toLocaleString()
54
+ : "—";
55
+ const updated = task.updated_at
56
+ ? new Date(task.updated_at).toLocaleString()
57
+ : "—";
58
+ let result = [
59
+ `# ${task.title}`,
60
+ "",
61
+ `**Status:** ${status}`,
62
+ `**Priority:** ${priority}`,
63
+ `**Assigned to:** ${assignee}`,
64
+ `**Organization:** ${org}`,
65
+ `**Created by:** ${creator}`,
66
+ `**Due:** ${due}`,
67
+ `**Labels:** ${labels}`,
68
+ `**Created:** ${created}`,
69
+ `**Updated:** ${updated}`,
70
+ `**ID:** ${task.id}`,
71
+ ].join("\n");
72
+ if (task.description) {
73
+ result += `\n\n## Description\n\n${task.description}`;
74
+ }
75
+ if (task.comments && task.comments.length > 0) {
76
+ result += "\n\n## Comments\n";
77
+ for (const comment of task.comments) {
78
+ const author = comment.author_agent_name
79
+ ? `@${comment.author_agent_name}`
80
+ : "unknown";
81
+ const time = comment.created_at
82
+ ? new Date(comment.created_at).toLocaleString()
83
+ : "—";
84
+ result += `\n---\n**${author}** — _${time}_\n${comment.content || ""}`;
85
+ }
86
+ }
87
+ return result;
88
+ }
89
+ // ---------------------------------------------------------------------------
90
+ // Tool definitions
91
+ // ---------------------------------------------------------------------------
92
+ const tools = [
93
+ {
94
+ name: "create_task",
95
+ description: "Create a new task and assign it to another agent by name or to a Nox organization by slug. Exactly one of assignee_agent or assignee_org is required.",
96
+ inputSchema: {
97
+ type: "object",
98
+ properties: {
99
+ title: {
100
+ type: "string",
101
+ description: "Task title (max 500 chars).",
102
+ },
103
+ description: {
104
+ type: "string",
105
+ description: "Task description with details (supports markdown).",
106
+ },
107
+ assignee_agent: {
108
+ type: "string",
109
+ description: 'Agent name to assign to (e.g. "sonnet", "opus").',
110
+ },
111
+ assignee_org: {
112
+ type: "string",
113
+ description: 'Organization slug to assign to (e.g. "noxsoft").',
114
+ },
115
+ priority: {
116
+ type: "string",
117
+ description: "Priority level: low, medium, high, urgent, or critical (default: medium).",
118
+ enum: ["low", "medium", "high", "urgent", "critical"],
119
+ },
120
+ due_date: {
121
+ type: "string",
122
+ description: "ISO 8601 due date.",
123
+ },
124
+ labels: {
125
+ type: "array",
126
+ items: { type: "string" },
127
+ description: "Labels/tags for categorization.",
128
+ },
129
+ },
130
+ required: ["title"],
131
+ },
132
+ },
133
+ {
134
+ name: "list_tasks",
135
+ description: "List tasks you created or that are assigned to you. Filter by status and priority.",
136
+ inputSchema: {
137
+ type: "object",
138
+ properties: {
139
+ status: {
140
+ type: "string",
141
+ description: "Filter by status: open, in_progress, blocked, review, done, or cancelled.",
142
+ enum: [
143
+ "open",
144
+ "in_progress",
145
+ "blocked",
146
+ "review",
147
+ "done",
148
+ "cancelled",
149
+ ],
150
+ },
151
+ priority: {
152
+ type: "string",
153
+ description: "Filter by priority: low, medium, high, urgent, or critical.",
154
+ enum: ["low", "medium", "high", "urgent", "critical"],
155
+ },
156
+ limit: {
157
+ type: "number",
158
+ description: "Max results (default 20, max 100).",
159
+ },
160
+ },
161
+ required: [],
162
+ },
163
+ },
164
+ {
165
+ name: "get_task",
166
+ description: "Get full details and recent comments for a specific task.",
167
+ inputSchema: {
168
+ type: "object",
169
+ properties: {
170
+ task_id: {
171
+ type: "string",
172
+ description: "Task UUID.",
173
+ },
174
+ },
175
+ required: ["task_id"],
176
+ },
177
+ },
178
+ {
179
+ name: "update_task",
180
+ description: "Update the status, priority, or details of a task you created or are assigned to.",
181
+ inputSchema: {
182
+ type: "object",
183
+ properties: {
184
+ task_id: {
185
+ type: "string",
186
+ description: "Task UUID.",
187
+ },
188
+ status: {
189
+ type: "string",
190
+ description: "New status: open, in_progress, blocked, review, done, or cancelled.",
191
+ enum: [
192
+ "open",
193
+ "in_progress",
194
+ "blocked",
195
+ "review",
196
+ "done",
197
+ "cancelled",
198
+ ],
199
+ },
200
+ priority: {
201
+ type: "string",
202
+ description: "New priority: low, medium, high, urgent, or critical.",
203
+ enum: ["low", "medium", "high", "urgent", "critical"],
204
+ },
205
+ title: {
206
+ type: "string",
207
+ description: "New title.",
208
+ },
209
+ description: {
210
+ type: "string",
211
+ description: "New description.",
212
+ },
213
+ due_date: {
214
+ type: "string",
215
+ description: "New due date (ISO 8601).",
216
+ },
217
+ labels: {
218
+ type: "array",
219
+ items: { type: "string" },
220
+ description: "New labels.",
221
+ },
222
+ },
223
+ required: ["task_id"],
224
+ },
225
+ },
226
+ {
227
+ name: "add_task_comment",
228
+ description: "Add a comment to a task. Use this to provide updates, ask questions, or share findings.",
229
+ inputSchema: {
230
+ type: "object",
231
+ properties: {
232
+ task_id: {
233
+ type: "string",
234
+ description: "Task UUID.",
235
+ },
236
+ content: {
237
+ type: "string",
238
+ description: "Comment text (supports markdown, max 5000 chars).",
239
+ },
240
+ },
241
+ required: ["task_id", "content"],
242
+ },
243
+ },
244
+ ];
245
+ // ---------------------------------------------------------------------------
246
+ // Handler
247
+ // ---------------------------------------------------------------------------
248
+ async function handle(name, args) {
249
+ switch (name) {
250
+ // ----- create_task -----
251
+ case "create_task": {
252
+ const body = { title: args.title };
253
+ if (args.description !== undefined)
254
+ body.description = args.description;
255
+ if (args.assignee_agent !== undefined)
256
+ body.assignee_agent = args.assignee_agent;
257
+ if (args.assignee_org !== undefined)
258
+ body.assignee_org = args.assignee_org;
259
+ if (args.priority !== undefined)
260
+ body.priority = args.priority;
261
+ if (args.due_date !== undefined)
262
+ body.due_date = args.due_date;
263
+ if (args.labels !== undefined)
264
+ body.labels = args.labels;
265
+ const res = await apiRequest("nox", "POST", "/api/agent-tasks", {
266
+ body,
267
+ });
268
+ if (!res.ok)
269
+ return JSON.stringify(res.data);
270
+ const task = res.data;
271
+ const assignee = task.assignee_agent_name
272
+ ? `@${task.assignee_agent_name}`
273
+ : task.assignee_org_slug
274
+ ? `org:${task.assignee_org_slug}`
275
+ : "unassigned";
276
+ const priority = (task.priority || "medium").toUpperCase();
277
+ return [
278
+ `Task created.`,
279
+ `- **Title:** ${task.title}`,
280
+ `- **ID:** ${task.id}`,
281
+ `- **Assigned to:** ${assignee}`,
282
+ `- **Priority:** ${priority}`,
283
+ `- **Status:** ${(task.status || "open").toUpperCase()}`,
284
+ task.due_date
285
+ ? `- **Due:** ${new Date(task.due_date).toISOString().split("T")[0]}`
286
+ : null,
287
+ task.labels && task.labels.length
288
+ ? `- **Labels:** ${task.labels.join(", ")}`
289
+ : null,
290
+ ]
291
+ .filter(Boolean)
292
+ .join("\n");
293
+ }
294
+ // ----- list_tasks -----
295
+ case "list_tasks": {
296
+ const query = {};
297
+ if (args.status !== undefined)
298
+ query.status = args.status;
299
+ if (args.priority !== undefined)
300
+ query.priority = args.priority;
301
+ if (args.limit !== undefined)
302
+ query.limit = args.limit;
303
+ const res = await apiRequest("nox", "GET", "/api/agent-tasks", {
304
+ query,
305
+ });
306
+ if (!res.ok)
307
+ return JSON.stringify(res.data);
308
+ const data = res.data;
309
+ const tasks = Array.isArray(data)
310
+ ? data
311
+ : Array.isArray(data.tasks)
312
+ ? data.tasks
313
+ : Array.isArray(data.data)
314
+ ? data.data
315
+ : [];
316
+ if (!tasks.length)
317
+ return "No tasks found.";
318
+ return tasks.map(formatTaskSummary).join("\n\n");
319
+ }
320
+ // ----- get_task -----
321
+ case "get_task": {
322
+ const taskId = args.task_id;
323
+ const res = await apiRequest("nox", "GET", `/api/agent-tasks/${taskId}`);
324
+ if (!res.ok)
325
+ return JSON.stringify(res.data);
326
+ const data = res.data;
327
+ const task = data.task || data;
328
+ return formatTaskDetail(task);
329
+ }
330
+ // ----- update_task -----
331
+ case "update_task": {
332
+ const taskId = args.task_id;
333
+ const body = {};
334
+ if (args.status !== undefined)
335
+ body.status = args.status;
336
+ if (args.priority !== undefined)
337
+ body.priority = args.priority;
338
+ if (args.title !== undefined)
339
+ body.title = args.title;
340
+ if (args.description !== undefined)
341
+ body.description = args.description;
342
+ if (args.due_date !== undefined)
343
+ body.due_date = args.due_date;
344
+ if (args.labels !== undefined)
345
+ body.labels = args.labels;
346
+ const res = await apiRequest("nox", "PATCH", `/api/agent-tasks/${taskId}`, { body });
347
+ if (!res.ok)
348
+ return JSON.stringify(res.data);
349
+ const task = res.data;
350
+ const fields = Object.keys(body);
351
+ return [
352
+ `Task updated.`,
353
+ `- **ID:** ${task.id || taskId}`,
354
+ `- **Title:** ${task.title}`,
355
+ `- **Updated fields:** ${fields.join(", ")}`,
356
+ task.status ? `- **Status:** ${task.status.toUpperCase()}` : null,
357
+ task.priority
358
+ ? `- **Priority:** ${task.priority.toUpperCase()}`
359
+ : null,
360
+ ]
361
+ .filter(Boolean)
362
+ .join("\n");
363
+ }
364
+ // ----- add_task_comment -----
365
+ case "add_task_comment": {
366
+ const taskId = args.task_id;
367
+ const body = { content: args.content };
368
+ const res = await apiRequest("nox", "POST", `/api/agent-tasks/${taskId}/comments`, { body });
369
+ if (!res.ok)
370
+ return JSON.stringify(res.data);
371
+ const comment = res.data;
372
+ const time = comment.created_at
373
+ ? new Date(comment.created_at).toLocaleString()
374
+ : "—";
375
+ return [
376
+ `Comment added.`,
377
+ `- **Task ID:** ${taskId}`,
378
+ `- **Comment ID:** ${comment.id || "—"}`,
379
+ `- **Created:** ${time}`,
380
+ ].join("\n");
381
+ }
382
+ default:
383
+ return null;
384
+ }
385
+ }
386
+ // ---------------------------------------------------------------------------
387
+ // Export
388
+ // ---------------------------------------------------------------------------
389
+ export const taskTools = { tools, handle };
390
+ //# sourceMappingURL=tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -9,7 +9,7 @@ export interface RequestOptions {
9
9
  query?: Record<string, string | number | undefined>;
10
10
  requireAuth?: boolean;
11
11
  }
12
- export type Platform = "auth" | "bynd" | "veritas" | "tunenest" | "veil";
12
+ export type Platform = "auth" | "bynd" | "veritas" | "tunenest" | "veil" | "nox" | "cntx" | "mail";
13
13
  export interface ToolModule {
14
14
  tools: Tool[];
15
15
  handle: (name: string, args: Record<string, unknown>) => Promise<string | null>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noxsoft/mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Unified NoxSoft MCP server — gives AI agents access to all NoxSoft platforms",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",