@h2nguyen/arc42-node-mcp-server 2.1.0 → 2.2.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,35 @@ All notable changes to the arc42 MCP Server will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.2.0] - 2026-03-09
9
+
10
+ ### Added
11
+ - **Claude Skill for Arc42**: Pre-built Claude skill (`.claude/skills/arc42-docs-mcp/`) that teaches Claude how to effectively use the arc42 MCP server tools
12
+ - `SKILL.md` with workflows, tool reference, and behavioral guidelines
13
+ - Reference documents for setup and practical usage examples (8 scenarios)
14
+ - Can be copied or symlinked into other projects for automatic arc42 documentation assistance
15
+ - **Project CLAUDE.md**: Added project-level instructions for Claude Code with build commands, code conventions, architecture overview, and key constraints
16
+ - **Dependency Review Configuration**: Added `.github/dependency-review-config.yml` with allowed license list (Apache-2.0, MIT, ISC, BSD, CC-BY-SA-4.0, CC0-1.0, 0BSD)
17
+
18
+ ### Changed
19
+ - Updated license metadata in `package.json` to SPDX expression `(Apache-2.0 AND CC-BY-SA-4.0)` with explicit dual-license entries for Apache-2.0 (code) and CC-BY-SA-4.0 (arc42 template content)
20
+
21
+ ### Security
22
+ - Bump `express-rate-limit` from 8.2.1 to 8.3.1 in the npm_and_yarn group
23
+ - Bump `hono` from 4.12.3 to 4.12.5 and `@hono/node-server` from 1.19.9 to 1.19.10
24
+
25
+ ### Documentation
26
+ - Added "Claude Skill for Arc42" section to README with installation instructions, skill triggers, and benefits comparison table
27
+
28
+ ## [2.1.1] - 2026-02-26
29
+
30
+ ### Security
31
+ - Remove direct system shell access to eliminate code execution risk
32
+
33
+ ### Changed
34
+ - Mark dependencies as peer in package-lock.json
35
+ - Update dependencies in package-lock.json (balanced-match, brace-expansion, minimatch) to latest versions
36
+
8
37
  ## [2.1.0] - 2026-02-14
9
38
 
10
39
  ### Added
