@artyfacts/mcp-server 1.0.3 → 1.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/server.cjs CHANGED
@@ -236,6 +236,23 @@ var ARTYFACTS_TOOLS = [
236
236
  required: ["task_id", "reason"]
237
237
  }
238
238
  },
239
+ {
240
+ name: "create_task",
241
+ description: "Create a new task under a goal. Use this to create actionable tasks \u2014 NOT create_artifact or create_section.",
242
+ inputSchema: {
243
+ type: "object",
244
+ properties: {
245
+ goal_id: { type: "string", description: "The goal UUID this task belongs to (required)" },
246
+ title: { type: "string", description: "Task title" },
247
+ description: { type: "string", description: "Task description / what needs to be done" },
248
+ priority: { type: "string", description: "Priority: low, medium, high, urgent" },
249
+ assigned_to: { type: "string", description: "Agent UUID to assign the task to" },
250
+ depends_on: { type: "array", items: { type: "string" }, description: "List of task UUIDs this task depends on" },
251
+ estimated_minutes: { type: "number", description: "Estimated time in minutes" }
252
+ },
253
+ required: ["goal_id", "title"]
254
+ }
255
+ },
239
256
  // Agent tools
240
257
  {
241
258
  name: "list_agents",
@@ -261,18 +278,27 @@ var ARTYFACTS_TOOLS = [
261
278
  },
262
279
  {
263
280
  name: "create_agent",
264
- description: "Register a new agent",
281
+ description: "Register a new AI agent with role, capabilities, and permissions",
265
282
  inputSchema: {
266
283
  type: "object",
267
284
  properties: {
268
285
  agentId: { type: "string", description: 'Unique agent ID (e.g., "engineering-agent", "qa-agent")' },
269
286
  name: { type: "string", description: "Agent display name" },
270
- type: { type: "string", description: "Type: pm, engineering, qa, research, content, design" },
271
- description: { type: "string", description: "What this agent does" },
272
- capabilities: { type: "array", items: { type: "string" }, description: "Agent capabilities" },
273
- config: { type: "object", description: "Agent configuration" }
287
+ role: { type: "string", description: "Role: pm, engineering, qa, research, content, design" },
288
+ description: { type: "string", description: "What this agent does - detailed description" },
289
+ capabilities: { type: "array", items: { type: "string" }, description: 'List of capabilities (e.g., ["code-review", "testing", "debugging"])' },
290
+ permissions: {
291
+ type: "object",
292
+ description: "Permission settings",
293
+ properties: {
294
+ write: { type: "boolean", description: "Can create/edit artifacts" },
295
+ delete: { type: "boolean", description: "Can delete artifacts" },
296
+ delegate_tasks: { type: "boolean", description: "Can assign tasks to other agents" }
297
+ }
298
+ },
299
+ systemPrompt: { type: "string", description: "System prompt for the agent" }
274
300
  },
275
- required: ["agentId", "name", "type"]
301
+ required: ["agentId", "name", "role", "description"]
276
302
  }
277
303
  },
278
304
  {
@@ -468,6 +494,10 @@ var toolHandlers = {
468
494
  const { task_id, ...body } = args;
469
495
  return client.post(`/tasks/${task_id}/block`, body);
470
496
  },
497
+ create_task: (client, args) => {
498
+ const { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes } = args;
499
+ return client.post("/tasks", { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes });
500
+ },
471
501
  // Agents
472
502
  list_agents: (client, args) => {
473
503
  const params = new URLSearchParams();
@@ -475,7 +505,21 @@ var toolHandlers = {
475
505
  return client.get(`/agents?${params}`);
476
506
  },
477
507
  get_agent: (client, args) => client.get(`/agents/${args.agent_id}`),
478
- create_agent: (client, args) => client.post("/agents", args),
508
+ create_agent: (client, args) => {
509
+ const body = {
510
+ agentId: args.agentId,
511
+ name: args.name,
512
+ role: args.role,
513
+ description: args.description,
514
+ permissions: args.permissions || { write: true, delete: false, delegate_tasks: false },
515
+ metadata: {
516
+ capabilities: args.capabilities || [],
517
+ systemPrompt: args.systemPrompt,
518
+ createdVia: "mcp"
519
+ }
520
+ };
521
+ return client.post("/agents", body);
522
+ },
479
523
  update_agent: (client, args) => {
480
524
  const { agent_id, ...body } = args;
481
525
  return client.patch(`/agents/${agent_id}`, body);
package/dist/server.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  ArtyfactsMcpServer,
3
3
  createMcpServer,
4
4
  startServer
5
- } from "./chunk-VCIOVYRM.js";
5
+ } from "./chunk-NUVCJMET.js";
6
6
  export {
7
7
  ArtyfactsMcpServer,
8
8
  createMcpServer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artyfacts/mcp-server",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "MCP server exposing Artyfacts tools for Claude Code",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/server.ts CHANGED
@@ -244,7 +244,24 @@ const ARTYFACTS_TOOLS: Tool[] = [
244
244
  required: ['task_id', 'reason'],
245
245
  },
246
246
  },
247
-
247
+ {
248
+ name: 'create_task',
249
+ description: 'Create a new task under a goal. Use this to create actionable tasks — NOT create_artifact or create_section.',
250
+ inputSchema: {
251
+ type: 'object',
252
+ properties: {
253
+ goal_id: { type: 'string', description: 'The goal UUID this task belongs to (required)' },
254
+ title: { type: 'string', description: 'Task title' },
255
+ description: { type: 'string', description: 'Task description / what needs to be done' },
256
+ priority: { type: 'string', description: 'Priority: low, medium, high, urgent' },
257
+ assigned_to: { type: 'string', description: 'Agent UUID to assign the task to' },
258
+ depends_on: { type: 'array', items: { type: 'string' }, description: 'List of task UUIDs this task depends on' },
259
+ estimated_minutes: { type: 'number', description: 'Estimated time in minutes' },
260
+ },
261
+ required: ['goal_id', 'title'],
262
+ },
263
+ },
264
+
248
265
  // Agent tools
249
266
  {
250
267
  name: 'list_agents',
@@ -270,18 +287,27 @@ const ARTYFACTS_TOOLS: Tool[] = [
270
287
  },
271
288
  {
272
289
  name: 'create_agent',
273
- description: 'Register a new agent',
290
+ description: 'Register a new AI agent with role, capabilities, and permissions',
274
291
  inputSchema: {
275
292
  type: 'object',
276
293
  properties: {
277
294
  agentId: { type: 'string', description: 'Unique agent ID (e.g., "engineering-agent", "qa-agent")' },
278
295
  name: { type: 'string', description: 'Agent display name' },
279
- type: { type: 'string', description: 'Type: pm, engineering, qa, research, content, design' },
280
- description: { type: 'string', description: 'What this agent does' },
281
- capabilities: { type: 'array', items: { type: 'string' }, description: 'Agent capabilities' },
282
- config: { type: 'object', description: 'Agent configuration' },
296
+ role: { type: 'string', description: 'Role: pm, engineering, qa, research, content, design' },
297
+ description: { type: 'string', description: 'What this agent does - detailed description' },
298
+ capabilities: { type: 'array', items: { type: 'string' }, description: 'List of capabilities (e.g., ["code-review", "testing", "debugging"])' },
299
+ permissions: {
300
+ type: 'object',
301
+ description: 'Permission settings',
302
+ properties: {
303
+ write: { type: 'boolean', description: 'Can create/edit artifacts' },
304
+ delete: { type: 'boolean', description: 'Can delete artifacts' },
305
+ delegate_tasks: { type: 'boolean', description: 'Can assign tasks to other agents' },
306
+ }
307
+ },
308
+ systemPrompt: { type: 'string', description: 'System prompt for the agent' },
283
309
  },
284
- required: ['agentId', 'name', 'type'],
310
+ required: ['agentId', 'name', 'role', 'description'],
285
311
  },
286
312
  },
287
313
  {
@@ -495,7 +521,11 @@ const toolHandlers: Record<string, ToolHandler> = {
495
521
  const { task_id, ...body } = args;
496
522
  return client.post(`/tasks/${task_id}/block`, body);
497
523
  },
498
-
524
+ create_task: (client, args) => {
525
+ const { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes } = args;
526
+ return client.post('/tasks', { goal_id, title, description, priority, assigned_to, depends_on, estimated_minutes });
527
+ },
528
+
499
529
  // Agents
500
530
  list_agents: (client, args) => {
501
531
  const params = new URLSearchParams();
@@ -503,7 +533,22 @@ const toolHandlers: Record<string, ToolHandler> = {
503
533
  return client.get(`/agents?${params}`);
504
534
  },
505
535
  get_agent: (client, args) => client.get(`/agents/${args.agent_id}`),
506
- create_agent: (client, args) => client.post('/agents', args),
536
+ create_agent: (client, args) => {
537
+ // Map MCP fields to API fields
538
+ const body = {
539
+ agentId: args.agentId,
540
+ name: args.name,
541
+ role: args.role,
542
+ description: args.description,
543
+ permissions: args.permissions || { write: true, delete: false, delegate_tasks: false },
544
+ metadata: {
545
+ capabilities: args.capabilities || [],
546
+ systemPrompt: args.systemPrompt,
547
+ createdVia: 'mcp',
548
+ },
549
+ };
550
+ return client.post('/agents', body);
551
+ },
507
552
  update_agent: (client, args) => {
508
553
  const { agent_id, ...body } = args;
509
554
  return client.patch(`/agents/${agent_id}`, body);