@maltjoy/mcp-server 0.1.1 → 0.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.
Files changed (34) hide show
  1. package/README.md +110 -11
  2. package/dist/doc/VJoyAvatar/metadata.json +1 -1
  3. package/dist/doc/VJoyButton/metadata.json +1 -1
  4. package/dist/doc/VJoyCollapseItem/metadata.json +1 -1
  5. package/dist/doc/VJoyHighlight/metadata.json +1 -1
  6. package/dist/doc/VJoyIcon/metadata.json +1 -1
  7. package/dist/doc/VJoyInput/metadata.json +1 -1
  8. package/dist/doc/VJoyLink/metadata.json +1 -1
  9. package/dist/doc/VJoyListItem/metadata.json +1 -1
  10. package/dist/doc/VJoyMenu/metadata.json +11 -4
  11. package/dist/doc/VJoyMenuItem/metadata.json +2 -2
  12. package/dist/doc/VJoyProductTour/metadata.json +1 -1
  13. package/dist/doc/VJoySelectableItem/metadata.json +1 -1
  14. package/dist/doc/VJoyTag/metadata.json +10 -9
  15. package/dist/doc/VJoyTagsInput/metadata.json +1 -0
  16. package/dist/doc/VJoyTagsList/metadata.json +112 -110
  17. package/dist/doc/VJoyWalkthrough/metadata.json +1 -1
  18. package/dist/doc/VJoyWalkthroughTrigger/metadata.json +1 -1
  19. package/dist/doc/css-classes.json +12 -0
  20. package/dist/doc/design-tokens.json +150 -148
  21. package/dist/doc/index.json +2 -2
  22. package/dist/index.js +31 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/parser.d.ts +3 -3
  25. package/dist/parser.d.ts.map +1 -1
  26. package/dist/parser.js +47 -236
  27. package/dist/parser.js.map +1 -1
  28. package/dist/tools/list-css-classes.js +1 -1
  29. package/dist/tools/list-css-classes.js.map +1 -1
  30. package/dist/tools/list-design-tokens.d.ts +8 -8
  31. package/dist/tools/list-design-tokens.d.ts.map +1 -1
  32. package/dist/tools/list-design-tokens.js +1 -1
  33. package/dist/tools/list-design-tokens.js.map +1 -1
  34. package/package.json +3 -3
package/dist/parser.js CHANGED
@@ -4,41 +4,24 @@ import { dirname, join } from 'path';
4
4
  const __filename = fileURLToPath(import.meta.url);
5
5
  const __dirname = dirname(__filename);
6
6
  /**
7
- * Parse the Joy components documentation markdown file
8
- * and extract component names from the Table of Contents
7
+ * Parse the Joy components documentation JSON file
8
+ * and extract component names from the index
9
9
  */
10
10
  export function parseComponentNames() {
11
11
  try {
12
- // Path to the documentation file
13
- const docPath = join(__dirname, '../../core-vue/dist/doc/joy-all-components.md');
14
- const content = readFileSync(docPath, 'utf-8');
15
- const lines = content.split('\n');
16
- const components = [];
17
- // Find the Table of Contents section
18
- let inTableOfContents = false;
19
- for (const line of lines) {
20
- // Start of Table of Contents
21
- if (line.trim() === '## Table of Contents') {
22
- inTableOfContents = true;
23
- continue;
24
- }
25
- // End of Table of Contents (next section starts)
26
- if (inTableOfContents && line.startsWith('---')) {
27
- break;
28
- }
29
- // Extract component names from TOC links
30
- // Format: - [VJoyAdminBanner](#vjoyadminbanner)
31
- if (inTableOfContents && line.startsWith('- [')) {
32
- const match = line.match(/- \[([^\]]+)\]/);
33
- if (match && match[1]) {
34
- components.push(match[1]);
35
- }
36
- }
12
+ // Path to the JSON index file (relative to dist folder where compiled code runs)
13
+ const indexPath = join(__dirname, 'doc/index.json');
14
+ const content = readFileSync(indexPath, 'utf-8');
15
+ const data = JSON.parse(content);
16
+ // Extract component names from the components array
17
+ if (data.components && Array.isArray(data.components)) {
18
+ const names = data.components.map((comp) => comp.name);
19
+ return names;
37
20
  }
38
- return components;
21
+ return [];
39
22
  }
40
23
  catch (error) {
41
- console.error('Error parsing component names:', error);
24
+ console.error('Error parsing component names:', error instanceof Error ? error.message : String(error));
42
25
  return [];
43
26
  }
44
27
  }
