mcp-architector 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,182 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import path from 'node:path';
3
+ import os from 'node:os';
4
+ const STORAGE_BASE_DIR = path.join(os.homedir(), '.mcp-architector');
5
+ /**
6
+ * Get the storage directory for a specific project
7
+ */
8
+ export function getProjectDir(projectId) {
9
+ return path.join(STORAGE_BASE_DIR, projectId);
10
+ }
11
+ /**
12
+ * Get the path to the project architecture file
13
+ */
14
+ export function getArchitectureFile(projectId) {
15
+ return path.join(getProjectDir(projectId), 'architecture.json');
16
+ }
17
+ /**
18
+ * Get the path to a module details file
19
+ */
20
+ export function getModuleFile(projectId, moduleId) {
21
+ return path.join(getProjectDir(projectId), 'modules', `${moduleId}.json`);
22
+ }
23
+ /**
24
+ * Ensure the storage directory structure exists
25
+ */
26
+ async function ensureDirectoryExists(dir) {
27
+ try {
28
+ await fs.access(dir);
29
+ }
30
+ catch {
31
+ await fs.mkdir(dir, { recursive: true });
32
+ }
33
+ }
34
+ /**
35
+ * Initialize storage for a project
36
+ */
37
+ export async function initializeProjectStorage(projectId) {
38
+ const projectDir = getProjectDir(projectId);
39
+ await ensureDirectoryExists(projectDir);
40
+ await ensureDirectoryExists(path.join(projectDir, 'modules'));
41
+ }
42
+ /**
43
+ * Read project architecture from storage
44
+ */
45
+ export async function readArchitecture(projectId) {
46
+ try {
47
+ const filePath = getArchitectureFile(projectId);
48
+ const content = await fs.readFile(filePath, 'utf-8');
49
+ return JSON.parse(content);
50
+ }
51
+ catch (error) {
52
+ if (error.code === 'ENOENT') {
53
+ return null;
54
+ }
55
+ throw error;
56
+ }
57
+ }
58
+ /**
59
+ * Write project architecture to storage
60
+ */
61
+ export async function writeArchitecture(projectId, architecture) {
62
+ await initializeProjectStorage(projectId);
63
+ const filePath = getArchitectureFile(projectId);
64
+ await fs.writeFile(filePath, JSON.stringify(architecture, null, 2), 'utf-8');
65
+ }
66
+ /**
67
+ * Read module details from storage
68
+ */
69
+ export async function readModule(projectId, moduleId) {
70
+ try {
71
+ const filePath = getModuleFile(projectId, moduleId);
72
+ const content = await fs.readFile(filePath, 'utf-8');
73
+ return JSON.parse(content);
74
+ }
75
+ catch (error) {
76
+ if (error.code === 'ENOENT') {
77
+ return null;
78
+ }
79
+ throw error;
80
+ }
81
+ }
82
+ /**
83
+ * Write module details to storage
84
+ */
85
+ export async function writeModule(projectId, moduleDetails) {
86
+ await initializeProjectStorage(projectId);
87
+ const filePath = getModuleFile(projectId, moduleDetails.moduleId);
88
+ await fs.writeFile(filePath, JSON.stringify(moduleDetails, null, 2), 'utf-8');
89
+ }
90
+ /**
91
+ * List all modules in a project
92
+ */
93
+ export async function listModules(projectId) {
94
+ try {
95
+ const modulesDir = path.join(getProjectDir(projectId), 'modules');
96
+ const files = await fs.readdir(modulesDir);
97
+ return files
98
+ .filter(file => file.endsWith('.json'))
99
+ .map(file => file.replace('.json', ''));
100
+ }
101
+ catch (error) {
102
+ if (error.code === 'ENOENT') {
103
+ return [];
104
+ }
105
+ throw error;
106
+ }
107
+ }
108
+ /**
109
+ * Delete a module
110
+ */
111
+ export async function deleteModule(projectId, moduleId) {
112
+ const filePath = getModuleFile(projectId, moduleId);
113
+ try {
114
+ await fs.unlink(filePath);
115
+ }
116
+ catch (error) {
117
+ if (error.code !== 'ENOENT') {
118
+ throw error;
119
+ }
120
+ }
121
+ }
122
+ /**
123
+ * Get the path to a script documentation file
124
+ */
125
+ export function getScriptFile(projectId, scriptId) {
126
+ return path.join(getProjectDir(projectId), 'scripts', `${scriptId}.json`);
127
+ }
128
+ /**
129
+ * Read script documentation from storage
130
+ */
131
+ export async function readScript(projectId, scriptId) {
132
+ try {
133
+ const filePath = getScriptFile(projectId, scriptId);
134
+ const content = await fs.readFile(filePath, 'utf-8');
135
+ return JSON.parse(content);
136
+ }
137
+ catch (error) {
138
+ if (error.code === 'ENOENT') {
139
+ return null;
140
+ }
141
+ throw error;
142
+ }
143
+ }
144
+ /**
145
+ * Write script documentation to storage
146
+ */
147
+ export async function writeScript(projectId, scriptDoc) {
148
+ await initializeProjectStorage(projectId);
149
+ // Ensure scripts directory exists
150
+ await ensureDirectoryExists(path.join(getProjectDir(projectId), 'scripts'));
151
+ const filePath = getScriptFile(projectId, scriptDoc.scriptId);
152
+ await fs.writeFile(filePath, JSON.stringify(scriptDoc, null, 2), 'utf-8');
153
+ }
154
+ /**
155
+ * List all scripts in a project
156
+ */
157
+ export async function listScripts(projectId) {
158
+ try {
159
+ const scriptsDir = path.join(getProjectDir(projectId), 'scripts');
160
+ const files = await fs.readdir(scriptsDir);
161
+ return files
162
+ .filter(file => file.endsWith('.json'))
163
+ .map(file => file.replace('.json', ''));
164
+ }
165
+ catch (error) {
166
+ if (error.code === 'ENOENT') {
167
+ return [];
168
+ }
169
+ throw error;
170
+ }
171
+ }
172
+ /**
173
+ * Normalize project ID from workdir or user input
174
+ */
175
+ export function normalizeProjectId(workdir) {
176
+ if (!workdir || workdir === '') {
177
+ throw new Error('Project ID is required (workdir context)');
178
+ }
179
+ // Use workdir as project ID, normalized for filesystem
180
+ return workdir.replace(/[^a-zA-Z0-9_-]/g, '_');
181
+ }
182
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Type definitions for MCP Architector
3
+ */
4
+ export interface DataFlow {
5
+ [moduleName: string]: {
6
+ dependsOn?: string[];
7
+ providesTo?: string[];
8
+ dataTransformation?: string;
9
+ };
10
+ }
11
+ export interface ProjectArchitecture {
12
+ projectId: string;
13
+ description: string;
14
+ modules: ModuleSummary[];
15
+ dataFlow?: DataFlow;
16
+ createdAt: string;
17
+ updatedAt: string;
18
+ }
19
+ export interface ModuleSummary {
20
+ id: string;
21
+ name: string;
22
+ description: string;
23
+ inputs?: string;
24
+ outputs?: string;
25
+ createdAt: string;
26
+ updatedAt: string;
27
+ }
28
+ export interface UsageExample {
29
+ title: string;
30
+ description?: string;
31
+ command?: string;
32
+ input?: string;
33
+ output?: string;
34
+ notes?: string;
35
+ }
36
+ export interface ScriptDocumentation {
37
+ scriptId: string;
38
+ scriptName: string;
39
+ description: string;
40
+ usage: string;
41
+ examples: string[];
42
+ parameters: Record<string, string>;
43
+ notes?: string;
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ }
47
+ export interface ModuleDetails {
48
+ moduleId: string;
49
+ name: string;
50
+ description: string;
51
+ inputs: string;
52
+ outputs: string;
53
+ dependencies?: string[];
54
+ files?: string[];
55
+ usageExamples?: UsageExample[];
56
+ notes?: string;
57
+ createdAt: string;
58
+ updatedAt: string;
59
+ }
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type definitions for MCP Architector
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "mcp-architector",
3
+ "version": "1.0.0",
4
+ "description": "MCP server for architecture and system design",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": "./dist/index.js",
8
+ "scripts": {
9
+ "build": "tsc && echo '#!/usr/bin/env node' > dist/index.js.new && cat dist/index.js >> dist/index.js.new && mv dist/index.js.new dist/index.js && chmod +x dist/index.js",
10
+ "start": "node dist/index.js",
11
+ "dev": "tsx watch src/index.ts",
12
+ "inspector": "npx @modelcontextprotocol/inspector node dist/index.js",
13
+ "prepublishOnly": "npm run build"
14
+ },
15
+ "keywords": [
16
+ "mcp",
17
+ "model-context-protocol",
18
+ "architecture",
19
+ "system-design"
20
+ ],
21
+ "author": "theSharque",
22
+ "license": "MIT",
23
+ "dependencies": {
24
+ "@modelcontextprotocol/sdk": "^1.16.0",
25
+ "uuid": "^11.0.3",
26
+ "zod": "^3.25.76"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^24.0.14",
30
+ "@types/uuid": "^10.0.0",
31
+ "tsx": "^4.19.2",
32
+ "typescript": "^5.8.3"
33
+ }
34
+ }
35
+