@ai_design_agency/sdd-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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/tools/sessions.ts"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,wBAAwB;;AAOxB,gDAoBC;AAKD,kDAiBC;AAKD,4CAeC;AAjED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACtC,MAAsB,EACtB,IAAyC;IAEzC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QACxC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B;QACD,OAAO,EAAE,mBAAmB,OAAO,CAAC,cAAc,aAAa,OAAO,CAAC,OAAO,EAAE;KACjF,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB,CACvC,MAAsB,EACtB,IAAmC;IAEnC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE;QAClD,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B;QACD,OAAO,EAAE,uBAAuB;KACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAAsB,EACtB,IAAoC;IAEpC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE7D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;QACD,OAAO,EAAE,eAAe;KACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,104 @@
1
+ import type { PlatformClient } from "../client.js";
2
+ import type { SpecType, SpecStatus } from "../types.js";
3
+ /**
4
+ * Handle spec_create tool call
5
+ */
6
+ export declare function handleSpecCreate(client: PlatformClient, args: {
7
+ type: SpecType;
8
+ title: string;
9
+ content: string;
10
+ parent_epic_id?: string;
11
+ }): Promise<{
12
+ success: boolean;
13
+ spec: {
14
+ id: string;
15
+ spec_number: string;
16
+ type: SpecType;
17
+ title: string;
18
+ status: SpecStatus;
19
+ created_at: string;
20
+ };
21
+ message: string;
22
+ }>;
23
+ /**
24
+ * Handle spec_get tool call
25
+ */
26
+ export declare function handleSpecGet(client: PlatformClient, args: {
27
+ id: string;
28
+ }): Promise<{
29
+ success: boolean;
30
+ spec: {
31
+ id: string;
32
+ spec_number: string;
33
+ type: SpecType;
34
+ title: string;
35
+ content: string;
36
+ status: SpecStatus;
37
+ parent_epic_id: string | undefined;
38
+ created_at: string;
39
+ updated_at: string;
40
+ };
41
+ }>;
42
+ /**
43
+ * Handle spec_update tool call
44
+ */
45
+ export declare function handleSpecUpdate(client: PlatformClient, args: {
46
+ id: string;
47
+ content?: string;
48
+ section?: {
49
+ name: string;
50
+ content: string;
51
+ };
52
+ status?: SpecStatus;
53
+ }): Promise<{
54
+ success: boolean;
55
+ spec: {
56
+ id: string;
57
+ spec_number: string;
58
+ status: SpecStatus;
59
+ updated_at: string;
60
+ };
61
+ message: string;
62
+ }>;
63
+ /**
64
+ * Handle spec_list tool call
65
+ */
66
+ export declare function handleSpecList(client: PlatformClient, args: {
67
+ type?: SpecType;
68
+ status?: SpecStatus;
69
+ parent_epic_id?: string;
70
+ limit?: number;
71
+ offset?: number;
72
+ }): Promise<{
73
+ success: boolean;
74
+ specs: {
75
+ id: string;
76
+ spec_number: string;
77
+ type: SpecType;
78
+ title: string;
79
+ status: SpecStatus;
80
+ }[];
81
+ total: number;
82
+ limit: number;
83
+ offset: number;
84
+ }>;
85
+ /**
86
+ * Handle spec_search tool call
87
+ */
88
+ export declare function handleSpecSearch(client: PlatformClient, args: {
89
+ query: string;
90
+ type?: SpecType;
91
+ limit?: number;
92
+ }): Promise<{
93
+ success: boolean;
94
+ specs: {
95
+ id: string;
96
+ spec_number: string;
97
+ type: SpecType;
98
+ title: string;
99
+ status: SpecStatus;
100
+ similarity: number;
101
+ }[];
102
+ message: string;
103
+ }>;
104
+ //# sourceMappingURL=specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/tools/specs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE;IACJ,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;;;;;;;;;;;GAqBF;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;GAkBrB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;;;;;;;;;GAkBF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE;IACJ,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;;;;;;;;;;;;GAuBF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;;GAoBF"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ // @spec FEA-202601002
3
+ // Spec tool handlers
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.handleSpecCreate = handleSpecCreate;
6
+ exports.handleSpecGet = handleSpecGet;
7
+ exports.handleSpecUpdate = handleSpecUpdate;
8
+ exports.handleSpecList = handleSpecList;
9
+ exports.handleSpecSearch = handleSpecSearch;
10
+ /**
11
+ * Handle spec_create tool call
12
+ */
13
+ async function handleSpecCreate(client, args) {
14
+ const spec = await client.createSpec({
15
+ type: args.type,
16
+ title: args.title,
17
+ content: args.content,
18
+ parent_epic_id: args.parent_epic_id,
19
+ });
20
+ return {
21
+ success: true,
22
+ spec: {
23
+ id: spec.id,
24
+ spec_number: spec.spec_number,
25
+ type: spec.type,
26
+ title: spec.title,
27
+ status: spec.status,
28
+ created_at: spec.created_at,
29
+ },
30
+ message: `Created spec ${spec.spec_number}: ${spec.title}`,
31
+ };
32
+ }
33
+ /**
34
+ * Handle spec_get tool call
35
+ */
36
+ async function handleSpecGet(client, args) {
37
+ const spec = await client.getSpec(args.id);
38
+ return {
39
+ success: true,
40
+ spec: {
41
+ id: spec.id,
42
+ spec_number: spec.spec_number,
43
+ type: spec.type,
44
+ title: spec.title,
45
+ content: spec.content,
46
+ status: spec.status,
47
+ parent_epic_id: spec.parent_epic_id,
48
+ created_at: spec.created_at,
49
+ updated_at: spec.updated_at,
50
+ },
51
+ };
52
+ }
53
+ /**
54
+ * Handle spec_update tool call
55
+ */
56
+ async function handleSpecUpdate(client, args) {
57
+ const spec = await client.updateSpec(args.id, {
58
+ content: args.content,
59
+ section: args.section,
60
+ status: args.status,
61
+ });
62
+ return {
63
+ success: true,
64
+ spec: {
65
+ id: spec.id,
66
+ spec_number: spec.spec_number,
67
+ status: spec.status,
68
+ updated_at: spec.updated_at,
69
+ },
70
+ message: `Updated spec ${spec.spec_number}`,
71
+ };
72
+ }
73
+ /**
74
+ * Handle spec_list tool call
75
+ */
76
+ async function handleSpecList(client, args) {
77
+ const result = await client.listSpecs({
78
+ type: args.type,
79
+ status: args.status,
80
+ parent_epic_id: args.parent_epic_id,
81
+ limit: args.limit ?? 50,
82
+ offset: args.offset ?? 0,
83
+ });
84
+ return {
85
+ success: true,
86
+ specs: result.data.map((spec) => ({
87
+ id: spec.id,
88
+ spec_number: spec.spec_number,
89
+ type: spec.type,
90
+ title: spec.title,
91
+ status: spec.status,
92
+ })),
93
+ total: result.meta.total,
94
+ limit: result.meta.limit,
95
+ offset: result.meta.offset,
96
+ };
97
+ }
98
+ /**
99
+ * Handle spec_search tool call
100
+ */
101
+ async function handleSpecSearch(client, args) {
102
+ const specs = await client.searchSpecs({
103
+ query: args.query,
104
+ type: args.type,
105
+ limit: args.limit ?? 10,
106
+ });
107
+ return {
108
+ success: true,
109
+ specs: specs.map((spec) => ({
110
+ id: spec.id,
111
+ spec_number: spec.spec_number,
112
+ type: spec.type,
113
+ title: spec.title,
114
+ status: spec.status,
115
+ similarity: spec.similarity,
116
+ })),
117
+ message: `Found ${specs.length} matching specs`,
118
+ };
119
+ }
120
+ //# sourceMappingURL=specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/tools/specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type { Spec, SpecType, SpecStatus, SpecWithScore, Process, ProcessStep, ProcessStatus, Session, SessionStatus, CreateSpecRequest, UpdateSpecRequest, ListSpecsQuery, SearchSpecsRequest, CreateProcessRequest, UpdateProcessRequest, CreateSessionRequest, UpdateSessionRequest, ApiResponse, PaginatedResponse, ErrorCode, ApiError, ApiErrorBase, ValidationError, ValidationFieldError, } from "@ai_design_agency/sdd-core";
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,YAAY,EAEV,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,OAAO,EACP,WAAW,EACX,aAAa,EACb,OAAO,EACP,aAAa,EAEb,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EAEpB,WAAW,EACX,iBAAiB,EAEjB,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,oBAAoB,GACrB,MAAM,4BAA4B,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // @spec FEA-202601002
3
+ // Re-export types from @ai_design_agency/sdd-core
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,sBAAsB;AACtB,kDAAkD"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@ai_design_agency/sdd-mcp",
3
+ "version": "1.0.0",
4
+ "description": "MCP server for SDD Platform - exposes spec, process, and session management as Claude tools",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "bin": {
8
+ "sdd-mcp": "./dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "start": "node dist/index.js",
16
+ "dev": "tsx src/index.ts",
17
+ "test": "vitest run",
18
+ "test:watch": "vitest",
19
+ "type-check": "tsc --noEmit",
20
+ "clean": "rm -rf dist",
21
+ "prepublishOnly": "npm run build"
22
+ },
23
+ "keywords": [
24
+ "sdd",
25
+ "mcp",
26
+ "model-context-protocol",
27
+ "claude",
28
+ "spec-driven-development",
29
+ "aida"
30
+ ],
31
+ "author": "AIDA",
32
+ "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/aida-ai/sdd-platform.git",
36
+ "directory": "packages/sdd-mcp"
37
+ },
38
+ "dependencies": {
39
+ "@ai_design_agency/sdd-core": "^1.0.0",
40
+ "@modelcontextprotocol/sdk": "^1.0.0"
41
+ },
42
+ "devDependencies": {
43
+ "@types/node": "^20.0.0",
44
+ "tsx": "^4.0.0",
45
+ "typescript": "^5.3.0",
46
+ "vitest": "^2.0.0"
47
+ }
48
+ }