@@ -49,40 +32,38 @@ export function getComponentCount() {
49
32
  return parseComponentNames().length;
50
33
  }
51
34
  /**
52
- * Parse and extract all information for a specific component
35
+ * Parse and extract all information for a specific component from JSON
53
36
  */
54
37
  export function parseComponentInfo(componentName) {
55
38
  try {
56
- const docPath = join(__dirname, '../../core-vue/dist/doc/joy-all-components.md');
57
- const content = readFileSync(docPath, 'utf-8');
58
- const lines = content.split('\n');
59
- // Find the component section
60
- const componentHeaderPattern = new RegExp(`^## ${componentName}$`);
61
- let startIndex = -1;
62
- for (let i = 0; i < lines.length; i++) {
63
- if (componentHeaderPattern.test(lines[i])) {
64
- startIndex = i;
65
- break;
66
- }
67
- }
68
- if (startIndex === -1) {
69
- return null; // Component not found
70
- }
71
- // Find the end of the component section (next --- or next ## heading)
72
- let endIndex = lines.length;
73
- for (let i = startIndex + 1; i < lines.length; i++) {
74
- if (lines[i].startsWith('## ') || lines[i].trim() === '---') {
75
- endIndex = i;
76
- break;
77
- }
78
- }
79
- const componentSection = lines.slice(startIndex, endIndex);
39
+ // Path to the component metadata JSON file (relative to dist folder where compiled code runs)
40
+ const componentPath = join(__dirname, 'doc', componentName, 'metadata.json');
41
+ const content = readFileSync(componentPath, 'utf-8');
42
+ const data = JSON.parse(content);
43
+ // Map JSON structure to ComponentInfo interface
80
44
  return {
81
- name: componentName,
82
- props: parseProps(componentSection),
83
- events: parseEvents(componentSection),
84
- slots: parseSlots(componentSection),
85
- exposedMembers: parseExposedMembers(componentSection)
45
+ name: data.displayName || componentName,
46
+ props: data.props.map((prop) => ({
47
+ name: prop.name,
48
+ type: prop.type,
49
+ required: prop.required,
50
+ default: prop.default || '-',
51
+ description: prop.description,
52
+ possibleValues: prop.possibleValues ? formatPossibleValues(prop.possibleValues) : undefined
53
+ })),
54
+ events: data.events.map((event) => ({
55
+ name: event.name,
56
+ description: event.description
57
+ })),
58
+ slots: data.slots.map((slot) => ({
59
+ name: slot.name,
60
+ description: slot.description
61
+ })),
62
+ exposedMembers: data.exposed ? data.exposed.map((exp) => ({
63
+ name: exp.name,
64
+ type: exp.type,
65
+ kind: exp.isMethod ? 'method' : 'property'
66
+ })) : []
86
67
  };
87
68
  }
88
69
  catch (error) {
@@ -91,185 +72,15 @@ export function parseComponentInfo(componentName) {
91
72
  }
92
73
  }
93
74
  /**
94
- * Parse props from component section
95
- */
96
- function parseProps(lines) {
97
- const props = [];
98
- let inPropsSection = false;
99
- let inTableBody = false;
100
- let currentProp = null;
101
- for (let i = 0; i < lines.length; i++) {
102
- const line = lines[i];
103
- if (line.trim() === '### Props') {
104
- inPropsSection = true;
105
- continue;
106
- }
107
- if (inPropsSection && line.startsWith('###')) {
108
- break; // Next section
109
- }
110
- if (inPropsSection) {
111
- // Skip the header row and separator
112
- if (line.includes('| Name | Type | Required')) {
113
- inTableBody = true;
114
- continue;
115
- }
116
- if (line.includes('|------|------|')) {
117
- continue;
118
- }
119
- if (inTableBody && line.startsWith('| `')) {
120
- // Main property row
121
- const match = line.match(/\| `([^`]+)` \| `([^`]+)` \| ([^|]+) \| ([^|]+) \| ([^|]+) \|/);
122
- if (match) {
123
- if (currentProp && currentProp.name) {
124
- props.push(currentProp);
125
- }
126
- currentProp = {
127
- name: match[1].trim(),
128
- type: match[2].trim(),
129
- required: match[3].trim().includes('✅'),
130
- default: match[4].trim(),
131
- description: match[5].trim()
132
- };
133
- }
134
- }
135
- else if (inTableBody && line.includes('*Possible values:*') && currentProp) {
136
- // Possible values row
137
- const match = line.match(/\*Possible values:\* `([^`]+)`/);
138
- if (match) {
139
- currentProp.possibleValues = match[1].trim();
140
- }
141
- }
142
- else if (inTableBody && line.trim() === '') {
143
- // Empty line might signal end of table
144
- if (currentProp && currentProp.name) {
145
- props.push(currentProp);
146
- currentProp = null;
147
- }
148
- }
149
- }
150
- }
151
- // Add last prop if exists
152
- if (currentProp && currentProp.name) {
153
- props.push(currentProp);
154
- }
155
- return props;
156
- }
157
- /**
158
- * Parse events from component section
159
- */
160
- function parseEvents(lines) {
161
- const events = [];
162
- let inEventsSection = false;
163
- let inTableBody = false;
164
- for (const line of lines) {
165
- if (line.trim() === '### Events') {
166
- inEventsSection = true;
167
- continue;
168
- }
169
- if (inEventsSection && line.startsWith('###')) {
170
- break;
171
- }
172
- if (inEventsSection) {
173
- if (line.includes('*No events*')) {
174
- break;
175
- }
176
- if (line.includes('| Event | Description |')) {
177
- inTableBody = true;
178
- continue;
179
- }
180
- if (line.includes('|------|-------------|')) {
181
- continue;
182
- }
183
- if (inTableBody && line.startsWith('| `')) {
184
- const match = line.match(/\| `([^`]+)` \| ([^|]+) \|/);
185
- if (match) {
186
- events.push({
187
- name: match[1].trim(),
188
- description: match[2].trim()
189
- });
190
- }
191
- }
192
- }
193
- }
194
- return events;
195
- }
196
- /**
197
- * Parse slots from component section
75
+ * Format possible values for display
198
76
  */
199
- function parseSlots(lines) {
200
- const slots = [];
201
- let inSlotsSection = false;
202
- let inTableBody = false;
203
- for (const line of lines) {
204
- if (line.trim() === '### Slots') {
205
- inSlotsSection = true;
206
- continue;
207
- }
208
- if (inSlotsSection && line.startsWith('###')) {
209
- break;
210
- }
211
- if (inSlotsSection) {
212
- if (line.includes('*No slots*')) {
213
- break;
214
- }
215
- if (line.includes('| Slot | Description |')) {
216
- inTableBody = true;
217
- continue;
218
- }
219
- if (line.includes('|------|-------------|')) {
220
- continue;
221
- }
222
- if (inTableBody && line.startsWith('| `')) {
223
- const match = line.match(/\| `([^`]+)` \| ([^|]+) \|/);
224
- if (match) {
225
- slots.push({
226
- name: match[1].trim(),
227
- description: match[2].trim()
228
- });
229
- }
230
- }
231
- }
77
+ function formatPossibleValues(values) {
78
+ if (typeof values === 'string') {
79
+ return values;
232
80
  }
233
- return slots;
234
- }
235
- /**
236
- * Parse exposed members from component section
237
- */
238
- function parseExposedMembers(lines) {
239
- const members = [];
240
- let inExposedSection = false;
241
- let inTableBody = false;
242
- for (const line of lines) {
243
- if (line.includes('### Exposed Methods & Properties')) {
244
- inExposedSection = true;
245
- continue;
246
- }
247
- if (inExposedSection && line.startsWith('###')) {
248
- break;
249
- }
250
- if (inExposedSection) {
251
- if (line.includes('*No exposed')) {
252
- break;
253
- }
254
- if (line.includes('| Name | Type | Kind |')) {
255
- inTableBody = true;
256
- continue;
257
- }
258
- if (line.includes('|------|------|------|')) {
259
- continue;
260
- }
261
- if (inTableBody && line.startsWith('| `')) {
262
- const match = line.match(/\| `([^`]+)` \| `([^`]+)` \| ([^|]+) \|/);
263
- if (match) {
264
- members.push({
265
- name: match[1].trim(),
266
- type: match[2].trim(),
267
- kind: match[3].trim()
268
- });
269
- }
270
- }
271
- }
81
+ if (Array.isArray(values)) {
82
+ return values.join(', ');
272
83
  }
