@artyfacts/mcp-server 1.1.5 → 1.3.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/chunk-MQM6RARV.js +654 -0
- package/dist/chunk-U2KVKQ6X.js +692 -0
- package/dist/index.cjs +59 -0
- package/dist/index.js +1 -1
- package/dist/server.cjs +59 -0
- package/dist/server.js +1 -1
- package/package.json +2 -2
- package/src/server.ts +61 -0
package/dist/index.cjs
CHANGED
|
@@ -254,6 +254,19 @@ var ARTYFACTS_TOOLS = [
|
|
|
254
254
|
required: ["task_id", "reason"]
|
|
255
255
|
}
|
|
256
256
|
},
|
|
257
|
+
{
|
|
258
|
+
name: "report_progress",
|
|
259
|
+
description: 'Report what you are currently doing on a task. Call this at meaningful milestones so your work is visible in the platform (e.g., "Analyzed 12 PRs, now writing the summary section", "Completed API design, starting implementation"). This is how your progress appears to humans watching the work.',
|
|
260
|
+
inputSchema: {
|
|
261
|
+
type: "object",
|
|
262
|
+
properties: {
|
|
263
|
+
task_id: { type: "string", description: "Task ID" },
|
|
264
|
+
message: { type: "string", description: "What you are doing right now \u2014 be specific and human-readable" },
|
|
265
|
+
metadata: { type: "object", description: "Optional extra context (step number, percentage, etc.)" }
|
|
266
|
+
},
|
|
267
|
+
required: ["task_id", "message"]
|
|
268
|
+
}
|
|
269
|
+
},
|
|
257
270
|
{
|
|
258
271
|
name: "create_task",
|
|
259
272
|
description: "Create a new task under a goal. Use this to create actionable tasks \u2014 NOT create_artifact or create_section.",
|
|
@@ -394,6 +407,34 @@ var ARTYFACTS_TOOLS = [
|
|
|
394
407
|
required: ["query"]
|
|
395
408
|
}
|
|
396
409
|
},
|
|
410
|
+
// Goal management
|
|
411
|
+
{
|
|
412
|
+
name: "update_goal",
|
|
413
|
+
description: "Update a goal's title, description, or status. Use when human feedback reveals the goal was based on wrong premises and needs to be corrected before re-planning.",
|
|
414
|
+
inputSchema: {
|
|
415
|
+
type: "object",
|
|
416
|
+
properties: {
|
|
417
|
+
goal_id: { type: "string", description: "Goal UUID" },
|
|
418
|
+
title: { type: "string", description: "New title" },
|
|
419
|
+
description: { type: "string", description: "New description" },
|
|
420
|
+
status: { type: "string", description: "New status: active, completed, paused, cancelled" },
|
|
421
|
+
priority: { type: "string", description: "New priority: low, medium, high, urgent" }
|
|
422
|
+
},
|
|
423
|
+
required: ["goal_id"]
|
|
424
|
+
}
|
|
425
|
+
},
|
|
426
|
+
// Task cancellation
|
|
427
|
+
{
|
|
428
|
+
name: "cancel_task",
|
|
429
|
+
description: "Cancel and remove a task that should no longer be executed \u2014 e.g. because human feedback revealed it was based on wrong premises. Use alongside create_task to replace stale tasks with corrected ones.",
|
|
430
|
+
inputSchema: {
|
|
431
|
+
type: "object",
|
|
432
|
+
properties: {
|
|
433
|
+
task_id: { type: "string", description: "Task UUID to cancel" }
|
|
434
|
+
},
|
|
435
|
+
required: ["task_id"]
|
|
436
|
+
}
|
|
437
|
+
},
|
|
397
438
|
// Context tools
|
|
398
439
|
{
|
|
399
440
|
name: "get_task_context",
|
|
@@ -445,6 +486,9 @@ var ArtyfactsApiClient = class {
|
|
|
445
486
|
patch(path, body) {
|
|
446
487
|
return this.request("PATCH", path, body);
|
|
447
488
|
}
|
|
489
|
+
put(path, body) {
|
|
490
|
+
return this.request("PUT", path, body);
|
|
491
|
+
}
|
|
448
492
|
delete(path) {
|
|
449
493
|
return this.request("DELETE", path);
|
|
450
494
|
}
|
|
@@ -526,6 +570,14 @@ var toolHandlers = {
|
|
|
526
570
|
const { task_id, ...body } = args;
|
|
527
571
|
return client.post(`/tasks/${task_id}/block`, body);
|
|
528
572
|
},
|
|
573
|
+
report_progress: (client, args) => {
|
|
574
|
+
const { task_id, message, metadata } = args;
|
|
575
|
+
return client.post(`/tasks/${task_id}/activity`, {
|
|
576
|
+
type: "progress",
|
|
577
|
+
content: message,
|
|
578
|
+
metadata: metadata ?? {}
|
|
579
|
+
});
|
|
580
|
+
},
|
|
529
581
|
create_task: (client, args) => {
|
|
530
582
|
const { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes } = args;
|
|
531
583
|
return client.post("/tasks", { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes });
|
|
@@ -573,6 +625,13 @@ var toolHandlers = {
|
|
|
573
625
|
const { item_id, ...body } = args;
|
|
574
626
|
return client.post(`/inbox/${item_id}/resolve`, body);
|
|
575
627
|
},
|
|
628
|
+
// Goals
|
|
629
|
+
update_goal: (client, args) => {
|
|
630
|
+
const { goal_id, ...body } = args;
|
|
631
|
+
return client.put(`/goals/${goal_id}`, body);
|
|
632
|
+
},
|
|
633
|
+
// Task cancellation
|
|
634
|
+
cancel_task: (client, args) => client.delete(`/tasks/${args.task_id}`),
|
|
576
635
|
// Search
|
|
577
636
|
search_artifacts: (client, args) => {
|
|
578
637
|
const params = new URLSearchParams();
|
package/dist/index.js
CHANGED
package/dist/server.cjs
CHANGED
|
@@ -252,6 +252,19 @@ var ARTYFACTS_TOOLS = [
|
|
|
252
252
|
required: ["task_id", "reason"]
|
|
253
253
|
}
|
|
254
254
|
},
|
|
255
|
+
{
|
|
256
|
+
name: "report_progress",
|
|
257
|
+
description: 'Report what you are currently doing on a task. Call this at meaningful milestones so your work is visible in the platform (e.g., "Analyzed 12 PRs, now writing the summary section", "Completed API design, starting implementation"). This is how your progress appears to humans watching the work.',
|
|
258
|
+
inputSchema: {
|
|
259
|
+
type: "object",
|
|
260
|
+
properties: {
|
|
261
|
+
task_id: { type: "string", description: "Task ID" },
|
|
262
|
+
message: { type: "string", description: "What you are doing right now \u2014 be specific and human-readable" },
|
|
263
|
+
metadata: { type: "object", description: "Optional extra context (step number, percentage, etc.)" }
|
|
264
|
+
},
|
|
265
|
+
required: ["task_id", "message"]
|
|
266
|
+
}
|
|
267
|
+
},
|
|
255
268
|
{
|
|
256
269
|
name: "create_task",
|
|
257
270
|
description: "Create a new task under a goal. Use this to create actionable tasks \u2014 NOT create_artifact or create_section.",
|
|
@@ -392,6 +405,34 @@ var ARTYFACTS_TOOLS = [
|
|
|
392
405
|
required: ["query"]
|
|
393
406
|
}
|
|
394
407
|
},
|
|
408
|
+
// Goal management
|
|
409
|
+
{
|
|
410
|
+
name: "update_goal",
|
|
411
|
+
description: "Update a goal's title, description, or status. Use when human feedback reveals the goal was based on wrong premises and needs to be corrected before re-planning.",
|
|
412
|
+
inputSchema: {
|
|
413
|
+
type: "object",
|
|
414
|
+
properties: {
|
|
415
|
+
goal_id: { type: "string", description: "Goal UUID" },
|
|
416
|
+
title: { type: "string", description: "New title" },
|
|
417
|
+
description: { type: "string", description: "New description" },
|
|
418
|
+
status: { type: "string", description: "New status: active, completed, paused, cancelled" },
|
|
419
|
+
priority: { type: "string", description: "New priority: low, medium, high, urgent" }
|
|
420
|
+
},
|
|
421
|
+
required: ["goal_id"]
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
// Task cancellation
|
|
425
|
+
{
|
|
426
|
+
name: "cancel_task",
|
|
427
|
+
description: "Cancel and remove a task that should no longer be executed \u2014 e.g. because human feedback revealed it was based on wrong premises. Use alongside create_task to replace stale tasks with corrected ones.",
|
|
428
|
+
inputSchema: {
|
|
429
|
+
type: "object",
|
|
430
|
+
properties: {
|
|
431
|
+
task_id: { type: "string", description: "Task UUID to cancel" }
|
|
432
|
+
},
|
|
433
|
+
required: ["task_id"]
|
|
434
|
+
}
|
|
435
|
+
},
|
|
395
436
|
// Context tools
|
|
396
437
|
{
|
|
397
438
|
name: "get_task_context",
|
|
@@ -443,6 +484,9 @@ var ArtyfactsApiClient = class {
|
|
|
443
484
|
patch(path, body) {
|
|
444
485
|
return this.request("PATCH", path, body);
|
|
445
486
|
}
|
|
487
|
+
put(path, body) {
|
|
488
|
+
return this.request("PUT", path, body);
|
|
489
|
+
}
|
|
446
490
|
delete(path) {
|
|
447
491
|
return this.request("DELETE", path);
|
|
448
492
|
}
|
|
@@ -524,6 +568,14 @@ var toolHandlers = {
|
|
|
524
568
|
const { task_id, ...body } = args;
|
|
525
569
|
return client.post(`/tasks/${task_id}/block`, body);
|
|
526
570
|
},
|
|
571
|
+
report_progress: (client, args) => {
|
|
572
|
+
const { task_id, message, metadata } = args;
|
|
573
|
+
return client.post(`/tasks/${task_id}/activity`, {
|
|
574
|
+
type: "progress",
|
|
575
|
+
content: message,
|
|
576
|
+
metadata: metadata ?? {}
|
|
577
|
+
});
|
|
578
|
+
},
|
|
527
579
|
create_task: (client, args) => {
|
|
528
580
|
const { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes } = args;
|
|
529
581
|
return client.post("/tasks", { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes });
|
|
@@ -571,6 +623,13 @@ var toolHandlers = {
|
|
|
571
623
|
const { item_id, ...body } = args;
|
|
572
624
|
return client.post(`/inbox/${item_id}/resolve`, body);
|
|
573
625
|
},
|
|
626
|
+
// Goals
|
|
627
|
+
update_goal: (client, args) => {
|
|
628
|
+
const { goal_id, ...body } = args;
|
|
629
|
+
return client.put(`/goals/${goal_id}`, body);
|
|
630
|
+
},
|
|
631
|
+
// Task cancellation
|
|
632
|
+
cancel_task: (client, args) => client.delete(`/tasks/${args.task_id}`),
|
|
574
633
|
// Search
|
|
575
634
|
search_artifacts: (client, args) => {
|
|
576
635
|
const params = new URLSearchParams();
|
package/dist/server.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artyfacts/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "MCP server exposing Artyfacts tools for Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"typescript": "^5.3.0"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"@artyfacts/claude": "^1.
|
|
46
|
+
"@artyfacts/claude": "^1.5.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependenciesMeta": {
|
|
49
49
|
"@artyfacts/claude": {
|
package/src/server.ts
CHANGED
|
@@ -262,6 +262,19 @@ const ARTYFACTS_TOOLS: Tool[] = [
|
|
|
262
262
|
required: ['task_id', 'reason'],
|
|
263
263
|
},
|
|
264
264
|
},
|
|
265
|
+
{
|
|
266
|
+
name: 'report_progress',
|
|
267
|
+
description: 'Report what you are currently doing on a task. Call this at meaningful milestones so your work is visible in the platform (e.g., "Analyzed 12 PRs, now writing the summary section", "Completed API design, starting implementation"). This is how your progress appears to humans watching the work.',
|
|
268
|
+
inputSchema: {
|
|
269
|
+
type: 'object',
|
|
270
|
+
properties: {
|
|
271
|
+
task_id: { type: 'string', description: 'Task ID' },
|
|
272
|
+
message: { type: 'string', description: 'What you are doing right now — be specific and human-readable' },
|
|
273
|
+
metadata: { type: 'object', description: 'Optional extra context (step number, percentage, etc.)' },
|
|
274
|
+
},
|
|
275
|
+
required: ['task_id', 'message'],
|
|
276
|
+
},
|
|
277
|
+
},
|
|
265
278
|
{
|
|
266
279
|
name: 'create_task',
|
|
267
280
|
description: 'Create a new task under a goal. Use this to create actionable tasks — NOT create_artifact or create_section.',
|
|
@@ -406,6 +419,36 @@ const ARTYFACTS_TOOLS: Tool[] = [
|
|
|
406
419
|
},
|
|
407
420
|
},
|
|
408
421
|
|
|
422
|
+
// Goal management
|
|
423
|
+
{
|
|
424
|
+
name: 'update_goal',
|
|
425
|
+
description: 'Update a goal\'s title, description, or status. Use when human feedback reveals the goal was based on wrong premises and needs to be corrected before re-planning.',
|
|
426
|
+
inputSchema: {
|
|
427
|
+
type: 'object',
|
|
428
|
+
properties: {
|
|
429
|
+
goal_id: { type: 'string', description: 'Goal UUID' },
|
|
430
|
+
title: { type: 'string', description: 'New title' },
|
|
431
|
+
description: { type: 'string', description: 'New description' },
|
|
432
|
+
status: { type: 'string', description: 'New status: active, completed, paused, cancelled' },
|
|
433
|
+
priority: { type: 'string', description: 'New priority: low, medium, high, urgent' },
|
|
434
|
+
},
|
|
435
|
+
required: ['goal_id'],
|
|
436
|
+
},
|
|
437
|
+
},
|
|
438
|
+
|
|
439
|
+
// Task cancellation
|
|
440
|
+
{
|
|
441
|
+
name: 'cancel_task',
|
|
442
|
+
description: 'Cancel and remove a task that should no longer be executed — e.g. because human feedback revealed it was based on wrong premises. Use alongside create_task to replace stale tasks with corrected ones.',
|
|
443
|
+
inputSchema: {
|
|
444
|
+
type: 'object',
|
|
445
|
+
properties: {
|
|
446
|
+
task_id: { type: 'string', description: 'Task UUID to cancel' },
|
|
447
|
+
},
|
|
448
|
+
required: ['task_id'],
|
|
449
|
+
},
|
|
450
|
+
},
|
|
451
|
+
|
|
409
452
|
// Context tools
|
|
410
453
|
{
|
|
411
454
|
name: 'get_task_context',
|
|
@@ -460,6 +503,7 @@ class ArtyfactsApiClient {
|
|
|
460
503
|
getAgentId() { return this.agentId; }
|
|
461
504
|
post(path: string, body?: unknown) { return this.request('POST', path, body); }
|
|
462
505
|
patch(path: string, body?: unknown) { return this.request('PATCH', path, body); }
|
|
506
|
+
put(path: string, body?: unknown) { return this.request('PUT', path, body); }
|
|
463
507
|
delete(path: string) { return this.request('DELETE', path); }
|
|
464
508
|
}
|
|
465
509
|
|
|
@@ -552,6 +596,14 @@ const toolHandlers: Record<string, ToolHandler> = {
|
|
|
552
596
|
const { task_id, ...body } = args;
|
|
553
597
|
return client.post(`/tasks/${task_id}/block`, body);
|
|
554
598
|
},
|
|
599
|
+
report_progress: (client, args) => {
|
|
600
|
+
const { task_id, message, metadata } = args;
|
|
601
|
+
return client.post(`/tasks/${task_id}/activity`, {
|
|
602
|
+
type: 'progress',
|
|
603
|
+
content: message,
|
|
604
|
+
metadata: metadata ?? {},
|
|
605
|
+
});
|
|
606
|
+
},
|
|
555
607
|
create_task: (client, args) => {
|
|
556
608
|
const { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes } = args;
|
|
557
609
|
return client.post('/tasks', { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes });
|
|
@@ -603,6 +655,15 @@ const toolHandlers: Record<string, ToolHandler> = {
|
|
|
603
655
|
return client.post(`/inbox/${item_id}/resolve`, body);
|
|
604
656
|
},
|
|
605
657
|
|
|
658
|
+
// Goals
|
|
659
|
+
update_goal: (client, args) => {
|
|
660
|
+
const { goal_id, ...body } = args;
|
|
661
|
+
return client.put(`/goals/${goal_id}`, body);
|
|
662
|
+
},
|
|
663
|
+
|
|
664
|
+
// Task cancellation
|
|
665
|
+
cancel_task: (client, args) => client.delete(`/tasks/${args.task_id}`),
|
|
666
|
+
|
|
606
667
|
// Search
|
|
607
668
|
search_artifacts: (client, args) => {
|
|
608
669
|
const params = new URLSearchParams();
|