autoproject-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.
Files changed (82) hide show
  1. package/README.md +135 -0
  2. package/dist/client.d.ts +14 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +62 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/index.d.ts +17 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +188 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/prompts/index.d.ts +14 -0
  11. package/dist/prompts/index.d.ts.map +1 -0
  12. package/dist/prompts/index.js +128 -0
  13. package/dist/prompts/index.js.map +1 -0
  14. package/dist/resources/index.d.ts +21 -0
  15. package/dist/resources/index.d.ts.map +1 -0
  16. package/dist/resources/index.js +81 -0
  17. package/dist/resources/index.js.map +1 -0
  18. package/dist/tools/applicationTools.d.ts +24 -0
  19. package/dist/tools/applicationTools.d.ts.map +1 -0
  20. package/dist/tools/applicationTools.js +160 -0
  21. package/dist/tools/applicationTools.js.map +1 -0
  22. package/dist/tools/copilotTools.d.ts +8 -0
  23. package/dist/tools/copilotTools.d.ts.map +1 -0
  24. package/dist/tools/copilotTools.js +55 -0
  25. package/dist/tools/copilotTools.js.map +1 -0
  26. package/dist/tools/defectTools.d.ts +8 -0
  27. package/dist/tools/defectTools.d.ts.map +1 -0
  28. package/dist/tools/defectTools.js +144 -0
  29. package/dist/tools/defectTools.js.map +1 -0
  30. package/dist/tools/documentTools.d.ts +18 -0
  31. package/dist/tools/documentTools.d.ts.map +1 -0
  32. package/dist/tools/documentTools.js +146 -0
  33. package/dist/tools/documentTools.js.map +1 -0
  34. package/dist/tools/evidenceTools.d.ts +8 -0
  35. package/dist/tools/evidenceTools.d.ts.map +1 -0
  36. package/dist/tools/evidenceTools.js +63 -0
  37. package/dist/tools/evidenceTools.js.map +1 -0
  38. package/dist/tools/hierarchyTools.d.ts +8 -0
  39. package/dist/tools/hierarchyTools.d.ts.map +1 -0
  40. package/dist/tools/hierarchyTools.js +86 -0
  41. package/dist/tools/hierarchyTools.js.map +1 -0
  42. package/dist/tools/importTools.d.ts +22 -0
  43. package/dist/tools/importTools.d.ts.map +1 -0
  44. package/dist/tools/importTools.js +145 -0
  45. package/dist/tools/importTools.js.map +1 -0
  46. package/dist/tools/launchPlanTools.d.ts +19 -0
  47. package/dist/tools/launchPlanTools.d.ts.map +1 -0
  48. package/dist/tools/launchPlanTools.js +319 -0
  49. package/dist/tools/launchPlanTools.js.map +1 -0
  50. package/dist/tools/productTools.d.ts +8 -0
  51. package/dist/tools/productTools.d.ts.map +1 -0
  52. package/dist/tools/productTools.js +80 -0
  53. package/dist/tools/productTools.js.map +1 -0
  54. package/dist/tools/releaseCycleLinkTools.d.ts +24 -0
  55. package/dist/tools/releaseCycleLinkTools.d.ts.map +1 -0
  56. package/dist/tools/releaseCycleLinkTools.js +174 -0
  57. package/dist/tools/releaseCycleLinkTools.js.map +1 -0
  58. package/dist/tools/screenTools.d.ts +12 -0
  59. package/dist/tools/screenTools.d.ts.map +1 -0
  60. package/dist/tools/screenTools.js +125 -0
  61. package/dist/tools/screenTools.js.map +1 -0
  62. package/dist/tools/testTools.d.ts +8 -0
  63. package/dist/tools/testTools.d.ts.map +1 -0
  64. package/dist/tools/testTools.js +91 -0
  65. package/dist/tools/testTools.js.map +1 -0
  66. package/dist/tools/ticketTools.d.ts +18 -0
  67. package/dist/tools/ticketTools.d.ts.map +1 -0
  68. package/dist/tools/ticketTools.js +138 -0
  69. package/dist/tools/ticketTools.js.map +1 -0
  70. package/dist/tools/todoTools.d.ts +8 -0
  71. package/dist/tools/todoTools.d.ts.map +1 -0
  72. package/dist/tools/todoTools.js +104 -0
  73. package/dist/tools/todoTools.js.map +1 -0
  74. package/dist/tools/useCaseTools.d.ts +8 -0
  75. package/dist/tools/useCaseTools.d.ts.map +1 -0
  76. package/dist/tools/useCaseTools.js +238 -0
  77. package/dist/tools/useCaseTools.js.map +1 -0
  78. package/dist/tools/workTools.d.ts +8 -0
  79. package/dist/tools/workTools.d.ts.map +1 -0
  80. package/dist/tools/workTools.js +99 -0
  81. package/dist/tools/workTools.js.map +1 -0
  82. package/package.json +37 -0
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Tools: Use case management
4
+ * Tools: list_use_cases, get_use_case, create_use_case, update_use_case, change_use_case_status
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.useCaseToolDefinitions = void 0;
8
+ exports.handleUseCaseTool = handleUseCaseTool;
9
+ const client_js_1 = require("../client.js");
10
+ const PRODUCT_ID = process.env.AUTOPROJECT_PRODUCT_ID ?? '';
11
+ function resolveProductId(args) {
12
+ return args.productId || PRODUCT_ID;
13
+ }
14
+ exports.useCaseToolDefinitions = [
15
+ {
16
+ name: 'list_use_cases',
17
+ description: 'List use cases in a product. Supports filtering by status, priority, module, feature group, or feature. ' +
18
+ 'Statuses: DRAFT, UNDER_REVIEW, APPROVED, DEPRECATED, ARCHIVED.',
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ productId: { type: 'string', description: 'Product ID (falls back to AUTOPROJECT_PRODUCT_ID env var)' },
23
+ status: { type: 'string', description: 'Filter by status (DRAFT | UNDER_REVIEW | APPROVED | DEPRECATED | ARCHIVED)' },
24
+ priority: { type: 'string', description: 'Filter by priority (CRITICAL | HIGH | MEDIUM | LOW)' },
25
+ moduleId: { type: 'string', description: 'Filter by module ID' },
26
+ featureGroupId: { type: 'string', description: 'Filter by feature group ID' },
27
+ featureId: { type: 'string', description: 'Filter by feature (SubFeature) ID' },
28
+ search: { type: 'string', description: 'Search by name, description, or actor' },
29
+ limit: { type: 'number', description: 'Max results (default 50, max 200)' },
30
+ cursor: { type: 'string', description: 'Pagination cursor from previous response' },
31
+ },
32
+ required: [],
33
+ },
34
+ },
35
+ {
36
+ name: 'get_use_case',
37
+ description: 'Get full detail of a use case including description, actor, flow preconditions/postconditions, and main flow steps.',
38
+ inputSchema: {
39
+ type: 'object',
40
+ properties: {
41
+ productId: { type: 'string', description: 'Product ID (falls back to AUTOPROJECT_PRODUCT_ID env var)' },
42
+ useCaseId: { type: 'string', description: 'Use case ID' },
43
+ },
44
+ required: ['useCaseId'],
45
+ },
46
+ },
47
+ {
48
+ name: 'create_use_case',
49
+ description: 'Create a new use case in DRAFT status. Link it to a module, feature group, or feature to give it context. ' +
50
+ 'Priorities: CRITICAL, HIGH, MEDIUM (default), LOW. Complexities: LOW, MEDIUM (default), HIGH, VERY_HIGH.',
51
+ inputSchema: {
52
+ type: 'object',
53
+ properties: {
54
+ productId: { type: 'string', description: 'Product ID (falls back to AUTOPROJECT_PRODUCT_ID env var)' },
55
+ name: { type: 'string', description: 'Use case name (required)' },
56
+ description: { type: 'string', description: 'Detailed description of what the use case covers' },
57
+ actor: { type: 'string', description: 'The user or system that initiates the use case (e.g. "Registered User", "Admin")' },
58
+ trigger: { type: 'string', description: 'What triggers this use case (e.g. "User clicks Login button")' },
59
+ preconditions: { type: 'string', description: 'Conditions that must be true before execution starts' },
60
+ postconditions: { type: 'string', description: 'Conditions that must be true after successful execution' },
61
+ priority: {
62
+ type: 'string',
63
+ enum: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'],
64
+ description: 'Priority (default: MEDIUM)',
65
+ },
66
+ complexity: {
67
+ type: 'string',
68
+ enum: ['LOW', 'MEDIUM', 'HIGH', 'VERY_HIGH'],
69
+ description: 'Complexity (default: MEDIUM)',
70
+ },
71
+ moduleId: { type: 'string', description: 'ID of the module this use case belongs to' },
72
+ featureGroupId: { type: 'string', description: 'ID of the feature group this use case belongs to' },
73
+ featureId: { type: 'string', description: 'ID of the feature (SubFeature) this use case belongs to' },
74
+ tags: {
75
+ type: 'array',
76
+ items: { type: 'string' },
77
+ description: 'Optional tags for categorisation',
78
+ },
79
+ estimatedMinutes: { type: 'number', description: 'Estimated execution time in minutes' },
80
+ },
81
+ required: ['name'],
82
+ },
83
+ },
84
+ {
85
+ name: 'update_use_case',
86
+ description: 'Update an existing use case. Only provide the fields you want to change — all fields are optional. ' +
87
+ 'Does not change status (use change_use_case_status for that).',
88
+ inputSchema: {
89
+ type: 'object',
90
+ properties: {
91
+ productId: { type: 'string', description: 'Product ID (falls back to AUTOPROJECT_PRODUCT_ID env var)' },
92
+ useCaseId: { type: 'string', description: 'Use case ID to update (required)' },
93
+ name: { type: 'string', description: 'New name' },
94
+ description: { type: 'string', description: 'New description' },
95
+ actor: { type: 'string', description: 'Updated actor' },
96
+ trigger: { type: 'string', description: 'Updated trigger' },
97
+ preconditions: { type: 'string', description: 'Updated preconditions' },
98
+ postconditions: { type: 'string', description: 'Updated postconditions' },
99
+ priority: { type: 'string', enum: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'], description: 'Updated priority' },
100
+ complexity: { type: 'string', enum: ['LOW', 'MEDIUM', 'HIGH', 'VERY_HIGH'], description: 'Updated complexity' },
101
+ moduleId: { type: 'string', description: 'Updated module ID' },
102
+ featureGroupId: { type: 'string', description: 'Updated feature group ID' },
103
+ featureId: { type: 'string', description: 'Updated feature ID' },
104
+ tags: { type: 'array', items: { type: 'string' }, description: 'Replacement tag list' },
105
+ estimatedMinutes: { type: 'number', description: 'Updated estimated minutes' },
106
+ changeSummary: { type: 'string', description: 'Brief note describing what was changed (for audit log)' },
107
+ },
108
+ required: ['useCaseId'],
109
+ },
110
+ },
111
+ {
112
+ name: 'change_use_case_status',
113
+ description: 'Change the status of a use case. Allowed transitions: ' +
114
+ 'DRAFT → UNDER_REVIEW or ARCHIVED, ' +
115
+ 'UNDER_REVIEW → APPROVED, DRAFT, or ARCHIVED, ' +
116
+ 'APPROVED → DEPRECATED or ARCHIVED, ' +
117
+ 'DEPRECATED → ARCHIVED.',
118
+ inputSchema: {
119
+ type: 'object',
120
+ properties: {
121
+ productId: { type: 'string', description: 'Product ID (falls back to AUTOPROJECT_PRODUCT_ID env var)' },
122
+ useCaseId: { type: 'string', description: 'Use case ID (required)' },
123
+ status: {
124
+ type: 'string',
125
+ enum: ['DRAFT', 'UNDER_REVIEW', 'APPROVED', 'DEPRECATED', 'ARCHIVED'],
126
+ description: 'Target status (required)',
127
+ },
128
+ reason: { type: 'string', description: 'Reason for the status change (optional, logged in audit)' },
129
+ },
130
+ required: ['useCaseId', 'status'],
131
+ },
132
+ },
133
+ ];
134
+ async function handleUseCaseTool(name, args) {
135
+ const productId = resolveProductId(args);
136
+ switch (name) {
137
+ case 'list_use_cases': {
138
+ const params = {};
139
+ if (args.status)
140
+ params.status = args.status;
141
+ if (args.priority)
142
+ params.priority = args.priority;
143
+ if (args.moduleId)
144
+ params.moduleId = args.moduleId;
145
+ if (args.featureGroupId)
146
+ params.featureGroupId = args.featureGroupId;
147
+ if (args.featureId)
148
+ params.featureId = args.featureId;
149
+ if (args.search)
150
+ params.search = args.search;
151
+ if (args.limit)
152
+ params.limit = args.limit;
153
+ if (args.cursor)
154
+ params.cursor = args.cursor;
155
+ const result = await (0, client_js_1.apiGet)(`/products/${productId}/use-cases`, params);
156
+ const items = result.items ?? [];
157
+ const lines = items.map((uc) => {
158
+ const u = uc;
159
+ return `- [${u.id}] ${u.name} | status: ${u.status} | priority: ${u.priority} | complexity: ${u.complexity}`;
160
+ });
161
+ return [
162
+ `Found ${items.length} use case(s):`,
163
+ ...lines,
164
+ result.nextCursor ? `\nNext cursor: ${result.nextCursor}` : '',
165
+ ]
166
+ .filter(Boolean)
167
+ .join('\n');
168
+ }
169
+ case 'get_use_case': {
170
+ const uc = await (0, client_js_1.apiGet)(`/products/${productId}/use-cases/${args.useCaseId}`);
171
+ const steps = uc.steps ?? [];
172
+ const stepLines = steps.map((s) => {
173
+ const step = s;
174
+ return ` ${step.stepNumber}. ${step.actionDescription}${step.expectedBehavior ? ` → ${step.expectedBehavior}` : ''}`;
175
+ });
176
+ return [
177
+ `**${uc.name}** [${uc.id}]`,
178
+ `Status: ${uc.status} | Priority: ${uc.priority} | Complexity: ${uc.complexity}`,
179
+ uc.actor ? `Actor: ${uc.actor}` : null,
180
+ uc.trigger ? `Trigger: ${uc.trigger}` : null,
181
+ uc.description ? `\nDescription:\n${uc.description}` : null,
182
+ uc.preconditions ? `\nPreconditions:\n${uc.preconditions}` : null,
183
+ uc.postconditions ? `\nPostconditions:\n${uc.postconditions}` : null,
184
+ stepLines.length ? `\nMain Flow Steps:\n${stepLines.join('\n')}` : null,
185
+ ]
186
+ .filter(Boolean)
187
+ .join('\n');
188
+ }
189
+ case 'create_use_case': {
190
+ const body = { name: args.name };
191
+ if (args.description !== undefined)
192
+ body.description = args.description;
193
+ if (args.actor !== undefined)
194
+ body.actor = args.actor;
195
+ if (args.trigger !== undefined)
196
+ body.trigger = args.trigger;
197
+ if (args.preconditions !== undefined)
198
+ body.preconditions = args.preconditions;
199
+ if (args.postconditions !== undefined)
200
+ body.postconditions = args.postconditions;
201
+ if (args.priority !== undefined)
202
+ body.priority = args.priority;
203
+ if (args.complexity !== undefined)
204
+ body.complexity = args.complexity;
205
+ if (args.moduleId !== undefined)
206
+ body.moduleId = args.moduleId;
207
+ if (args.featureGroupId !== undefined)
208
+ body.featureGroupId = args.featureGroupId;
209
+ if (args.featureId !== undefined)
210
+ body.featureId = args.featureId;
211
+ if (args.tags !== undefined)
212
+ body.tags = args.tags;
213
+ if (args.estimatedMinutes !== undefined)
214
+ body.estimatedMinutes = args.estimatedMinutes;
215
+ const result = await (0, client_js_1.apiPost)(`/products/${productId}/use-cases`, body);
216
+ return `Use case created successfully.\nID: ${result.id}\nName: ${result.name}\nStatus: ${result.status} (DRAFT)`;
217
+ }
218
+ case 'update_use_case': {
219
+ const body = {};
220
+ const fields = ['name', 'description', 'actor', 'trigger', 'preconditions', 'postconditions',
221
+ 'priority', 'complexity', 'moduleId', 'featureGroupId', 'featureId', 'tags',
222
+ 'estimatedMinutes', 'changeSummary'];
223
+ for (const f of fields) {
224
+ if (args[f] !== undefined)
225
+ body[f] = args[f];
226
+ }
227
+ await (0, client_js_1.apiPatch)(`/products/${productId}/use-cases/${args.useCaseId}`, body);
228
+ return `Use case ${args.useCaseId} updated successfully.`;
229
+ }
230
+ case 'change_use_case_status': {
231
+ const result = await (0, client_js_1.apiPatch)(`/products/${productId}/use-cases/${args.useCaseId}/status`, { status: args.status, reason: args.reason ?? null });
232
+ return `Use case ${result.id} status changed to ${result.status}.`;
233
+ }
234
+ default:
235
+ throw new Error(`Unknown use case tool: ${name}`);
236
+ }
237
+ }
238
+ //# sourceMappingURL=useCaseTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCaseTools.js","sourceRoot":"","sources":["../../src/tools/useCaseTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP Tools: Work lease management
3
+ * Tools: list_work_items, claim_work, heartbeat_work, complete_work
4
+ */
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+ export declare const workToolDefinitions: Tool[];
7
+ export declare function handleWorkTool(name: string, args: Record<string, unknown>): Promise<unknown>;
8
+ //# sourceMappingURL=workTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workTools.d.ts","sourceRoot":"","sources":["../../src/tools/workTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,mBAAmB,EAAE,IAAI,EAyDrC,CAAC;AAEF,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBA8B/E"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Tools: Work lease management
4
+ * Tools: list_work_items, claim_work, heartbeat_work, complete_work
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.workToolDefinitions = void 0;
8
+ exports.handleWorkTool = handleWorkTool;
9
+ const client_js_1 = require("../client.js");
10
+ exports.workToolDefinitions = [
11
+ {
12
+ name: 'list_work_items',
13
+ description: 'List available work items (features) that can be claimed by an agent.',
14
+ inputSchema: {
15
+ type: 'object',
16
+ properties: {
17
+ productId: { type: 'string', description: 'Product ID' },
18
+ leaseState: { type: 'string', enum: ['available', 'claimed', 'all'], description: 'Filter by lease state (default: available)' },
19
+ limit: { type: 'number', description: 'Max results' },
20
+ },
21
+ required: ['productId'],
22
+ },
23
+ },
24
+ {
25
+ name: 'claim_work',
26
+ description: 'Claim exclusive ownership of a work item (feature) for 30 minutes. Returns a lease ID.',
27
+ inputSchema: {
28
+ type: 'object',
29
+ properties: {
30
+ productId: { type: 'string', description: 'Product ID' },
31
+ workItemId: { type: 'string', description: 'Feature/work item ID to claim' },
32
+ entityType: { type: 'string', description: 'Entity type (default: feature)' },
33
+ },
34
+ required: ['productId', 'workItemId'],
35
+ },
36
+ },
37
+ {
38
+ name: 'heartbeat_work',
39
+ description: 'Extend a work lease by 30 minutes to prevent expiry during long operations.',
40
+ inputSchema: {
41
+ type: 'object',
42
+ properties: {
43
+ productId: { type: 'string', description: 'Product ID' },
44
+ workItemId: { type: 'string', description: 'Work item ID' },
45
+ leaseId: { type: 'string', description: 'Lease ID from claim_work' },
46
+ },
47
+ required: ['productId', 'workItemId', 'leaseId'],
48
+ },
49
+ },
50
+ {
51
+ name: 'complete_work',
52
+ description: 'Mark a work item as complete and release the lease. Attach PR URL, commit SHA, or test result ID.',
53
+ inputSchema: {
54
+ type: 'object',
55
+ properties: {
56
+ productId: { type: 'string', description: 'Product ID' },
57
+ workItemId: { type: 'string', description: 'Work item ID' },
58
+ leaseId: { type: 'string', description: 'Lease ID from claim_work' },
59
+ status: { type: 'string', description: 'New status for the work item' },
60
+ prUrl: { type: 'string', description: 'URL of the pull request (optional)' },
61
+ commitSha: { type: 'string', description: 'Git commit SHA (optional)' },
62
+ testResultId: { type: 'string', description: 'Test result ID (optional)' },
63
+ },
64
+ required: ['productId', 'workItemId', 'leaseId'],
65
+ },
66
+ },
67
+ ];
68
+ async function handleWorkTool(name, args) {
69
+ switch (name) {
70
+ case 'list_work_items': {
71
+ return await (0, client_js_1.apiGet)(`/products/${args.productId}/work-items`, {
72
+ leaseState: args.leaseState ?? 'available',
73
+ limit: args.limit,
74
+ });
75
+ }
76
+ case 'claim_work': {
77
+ return await (0, client_js_1.apiPost)(`/products/${args.productId}/work-items/${args.workItemId}/claim`, {
78
+ entityType: args.entityType ?? 'feature',
79
+ });
80
+ }
81
+ case 'heartbeat_work': {
82
+ return await (0, client_js_1.apiPost)(`/products/${args.productId}/work-items/${args.workItemId}/heartbeat`, {
83
+ leaseId: args.leaseId,
84
+ });
85
+ }
86
+ case 'complete_work': {
87
+ return await (0, client_js_1.apiPost)(`/products/${args.productId}/work-items/${args.workItemId}/complete`, {
88
+ leaseId: args.leaseId,
89
+ status: args.status,
90
+ prUrl: args.prUrl,
91
+ commitSha: args.commitSha,
92
+ testResultId: args.testResultId,
93
+ });
94
+ }
95
+ default:
96
+ throw new Error(`Unknown work tool: ${name}`);
97
+ }
98
+ }
99
+ //# sourceMappingURL=workTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workTools.js","sourceRoot":"","sources":["../../src/tools/workTools.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "autoproject-mcp",
3
+ "version": "1.0.0",
4
+ "description": "AutoProject MCP server for IDE agent integration (GitHub Copilot, Cursor, Claude Dev)",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "autoproject-mcp": "dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist/**/*",
11
+ "README.md"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "start": "node dist/index.js",
16
+ "dev": "ts-node src/index.ts",
17
+ "prepublishOnly": "npm run build"
18
+ },
19
+ "dependencies": {
20
+ "@modelcontextprotocol/sdk": "^1.0.0",
21
+ "axios": "^1.7.0"
22
+ },
23
+ "devDependencies": {
24
+ "@types/node": "^20.0.0",
25
+ "typescript": "^5.3.0",
26
+ "ts-node": "^10.9.0"
27
+ },
28
+ "engines": {
29
+ "node": ">=18.0.0"
30
+ },
31
+ "license": "MIT",
32
+ "keywords": ["mcp", "autoproject", "ide-agent", "copilot", "cursor"],
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/autoproject/autoproject-mcp.git"
36
+ }
37
+ }