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
package/README.md ADDED
@@ -0,0 +1,135 @@
1
+ # autoproject-mcp
2
+
3
+ AutoProject MCP server for IDE agent integration.
4
+
5
+ ## Installation
6
+
7
+ ### Option A — npm (once published)
8
+ ```sh
9
+ npx autoproject-mcp
10
+ ```
11
+
12
+ ### Option B — local file (pre-built tarball)
13
+ ```sh
14
+ npm install -g /path/to/autoproject-mcp-1.0.0.tgz
15
+ ```
16
+ Then use `autoproject-mcp` as the command in your IDE config.
17
+
18
+ ### Option C — build from source
19
+ ```sh
20
+ git clone <repo>
21
+ cd mcp
22
+ npm install
23
+ npm run build
24
+ node dist/index.js
25
+ ```
26
+
27
+ ## Setup
28
+
29
+ ### 1. Configure IDE
30
+
31
+ **VS Code (GitHub Copilot / Claude Dev)** — add to `.vscode/mcp.json`:
32
+ ```json
33
+ {
34
+ "servers": {
35
+ "autoproject": {
36
+ "command": "npx",
37
+ "args": ["autoproject-mcp"],
38
+ "env": {
39
+ "AUTOPROJECT_API_KEY": "ap_live_...",
40
+ "AUTOPROJECT_API_URL": "https://your-autoproject-instance.com/api"
41
+ }
42
+ }
43
+ }
44
+ }
45
+ ```
46
+
47
+ **Cursor** — add to `~/.cursor/mcp.json`:
48
+ ```json
49
+ {
50
+ "mcpServers": {
51
+ "autoproject": {
52
+ "command": "npx",
53
+ "args": ["autoproject-mcp"],
54
+ "env": {
55
+ "AUTOPROJECT_API_KEY": "ap_live_...",
56
+ "AUTOPROJECT_API_URL": "https://your-autoproject-instance.com/api"
57
+ }
58
+ }
59
+ }
60
+ }
61
+ ```
62
+
63
+ **Devin / other clients** — add to config:
64
+ ```json
65
+ {
66
+ "mcpServers": {
67
+ "autoproject": {
68
+ "command": "npx",
69
+ "args": ["-y", "autoproject-mcp"],
70
+ "env": {
71
+ "AUTOPROJECT_API_KEY": "ap_live_...",
72
+ "AUTOPROJECT_BASE_URL": "https://your-autoproject-instance.com/api",
73
+ "AUTOPROJECT_PRODUCT_ID": "<product-uuid>",
74
+ "AUTOPROJECT_PRODUCT_SLUG": "<product-uuid-or-slug>"
75
+ }
76
+ }
77
+ }
78
+ }
79
+ ```
80
+
81
+ ### 2. Environment Variables
82
+
83
+ | Variable | Required | Description |
84
+ |----------|----------|-------------|
85
+ | `AUTOPROJECT_API_KEY` | ✅ | Agent API key (format: `ap_live_...`) |
86
+ | `AUTOPROJECT_API_URL` | ✅ | AutoProject API base URL (e.g. `https://your-host.com/api`) |
87
+ | `AUTOPROJECT_BASE_URL` | ✅ | Alias for `AUTOPROJECT_API_URL` — either name is accepted |
88
+ | `AUTOPROJECT_PRODUCT_SLUG` | optional | Default product slug / ID used in resource URIs |
89
+ | `AUTOPROJECT_AGENT_ID` | optional | Agent identifier for audit logs (default: `autoproject-mcp`) |
90
+
91
+ > **Note:** `AUTOPROJECT_API_URL` and `AUTOPROJECT_BASE_URL` are interchangeable — the server accepts either name. `AUTOPROJECT_API_URL` takes precedence if both are set.
92
+
93
+ ### 3. Generate API Key
94
+
95
+ Go to **Settings → AgentConnect** in AutoProject and create a new API key.
96
+
97
+ ## Available Tools (22)
98
+
99
+ | Tool | Description |
100
+ |------|-------------|
101
+ | `ping` | Health check |
102
+ | `list_products` | List accessible products |
103
+ | `get_product_context` | Load LLM context bundle |
104
+ | `search_product` | Full-text search |
105
+ | `get_feature_detail` | Feature details + acceptance criteria |
106
+ | `get_task_detail` | Task details |
107
+ | `list_features` | List features with filters |
108
+ | `update_status` | Update entity status |
109
+ | `list_work_items` | Available work items |
110
+ | `claim_work` | Claim exclusive work item |
111
+ | `heartbeat_work` | Extend work lease |
112
+ | `complete_work` | Mark work complete |
113
+ | `link_evidence` | Link PR/commit/branch |
114
+ | `add_comment` | Add agent comment |
115
+ | `list_defects` | List defects |
116
+ | `get_defect_detail` | Defect details |
117
+ | `create_defect` | Report a bug |
118
+ | `update_defect_status` | Update defect status |
119
+ | `list_test_scripts` | List test scripts |
120
+ | `record_test_result` | Record test execution result |
121
+ | `suggest_tests` | Create draft test suggestions |
122
+ | `submit_copilot_task` | Submit code generation task |
123
+ | `poll_operation` | Poll async operation status |
124
+
125
+ ## Autonomy Levels
126
+
127
+ - **L0** — Read only
128
+ - **L1** — Suggest only
129
+ - **L2** — Supervised writes (default)
130
+ - **L3** — Autonomous
131
+ - **L4** — Full automation
132
+
133
+ ## License
134
+
135
+ MIT
@@ -0,0 +1,14 @@
1
+ /**
2
+ * AutoProject API client for MCP server.
3
+ * Reads AUTOPROJECT_API_URL and AUTOPROJECT_API_KEY from environment.
4
+ */
5
+ import { AxiosInstance } from 'axios';
6
+ export declare const client: AxiosInstance;
7
+ /** Human-readable product slug for display purposes (e.g. 'my-product'). Falls back to empty string. */
8
+ export declare const PRODUCT_SLUG: string;
9
+ export declare function apiGet<T = unknown>(path: string, params?: Record<string, unknown>): Promise<T>;
10
+ export declare function apiPost<T = unknown>(path: string, body?: unknown): Promise<T>;
11
+ export declare function apiPatch<T = unknown>(path: string, body?: unknown): Promise<T>;
12
+ export declare function apiPut<T = unknown>(path: string, body?: unknown): Promise<T>;
13
+ export declare function apiDelete<T = unknown>(path: string): Promise<T>;
14
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAgC7C,eAAO,MAAM,MAAM,eAAiB,CAAC;AAErC,wGAAwG;AACxG,eAAO,MAAM,YAAY,QAA6C,CAAC;AAEvE,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAGpG;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAGnF;AAED,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAGpF;AAED,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAGlF;AAED,wBAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAGrE"}
package/dist/client.js ADDED
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /**
3
+ * AutoProject API client for MCP server.
4
+ * Reads AUTOPROJECT_API_URL and AUTOPROJECT_API_KEY from environment.
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PRODUCT_SLUG = exports.client = void 0;
11
+ exports.apiGet = apiGet;
12
+ exports.apiPost = apiPost;
13
+ exports.apiPatch = apiPatch;
14
+ exports.apiPut = apiPut;
15
+ exports.apiDelete = apiDelete;
16
+ const axios_1 = __importDefault(require("axios"));
17
+ function createClient() {
18
+ const apiUrl = process.env.AUTOPROJECT_API_URL || process.env.AUTOPROJECT_BASE_URL || 'http://localhost:3001/api';
19
+ const apiKey = process.env.AUTOPROJECT_API_KEY || '';
20
+ if (!apiKey) {
21
+ console.error('[autoproject-mcp] Warning: AUTOPROJECT_API_KEY is not set.');
22
+ }
23
+ const instance = axios_1.default.create({
24
+ baseURL: `${apiUrl}/agent/v1`,
25
+ timeout: 30000,
26
+ headers: {
27
+ Authorization: `Bearer ${apiKey}`,
28
+ 'Content-Type': 'application/json',
29
+ 'X-Agent-ID': process.env.AUTOPROJECT_AGENT_ID || 'autoproject-mcp',
30
+ },
31
+ });
32
+ instance.interceptors.response.use((res) => res, (err) => {
33
+ const msg = err.response?.data?.error?.message ?? err.message ?? 'Unknown error';
34
+ const status = err.response?.status ?? 0;
35
+ throw new Error(`[${status}] ${msg}`);
36
+ });
37
+ return instance;
38
+ }
39
+ exports.client = createClient();
40
+ /** Human-readable product slug for display purposes (e.g. 'my-product'). Falls back to empty string. */
41
+ exports.PRODUCT_SLUG = process.env.AUTOPROJECT_PRODUCT_SLUG ?? '';
42
+ async function apiGet(path, params) {
43
+ const res = await exports.client.get(path, { params });
44
+ return res.data.data;
45
+ }
46
+ async function apiPost(path, body) {
47
+ const res = await exports.client.post(path, body);
48
+ return res.data.data;
49
+ }
50
+ async function apiPatch(path, body) {
51
+ const res = await exports.client.patch(path, body);
52
+ return res.data.data;
53
+ }
54
+ async function apiPut(path, body) {
55
+ const res = await exports.client.put(path, body);
56
+ return res.data.data;
57
+ }
58
+ async function apiDelete(path) {
59
+ const res = await exports.client.delete(path);
60
+ return res.data.data;
61
+ }
62
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAuCH,wBAGC;AAED,0BAGC;AAED,4BAGC;AAED,wBAGC;AAED,8BAGC;AA5DD,kDAA6C;AAE7C,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,2BAA2B,CAAC;IAClH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;IAErD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,QAAQ,GAAG,eAAK,CAAC,MAAM,CAAC;QAC5B,OAAO,EAAE,GAAG,MAAM,WAAW;QAC7B,OAAO,EAAE,KAAM;QACf,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,iBAAiB;SACpE;KACF,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAChC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EACZ,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,eAAe,CAAC;QACjF,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC,CACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAEY,QAAA,MAAM,GAAG,YAAY,EAAE,CAAC;AAErC,wGAAwG;AAC3F,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;AAEhE,KAAK,UAAU,MAAM,CAAc,IAAY,EAAE,MAAgC;IACtF,MAAM,GAAG,GAAG,MAAM,cAAM,CAAC,GAAG,CAAc,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,OAAO,CAAc,IAAY,EAAE,IAAc;IACrE,MAAM,GAAG,GAAG,MAAM,cAAM,CAAC,IAAI,CAAc,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAc,IAAY,EAAE,IAAc;IACtE,MAAM,GAAG,GAAG,MAAM,cAAM,CAAC,KAAK,CAAc,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,MAAM,CAAc,IAAY,EAAE,IAAc;IACpE,MAAM,GAAG,GAAG,MAAM,cAAM,CAAC,GAAG,CAAc,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,SAAS,CAAc,IAAY;IACvD,MAAM,GAAG,GAAG,MAAM,cAAM,CAAC,MAAM,CAAc,IAAI,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * AutoProject MCP Server
4
+ *
5
+ * Implements the Model Context Protocol (MCP) over stdio transport.
6
+ * Connect IDE agents (GitHub Copilot, Cursor, Claude Dev) to AutoProject.
7
+ *
8
+ * Usage:
9
+ * npx autoproject-mcp
10
+ *
11
+ * Environment variables:
12
+ * AUTOPROJECT_API_URL — AutoProject API URL (default: http://localhost:3001/api)
13
+ * AUTOPROJECT_API_KEY — Agent API key (required, format: ap_live_...)
14
+ * AUTOPROJECT_AGENT_ID — Agent identifier for audit logs (default: autoproject-mcp)
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
package/dist/index.js ADDED
@@ -0,0 +1,188 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * AutoProject MCP Server
5
+ *
6
+ * Implements the Model Context Protocol (MCP) over stdio transport.
7
+ * Connect IDE agents (GitHub Copilot, Cursor, Claude Dev) to AutoProject.
8
+ *
9
+ * Usage:
10
+ * npx autoproject-mcp
11
+ *
12
+ * Environment variables:
13
+ * AUTOPROJECT_API_URL — AutoProject API URL (default: http://localhost:3001/api)
14
+ * AUTOPROJECT_API_KEY — Agent API key (required, format: ap_live_...)
15
+ * AUTOPROJECT_AGENT_ID — Agent identifier for audit logs (default: autoproject-mcp)
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
19
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
20
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
21
+ const productTools_js_1 = require("./tools/productTools.js");
22
+ const hierarchyTools_js_1 = require("./tools/hierarchyTools.js");
23
+ const workTools_js_1 = require("./tools/workTools.js");
24
+ const evidenceTools_js_1 = require("./tools/evidenceTools.js");
25
+ const defectTools_js_1 = require("./tools/defectTools.js");
26
+ const testTools_js_1 = require("./tools/testTools.js");
27
+ const copilotTools_js_1 = require("./tools/copilotTools.js");
28
+ const importTools_js_1 = require("./tools/importTools.js");
29
+ const useCaseTools_js_1 = require("./tools/useCaseTools.js");
30
+ const todoTools_js_1 = require("./tools/todoTools.js");
31
+ const launchPlanTools_js_1 = require("./tools/launchPlanTools.js");
32
+ const ticketTools_js_1 = require("./tools/ticketTools.js");
33
+ const documentTools_js_1 = require("./tools/documentTools.js");
34
+ const applicationTools_js_1 = require("./tools/applicationTools.js");
35
+ const releaseCycleLinkTools_js_1 = require("./tools/releaseCycleLinkTools.js");
36
+ const screenTools_js_1 = require("./tools/screenTools.js");
37
+ const index_js_2 = require("./resources/index.js");
38
+ const index_js_3 = require("./prompts/index.js");
39
+ const ALL_TOOLS = [
40
+ ...productTools_js_1.productToolDefinitions,
41
+ ...hierarchyTools_js_1.hierarchyToolDefinitions,
42
+ ...workTools_js_1.workToolDefinitions,
43
+ ...evidenceTools_js_1.evidenceToolDefinitions,
44
+ ...defectTools_js_1.defectToolDefinitions,
45
+ ...testTools_js_1.testToolDefinitions,
46
+ ...copilotTools_js_1.copilotToolDefinitions,
47
+ ...importTools_js_1.importToolDefinitions,
48
+ ...useCaseTools_js_1.useCaseToolDefinitions,
49
+ ...todoTools_js_1.todoToolDefinitions,
50
+ ...launchPlanTools_js_1.launchPlanToolDefinitions,
51
+ ...ticketTools_js_1.ticketToolDefinitions,
52
+ ...documentTools_js_1.documentToolDefinitions,
53
+ ...applicationTools_js_1.applicationToolDefinitions,
54
+ ...releaseCycleLinkTools_js_1.releaseCycleLinkToolDefinitions,
55
+ ...screenTools_js_1.screenToolDefinitions,
56
+ ];
57
+ const TOOL_HANDLER_MAP = {
58
+ ping: productTools_js_1.handleProductTool,
59
+ get_capabilities: productTools_js_1.handleProductTool,
60
+ list_products: productTools_js_1.handleProductTool,
61
+ get_product_context: productTools_js_1.handleProductTool,
62
+ search_product: productTools_js_1.handleProductTool,
63
+ get_feature_detail: hierarchyTools_js_1.handleHierarchyTool,
64
+ get_task_detail: hierarchyTools_js_1.handleHierarchyTool,
65
+ list_features: hierarchyTools_js_1.handleHierarchyTool,
66
+ update_status: hierarchyTools_js_1.handleHierarchyTool,
67
+ list_work_items: workTools_js_1.handleWorkTool,
68
+ claim_work: workTools_js_1.handleWorkTool,
69
+ heartbeat_work: workTools_js_1.handleWorkTool,
70
+ complete_work: workTools_js_1.handleWorkTool,
71
+ link_evidence: evidenceTools_js_1.handleEvidenceTool,
72
+ add_comment: evidenceTools_js_1.handleEvidenceTool,
73
+ list_defects: defectTools_js_1.handleDefectTool,
74
+ get_defect_detail: defectTools_js_1.handleDefectTool,
75
+ get_defect_attachments: defectTools_js_1.handleDefectTool,
76
+ create_defect: defectTools_js_1.handleDefectTool,
77
+ update_defect: defectTools_js_1.handleDefectTool,
78
+ update_defect_status: defectTools_js_1.handleDefectTool,
79
+ list_test_scripts: testTools_js_1.handleTestTool,
80
+ record_test_result: testTools_js_1.handleTestTool,
81
+ suggest_tests: testTools_js_1.handleTestTool,
82
+ submit_copilot_task: copilotTools_js_1.handleCopilotTool,
83
+ poll_operation: copilotTools_js_1.handleCopilotTool,
84
+ import_hierarchy_csv: importTools_js_1.handleImportTool,
85
+ list_use_cases: useCaseTools_js_1.handleUseCaseTool,
86
+ get_use_case: useCaseTools_js_1.handleUseCaseTool,
87
+ create_use_case: useCaseTools_js_1.handleUseCaseTool,
88
+ update_use_case: useCaseTools_js_1.handleUseCaseTool,
89
+ change_use_case_status: useCaseTools_js_1.handleUseCaseTool,
90
+ list_todos: todoTools_js_1.handleTodoTool,
91
+ update_todo_status: todoTools_js_1.handleTodoTool,
92
+ list_launch_plans: launchPlanTools_js_1.handleLaunchPlanTool,
93
+ get_launch_plan: launchPlanTools_js_1.handleLaunchPlanTool,
94
+ create_launch_plan: launchPlanTools_js_1.handleLaunchPlanTool,
95
+ update_launch_plan: launchPlanTools_js_1.handleLaunchPlanTool,
96
+ change_launch_plan_status: launchPlanTools_js_1.handleLaunchPlanTool,
97
+ list_launch_activities: launchPlanTools_js_1.handleLaunchPlanTool,
98
+ create_launch_activity: launchPlanTools_js_1.handleLaunchPlanTool,
99
+ update_launch_activity: launchPlanTools_js_1.handleLaunchPlanTool,
100
+ change_activity_status: launchPlanTools_js_1.handleLaunchPlanTool,
101
+ list_tickets: ticketTools_js_1.handleTicketTool,
102
+ get_ticket: ticketTools_js_1.handleTicketTool,
103
+ update_ticket_status: ticketTools_js_1.handleTicketTool,
104
+ list_documents: documentTools_js_1.handleDocumentTool,
105
+ get_document: documentTools_js_1.handleDocumentTool,
106
+ get_document_sections: documentTools_js_1.handleDocumentTool,
107
+ search_documents: documentTools_js_1.handleDocumentTool,
108
+ list_applications: applicationTools_js_1.handleApplicationTool,
109
+ get_feature_applications: applicationTools_js_1.handleApplicationTool,
110
+ set_feature_applications: applicationTools_js_1.handleApplicationTool,
111
+ get_subfeature_applications: applicationTools_js_1.handleApplicationTool,
112
+ set_subfeature_applications: applicationTools_js_1.handleApplicationTool,
113
+ get_feature_group_release_cycle: releaseCycleLinkTools_js_1.handleReleaseCycleLinkTool,
114
+ set_feature_group_release_cycle: releaseCycleLinkTools_js_1.handleReleaseCycleLinkTool,
115
+ get_feature_release_cycle: releaseCycleLinkTools_js_1.handleReleaseCycleLinkTool,
116
+ set_feature_release_cycle: releaseCycleLinkTools_js_1.handleReleaseCycleLinkTool,
117
+ list_screens: screenTools_js_1.handleScreenTool,
118
+ get_screen: screenTools_js_1.handleScreenTool,
119
+ create_screen: screenTools_js_1.handleScreenTool,
120
+ update_screen: screenTools_js_1.handleScreenTool,
121
+ delete_screen: screenTools_js_1.handleScreenTool,
122
+ };
123
+ async function main() {
124
+ const server = new index_js_1.Server({ name: 'autoproject-mcp', version: '1.0.0' }, {
125
+ capabilities: {
126
+ tools: {},
127
+ resources: {},
128
+ prompts: {},
129
+ },
130
+ });
131
+ // ─── Tools ──────────────────────────────────────────────────────────────────
132
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
133
+ tools: ALL_TOOLS,
134
+ }));
135
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
136
+ const { name, arguments: args } = request.params;
137
+ const handler = TOOL_HANDLER_MAP[name];
138
+ if (!handler) {
139
+ throw new Error(`Unknown tool: ${name}`);
140
+ }
141
+ const result = await handler(name, (args ?? {}));
142
+ return {
143
+ content: [
144
+ {
145
+ type: 'text',
146
+ text: JSON.stringify(result, null, 2),
147
+ },
148
+ ],
149
+ };
150
+ });
151
+ // ─── Resources ───────────────────────────────────────────────────────────────
152
+ server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => ({
153
+ resources: [],
154
+ }));
155
+ server.setRequestHandler(types_js_1.ListResourceTemplatesRequestSchema, async () => ({
156
+ resourceTemplates: index_js_2.resourceTemplates,
157
+ }));
158
+ server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) => {
159
+ const { uri } = request.params;
160
+ const { content, mimeType } = await (0, index_js_2.handleResourceRead)(uri);
161
+ return {
162
+ contents: [
163
+ {
164
+ uri,
165
+ mimeType,
166
+ text: content,
167
+ },
168
+ ],
169
+ };
170
+ });
171
+ // ─── Prompts ─────────────────────────────────────────────────────────────────
172
+ server.setRequestHandler(types_js_1.ListPromptsRequestSchema, async () => ({
173
+ prompts: index_js_3.promptDefinitions,
174
+ }));
175
+ server.setRequestHandler(types_js_1.GetPromptRequestSchema, async (request) => {
176
+ const { name, arguments: args } = request.params;
177
+ return await (0, index_js_3.handleGetPrompt)(name, (args ?? {}));
178
+ });
179
+ // ─── Start ───────────────────────────────────────────────────────────────────
180
+ const transport = new stdio_js_1.StdioServerTransport();
181
+ await server.connect(transport);
182
+ console.error('[autoproject-mcp] Server started on stdio transport.');
183
+ }
184
+ main().catch((err) => {
185
+ console.error('[autoproject-mcp] Fatal error:', err);
186
+ process.exit(1);
187
+ });
188
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * MCP Prompts: Pre-built prompt templates for common agent workflows.
3
+ *
4
+ * 5 prompts:
5
+ * 1. start_session — Prime agent context at session start
6
+ * 2. implement_feature — Complete feature implementation workflow
7
+ * 3. review_and_fix — Code review → defect creation workflow
8
+ * 4. write_tests — Test script suggestion workflow
9
+ * 5. daily_standup — Summarise project status
10
+ */
11
+ import { Prompt, GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
12
+ export declare const promptDefinitions: Prompt[];
13
+ export declare function handleGetPrompt(name: string, args: Record<string, string>): Promise<GetPromptResult>;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAG7E,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAsCrC,CAAC;AAEF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAwE1G"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Prompts: Pre-built prompt templates for common agent workflows.
4
+ *
5
+ * 5 prompts:
6
+ * 1. start_session — Prime agent context at session start
7
+ * 2. implement_feature — Complete feature implementation workflow
8
+ * 3. review_and_fix — Code review → defect creation workflow
9
+ * 4. write_tests — Test script suggestion workflow
10
+ * 5. daily_standup — Summarise project status
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.promptDefinitions = void 0;
14
+ exports.handleGetPrompt = handleGetPrompt;
15
+ const client_js_1 = require("../client.js");
16
+ exports.promptDefinitions = [
17
+ {
18
+ name: 'start_session',
19
+ description: 'Load product context and initialise agent state at the start of a session.',
20
+ arguments: [
21
+ { name: 'productId', description: 'Product ID to load context for', required: true },
22
+ ],
23
+ },
24
+ {
25
+ name: 'implement_feature',
26
+ description: 'Full workflow: claim a feature → update status → implement → link evidence → add comment.',
27
+ arguments: [
28
+ { name: 'productId', description: 'Product ID', required: true },
29
+ { name: 'featureId', description: 'Feature ID to implement', required: true },
30
+ ],
31
+ },
32
+ {
33
+ name: 'review_and_fix',
34
+ description: 'Review code changes, identify issues, create defect reports if needed.',
35
+ arguments: [
36
+ { name: 'productId', description: 'Product ID', required: true },
37
+ ],
38
+ },
39
+ {
40
+ name: 'write_tests',
41
+ description: 'Analyse a feature and suggest comprehensive test scripts.',
42
+ arguments: [
43
+ { name: 'productId', description: 'Product ID', required: true },
44
+ { name: 'featureId', description: 'Feature ID to write tests for', required: true },
45
+ ],
46
+ },
47
+ {
48
+ name: 'daily_standup',
49
+ description: 'Generate a daily status summary for the product.',
50
+ arguments: [
51
+ { name: 'productId', description: 'Product ID', required: true },
52
+ ],
53
+ },
54
+ ];
55
+ async function handleGetPrompt(name, args) {
56
+ switch (name) {
57
+ case 'start_session': {
58
+ const context = await (0, client_js_1.apiGet)(`/products/${args.productId}/context-bundle`).catch(() => null);
59
+ return {
60
+ messages: [
61
+ {
62
+ role: 'user',
63
+ content: {
64
+ type: 'text',
65
+ text: `You are an AI coding agent connected to AutoProject. Here is the current project state:\n\n${JSON.stringify(context, null, 2)}\n\nUse the available tools to work on features, update statuses, link evidence, and record test results. Always claim a work item before modifying it, and release it when done.`,
66
+ },
67
+ },
68
+ ],
69
+ };
70
+ }
71
+ case 'implement_feature': {
72
+ return {
73
+ messages: [
74
+ {
75
+ role: 'user',
76
+ content: {
77
+ type: 'text',
78
+ text: `Implement feature ${args.featureId} in product ${args.productId}.\n\nFollow this workflow:\n1. Call get_feature_detail to understand requirements\n2. Call claim_work to reserve the work item\n3. Implement the code changes\n4. Call update_status with status=IN_REVIEW\n5. Call link_evidence with your PR or commit details\n6. Call add_comment to summarise what you did\n7. Call complete_work when done`,
79
+ },
80
+ },
81
+ ],
82
+ };
83
+ }
84
+ case 'review_and_fix': {
85
+ return {
86
+ messages: [
87
+ {
88
+ role: 'user',
89
+ content: {
90
+ type: 'text',
91
+ text: `Review the recent code changes in product ${args.productId}.\n\nFor any issues found:\n1. Call create_defect with title, description, severity, and steps to reproduce\n2. Call add_comment on the related feature explaining the issue\n3. Use update_defect_status to track resolution progress`,
92
+ },
93
+ },
94
+ ],
95
+ };
96
+ }
97
+ case 'write_tests': {
98
+ return {
99
+ messages: [
100
+ {
101
+ role: 'user',
102
+ content: {
103
+ type: 'text',
104
+ text: `Write comprehensive tests for feature ${args.featureId} in product ${args.productId}.\n\n1. Call get_feature_detail to understand acceptance criteria\n2. Call list_test_scripts to see existing tests\n3. Call suggest_tests with an array of test suggestions covering happy path, edge cases, and error scenarios\n4. For each passing test scenario, call record_test_result`,
105
+ },
106
+ },
107
+ ],
108
+ };
109
+ }
110
+ case 'daily_standup': {
111
+ const context = await (0, client_js_1.apiGet)(`/products/${args.productId}/context-bundle`).catch(() => null);
112
+ return {
113
+ messages: [
114
+ {
115
+ role: 'user',
116
+ content: {
117
+ type: 'text',
118
+ text: `Generate a concise daily standup summary for product ${args.productId}.\n\nCurrent state:\n${JSON.stringify(context, null, 2)}\n\nProvide: (1) What was completed yesterday, (2) What is in progress today, (3) Any blockers or open defects that need attention.`,
119
+ },
120
+ },
121
+ ],
122
+ };
123
+ }
124
+ default:
125
+ throw new Error(`Unknown prompt: ${name}`);
126
+ }
127
+ }
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * MCP Resources: Expose AutoProject data as readable resources.
3
+ *
4
+ * 5 resources:
5
+ * 1. autoproject://product/{productId}/context - Context bundle
6
+ * 2. autoproject://product/{productId}/features - Feature list
7
+ * 3. autoproject://product/{productId}/defects - Defect list
8
+ * 4. autoproject://product/{productId}/hierarchy - Full hierarchy tree
9
+ * 5. autoproject://product/{productId}/work-items - Work item list
10
+ */
11
+ export declare const resourceTemplates: {
12
+ uriTemplate: string;
13
+ name: string;
14
+ description: string;
15
+ mimeType: string;
16
+ }[];
17
+ export declare function handleResourceRead(uri: string): Promise<{
18
+ content: string;
19
+ mimeType: string;
20
+ }>;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,eAAO,MAAM,iBAAiB;;;;;GA+B7B,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCpG"}