@idea-base/mcp-server 1.0.3 → 1.1.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/index.js +16 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idea-base/mcp-server",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "MCP Server for IDEA Base - AI-powered project management. Integrates with Claude Code, Cursor, and Windsurf.",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
package/src/index.js CHANGED
@@ -66,7 +66,7 @@ const tools = [
66
66
  },
67
67
  {
68
68
  name: 'create_project',
69
- description: 'Create a new project. Returns the created project with its ID.',
69
+ description: 'Create a new project. A TOP-LEVEL project requires product_id; a sub-project (parent_project_id set) inherits its parent\'s product. Returns the created project with its ID.',
70
70
  inputSchema: {
71
71
  type: 'object',
72
72
  properties: {
@@ -80,7 +80,11 @@ const tools = [
80
80
  },
81
81
  parent_project_id: {
82
82
  type: 'number',
83
- description: 'Parent project ID if this is a sub-project',
83
+ description: 'Parent project ID if this is a sub-project (inherits the parent\'s product)',
84
+ },
85
+ product_id: {
86
+ type: 'number',
87
+ description: 'Product this project belongs to. Required for a top-level project (no parent); omit for a sub-project. Find ids via list_products.',
84
88
  },
85
89
  },
86
90
  required: ['name'],
@@ -385,7 +389,7 @@ const tools = [
385
389
  },
386
390
  {
387
391
  name: 'create_product',
388
- description: 'Create a new product. Products are top-level containers that can have multiple projects linked to them.',
392
+ description: 'Create a new product. Products are top-level containers for projects. Every product belongs to a customer (customer_id is required) — use an internal/own-company customer for internal work. Find customer ids via list_products (each shows its customer_id).',
389
393
  inputSchema: {
390
394
  type: 'object',
391
395
  properties: {
@@ -401,8 +405,12 @@ const tools = [
401
405
  type: 'string',
402
406
  description: 'GitHub repository URL for the product',
403
407
  },
408
+ customer_id: {
409
+ type: 'number',
410
+ description: 'Customer this product is for. REQUIRED — every product belongs to a customer.',
411
+ },
404
412
  },
405
- required: ['name'],
413
+ required: ['name', 'customer_id'],
406
414
  },
407
415
  },
408
416
  {
@@ -449,13 +457,14 @@ const toolHandlers = {
449
457
  };
450
458
  },
451
459
 
452
- async create_project({ name, description, parent_project_id }) {
460
+ async create_project({ name, description, parent_project_id, product_id }) {
453
461
  const project = await apiRequest('/projects', {
454
462
  method: 'POST',
455
463
  body: JSON.stringify({
456
464
  name,
457
465
  description,
458
466
  parent_project_id,
467
+ product_id,
459
468
  }),
460
469
  });
461
470
  return {
@@ -721,13 +730,14 @@ const toolHandlers = {
721
730
  };
722
731
  },
723
732
 
724
- async create_product({ name, description, github_repo_url }) {
733
+ async create_product({ name, description, github_repo_url, customer_id }) {
725
734
  const product = await apiRequest('/products', {
726
735
  method: 'POST',
727
736
  body: JSON.stringify({
728
737
  name,
729
738
  description,
730
739
  github_repo_url,
740
+ customer_id,
731
741
  }),
732
742
  });
733
743
  return {