273
- return members;
84
+ return String(values);
274
85
  }
275
86
  //# sourceMappingURL=parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export const listCssClassesTool = {
12
12
  }
13
13
  };
14
14
  export function handleListCssClasses() {
15
- const cssClassesFilePath = resolve(__dirname, '../doc/css-classes.json');
15
+ const cssClassesFilePath = resolve(__dirname, '../../dist/doc/css-classes.json');
16
16
  const fileContent = readFileSync(cssClassesFilePath, 'utf-8');
17
17
  return JSON.parse(fileContent);
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list-css-classes.js","sourceRoot":"","sources":["../../src/tools/list-css-classes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,yHAAyH;IACtI,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAWF,MAAM,UAAU,oBAAoB;IAClC,MAAM,kBAAkB,GAAG,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAuB,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"list-css-classes.js","sourceRoot":"","sources":["../../src/tools/list-css-classes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,yHAAyH;IACtI,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAWF,MAAM,UAAU,oBAAoB;IAClC,MAAM,kBAAkB,GAAG,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAuB,CAAC;AACvD,CAAC"}
@@ -8,14 +8,14 @@ export declare const listDesignTokensTool: {
8
8
  };
9
9
  };
10
10
  export interface DesignTokensByDomain {
11
- colors: string[];
12
- spacing: string[];
13
- typography: string[];
14
- radius: string[];
15
- elevation: string[];
16
- zIndex: string[];
17
- transitions: string[];
18
- forms: string[];
11
+ colors: Record<string, string>;
12
+ spacing: Record<string, string>;
13
+ typography: Record<string, string>;
14
+ radius: Record<string, string>;
15
+ elevation: Record<string, string>;
16
+ zIndex: Record<string, string>;
17
+ transitions: Record<string, string>;
18
+ forms: Record<string, string>;
19
19
  }
