@stellisoft/stellify-mcp 0.1.38 → 0.1.39
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/dist/index.js +61 -1
- package/dist/stellify-client.d.ts +6 -0
- package/dist/stellify-client.js +5 -0
- package/package.json +1 -1
- package/server.json +2 -2
package/dist/index.js
CHANGED
|
@@ -131,6 +131,11 @@ Pass 'includes' array for framework class dependencies (auto-resolved to UUIDs).
|
|
|
131
131
|
type: 'string',
|
|
132
132
|
description: 'Optional module name to group this file with related code (e.g., "blog-posts", "user-auth"). Module is auto-created if it doesn\'t exist.',
|
|
133
133
|
},
|
|
134
|
+
attributes: {
|
|
135
|
+
type: 'array',
|
|
136
|
+
items: { type: 'string' },
|
|
137
|
+
description: 'PHP 8 class-level attributes (e.g., ["Fillable([\'name\', \'email\'])"], ["ObservedBy(UserObserver::class)"]). Use search_attributes tool to find available attributes.',
|
|
138
|
+
},
|
|
134
139
|
},
|
|
135
140
|
required: ['directory', 'name', 'type'],
|
|
136
141
|
},
|
|
@@ -206,6 +211,11 @@ Pass 'includes' array for framework class dependencies (auto-resolved to UUIDs).
|
|
|
206
211
|
description: 'Context: Design decisions',
|
|
207
212
|
items: { type: 'string' },
|
|
208
213
|
},
|
|
214
|
+
attributes: {
|
|
215
|
+
type: 'array',
|
|
216
|
+
description: 'PHP 8 attributes for the method (e.g., ["Route(\\"/api/users\\")"], ["Middleware(\\"auth\\")"]). Use search_attributes tool to find available attributes.',
|
|
217
|
+
items: { type: 'string' },
|
|
218
|
+
},
|
|
209
219
|
},
|
|
210
220
|
required: ['file', 'name'],
|
|
211
221
|
},
|
|
@@ -322,6 +332,11 @@ For significant changes, include context fields: summary, rationale, references,
|
|
|
322
332
|
description: 'Context: Design decisions made',
|
|
323
333
|
items: { type: 'string' },
|
|
324
334
|
},
|
|
335
|
+
attributes: {
|
|
336
|
+
type: 'array',
|
|
337
|
+
description: 'PHP 8 attributes for the method (e.g., ["Route(\\"/api/users\\")"], ["Middleware(\\"auth\\")"]). Use search_attributes tool to find available attributes.',
|
|
338
|
+
items: { type: 'string' },
|
|
339
|
+
},
|
|
325
340
|
},
|
|
326
341
|
required: ['uuid'],
|
|
327
342
|
},
|
|
@@ -343,6 +358,32 @@ For significant changes, include context fields: summary, rationale, references,
|
|
|
343
358
|
},
|
|
344
359
|
},
|
|
345
360
|
},
|
|
361
|
+
{
|
|
362
|
+
name: 'search_attributes',
|
|
363
|
+
description: `Search for available PHP 8 attributes in Laravel. Returns attribute suggestions with descriptions, namespaces, targets (class/method/property/parameter), and expected arguments.
|
|
364
|
+
|
|
365
|
+
Use this before adding attributes to files or methods to find the correct attribute name and syntax.
|
|
366
|
+
|
|
367
|
+
Example queries:
|
|
368
|
+
- "fillable" → finds Fillable attribute for models
|
|
369
|
+
- "middleware" → finds Middleware attribute for controllers
|
|
370
|
+
- "queue" → finds Queue, Tries, Timeout attributes for jobs`,
|
|
371
|
+
inputSchema: {
|
|
372
|
+
type: 'object',
|
|
373
|
+
properties: {
|
|
374
|
+
query: {
|
|
375
|
+
type: 'string',
|
|
376
|
+
description: 'Search term to match against attribute names (e.g., "fillable", "middleware", "tries")',
|
|
377
|
+
},
|
|
378
|
+
target: {
|
|
379
|
+
type: 'string',
|
|
380
|
+
enum: ['class', 'method', 'property', 'parameter'],
|
|
381
|
+
description: 'Filter attributes by where they can be applied. Default: returns all.',
|
|
382
|
+
},
|
|
383
|
+
},
|
|
384
|
+
required: ['query'],
|
|
385
|
+
},
|
|
386
|
+
},
|
|
346
387
|
{
|
|
347
388
|
name: 'delete_method',
|
|
348
389
|
description: 'Delete a method from a file by UUID. This permanently removes the method and all its code. Requires both the file UUID and method UUID.',
|
|
@@ -994,6 +1035,11 @@ Required: uuid, name, type. For significant changes, include context fields: sum
|
|
|
994
1035
|
description: 'Context: Design decisions',
|
|
995
1036
|
items: { type: 'string' },
|
|
996
1037
|
},
|
|
1038
|
+
attributes: {
|
|
1039
|
+
type: 'array',
|
|
1040
|
+
items: { type: 'string' },
|
|
1041
|
+
description: 'PHP 8 class-level attributes (e.g., ["Fillable([\'name\', \'email\'])"], ["ObservedBy(UserObserver::class)"]). Use search_attributes tool to find available attributes.',
|
|
1042
|
+
},
|
|
997
1043
|
},
|
|
998
1044
|
required: ['uuid', 'name', 'type'],
|
|
999
1045
|
},
|
|
@@ -1509,7 +1555,7 @@ const SERVER_INSTRUCTIONS = `Stellify is a coding platform where code is stored
|
|
|
1509
1555
|
// Create MCP server
|
|
1510
1556
|
const server = new Server({
|
|
1511
1557
|
name: 'stellify-mcp',
|
|
1512
|
-
version: '0.1.
|
|
1558
|
+
version: '0.1.39',
|
|
1513
1559
|
}, {
|
|
1514
1560
|
capabilities: {
|
|
1515
1561
|
tools: {},
|
|
@@ -1666,6 +1712,20 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
1666
1712
|
],
|
|
1667
1713
|
};
|
|
1668
1714
|
}
|
|
1715
|
+
case 'search_attributes': {
|
|
1716
|
+
const result = await stellify.searchAttributes(args);
|
|
1717
|
+
return {
|
|
1718
|
+
content: [
|
|
1719
|
+
{
|
|
1720
|
+
type: 'text',
|
|
1721
|
+
text: JSON.stringify({
|
|
1722
|
+
success: true,
|
|
1723
|
+
...result,
|
|
1724
|
+
}, null, 2),
|
|
1725
|
+
},
|
|
1726
|
+
],
|
|
1727
|
+
};
|
|
1728
|
+
}
|
|
1669
1729
|
case 'delete_method': {
|
|
1670
1730
|
const { file, uuid } = args;
|
|
1671
1731
|
const result = await stellify.deleteMethod(file, uuid);
|
|
@@ -11,6 +11,7 @@ export interface CreateFileParams {
|
|
|
11
11
|
extension?: string;
|
|
12
12
|
code?: string;
|
|
13
13
|
auto_create_dependencies?: boolean;
|
|
14
|
+
attributes?: string[];
|
|
14
15
|
}
|
|
15
16
|
export interface CreateMethodParams {
|
|
16
17
|
file: string;
|
|
@@ -27,6 +28,7 @@ export interface CreateMethodParams {
|
|
|
27
28
|
value?: string;
|
|
28
29
|
}>;
|
|
29
30
|
body?: string;
|
|
31
|
+
attributes?: string[];
|
|
30
32
|
}
|
|
31
33
|
export interface AddMethodBodyParams {
|
|
32
34
|
file: string;
|
|
@@ -198,4 +200,8 @@ export declare class StellifyClient {
|
|
|
198
200
|
}): Promise<any>;
|
|
199
201
|
listPatterns(): Promise<any>;
|
|
200
202
|
getAssembledCode(uuid: string): Promise<any>;
|
|
203
|
+
searchAttributes(params: {
|
|
204
|
+
query: string;
|
|
205
|
+
target?: 'class' | 'method' | 'property' | 'parameter';
|
|
206
|
+
}): Promise<any>;
|
|
201
207
|
}
|
package/dist/stellify-client.js
CHANGED
|
@@ -243,4 +243,9 @@ export class StellifyClient {
|
|
|
243
243
|
const response = await this.client.get(`/file/${uuid}/source`);
|
|
244
244
|
return response.data;
|
|
245
245
|
}
|
|
246
|
+
// Search PHP 8 attributes - returns suggestions based on query and target
|
|
247
|
+
async searchAttributes(params) {
|
|
248
|
+
const response = await this.client.get('/attributes/search', { params });
|
|
249
|
+
return response.data;
|
|
250
|
+
}
|
|
246
251
|
}
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/Stellify-Software-Ltd/stellify-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.39",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@stellisoft/stellify-mcp",
|
|
14
|
-
"version": "0.1.
|
|
14
|
+
"version": "0.1.39",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|