x-readiness-mcp 0.3.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/bin/cli.js +3 -0
- package/package.json +27 -0
- package/server.js +284 -0
- package/templates/master_template.json +524 -0
- package/templates/master_template.md +374 -0
- package/tools/execution.js +852 -0
- package/tools/planning.js +343 -0
- package/x-readiness-mcp-0.3.0.tgz +0 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
# Siemens X-API Readiness Master Checklist
|
|
2
|
+
|
|
3
|
+
**Version:** 2.5.0
|
|
4
|
+
**Last Updated:** 2026-01-28
|
|
5
|
+
**Description:** Master template for X-API readiness validation based on Siemens API Guidelines
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Sources
|
|
10
|
+
|
|
11
|
+
### Common API Guidelines
|
|
12
|
+
- Common API Guidelines - Overview
|
|
13
|
+
- API Lifecycle Phases
|
|
14
|
+
- API Specification
|
|
15
|
+
- API Documentation
|
|
16
|
+
- API Versioning
|
|
17
|
+
- JSON Property Naming
|
|
18
|
+
- HTTP API Protection
|
|
19
|
+
- Common Guidelines Changelog
|
|
20
|
+
|
|
21
|
+
### REST API Guidelines
|
|
22
|
+
- REST API Guidelines - Overview
|
|
23
|
+
- Media Types
|
|
24
|
+
- REST Versioning
|
|
25
|
+
- Error Handling
|
|
26
|
+
- Common Operations
|
|
27
|
+
- Bulk Operations
|
|
28
|
+
- Sparse Fieldsets
|
|
29
|
+
- Filtering
|
|
30
|
+
- Pagination
|
|
31
|
+
- Sorting
|
|
32
|
+
- Security
|
|
33
|
+
- Best Practices
|
|
34
|
+
- Tools
|
|
35
|
+
- Appendix: Data Types
|
|
36
|
+
- REST Guidelines Changelog
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Scopes
|
|
41
|
+
|
|
42
|
+
### x_api_readiness
|
|
43
|
+
**Description:** Full X-API readiness check covering all common and REST guidelines
|
|
44
|
+
|
|
45
|
+
**Includes:**
|
|
46
|
+
- All Common Guidelines
|
|
47
|
+
- All REST Guidelines
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
### pagination_ready
|
|
52
|
+
**Description:** Pagination readiness including related query operations
|
|
53
|
+
|
|
54
|
+
**Includes:**
|
|
55
|
+
- Pagination
|
|
56
|
+
- Sorting
|
|
57
|
+
- Filtering
|
|
58
|
+
- Sparse Fieldsets
|
|
59
|
+
- Common Operations
|
|
60
|
+
- Error Handling
|
|
61
|
+
- Security
|
|
62
|
+
- JSON Property Naming
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
### security_ready
|
|
67
|
+
**Description:** Security readiness for API protection
|
|
68
|
+
|
|
69
|
+
**Includes:**
|
|
70
|
+
- Security
|
|
71
|
+
- HTTP API Protection
|
|
72
|
+
- Error Handling
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### error_handling_ready
|
|
77
|
+
**Description:** Error handling and status code compliance
|
|
78
|
+
|
|
79
|
+
**Includes:**
|
|
80
|
+
- Error Handling
|
|
81
|
+
- Media Types
|
|
82
|
+
- JSON Property Naming
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### versioning_ready
|
|
87
|
+
**Description:** API versioning compliance
|
|
88
|
+
|
|
89
|
+
**Includes:**
|
|
90
|
+
- API Versioning
|
|
91
|
+
- REST Versioning
|
|
92
|
+
- Media Types
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### media_types_ready
|
|
97
|
+
**Description:** Media types and naming conventions
|
|
98
|
+
|
|
99
|
+
**Includes:**
|
|
100
|
+
- Media Types
|
|
101
|
+
- JSON Property Naming
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
### operations_ready
|
|
106
|
+
**Description:** CRUD and bulk operations compliance
|
|
107
|
+
|
|
108
|
+
**Includes:**
|
|
109
|
+
- Common Operations
|
|
110
|
+
- Bulk Operations
|
|
111
|
+
- Error Handling
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### query_ready
|
|
116
|
+
**Description:** Query capabilities: filtering, sorting, sparse fieldsets
|
|
117
|
+
|
|
118
|
+
**Includes:**
|
|
119
|
+
- Filtering
|
|
120
|
+
- Sorting
|
|
121
|
+
- Sparse Fieldsets
|
|
122
|
+
- Pagination
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Rule Categories
|
|
127
|
+
|
|
128
|
+
### 1. PAGINATION
|
|
129
|
+
**Priority:** High
|
|
130
|
+
**Guideline:** [Pagination](https://developer.siemens.com/guidelines/api-guidelines/rest/pagination.html)
|
|
131
|
+
|
|
132
|
+
**Rules:**
|
|
133
|
+
- 600: Pagination links
|
|
134
|
+
- 601: Pagination strategies
|
|
135
|
+
- 601.1: Cursor based strategy
|
|
136
|
+
- 601.1.1: Server MAY provide pagination meta information
|
|
137
|
+
- 601.2: Offset based strategy
|
|
138
|
+
- 601.2.1: Offset pagination meta information
|
|
139
|
+
- 601.3: Index based strategy
|
|
140
|
+
- 601.3.1: Index pagination meta information
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
### 2. ERROR_HANDLING
|
|
145
|
+
**Priority:** Critical
|
|
146
|
+
**Guideline:** [Error Handling](https://developer.siemens.com/guidelines/api-guidelines/rest/error.html)
|
|
147
|
+
|
|
148
|
+
**Rules:**
|
|
149
|
+
- 300: API MUST use official HTTP status codes as intended
|
|
150
|
+
- 301: API SHOULD only use most common HTTP status codes
|
|
151
|
+
- 301.3: Client Error 4xx Status Codes
|
|
152
|
+
- 301.4: Server Error 5xx Status Codes
|
|
153
|
+
- 302: API SHOULD use most specific HTTP status code for error
|
|
154
|
+
- 303: API SHOULD not expose stack traces of the error
|
|
155
|
+
- 304: API SHOULD report problems with an errors object
|
|
156
|
+
- 305: Error object SHOULD be represented according to defined structure
|
|
157
|
+
- 305.1: The values of the code field SHOULD be unique
|
|
158
|
+
- 305.2: All error codes SHOULD be documented
|
|
159
|
+
- 305.3: The values of title and detail fields SHOULD be in English
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
### 3. MEDIA_TYPES
|
|
164
|
+
**Priority:** High
|
|
165
|
+
**Guideline:** [Media Types](https://developer.siemens.com/guidelines/api-guidelines/rest/media-type.html)
|
|
166
|
+
|
|
167
|
+
**Rules:**
|
|
168
|
+
- 100: API SHOULD use JSON-based media types
|
|
169
|
+
- 101: API SHOULD use the following document structure
|
|
170
|
+
- 101.1: API SHOULD use a top-level JSON object
|
|
171
|
+
- 101.2: API SHOULD use the defined document structure
|
|
172
|
+
- 101.3: The primary data MUST be represented by resource objects
|
|
173
|
+
- 101.4: API MUST represent resources with resource objects
|
|
174
|
+
- 101.4.1: Fields MUST follow the naming convention
|
|
175
|
+
- 101.5: A links object SHOULD contain one or more links
|
|
176
|
+
- 101.6: A link SHOULD be represented according to defined structure
|
|
177
|
+
- 101.6.1: A link object SHOULD have defined structure fields
|
|
178
|
+
- 101.7: A JSON document MAY provide meta information
|
|
179
|
+
- 101.7.1: A meta field MUST contain meta information
|
|
180
|
+
- 101.7.2: meta MUST be represented as JSON object
|
|
181
|
+
- 101.7.3: meta fields SHOULD consider common field semantics
|
|
182
|
+
- 101.8: Field names SHOULD apply naming conventions
|
|
183
|
+
- 101.8.1: Field names MUST use allowed characters only
|
|
184
|
+
- 101.9: Resource names SHOULD be in lowercase with hyphens
|
|
185
|
+
- 102: Collection resource names SHOULD pluralize single resource
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
### 4. NAMING_CONVENTIONS
|
|
190
|
+
**Priority:** Medium
|
|
191
|
+
**Guideline:** [JSON Property Naming](https://developer.siemens.com/guidelines/api-guidelines/common/json-property-naming.html)
|
|
192
|
+
|
|
193
|
+
**Rules:**
|
|
194
|
+
- naming_01: Names MUST start with a lower case letter
|
|
195
|
+
- naming_02: Names MUST use camelCase for multi-word concatenation
|
|
196
|
+
- naming_03: Abbreviations and acronyms MUST be treated as words
|
|
197
|
+
- naming_04: Names MUST only consist of ASCII characters
|
|
198
|
+
- naming_05: Words in names SHOULD use American English
|
|
199
|
+
- naming_06: Names SHOULD be kept short and concise
|
|
200
|
+
- naming_07: Resource names SHOULD use kebab-case
|
|
201
|
+
- naming_08: Abbreviations SHOULD NOT be used except commonly used forms
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
### 5. SECURITY
|
|
206
|
+
**Priority:** Critical
|
|
207
|
+
**Guideline:** [Security](https://developer.siemens.com/guidelines/api-guidelines/rest/security.html) | [HTTP API Protection](https://developer.siemens.com/guidelines/api-guidelines/common/http-api-protection.html)
|
|
208
|
+
|
|
209
|
+
**Rules:**
|
|
210
|
+
- sec_01: REST APIs MUST be secured with OAuth 2.0 Bearer Token
|
|
211
|
+
- sec_02: APIs MUST use TLS for HTTP protection
|
|
212
|
+
- sec_03: Token format SHOULD be JWT
|
|
213
|
+
- sec_04: API implementation MUST check token signature
|
|
214
|
+
- sec_05: API implementation MUST check token expiry
|
|
215
|
+
- sec_06: API implementation MUST check token issuer
|
|
216
|
+
- sec_07: API implementation MUST check scope
|
|
217
|
+
- sec_08: API implementation SHOULD check token audience
|
|
218
|
+
- sec_09: Authorization header with Bearer token SHOULD be present
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
### 6. VERSIONING
|
|
223
|
+
**Priority:** Medium
|
|
224
|
+
**Guideline:** [API Versioning](https://developer.siemens.com/guidelines/api-guidelines/common/api-versioning.html) | [REST Versioning](https://developer.siemens.com/guidelines/api-guidelines/rest/versioning.html)
|
|
225
|
+
|
|
226
|
+
**Rules:**
|
|
227
|
+
- 200: API version in HTTP requests
|
|
228
|
+
- 200.1: Option 1 - API version in URI path
|
|
229
|
+
- 200.2: Option 2 - API version in custom request header
|
|
230
|
+
- 201: API Version in HTTP Responses
|
|
231
|
+
- ver_01: Version number MUST be expressed as MAJOR.MINOR.PATCH
|
|
232
|
+
- ver_02: MUST increment MAJOR for incompatible changes
|
|
233
|
+
- ver_03: MUST increment MINOR for backward compatible additions
|
|
234
|
+
- ver_04: MUST increment PATCH for backward compatible fixes
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
### 7. COMMON_OPERATIONS
|
|
239
|
+
**Priority:** High
|
|
240
|
+
**Guideline:** [Common Operations](https://developer.siemens.com/guidelines/api-guidelines/rest/common-operations.html)
|
|
241
|
+
|
|
242
|
+
**Rules:**
|
|
243
|
+
- ops_01: Use appropriate HTTP methods for operations
|
|
244
|
+
- ops_02: GET requests MUST be safe and idempotent
|
|
245
|
+
- ops_03: PUT and DELETE MUST be idempotent
|
|
246
|
+
- ops_04: POST creates new resources
|
|
247
|
+
- ops_05: Use PATCH for partial updates
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
### 8. BULK_OPERATIONS
|
|
252
|
+
**Priority:** Medium
|
|
253
|
+
**Guideline:** [Bulk Operations](https://developer.siemens.com/guidelines/api-guidelines/rest/bulk-operations.html)
|
|
254
|
+
|
|
255
|
+
**Rules:**
|
|
256
|
+
- bulk_01: Support bulk operations for efficiency
|
|
257
|
+
- bulk_02: Provide partial success reporting
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
### 9. FILTERING
|
|
262
|
+
**Priority:** Medium
|
|
263
|
+
**Guideline:** [Filtering](https://developer.siemens.com/guidelines/api-guidelines/rest/filtering.html)
|
|
264
|
+
|
|
265
|
+
**Rules:**
|
|
266
|
+
- 400: API MAY support filtering
|
|
267
|
+
- filter_01: Use query parameters for filtering
|
|
268
|
+
- filter_02: Support common filter operations
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
### 10. SORTING
|
|
273
|
+
**Priority:** Low
|
|
274
|
+
**Guideline:** [Sorting](https://developer.siemens.com/guidelines/api-guidelines/rest/sorting.html)
|
|
275
|
+
|
|
276
|
+
**Rules:**
|
|
277
|
+
- 700: API MAY provide sorting of collections
|
|
278
|
+
- 700.1: Parameter sort MUST specify sort fields
|
|
279
|
+
- 700.2: API MAY support multiple sort fields
|
|
280
|
+
- 700.3: API MAY support defining sort order per field
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
### 11. SPARSE_FIELDSETS
|
|
285
|
+
**Priority:** Low
|
|
286
|
+
**Guideline:** [Sparse Fieldsets](https://developer.siemens.com/guidelines/api-guidelines/rest/sparse-fieldsets.html)
|
|
287
|
+
|
|
288
|
+
**Rules:**
|
|
289
|
+
- 500: API MAY support sparse fieldsets
|
|
290
|
+
- fields_01: Use fields parameter for field selection
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Compliance Levels
|
|
295
|
+
|
|
296
|
+
### Basic Compliance (30%)
|
|
297
|
+
**Description:** MUST requirements only for critical categories
|
|
298
|
+
|
|
299
|
+
**Categories:**
|
|
300
|
+
- SECURITY
|
|
301
|
+
- ERROR_HANDLING
|
|
302
|
+
|
|
303
|
+
**Required Rules:** 9
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
### Recommended Compliance (80%)
|
|
308
|
+
**Description:** All MUST and SHOULD requirements
|
|
309
|
+
|
|
310
|
+
**Categories:**
|
|
311
|
+
- SECURITY
|
|
312
|
+
- ERROR_HANDLING
|
|
313
|
+
- MEDIA_TYPES
|
|
314
|
+
- PAGINATION
|
|
315
|
+
- NAMING_CONVENTIONS
|
|
316
|
+
- VERSIONING
|
|
317
|
+
|
|
318
|
+
**Required Rules:** 60
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
### Full X-Readiness (100%)
|
|
323
|
+
**Description:** All standards including MAY considerations
|
|
324
|
+
|
|
325
|
+
**Categories:**
|
|
326
|
+
- PAGINATION
|
|
327
|
+
- ERROR_HANDLING
|
|
328
|
+
- MEDIA_TYPES
|
|
329
|
+
- NAMING_CONVENTIONS
|
|
330
|
+
- SECURITY
|
|
331
|
+
- VERSIONING
|
|
332
|
+
- COMMON_OPERATIONS
|
|
333
|
+
- BULK_OPERATIONS
|
|
334
|
+
- FILTERING
|
|
335
|
+
- SORTING
|
|
336
|
+
- SPARSE_FIELDSETS
|
|
337
|
+
|
|
338
|
+
**Estimated Rules:** 80
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Quick Summary
|
|
343
|
+
|
|
344
|
+
| Category | Priority | Rules Count |
|
|
345
|
+
|----------|----------|-------------|
|
|
346
|
+
| PAGINATION | High | 8 |
|
|
347
|
+
| ERROR_HANDLING | Critical | 11 |
|
|
348
|
+
| MEDIA_TYPES | High | 18 |
|
|
349
|
+
| NAMING_CONVENTIONS | Medium | 8 |
|
|
350
|
+
| SECURITY | Critical | 9 |
|
|
351
|
+
| VERSIONING | Medium | 8 |
|
|
352
|
+
| COMMON_OPERATIONS | High | 5 |
|
|
353
|
+
| BULK_OPERATIONS | Medium | 2 |
|
|
354
|
+
| FILTERING | Medium | 3 |
|
|
355
|
+
| SORTING | Low | 4 |
|
|
356
|
+
| SPARSE_FIELDSETS | Low | 2 |
|
|
357
|
+
| **TOTAL** | | **~80** |
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
**Intent Keywords Mapping:**
|
|
362
|
+
|
|
363
|
+
- **pagination, paging, page** → PAGINATION
|
|
364
|
+
- **error, error handling** → ERROR_HANDLING
|
|
365
|
+
- **media type, content type, json** → MEDIA_TYPES
|
|
366
|
+
- **naming, camelCase** → NAMING_CONVENTIONS
|
|
367
|
+
- **security, auth, oauth, jwt** → SECURITY
|
|
368
|
+
- **versioning, version** → VERSIONING
|
|
369
|
+
- **sorting, sort** → SORTING
|
|
370
|
+
- **filtering, filter** → FILTERING
|
|
371
|
+
- **bulk, batch** → BULK_OPERATIONS
|
|
372
|
+
- **sparse, fields** → SPARSE_FIELDSETS
|
|
373
|
+
- **operations, crud** → COMMON_OPERATIONS
|
|
374
|
+
- **x-readiness, api readiness, full check** → All Categories
|