20
20
  export declare function handleListDesignTokens(): DesignTokensByDomain;
21
21
  //# sourceMappingURL=list-design-tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-design-tokens.d.ts","sourceRoot":"","sources":["../../src/tools/list-design-tokens.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB;;;;;;;;CAQhC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,sBAAsB,IAAI,oBAAoB,CAI7D"}
1
+ {"version":3,"file":"list-design-tokens.d.ts","sourceRoot":"","sources":["../../src/tools/list-design-tokens.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB;;;;;;;;CAQhC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,wBAAgB,sBAAsB,IAAI,oBAAoB,CAI7D"}
@@ -12,7 +12,7 @@ export const listDesignTokensTool = {
12
12
  }
13
13
  };
14
14
  export function handleListDesignTokens() {
15
- const tokensFilePath = resolve(__dirname, '../doc/design-tokens.json');
15
+ const tokensFilePath = resolve(__dirname, '../../dist/doc/design-tokens.json');
16
16
  const fileContent = readFileSync(tokensFilePath, 'utf-8');
17
17
  return JSON.parse(fileContent);
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list-design-tokens.js","sourceRoot":"","sources":["../../src/tools/list-design-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,iKAAiK;IAC9K,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAaF,MAAM,UAAU,sBAAsB;IACpC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAyB,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"list-design-tokens.js","sourceRoot":"","sources":["../../src/tools/list-design-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,iKAAiK;IAC9K,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAaF,MAAM,UAAU,sBAAsB;IACpC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAyB,CAAC;AACzD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maltjoy/mcp-server",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for Joy Design System - exposes Vue3 components information",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,7 +11,7 @@
11
11
  "dist"
12
12
  ],
13
13
  "scripts": {
14
- "build": "tsc",
14
+ "build": "tsc && npm run generate:components-docs:json",
15
15
  "dev": "tsc --watch",
16
16
  "start": "node dist/index.js",
17
17
  "generate:components-docs:json": "node src/json-metadata-generator.mjs",
@@ -27,7 +27,7 @@
27
27
  "author": "Maltjoy",
28
28
  "license": "MIT",
29
29
  "dependencies": {
30
- "@modelcontextprotocol/sdk": "^1.0.4"
30
+ "@modelcontextprotocol/sdk": "1.25.2"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/node": "20.14.2",