@siemens/ix-mcp-angular 3.2.0-v.1.10.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/AGENTS.md +86 -0
- package/LICENSE.md +20 -0
- package/README.md +391 -0
- package/config.json +51 -0
- package/database/vectors.db/documents.lance/_transactions/109-667922df-dcb8-4400-846a-fcca46a3cfd8.txn +0 -0
- package/database/vectors.db/documents.lance/_versions/111.manifest +0 -0
- package/database/vectors.db/documents.lance/data/1001001000111000111110002d01c8449a9aa9f7ce9a04125c.lance +0 -0
- package/dist/src/cli.d.ts +3 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +310 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/config.d.ts +35 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +33 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/db-handler.d.ts +50 -0
- package/dist/src/db-handler.d.ts.map +1 -0
- package/dist/src/db-handler.js +256 -0
- package/dist/src/db-handler.js.map +1 -0
- package/dist/src/embeddings.d.ts +77 -0
- package/dist/src/embeddings.d.ts.map +1 -0
- package/dist/src/embeddings.js +280 -0
- package/dist/src/embeddings.js.map +1 -0
- package/dist/src/index.d.ts +30 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +427 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/keys.d.ts +4 -0
- package/dist/src/keys.d.ts.map +1 -0
- package/dist/src/keys.js +24 -0
- package/dist/src/keys.js.map +1 -0
- package/dist/src/logger.d.ts +24 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +185 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/prompt.d.ts +19 -0
- package/dist/src/prompt.d.ts.map +1 -0
- package/dist/src/prompt.js +94 -0
- package/dist/src/prompt.js.map +1 -0
- package/dist/src/setup.d.ts +29 -0
- package/dist/src/setup.d.ts.map +1 -0
- package/dist/src/setup.js +851 -0
- package/dist/src/setup.js.map +1 -0
- package/dist/src/token.d.ts +22 -0
- package/dist/src/token.d.ts.map +1 -0
- package/dist/src/token.js +76 -0
- package/dist/src/token.js.map +1 -0
- package/package.json +69 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# iX Development Guidelines
|
|
2
|
+
|
|
3
|
+
## Project Overview
|
|
4
|
+
|
|
5
|
+
This document provides guidelines for developing applications using the Siemens iX design system
|
|
6
|
+
packages. The libraries are available as `@siemens/ix-angular` and related packages including
|
|
7
|
+
`@siemens/ix-aggrid`, `@siemens/ix-echarts`, and `@siemens/ix-icons`.
|
|
8
|
+
|
|
9
|
+
The iX design system is built on Angular and includes comprehensive theming capabilities for
|
|
10
|
+
consistent styling across industrial and enterprise applications.
|
|
11
|
+
|
|
12
|
+
## Development Approach
|
|
13
|
+
|
|
14
|
+
Always search iX documentation first before implementing any UI components or patterns. This
|
|
15
|
+
includes looking up component APIs, design patterns, accessibility guidelines, and theming options
|
|
16
|
+
from the official documentation.
|
|
17
|
+
|
|
18
|
+
Use modern Angular syntax with standalone components, Angular Signals for state management, and
|
|
19
|
+
separate template/style files. Avoid inline templates or styles unless they are very short. Import
|
|
20
|
+
components individually and use arrow functions with const declarations.
|
|
21
|
+
|
|
22
|
+
Prefer using existing iX components and patterns over implementing custom solutions. Follow the
|
|
23
|
+
established design principles of atomic design, composition over inheritance, and
|
|
24
|
+
accessibility-first development. Use the iX theme system with CSS custom properties rather than
|
|
25
|
+
hardcoded styles.
|
|
26
|
+
|
|
27
|
+
## Code Quality
|
|
28
|
+
|
|
29
|
+
Write minimal comments only where necessary, focusing on why rather than what. Avoid meta-comments
|
|
30
|
+
about changes or obvious explanations. Don't add unnecessary error handling for well-established iX
|
|
31
|
+
component APIs and assume components work as documented.
|
|
32
|
+
|
|
33
|
+
Use iX design tokens and CSS custom properties from the theme system when available instead of
|
|
34
|
+
writing custom CSS. Don't override iX component internals - use documented APIs, props, and CSS
|
|
35
|
+
custom properties for customization. Leverage the established color tokens, spacing system, and
|
|
36
|
+
layout patterns.
|
|
37
|
+
|
|
38
|
+
Use modern HTML5 and JavaScript features and avoid deprecated syntax. Maintain type safety with iX
|
|
39
|
+
component interfaces and event types.
|
|
40
|
+
|
|
41
|
+
## Package Management and Testing
|
|
42
|
+
|
|
43
|
+
Install iX packages using the appropriate package manager and follow the integration guides for each
|
|
44
|
+
framework. Fix import paths when packages exist but imports fail - check for correct package names
|
|
45
|
+
and component exports.
|
|
46
|
+
|
|
47
|
+
Run available lint, format, and test commands from package.json scripts.
|
|
48
|
+
|
|
49
|
+
## Implementation Strategy
|
|
50
|
+
|
|
51
|
+
When building applications, research iX layout patterns and navigation components first. Plan
|
|
52
|
+
component structure using iX building blocks like cards, buttons, modals, and navigation elements.
|
|
53
|
+
Create appropriate mock data that reflects real industrial/enterprise use cases.
|
|
54
|
+
|
|
55
|
+
Apply iX themes consistently throughout the application. Use the documented layout patterns and
|
|
56
|
+
component compositions. Verify accessibility compliance using iX's built-in accessibility features
|
|
57
|
+
and test with screen readers and keyboard navigation.
|
|
58
|
+
|
|
59
|
+
Follow the established iX component lifecycle patterns for events, state management, and data
|
|
60
|
+
binding. Use documented event handlers and avoid direct DOM manipulation of iX components.
|
|
61
|
+
|
|
62
|
+
## Theming and Customization
|
|
63
|
+
|
|
64
|
+
Use the iX theme system with CSS custom properties for customization. Available themes include
|
|
65
|
+
classic-light, classic-dark, and brand-specific variants not available to non-Siemens projects.
|
|
66
|
+
Apply themes at the application level and use theme-aware CSS custom properties for consistent
|
|
67
|
+
styling.
|
|
68
|
+
|
|
69
|
+
Don't override iX component styles directly. Instead, use the documented CSS custom properties,
|
|
70
|
+
theme tokens, and layout utilities. Create custom themes following the established token structure
|
|
71
|
+
when brand customization is required.
|
|
72
|
+
|
|
73
|
+
## Testing and Quality Assurance
|
|
74
|
+
|
|
75
|
+
Test iX component integration using the established testing patterns. Refrain from testing iX
|
|
76
|
+
component internals. Use ARIA properties in case you need access to shadow DOM elements, instead of
|
|
77
|
+
custom selectors. Verify functionality across different browsers and devices using iX's browser
|
|
78
|
+
support matrix.
|
|
79
|
+
|
|
80
|
+
Ensure accessibility compliance by testing with screen readers, keyboard navigation, and following
|
|
81
|
+
WCAG 2.1 AA guidelines that iX components are designed to meet. Use iX's built-in accessibility
|
|
82
|
+
features rather than implementing custom solutions.
|
|
83
|
+
|
|
84
|
+
This approach ensures high-quality development within the iX ecosystem while maintaining modern
|
|
85
|
+
framework practices and leveraging the full design system capabilities for industrial and enterprise
|
|
86
|
+
applications.
|
package/LICENSE.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
The MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Siemens 2016 - 2025
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
+
this software and associated documentation files (the “Software”), to deal in
|
|
7
|
+
the Software without restriction, including without limitation the rights to
|
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
10
|
+
subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
17
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
18
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
19
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
20
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
# Siemens MCP Server for iX Angular
|
|
2
|
+
|
|
3
|
+
A Model Context Protocol (MCP) server that provides AI assistants (Agents) with access to
|
|
4
|
+
[Siemens Industrial Experience](https://ix.siemens.io) design system and component API documentation
|
|
5
|
+
through Retrieval-Augmented Generation (RAG). This enables more accurate and relevant assistance
|
|
6
|
+
with design system and component library APIs.
|
|
7
|
+
|
|
8
|
+
## Usage and use cases
|
|
9
|
+
|
|
10
|
+
- Local MCP server installation includes all design system documentation, component APIs, examples
|
|
11
|
+
and icon information
|
|
12
|
+
- MCP server integration with your AI Agent setup of choice, integrated into your IDE (for example,
|
|
13
|
+
GitHub Copilot Agent integration within VS Code, or OpenCode, with project-related MCP
|
|
14
|
+
configuration)
|
|
15
|
+
- Use cases include (but are not limited to):
|
|
16
|
+
- Get design system best practice information
|
|
17
|
+
- Export components
|
|
18
|
+
- Review project text according to UX writing guidelines
|
|
19
|
+
- Generate new pages using design system components
|
|
20
|
+
- Add and modify pages
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
### Prerequisites
|
|
25
|
+
|
|
26
|
+
- Node.js (20+ recommended)
|
|
27
|
+
- Access to the API [https://api.siemens.com/llm](https://api.siemens.com) by creating a free token
|
|
28
|
+
at <https://my.siemens.com> with `llm` scope. We use the `embeddings` API. Siemens access is
|
|
29
|
+
required to request a token. We are working on a configurable alternative.
|
|
30
|
+
- IDE/Agent/LLM setup of your choice (for example: VS Code, GitHub Copilot, Claude Sonnet 4.5)
|
|
31
|
+
|
|
32
|
+
### Version selection
|
|
33
|
+
|
|
34
|
+
We distribute a MCP server package `@siemens/ix-mcp-angular` for every `@siemens/ix-angular`
|
|
35
|
+
version. The version of `@siemens/ix-mcp-angular` must match your version of `@siemens/ix-angular`.
|
|
36
|
+
The version number of the MCP package `@siemens/ix-mcp-angular` is a combination of the
|
|
37
|
+
`@siemens/ix-angular` version and the version of the MCP code.
|
|
38
|
+
|
|
39
|
+
For example, `@siemens/ix-mcp-angular@4.0.0-v.1.4.8` comes with the data of
|
|
40
|
+
`@siemens/ix-angular@4.0.0` and `v.1.4.8` is the version of the MCP script.
|
|
41
|
+
|
|
42
|
+
To facilitate the version selection, we use
|
|
43
|
+
[npm distribution tags](https://docs.npmjs.com/cli/commands/npm-dist-tag) `@ix<version>` that match
|
|
44
|
+
the version of `@siemens/ix-angular`. When using the corresponding distribution tag on installation,
|
|
45
|
+
you get the latest version of the MCP package that matches your `@siemens/ix-angular` version and
|
|
46
|
+
simplifies handling in your `package.json`.
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"@siemens/ix-angular": "4.0.0",
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@siemens/ix-mcp-angular": "4.0.0-v.1.4.8",
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
New MCP package versions on the same `ix` version are incremented like `4.0.0-v.1.4.9`,
|
|
58
|
+
`4.0.0-v.1.4.10`, `4.0.0-v.1.5.0`.
|
|
59
|
+
|
|
60
|
+
### Project installation
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npm install --save-dev --save-exact @siemens/ix-mcp-angular@ix4.0.0
|
|
64
|
+
|
|
65
|
+
# Or with yarn
|
|
66
|
+
yarn add -D --exact @siemens/ix-mcp-angular@ix4.0.0
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Global installation
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npm install -g @siemens/ix-mcp-angular@ix4.0.0
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Upgrading
|
|
76
|
+
|
|
77
|
+
Simply install the tag for your version and framework again:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# in project
|
|
81
|
+
npm install --save-dev --save-exact @siemens/ix-mcp-angular@ix4.1.0
|
|
82
|
+
|
|
83
|
+
# with yarn
|
|
84
|
+
yarn add -D --exact @siemens/ix-mcp-angular@ix4.1.0
|
|
85
|
+
|
|
86
|
+
# global
|
|
87
|
+
npm install -g --save-exact @siemens/ix-mcp-angular@ix4.1.0
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Quick Start
|
|
91
|
+
|
|
92
|
+
After local project or global package installation, you need to initialize the MCP server and
|
|
93
|
+
provide the access token.
|
|
94
|
+
|
|
95
|
+
1. **Navigate to your project directory**:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
cd your-project
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
2. **Run initial setup**:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
npx @siemens/ix-mcp-angular init
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Or if token is already set up:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
npx @siemens/ix-mcp-angular setup
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
> Important: Run this command in the root of every project where you want to use the MCP server.
|
|
114
|
+
|
|
115
|
+
3. **Follow the prompts**:
|
|
116
|
+
- Enter your LLM token from https://my.siemens.com/ (requires 'llm' scope)
|
|
117
|
+
- This token is needed to generate embeddings for semantic search of the documentation. The
|
|
118
|
+
embeddings help find relevant documentation chunks, but the actual LLM (language model) that
|
|
119
|
+
processes your queries and generates responses is provided separately by your AI tool (e.g.,
|
|
120
|
+
GitHub Copilot, Claude, etc.)
|
|
121
|
+
- Choose which tools to configure (VS Code, Cline, Zed, etc.)
|
|
122
|
+
- Optionally set up iX instruction files for AI agents
|
|
123
|
+
- The tool will create MCP configuration files based on your selection, commit the local
|
|
124
|
+
configuration to share it (make sure it is not ignored by `.gitignore`)
|
|
125
|
+
|
|
126
|
+
4. **Restart your AI tools** (VS Code, Cline, Zed, etc.)
|
|
127
|
+
- Ensure the server is running and trust the MCP server, e.g. click the "Server" icon in the
|
|
128
|
+
Github Copilot Chat panel in VS Code.
|
|
129
|
+
- **For GitHub Copilot in VS Code**: Make sure you are in Agent Mode (not Chat Mode). Use models
|
|
130
|
+
like **Claude Sonnet 4.5**.
|
|
131
|
+
|
|
132
|
+
5. **Start prompting**:
|
|
133
|
+
- "How do I use the search component from @siemens/ix?"
|
|
134
|
+
- "Show me examples of @siemens/charts-ng usage"
|
|
135
|
+
- "Implement a dashboard with different widgets"
|
|
136
|
+
- "Find icons related to AI or machine learning"
|
|
137
|
+
- "Review the texts of this project"
|
|
138
|
+
|
|
139
|
+
> The MCP server starts automatically when your AI tools need it.
|
|
140
|
+
|
|
141
|
+
## Setup Options
|
|
142
|
+
|
|
143
|
+
During `init` or `setup`, select which configuration(s) to create:
|
|
144
|
+
|
|
145
|
+
- **Local VS Code / GitHub Copilot (Repository)** creates a VS Code MCP configuration file at
|
|
146
|
+
`.vscode/mcp.json` in the current repository
|
|
147
|
+
- **OpenCode (Repository)** creates `opencode.json` in the current repository for OpenCode AI
|
|
148
|
+
- **OpenCode Global Settings** updates global OpenCode configuration
|
|
149
|
+
(`~/.config/opencode/opencode.json`)
|
|
150
|
+
- **Cline Global Settings** updates global Cline MCP configuration
|
|
151
|
+
- **VS Code / GitHub Copilot Global Config** writes user-level MCP config
|
|
152
|
+
- **Zed Global Settings** configures Zed editor / agent MCP
|
|
153
|
+
|
|
154
|
+
## AI Agent Instructions (optional)
|
|
155
|
+
|
|
156
|
+
After MCP configuration, you can set up iX instruction files so AI agents work more effectively with
|
|
157
|
+
your codebase. Do this in each repository where you want instructions.
|
|
158
|
+
|
|
159
|
+
You have two options:
|
|
160
|
+
|
|
161
|
+
- **Symbolic link to receive updates**
|
|
162
|
+
Keeps files synced with the installed package. Requires the package to remain installed and may
|
|
163
|
+
not work on all systems or package managers. The tool can create symlinks automatically;
|
|
164
|
+
otherwise, create links yourself pointing to the installed package's `AGENTS.md` and iX
|
|
165
|
+
instructions.
|
|
166
|
+
|
|
167
|
+
- **Copy the content** Copy the contents of the package’s `AGENTS.md` into one of the following in
|
|
168
|
+
your repo:
|
|
169
|
+
- `.github/instructions/ix.instructions.md`
|
|
170
|
+
- `AGENTS.md`
|
|
171
|
+
- `.github/copilot-instructions.md`
|
|
172
|
+
|
|
173
|
+
If you prefer manual copy, open the package’s `AGENTS.md`, then paste it into your chosen file and
|
|
174
|
+
commit it. Repeat per repository whenever you want to update the instructions.
|
|
175
|
+
|
|
176
|
+
## Logging
|
|
177
|
+
|
|
178
|
+
Per default no logging is performed, but you can enable local-only logging of all search queries and
|
|
179
|
+
retrieval results during setup.
|
|
180
|
+
|
|
181
|
+
### Manually enabling logging
|
|
182
|
+
|
|
183
|
+
In your MCP configuration add the flag `--log` to log all search queries and retrieval results to
|
|
184
|
+
local log files in `~/.ix-mcp-angular`.
|
|
185
|
+
|
|
186
|
+
```json
|
|
187
|
+
{
|
|
188
|
+
"servers": {
|
|
189
|
+
"@siemens/ix-mcp-angular": {
|
|
190
|
+
"type": "stdio",
|
|
191
|
+
"command": "npx",
|
|
192
|
+
"args": ["@siemens/ix-mcp-angular", "--log"]
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Viewing and sharing logs
|
|
199
|
+
|
|
200
|
+
To view logs, use the `npx @siemens/ix-mcp-angular log` command, select any relevant session and
|
|
201
|
+
look at the output or the files copied to your current working directory.
|
|
202
|
+
|
|
203
|
+
For feedback about the MCP and Agent results, please create an issue at
|
|
204
|
+
[https://code.siemens.com/ux/sdl-mcp/issues](https://code.siemens.com/ux/sdl-mcp/issues), share your
|
|
205
|
+
information, and include the relevant logs.
|
|
206
|
+
|
|
207
|
+
## Usage
|
|
208
|
+
|
|
209
|
+
### Commands
|
|
210
|
+
|
|
211
|
+
#### Init (First-time setup)
|
|
212
|
+
|
|
213
|
+
Complete initial setup: configure token and create all MCP configurations.
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
npx @siemens/ix-mcp-angular init
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
#### Setup (Update configurations)
|
|
220
|
+
|
|
221
|
+
Create or update MCP configuration files for your tools (uses existing token).
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
npx @siemens/ix-mcp-angular setup
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
#### Setup Token
|
|
228
|
+
|
|
229
|
+
Set or update only the LLM token in system keychain.
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
npx @siemens/ix-mcp-angular setup-token
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
#### Check
|
|
236
|
+
|
|
237
|
+
Verify your installation and configuration.
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
npx @siemens/ix-mcp-angular check
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
#### Test
|
|
244
|
+
|
|
245
|
+
Test the MCP server with a sample query.
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
npx @siemens/ix-mcp-angular test
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
#### Log
|
|
252
|
+
|
|
253
|
+
Check your previous MCP retrieval logs (if enabled / not disabled).
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
npx @siemens/ix-mcp-angular log
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Use within WSL (Windows Subsystem for Linux)
|
|
260
|
+
|
|
261
|
+
If you're using WSL, you need to configure the LLM token using environment variables instead of the
|
|
262
|
+
system keychain. Before running any commands, add the following to a `.env` file in the project root
|
|
263
|
+
(if you're using project installation):
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
SDL_MCP_TOKEN_ENV=true
|
|
267
|
+
OPENAI_API_KEY=<your-key-here>
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Make sure the `.env` file is in your `.gitignore` and can't be committed.
|
|
271
|
+
|
|
272
|
+
Alternatively, or if you're using global installation, add these to your shell profile
|
|
273
|
+
(`~/.zprofile` or `~/.bash_profile`):
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
export SDL_MCP_TOKEN_ENV=true
|
|
277
|
+
export OPENAI_API_KEY=<your-key-here>
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Connection Issues
|
|
281
|
+
|
|
282
|
+
- Verify that the MCP server is running (it should start automatically)
|
|
283
|
+
- Restart your AI tool after configuration changes
|
|
284
|
+
- Verify your LLM token is valid at https://my.siemens.com/
|
|
285
|
+
|
|
286
|
+
## Manual Configuration
|
|
287
|
+
|
|
288
|
+
If you prefer to set up the configurations manually, here are the required files and their contents.
|
|
289
|
+
|
|
290
|
+
### VS Code (.vscode/mcp.json or User/mcp.json)
|
|
291
|
+
|
|
292
|
+
```json
|
|
293
|
+
{
|
|
294
|
+
"servers": {
|
|
295
|
+
"@siemens/ix-mcp-angular": {
|
|
296
|
+
"type": "stdio",
|
|
297
|
+
"command": "npx",
|
|
298
|
+
"args": ["@siemens/ix-mcp-angular"]
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Cline (Global Cline MCP settings)
|
|
305
|
+
|
|
306
|
+
```json
|
|
307
|
+
{
|
|
308
|
+
"mcpServers": {
|
|
309
|
+
"@siemens/ix-mcp-angular": {
|
|
310
|
+
"command": "npx",
|
|
311
|
+
"args": ["@siemens/ix-mcp-angular"]
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### Zed (Global Zed settings)
|
|
318
|
+
|
|
319
|
+
```json
|
|
320
|
+
{
|
|
321
|
+
"context_servers": {
|
|
322
|
+
"@siemens/ix-mcp-angular": {
|
|
323
|
+
"source": "custom",
|
|
324
|
+
"command": "<path-to-npx, run which/where npx to find>",
|
|
325
|
+
"args": ["@siemens/ix-mcp-angular"],
|
|
326
|
+
"env": {}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### OpenCode (Local or Global)
|
|
333
|
+
|
|
334
|
+
For repository-level configuration, create `opencode.json` in your project root:
|
|
335
|
+
|
|
336
|
+
```json
|
|
337
|
+
{
|
|
338
|
+
"$schema": "https://opencode.ai/config.json",
|
|
339
|
+
"mcp": {
|
|
340
|
+
"ix-mcp-angular": {
|
|
341
|
+
"type": "local",
|
|
342
|
+
"command": ["npx", "-y", "@siemens/ix-mcp-angular"],
|
|
343
|
+
"enabled": true
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
"instructions": ["iX.instructions.md"]
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
For global configuration, edit `~/.config/opencode/opencode.json`:
|
|
351
|
+
|
|
352
|
+
```json
|
|
353
|
+
{
|
|
354
|
+
"$schema": "https://opencode.ai/config.json",
|
|
355
|
+
"mcp": {
|
|
356
|
+
"ix-mcp-angular": {
|
|
357
|
+
"type": "local",
|
|
358
|
+
"command": ["npx", "-y", "@siemens/ix-mcp-angular"],
|
|
359
|
+
"enabled": true
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
Learn more about OpenCode configuration at
|
|
366
|
+
[https://opencode.ai/docs/config](https://opencode.ai/docs/config).
|
|
367
|
+
|
|
368
|
+
## License
|
|
369
|
+
|
|
370
|
+
The following applies for code and documentation of the git repository, unless explicitly mentioned.
|
|
371
|
+
|
|
372
|
+
Copyright (c) Siemens 2016 - 2025
|
|
373
|
+
|
|
374
|
+
MIT, see [LICENSE.md](LICENSE.md).
|
|
375
|
+
|
|
376
|
+
### Open Source Software
|
|
377
|
+
|
|
378
|
+
The software of this distributed MCP npm package consists of the database file and JavaScript files,
|
|
379
|
+
which provide access to the database, implementing the Model Context Protocol. This package does not
|
|
380
|
+
include any third party software. However, to use this software, you need the Open Source Software
|
|
381
|
+
packages specified in the `dependencies` part of the [package.json](package.json) file, and their
|
|
382
|
+
dependencies. When installing this package with a npm package manager, the dependencies are
|
|
383
|
+
automatically installed (e.g., when using npm).
|
|
384
|
+
|
|
385
|
+
## Support
|
|
386
|
+
|
|
387
|
+
For issues and questions, please use the issue tracker at:
|
|
388
|
+
[https://code.siemens.com/ux/sdl-mcp/issues](https://code.siemens.com/ux/sdl-mcp/issues)
|
|
389
|
+
|
|
390
|
+
For suboptimal retrievals / agent behavior, consider attaching a relevant log to help us figure out
|
|
391
|
+
how to improve the service, see [Viewing and sharing logs](#viewing-and-sharing-logs).
|
package/config.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@siemens/ix-mcp-angular",
|
|
3
|
+
"description": "iX MCP server for Angular",
|
|
4
|
+
"displayName": "iX Angular",
|
|
5
|
+
"binName": "ix-mcp-angular",
|
|
6
|
+
"compatTokenName": "ix-mcp",
|
|
7
|
+
"documentedName": "iX",
|
|
8
|
+
"projectName": "iX",
|
|
9
|
+
"searchToolName": "ix-search",
|
|
10
|
+
"iconSearch": true,
|
|
11
|
+
"iconSearchToolName": "ix-icon-search",
|
|
12
|
+
"iconName": "@siemens/ix-icons",
|
|
13
|
+
"agentsFile": true,
|
|
14
|
+
"instructionFileName": "iX.instructions.md",
|
|
15
|
+
"observabilityLogging": false,
|
|
16
|
+
"exampleQuestions": [
|
|
17
|
+
"How do I use the Breadcrumb component from @siemens/ix-angular?",
|
|
18
|
+
"Show me examples of a pane layout",
|
|
19
|
+
"Implement a form for adding a new user with name, email, and role",
|
|
20
|
+
"Find icons related to settings or configuration"
|
|
21
|
+
],
|
|
22
|
+
"texts": {
|
|
23
|
+
"DOC_SEARCH_INSTRUCTION": "MANDATORY: For ANY Angular development question, UI component inquiry, design pattern request, or frontend implementation need, you MUST immediately use the search tool before providing any response relevant to UI / Design Systems or Angular implementations. Re-check it to get clarifications and more accurate API often, but do not search if completely unrelated or you just searched the exact same. This applies to ALL Angular-related queries regardless of whether iX libraries are explicitly mentioned. The tool provides access to version-specific Siemens iX documentation that is automatically tuned to match the user's library versions. This ensures you get the exact APIs, components, and implementation patterns available in their specific setup rather than generic Angular advice. Always search first to leverage the comprehensive ix and ix-react documentation before offering any Angular guidance.",
|
|
24
|
+
"DOC_SEARCH_TOOL_DESCRIPTION": "Semantic search tool for Siemens iX Design System and Angular component library. This tool provides intelligent search across comprehensive documentation for:\n\nSupported Libraries:\n• @siemens/ix-angular - All angular ui components (e.g. ix-button, ix-application-header)\n• @siemens/ix - Contains styling, theming and utility functionality\n\nUse Cases:\n• Find component APIs and properties\n• Discover usage examples and code snippets\n• Learn about component styling and theming\n• Understand integration patterns\n• Explore design system guidelines\n\nSearch Tips:\n• Use component names: \"button\", \"chart\", \"map\"\n• Describe functionality: \"data visualization\", \"user input\"\n• Ask about APIs: \"input\", \"output\", \"attributes\", \"methods\", \"type\"\n\nThe search returns relevant documentation chunks with similarity scores and contextual headers to help you find exactly what you need.",
|
|
25
|
+
"DOC_SEARCH_QUERY_DESCRIPTION": "Search query for iX documentation. Can include component names, functionality descriptions, API questions, or usage patterns. Examples: \"button component\", \"form configuration\", \"pane layout\", \"table\"",
|
|
26
|
+
"DOC_NO_RESULTS": "No Documentation Found\n\nNo results found for query: \"{query}\"\n\nThis could mean:\n• The component or feature doesn't exist in the current documentation\n• The feature isn't documented yet\n• The search terms don't match available content\n• Try different keywords or component names\n\nSuggestions:\n• Check component name spelling (e.g., \"button\" vs \"btn\")\n• Try broader terms (e.g., \"input\" instead of \"text-field\")\n• Use functionality terms: \"navigation\", \"data display\", \"user input\"\n\nAvailable Libraries:\n• @siemens/ix-angular - All angular ui components (e.g. ix-button, ix-application-header)\n• @siemens/ix - Contains styling, theming and utility functionality\n",
|
|
27
|
+
"DOC_SUCCESS_HEADER": "# iX Documentation Results\n\nFound **{count}** relevant documentation section(s) for \"{query}\":\n\n",
|
|
28
|
+
"DOC_RESULT_NOTE": "> Note: If documentation mentions missing API docs or examples, those features may not be available in the current version. The search results show the most relevant available documentation based on semantic similarity.\n\n> Need more specific results? Try refining your search with more specific terms or component names.\n\n> Not all information provided here is relevant to your query or task, make sure to only use what is relevant for the user request.",
|
|
29
|
+
"ICON_SEARCH_INSTRUCTION": "Please check the icon search tool before using or recommending any icons from @siemens/ix-icons. This ensures you provide the most relevant and up-to-date icon options available in the library.",
|
|
30
|
+
"ICON_SEARCH_TOOL_DESCRIPTION": "Semantic search tool for Siemens iX Icons (including their metadata like tags)",
|
|
31
|
+
"ICON_SEARCH_QUERY_DESCRIPTION": "Search query for icons (name, term, or category)",
|
|
32
|
+
"ICON_NO_RESULTS": "No icons found for query: \"{query}\"\n\nThis could mean:\n• The icon does not exist in the current version of @siemens/ix-icons\n• The icon was renamed or removed\n• The search terms don't match available icons\n\nSuggestions:\n• Check spelling or try broader terms (e.g., \"settings\" instead of \"gear\")\n\nAvailable Libraries:\n@siemens/ix-icons",
|
|
33
|
+
"ICON_SUCCESS_HEADER": "# iX Icon Search Results\n\nFound **{count}** relevant icon(s) for \"{query}\":\n\n",
|
|
34
|
+
"ICON_RESULT_NOTE": "> Note: If the icon does not appear to exist, update @siemens/ix-icons to the latest compatible version (non-breaking).\n> See usage guidelines and examples in the documentation for how to use icons."
|
|
35
|
+
},
|
|
36
|
+
"headerSections": {
|
|
37
|
+
"remove": ["HTML Examples", "React Examples", "Vue Examples"],
|
|
38
|
+
"keep": ["Angular Examples", "Angular Standalone Examples"],
|
|
39
|
+
"endDelimiter": "<!-- Auto Generated Below -->",
|
|
40
|
+
"rename": {
|
|
41
|
+
"Angular Examples": "Examples",
|
|
42
|
+
"Angular Standalone Examples": "Standalone Examples"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"contentCleanup": {
|
|
46
|
+
"removeStrings": ["<!-- Auto Generated Below -->"],
|
|
47
|
+
"removePatterns": [
|
|
48
|
+
"-+\\n\\n\\*Built with \\[StencilJS\\]\\(https://stenciljs\\.com/\\)\\*\\n?$"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/mcp/cli.ts"],"names":[],"mappings":""}
|