package/README.md CHANGED
@@ -49,6 +49,11 @@ A Model Context Protocol (MCP) server that helps you create comprehensive archit
49
49
  * [🎯 Best Practices](#-best-practices)
50
50
  * [For AI Assistants](#for-ai-assistants)
51
51
  * [For Users](#for-users)
52
+ * [🧠 Claude Skill for Arc42](#-claude-skill-for-arc42)
53
+ * [What Is the Arc42 Skill?](#what-is-the-arc42-skill)
54
+ * [Installing the Skill in Other Projects](#installing-the-skill-in-other-projects)
55
+ * [Skill Triggers](#skill-triggers)
56
+ * [Benefits for Your Projects](#benefits-for-your-projects)
52
57
  * [🔧 Development](#-development)
53
58
  * [Development Methodology](#development-methodology)
54
59
  * [Documentation Quality Assurance](#documentation-quality-assurance)
@@ -705,6 +710,77 @@ your-project/
705
710
  4. **Keep it current**: Update as architecture evolves
706
711
  5. **Use version control**: Commit your arc42-docs directory to Git
707
712
 
713
+ ## 🧠 Claude Skill for Arc42
714
+
715
+ This project includes a pre-built **Claude Skill** that teaches Claude (via [Claude Code](https://docs.anthropic.com/en/docs/claude-code) or any skill-aware Claude integration) how to effectively use the arc42 MCP server tools for architecture documentation — without manual prompting.
716
+
717
+ ### What Is the Arc42 Skill?
718
+
719
+ The skill is a structured knowledge package located at `.claude/skills/arc42-docs-mcp/` containing:
720
+
721
+ ```
722
+ .claude/skills/arc42-docs-mcp/
723
+ ├── SKILL.md # Skill definition with workflows, tool reference, and behavioral guidelines
724
+ └── references/
725
+ ├── setup.md # MCP server installation and configuration for all clients
726
+ └── examples.md # Practical usage examples (8 scenarios)
727
+ ```
728
+
729
+ When present in a project, Claude automatically loads the skill and understands:
730
+
731
+ - The correct **workflow order** for arc42 documentation (guide → init → status → template → write → review)
732
+ - **All 6 MCP tools**, their parameters, and expected responses
733
+ - **Best practices** such as always generating a template before writing, using append mode for ADRs, and asking clarifying questions before assuming project details
734
+ - The **recommended documentation order** (Section 1 → 3 → 4 → 5 → 9, then fill the remaining sections)
735
+
736
+ ### Installing the Skill in Other Projects
737
+
738
+ To enable the arc42 skill in any project where Claude Code is used:
739
+
740
+ **Option 1: Copy the skill directory**
741
+
742
+ ```bash
743
+ # From your project root
744
+ mkdir -p .claude/skills
745
+ cp -r /path/to/Arc42-Node-MCP-Server/.claude/skills/arc42-docs-mcp .claude/skills/
746
+ ```
747
+
748
+ **Option 2: Symlink (keeps the skill up-to-date)**
749
+
750
+ ```bash
751
+ # From your project root
752
+ mkdir -p .claude/skills
753
+ ln -s /path/to/Arc42-Node-MCP-Server/.claude/skills/arc42-docs-mcp .claude/skills/arc42-docs-mcp
754
+ ```
755
+
756
+ > **Prerequisite**: The arc42 MCP server must also be configured in your project's MCP settings (`.mcp.json`, Claude Desktop config, etc.). The skill teaches Claude *how* to use the tools, but the MCP server must be running to provide them. See [Setup in Claude Desktop](#setup-in-claude-desktop), [Setup in Cursor](#setup-in-cursor), or [Setup in Cline](#setup-in-cline) for server configuration.
757
+
758
+ After installation, commit the `.claude/skills/arc42-docs-mcp/` directory to version control so all team members benefit from the skill automatically.
759
+
760
+ ### Skill Triggers
761
+
762
+ Claude activates the arc42 skill when it detects any of the following in conversation:
763
+
764
+ | Trigger | Examples |
765
+ |-------------------------------------|----------------------------------------------------------------------------------------------|
766
+ | Architecture documentation keywords | "create architecture documentation", "document the architecture", "update architecture docs" |
767
+ | Arc42 references | "arc42", "initialize arc42", "arc42 template" |
768
+ | Section-specific requests | "document the deployment view", "add quality requirements", "describe the building blocks" |
769
+ | ADR mentions | "add an Architecture Decision Record", "document why we chose PostgreSQL" |
770
+ | Any of the 12 arc42 sections | Introduction and Goals, Constraints, Context and Scope, Solution Strategy, etc. |
771
+
772
+ ### Benefits for Your Projects
773
+
774
+ | Benefit | Without Skill | With Skill |
775
+ |------------------------|---------------------------------------------------|-----------------------------------------------------------------------------------|
776
+ | **Workflow knowledge** | Must manually prompt Claude to follow arc42 order | Claude automatically follows guide → init → template → write workflow |
777
+ | **Tool usage** | May call tools incorrectly or skip steps | Calls the right tools with correct parameters in the right sequence |
778
+ | **Content quality** | Generic documentation output | Generates templates first, asks clarifying questions, documents WHY not just WHAT |
779
+ | **ADR handling** | Risk of overwriting existing decisions | Always reads existing ADRs first and uses append mode |
780
+ | **Format awareness** | May mix AsciiDoc and Markdown syntax | Checks `arc42-status` for configured format and writes consistently |
781
+ | **Multi-language** | Defaults to English only | Respects configured language across all tool calls |
782
+ | **Team consistency** | Each developer gets different results | Shared skill in version control ensures consistent documentation quality |
783
+
708
784
  ## 🔧 Development
709
785
 
710
786
  ### Development Methodology
@@ -958,7 +1034,8 @@ This project is licensed under the Apache License 2.0 – see the [LICENSE](LICE
958
1034
  - **arc42 GitHub**: https://github.com/arc42
959
1035
  - **arc42 Examples**: https://arc42.org/examples (Additional examples are embedded within the documentation at https://docs.arc42.org/)
960
1036
  - **arc42 FAQ**: https://faq.arc42.org/
961
- - **arc42 Node MCP Server Github**: https://github.com/h2nguyen/Arc42-Node-MCP-Server
1037
+ - **arc42 Node MCP Server on Github**: https://github.com/h2nguyen/Arc42-Node-MCP-Server
1038
+ - **arc42 Node MCP Server on NPM**: https://www.npmjs.com/package/@h2nguyen/arc42-node-mcp-server/v/latest
962
1039
  - **MCP Specification**: https://modelcontextprotocol.io/specification/
963
1040
 
964
1041
  ---
@@ -5,8 +5,14 @@
5
5
  * When the submodule is updated, this file automatically reflects the new version.
6
6
  *
7
7
  * Source: https://github.com/arc42/arc42-template
8
- * Version file: vendor/arc42-template/EN/version.properties
8
+ * Version file: vendor/arc42-template/{LANG}/version.properties
9
9
  */
10
+ /** Supported languages in the arc42 template */
11
+ export type Arc42Language = 'EN' | 'DE' | 'ES' | 'FR' | 'IT' | 'NL' | 'PT' | 'RU' | 'CZ' | 'UKR' | 'ZH';
12
+ /** Default language for arc42 templates */
13
+ export declare const DEFAULT_LANGUAGE: Arc42Language;
14
+ /** List of all supported languages */
15
+ export declare const SUPPORTED_LANGUAGES: Arc42Language[];
10
16
  export interface Arc42Reference {
11
17
  /** The arc42 template version (e.g., "9.0-EN") */
12
18
  version: string;
@@ -18,6 +24,8 @@ export interface Arc42Reference {
18
24
  sourceRepo: string;
19
25
  /** Whether the submodule is available */
20
26
  submoduleAvailable: boolean;
27
+ /** Language code used for this reference */
28
+ language: Arc42Language;
21
29
  /** Notes about any deviations from the original template */
22
30
  notes: string[];
23
31
  }
@@ -30,29 +38,39 @@ export declare function parseVersionProperties(content: string): {
30
38
  revdate: string;
31
39
  };
32
40
  /**
33
- * Get commit SHA from git submodule
41
+ * Get commit SHA from git submodule by reading .git files directly
42
+ * (Avoids shell access for security - no execSync required)
34
43
  * @internal Exported for testing purposes
35
44
  */
36
45
  export declare function getSubmoduleCommitSha(): string;
37
46
  /**
38
47
  * Reference information for the arc42 template version this MCP server is based on.
39
- * This is loaded dynamically from the submodule at module initialization.
48
+ * This is loaded dynamically from the submodule at module initialization (default: English).
40
49
  */
41
50
  export declare const ARC42_REFERENCE: Arc42Reference;
51
+ /**
52
+ * Get arc42 reference information for a specific language
53
+ * @param language - Language code (defaults to EN)
54
+ */
55
+ export declare function getArc42ReferenceForLanguage(language?: Arc42Language): Arc42Reference;
42
56
  /**
43
57
  * Get a formatted string describing the arc42 reference version
58
+ * @param language - Language code (defaults to EN)
44
59
  */
45
- export declare function getArc42ReferenceString(): string;
60
+ export declare function getArc42ReferenceString(language?: Arc42Language): string;
46
61
  /**
47
62
  * Get the full reference information as a Markdown block
63
+ * @param language - Language code (defaults to EN)
48
64
  */
49
- export declare function getArc42ReferenceMarkdown(): string;
65
+ export declare function getArc42ReferenceMarkdown(language?: Arc42Language): string;
50
66
  /**
51
67
  * Get reference info suitable for config.yaml
68
+ * @param language - Language code (defaults to EN)
52
69
  */
53
- export declare function getArc42ReferenceConfig(): Record<string, string>;
70
+ export declare function getArc42ReferenceConfig(language?: Arc42Language): Record<string, string>;
54
71
  /**
55
72
  * Force reload the reference from submodule (useful for testing)
73
+ * @param language - Language code (defaults to EN)
56
74
  */
57
- export declare function reloadArc42Reference(): Arc42Reference;
75
+ export declare function reloadArc42Reference(language?: Arc42Language): Arc42Reference;
58
76
  //# sourceMappingURL=arc42-reference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arc42-reference.d.ts","sourceRoot":"","sources":["../../src/templates/arc42-reference.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAkB9F;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAwB9C;AAwDD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,cAAqC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAQlD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
1
+ {"version":3,"file":"arc42-reference.d.ts","sourceRoot":"","sources":["../../src/templates/arc42-reference.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,gDAAgD;AAChD,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAExG,2CAA2C;AAC3C,eAAO,MAAM,gBAAgB,EAAE,aAAoB,CAAC;AAEpD,sCAAsC;AACtC,eAAO,MAAM,mBAAmB,EAAE,aAAa,EAAwE,CAAC;AASxH,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,aAAa,CAAC;IACxB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAkB9F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAiD9C;AA6DD;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,cAAqC,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,GAAE,aAAgC,GAAG,cAAc,CAEvG;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,MAAM,CAGxE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,MAAM,CAU1E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,cAAc,CAE7E"}
@@ -5,18 +5,26 @@
5
5
  * When the submodule is updated, this file automatically reflects the new version.
6
6
  *
7
7
  * Source: https://github.com/arc42/arc42-template
8
- * Version file: vendor/arc42-template/EN/version.properties
8
+ * Version file: vendor/arc42-template/{LANG}/version.properties
9
9
  */
10
10
  import { existsSync, readFileSync } from 'fs';
11
- import { execSync } from 'child_process';
12
11
  import { join, dirname } from 'path';
13
12
  import { fileURLToPath } from 'url';
14
13
  const __filename = fileURLToPath(import.meta.url);
15
14
  const __dirname = dirname(__filename);
16
15
  // Path to submodule (relative to src/templates/)
17
16
  const SUBMODULE_PATH = join(__dirname, '../../vendor/arc42-template');
18
- const VERSION_FILE = join(SUBMODULE_PATH, 'EN/version.properties');
19
17
  const SOURCE_REPO = 'https://github.com/arc42/arc42-template';
18
+ /** Default language for arc42 templates */
19
+ export const DEFAULT_LANGUAGE = 'EN';
20
+ /** List of all supported languages */
21
+ export const SUPPORTED_LANGUAGES = ['EN', 'DE', 'ES', 'FR', 'IT', 'NL', 'PT', 'RU', 'CZ', 'UKR', 'ZH'];
22
+ /**
23
+ * Get the version file path for a specific language
24
+ */
25
+ function getVersionFilePath(language = DEFAULT_LANGUAGE) {
26
+ return join(SUBMODULE_PATH, language, 'version.properties');
27
+ }
20
28
  /**
21
29
  * Parse version.properties file content
22
30
  * @internal Exported for testing purposes
@@ -39,64 +47,88 @@ export function parseVersionProperties(content) {
39
47
  };
40
48
  }
41
49
  /**
42
- * Get commit SHA from git submodule
50
+ * Get commit SHA from git submodule by reading .git files directly
51
+ * (Avoids shell access for security - no execSync required)
43
52
  * @internal Exported for testing purposes
44
53
  */
45
54
  export function getSubmoduleCommitSha() {
46
55
  try {
47
- // Try to get commit from the submodule itself
48
- const result = execSync('git rev-parse HEAD', {
49
- cwd: SUBMODULE_PATH,
50
- encoding: 'utf-8',
51
- stdio: ['pipe', 'pipe', 'pipe']
52
- });
53
- return result.trim();
54
- }
55
- catch {
56
- // Fallback: try to get from parent repo's submodule status
57
- try {
58
- const projectRoot = join(__dirname, '../..');
59
- const result = execSync('git submodule status vendor/arc42-template', {
60
- cwd: projectRoot,
61
- encoding: 'utf-8',
62
- stdio: ['pipe', 'pipe', 'pipe']
63
- });
64
- const match = result.match(/^\s*([a-f0-9]+)\s+vendor/);
65
- return match ? match[1] : 'unknown';
56
+ // Method 1: Read from submodule's .git file (gitdir reference)
57
+ const submoduleGitPath = join(SUBMODULE_PATH, '.git');
58
+ if (existsSync(submoduleGitPath)) {
59
+ const gitContent = readFileSync(submoduleGitPath, 'utf-8').trim();
60
+ // .git file in submodule contains "gitdir: ../../.git/modules/vendor/arc42-template"
61
+ if (gitContent.startsWith('gitdir:')) {
62
+ const gitDir = gitContent.replace('gitdir:', '').trim();
63
+ const resolvedGitDir = join(SUBMODULE_PATH, gitDir);
64
+ const headPath = join(resolvedGitDir, 'HEAD');
65
+ if (existsSync(headPath)) {
66
+ const headContent = readFileSync(headPath, 'utf-8').trim();
67
+ // HEAD can be a direct commit SHA or a ref
68
+ if (headContent.startsWith('ref:')) {
69
+ const refPath = join(resolvedGitDir, headContent.replace('ref:', '').trim());
70
+ if (existsSync(refPath)) {
71
+ return readFileSync(refPath, 'utf-8').trim();
72
+ }
73
+ }
74
+ else {
75
+ // Direct commit SHA
76
+ return headContent;
77
+ }
78
+ }
79
+ }
66
80
  }
67
- catch {
68
- return 'unknown';
81
+ // Method 2: Read from parent repo's .git/modules directory
82
+ const projectRoot = join(__dirname, '../..');
83
+ const modulesHeadPath = join(projectRoot, '.git/modules/vendor/arc42-template/HEAD');
84
+ if (existsSync(modulesHeadPath)) {
85
+ const headContent = readFileSync(modulesHeadPath, 'utf-8').trim();
86
+ if (!headContent.startsWith('ref:')) {
87
+ return headContent;
88
+ }
89
+ // If it's a ref, resolve it
90
+ const refPath = join(projectRoot, '.git/modules/vendor/arc42-template', headContent.replace('ref:', '').trim());
91
+ if (existsSync(refPath)) {
92
+ return readFileSync(refPath, 'utf-8').trim();
93
+ }
69
94
  }
95
+ return 'unknown';
96
+ }
97
+ catch {
98
+ return 'unknown';
70
99
  }
71
100
  }
72
101
  /**
73
- * Read arc42 reference info from the submodule
102
+ * Read arc42 reference info from the submodule for a specific language
74
103
  * Falls back to hardcoded values if submodule is not available
104
+ * @param language - Language code (defaults to EN)
75
105
  */
76
- function loadArc42Reference() {
106
+ function loadArc42Reference(language = DEFAULT_LANGUAGE) {
77
107
  // Default/fallback values (used when submodule not available, e.g., npm install)
78
108
  const fallback = {
79
- version: '9.0-EN',
109
+ version: `9.0-${language}`,
80
110
  date: 'July 2025',
81
111
  commitSha: 'b29e08928644af7ae49f51d729d14313db0d934c',
82
112
  sourceRepo: SOURCE_REPO,
83
113
  submoduleAvailable: false,
114
+ language,
84
115
  notes: [
85
116
  'Templates adapted from AsciiDoc to Markdown format',
86
117
  'Section guidance text customized for AI-assisted documentation',
87
118
  'Fallback values used - submodule not available'
88
119
  ]
89
120
  };
121
+ const versionFile = getVersionFilePath(language);
90
122
  // Check if submodule exists
91
- if (!existsSync(SUBMODULE_PATH) || !existsSync(VERSION_FILE)) {
123
+ if (!existsSync(SUBMODULE_PATH) || !existsSync(versionFile)) {
92
124
  return fallback;
93
125
  }
94
126
  try {
95
127
  // Read version.properties
96
- const content = readFileSync(VERSION_FILE, 'utf-8');
128
+ const content = readFileSync(versionFile, 'utf-8');
97
129
  const { revnumber, revdate } = parseVersionProperties(content);
98
130
  if (!revnumber || !revdate) {
99
- console.warn('Warning: Could not parse version.properties, using fallback');
131
+ console.warn(`Warning: Could not parse version.properties for ${language}, using fallback`);
100
132
  return fallback;
101
133
  }
102
134
  // Get commit SHA
@@ -107,6 +139,7 @@ function loadArc42Reference() {
107
139
  commitSha,
108
140
  sourceRepo: SOURCE_REPO,
109
141
  submoduleAvailable: true,
142
+ language,
110
143
  notes: [
111
144
  'Templates adapted from AsciiDoc to Markdown format',
112
145
  'Section guidance text customized for AI-assisted documentation'
@@ -114,48 +147,64 @@ function loadArc42Reference() {
114
147
  };
115
148
  }
116
149
  catch (error) {
117
- console.warn('Warning: Failed to read from submodule, using fallback:', error);
150
+ console.warn(`Warning: Failed to read from submodule for ${language}, using fallback:`, error);
118
151
  return fallback;
119
152
  }
120
153
  }
121
154
  /**
122
155
  * Reference information for the arc42 template version this MCP server is based on.
123
- * This is loaded dynamically from the submodule at module initialization.
156
+ * This is loaded dynamically from the submodule at module initialization (default: English).
124
157
  */
125
158
  export const ARC42_REFERENCE = loadArc42Reference();
159
+ /**
160
+ * Get arc42 reference information for a specific language
161
+ * @param language - Language code (defaults to EN)
162
+ */
163
+ export function getArc42ReferenceForLanguage(language = DEFAULT_LANGUAGE) {
164
+ return loadArc42Reference(language);
165
+ }
126
166
  /**
127
167
  * Get a formatted string describing the arc42 reference version
168
+ * @param language - Language code (defaults to EN)
128
169
  */
129
- export function getArc42ReferenceString() {
130
- return `arc42 Template v${ARC42_REFERENCE.version} (${ARC42_REFERENCE.date})`;
170
+ export function getArc42ReferenceString(language) {
171
+ const ref = language ? loadArc42Reference(language) : ARC42_REFERENCE;
172
+ return `arc42 Template v${ref.version} (${ref.date})`;
131
173
  }
132
174
  /**
133
175
  * Get the full reference information as a Markdown block
176
+ * @param language - Language code (defaults to EN)
134
177
  */
135
- export function getArc42ReferenceMarkdown() {
178
+ export function getArc42ReferenceMarkdown(language) {
179
+ const ref = language ? loadArc42Reference(language) : ARC42_REFERENCE;
136
180
  return `---
137
181
  **arc42 Template Reference**
138
- - Version: ${ARC42_REFERENCE.version}
139
- - Date: ${ARC42_REFERENCE.date}
140
- - Source: [arc42-template](${ARC42_REFERENCE.sourceRepo})
141
- - Commit: \`${ARC42_REFERENCE.commitSha.substring(0, 7)}\`
182
+ - Version: ${ref.version}
183
+ - Date: ${ref.date}
184
+ - Language: ${ref.language}
185
+ - Source: [arc42-template](${ref.sourceRepo})
186
+ - Commit: \`${ref.commitSha.substring(0, 7)}\`
142
187
  ---`;
143
188
  }
144
189
  /**
145
190
  * Get reference info suitable for config.yaml
191
+ * @param language - Language code (defaults to EN)
146
192
  */
147
- export function getArc42ReferenceConfig() {
193
+ export function getArc42ReferenceConfig(language) {
194
+ const ref = language ? loadArc42Reference(language) : ARC42_REFERENCE;
148
195
  return {
149
- arc42_template_version: ARC42_REFERENCE.version,
150
- arc42_template_date: ARC42_REFERENCE.date,
151
- arc42_template_source: ARC42_REFERENCE.sourceRepo,
152
- arc42_template_commit: ARC42_REFERENCE.commitSha
196
+ arc42_template_version: ref.version,
197
+ arc42_template_date: ref.date,
198
+ arc42_template_language: ref.language,
199
+ arc42_template_source: ref.sourceRepo,
200
+ arc42_template_commit: ref.commitSha
153
201
  };
154
202
  }
155
203
  /**
156
204
  * Force reload the reference from submodule (useful for testing)
205
+ * @param language - Language code (defaults to EN)
157
206
  */
158
- export function reloadArc42Reference() {
159
- return loadArc42Reference();
207
+ export function reloadArc42Reference(language) {
208
+ return loadArc42Reference(language);
160
209
  }
161
210
  //# sourceMappingURL=arc42-reference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arc42-reference.js","sourceRoot":"","sources":["../../src/templates/arc42-reference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arc42-reference.js","sourceRoot":"","sources":["../../src/templates/arc42-reference.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@h2nguyen/arc42-node-mcp-server",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "MCP server for arc42 architecture documentation - AI-assisted architecture documentation following arc42 template",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -44,7 +44,17 @@
44
44
  "email": "me@viethainguyen.de",
45
45
  "url": "https://github.com/h2nguyen"
46
46
  },
47
- "license": "Apache-2.0",
47
+ "license": "(Apache-2.0 AND CC-BY-SA-4.0)",
48
+ "licenses": [
49
+ {
50
+ "type": "Apache-2.0",
51
+ "url": "https://github.com/h2nguyen/Arc42-Node-MCP-Server/blob/main/LICENSE"
52
+ },
53
+ {
54
+ "type": "CC-BY-SA-4.0",
55
+ "url": "https://github.com/h2nguyen/Arc42-Node-MCP-Server/blob/main/LICENSE-ARC42"
56
+ }
57
+ ],
48
58
  "repository": {
49
59
  "type": "git",
50
60
  "url": "https://github.com/h2nguyen/Arc42-Node-MCP-Server.git"