@stellisoft/stellify-mcp 0.1.2 → 0.1.7

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/README.md CHANGED
@@ -7,13 +7,15 @@ Model Context Protocol (MCP) server for [Stellify](https://stellisoft.com) - the
7
7
 
8
8
  ## What is This?
9
9
 
10
- This MCP server lets AI assistants (like Claude Desktop) interact with your Stellify projects to build Laravel applications incrementally. Instead of generating full code files at once, AI can:
10
+ This MCP server lets AI assistants (like Claude Desktop) interact with your Stellify projects to build Laravel and Vue.js applications incrementally. Instead of generating full code files at once, AI can:
11
11
 
12
- - 🏗️ Create file structures (classes, controllers, models, middleware)
13
- - 📝 Add method signatures with type hints
14
- - 🔍 Parse PHP code into structured JSON (statement-by-statement)
15
- - 🔎 Search existing code in your projects
16
- - 🚀 Build Laravel applications through natural conversation
12
+ - Create file structures (classes, controllers, models, middleware, Vue components)
13
+ - Add method signatures with type hints
14
+ - Parse PHP/JavaScript code into structured JSON (statement-by-statement)
15
+ - Convert HTML to Stellify elements in a single operation
16
+ - Search existing code in your projects
17
+ - Install reusable code from the global library
18
+ - Build applications through natural conversation
17
19
 
18
20
  ## Quick Start
19
21
 
@@ -68,7 +70,7 @@ That's it! The Stellify tools should now be available in Claude Desktop.
68
70
 
69
71
  ## Usage
70
72
 
71
- Once configured, you can talk to Claude naturally to build Laravel applications:
73
+ Once configured, you can talk to Claude naturally to build applications:
72
74
 
73
75
  ### Example Conversations
74
76
 
@@ -89,6 +91,17 @@ $user = User::create($request->validated());
89
91
  return response()->json($user, 201);"
90
92
  ```
91
93
 
94
+ **Build a Vue component:**
95
+ ```
96
+ "Create a Counter component with an increment button"
97
+ ```
98
+
99
+ **Convert HTML to elements:**
100
+ ```
101
+ "Convert this HTML to Stellify elements:
102
+ <div class='container'><h1>Hello</h1><button>Click me</button></div>"
103
+ ```
104
+
92
105
  **Search your codebase:**
93
106
  ```
94
107
  "Search for all controller files in my project"
@@ -97,85 +110,517 @@ return response()->json($user, 201);"
97
110
 
98
111
  ## Available Tools
99
112
 
100
- ### `create_file`
101
- Create a new file (class, controller, model, middleware) in a Stellify project.
113
+ ### Project & Directory Tools
114
+
115
+ #### `get_project`
116
+ Get the active Stellify project for the authenticated user. **Call this first before any other operations.**
117
+
118
+ **Parameters:** None
119
+
120
+ **Returns:**
121
+ - `uuid`: Project UUID (needed for most operations)
122
+ - `name`: Project name
123
+ - `directories`: Array of `{uuid, name}` for existing directories
124
+
125
+ ---
126
+
127
+ #### `get_directory`
128
+ Get a directory by UUID to see its contents.
102
129
 
103
130
  **Parameters:**
104
- - `project_id` (required): Stellify project UUID
105
- - `name` (required): File name (e.g., "Calculator", "UserController")
106
- - `type` (required): File type - "class", "model", "controller", or "middleware"
107
- - `namespace` (optional): PHP namespace (e.g., "App\\Services\\")
131
+ - `uuid` (required): The UUID of the directory
108
132
 
109
- **Example:**
110
- ```
111
- Create a Calculator class in my Stellify project abc-123
133
+ ---
134
+
135
+ #### `create_directory`
136
+ Create a new directory for organizing files.
137
+
138
+ **Parameters:**
139
+ - `name` (required): Directory name (e.g., "js", "css", "components")
140
+
141
+ ---
142
+
143
+ ### File Tools
144
+
145
+ #### `create_file`
146
+ Create a new file in a Stellify project. This creates an empty file shell - no methods, statements, or template yet.
147
+
148
+ **Parameters:**
149
+ - `directory` (required): UUID of the directory (get from `get_project` directories array)
150
+ - `name` (required): File name without extension (e.g., "Counter", "UserController")
151
+ - `type` (required): File type - "class", "model", "controller", "middleware", or "js"
152
+ - `extension` (optional): File extension. Use "vue" for Vue components.
153
+ - `namespace` (optional): PHP namespace (e.g., "App\\Services\\"). Only for PHP files.
154
+ - `includes` (optional): Array of fully-qualified class names to import (e.g., `["App\\Models\\User", "Illuminate\\Http\\Request"]`). Stellify will resolve these to file UUIDs, fetching from Laravel API or vendor directory if needed.
155
+
156
+ **Directory selection:** Match the directory to your file's purpose. If the directory doesn't exist, create it first with `create_directory`.
157
+
158
+ | File Type | Directory | Namespace |
159
+ |-----------|-----------|-----------|
160
+ | Controllers | `controllers` | `App\Http\Controllers\` |
161
+ | Models | `models` | `App\Models\` |
162
+ | Services | `services` | `App\Services\` |
163
+ | Middleware | `middleware` | `App\Http\Middleware\` |
164
+ | Vue/JS | `js` | N/A |
165
+
166
+ **Example workflow:**
167
+ 1. `create_file` → creates empty shell, returns file UUID
168
+ 2. `create_statement` + `add_statement_code` → add variables/imports
169
+ 3. `create_method` + `add_method_body` → add functions
170
+ 4. `html_to_elements` → create template elements (for Vue)
171
+ 5. `save_file` → finalize with all UUIDs wired together
172
+
173
+ **Auto-dependency creation** (when `auto_create_dependencies: true`):
174
+
175
+ When you create a file with code like:
176
+ ```php
177
+ <?php
178
+ namespace App\Http\Controllers;
179
+
180
+ use App\Models\User;
181
+ use Illuminate\Http\Request;
182
+
183
+ class UserController extends Controller
184
+ {
185
+ public function store(Request $request)
186
+ {
187
+ $user = User::create($request->validated());
188
+ return response()->json($user);
189
+ }
190
+ }
112
191
  ```
113
192
 
114
- ### `create_method`
193
+ Stellify will:
194
+ 1. Parse `use` statements to find dependencies (`User`, `Request`, `Socialite`)
195
+ 2. Check Application DB for framework classes → find cached classes
196
+ 3. For core Laravel classes → fetch from [api.laravel.com](https://api.laravel.com/docs/12.x/)
197
+ 4. For vendor packages (Socialite, Spatie, etc.) → read from `vendor/` directory
198
+ 5. Create missing App classes → create `User` model file
199
+ 6. Wire up the file's `includes` array with all dependency UUIDs
200
+
201
+ **Supported sources:**
202
+ - **Laravel API** - Core `Illuminate\*` classes fetched from api.laravel.com
203
+ - **Vendor packages** - `Laravel\Socialite\*`, `Laravel\Cashier\*`, `Spatie\*`, `Livewire\*`, etc. read directly from your `vendor/` directory using PHP-Parser
204
+
205
+ The response includes a `dependencies` report showing what was created/resolved and from which source.
206
+
207
+ ---
208
+
209
+ #### `get_file`
210
+ Get a file by UUID with all its metadata, methods, and statements.
211
+
212
+ **Parameters:**
213
+ - `uuid` (required): UUID of the file
214
+
215
+ ---
216
+
217
+ #### `save_file`
218
+ Save/update a file with its full configuration. This finalizes the file after `create_file`.
219
+
220
+ **Parameters:**
221
+ - `uuid` (required): UUID of the file
222
+ - `name` (required): File name (without extension)
223
+ - `type` (required): File type ("js", "class", "controller", "model", "middleware")
224
+ - `extension` (optional): File extension ("vue" for Vue SFCs)
225
+ - `template` (optional): Array of root element UUIDs for Vue `<template>` section
226
+ - `data` (optional): Array of METHOD UUIDs only (functions)
227
+ - `statements` (optional): Array of STATEMENT UUIDs (imports, variables, refs)
228
+ - `includes` (optional): Array of file UUIDs to import
229
+
230
+ **Important:** `data` = method UUIDs only, `statements` = statement UUIDs (code outside methods)
231
+
232
+ ---
233
+
234
+ #### `search_files`
235
+ Search for files in the project by name or type.
236
+
237
+ **Parameters:**
238
+ - `name` (optional): File name pattern to search for
239
+ - `type` (optional): File type filter
240
+
241
+ ---
242
+
243
+ ### Method Tools
244
+
245
+ #### `create_method`
115
246
  Create a method signature in a file (without implementation).
116
247
 
117
248
  **Parameters:**
118
- - `file_uuid` (required): UUID of the file
119
- - `name` (required): Method name (e.g., "add", "store")
120
- - `visibility` (optional): "public", "protected", or "private" (default: "public")
121
- - `is_static` (optional): boolean (default: false)
122
- - `return_type` (optional): Return type (e.g., "int", "JsonResponse")
249
+ - `file` (required): UUID of the file to add the method to
250
+ - `name` (required): Method name (e.g., "increment", "store", "handleClick")
251
+ - `visibility` (optional): "public", "protected", or "private" (PHP only, default: "public")
252
+ - `is_static` (optional): Whether the method is static (PHP only, default: false)
253
+ - `returnType` (optional): Return type (e.g., "int", "string", "void")
123
254
  - `parameters` (optional): Array of `{name, type}` objects
124
255
 
256
+ ---
257
+
258
+ #### `add_method_body`
259
+ Parse and add code to a method body. Stellify parses the code into structured JSON statements.
260
+
261
+ **Parameters:**
262
+ - `file_uuid` (required): UUID of the file containing the method
263
+ - `method_uuid` (required): UUID of the method to add code to
264
+ - `code` (required): Code for the method body (just the statements, no function declaration)
265
+
125
266
  **Example:**
126
267
  ```
127
- Add a public method called "add" that takes two integers and returns an integer
268
+ code: "return $a + $b;"
128
269
  ```
129
270
 
130
- ### `add_method_body`
131
- Parse and add PHP code to a method body.
271
+ ---
272
+
273
+ #### `search_methods`
274
+ Search for methods in the project by name or within a specific file.
132
275
 
133
276
  **Parameters:**
134
- - `file_uuid` (required): UUID of the file
135
- - `method_uuid` (required): UUID of the method
136
- - `code` (required): PHP code (just the body, no function declaration)
277
+ - `name` (optional): Method name to search for (supports wildcards)
278
+ - `file_uuid` (optional): Filter results to a specific file
137
279
 
138
- **Example:**
280
+ ---
281
+
282
+ ### Statement Tools
283
+
284
+ #### `create_statement`
285
+ Create an empty statement in a file. This is step 1 of 2 - you must call `add_statement_code` next.
286
+
287
+ **Parameters:**
288
+ - `file` (optional): UUID of the file to add the statement to
289
+ - `method` (optional): UUID of the method to add the statement to (for method body statements)
290
+
291
+ **Use cases:**
292
+ - PHP: Class properties, use statements, constants
293
+ - JS/Vue: Variable declarations, imports, reactive refs
294
+
295
+ ---
296
+
297
+ #### `add_statement_code`
298
+ Add code to an existing statement. This is step 2 of 2 - call after `create_statement`.
299
+
300
+ **Parameters:**
301
+ - `file_uuid` (required): UUID of the file containing the statement
302
+ - `statement_uuid` (required): UUID of the statement to add code to
303
+ - `code` (required): The code to add
304
+
305
+ **Examples:**
139
306
  ```
140
- Add this implementation to the add method: return $a + $b;
307
+ code: "use Illuminate\\Http\\Request;"
308
+ code: "const count = ref(0);"
309
+ code: "import { ref } from 'vue';"
141
310
  ```
142
311
 
143
- ### `search_methods`
144
- Search for methods in the project.
312
+ ---
313
+
314
+ #### `get_statement`
315
+ Get a statement by UUID with its clauses (code tokens).
145
316
 
146
317
  **Parameters:**
147
- - `name` (optional): Method name to search for
148
- - `file_uuid` (optional): Filter to specific file
318
+ - `uuid` (required): The UUID of the statement
149
319
 
150
- ### `search_files`
151
- Search for files in the project.
320
+ ---
321
+
322
+ ### Route Tools
323
+
324
+ #### `create_route`
325
+ Create a new route/page in a Stellify project.
152
326
 
153
327
  **Parameters:**
154
- - `name` (optional): File name pattern
155
- - `type` (optional): File type filter
328
+ - `project_id` (required): The UUID of the Stellify project
329
+ - `name` (required): Route/page name (e.g., "Home", "Counter", "About")
330
+ - `path` (required): URL path (e.g., "/", "/counter", "/about")
331
+ - `method` (required): HTTP method ("GET", "POST", "PUT", "DELETE", "PATCH")
332
+ - `type` (optional): Route type - "web" for pages, "api" for API endpoints (default: "web")
333
+ - `data` (optional): Additional route data
334
+
335
+ ---
336
+
337
+ #### `get_route`
338
+ Get a route/page by UUID.
339
+
340
+ **Parameters:**
341
+ - `uuid` (required): The UUID of the route
342
+
343
+ ---
344
+
345
+ #### `search_routes`
346
+ Search for routes/pages in the project by name.
347
+
348
+ **Parameters:**
349
+ - `search` (optional): Search term to match route names
350
+ - `type` (optional): Filter by route type ("web" or "api")
351
+ - `per_page` (optional): Results per page (default: 10)
352
+
353
+ ---
354
+
355
+ ### Element Tools (UI Components)
356
+
357
+ #### `create_element`
358
+ Create a new UI element. Provide either `page` (route UUID) for root elements, or `parent` (element UUID) for child elements.
359
+
360
+ **Parameters:**
361
+ - `type` (required): Element type - one of:
362
+ - HTML5: `s-wrapper`, `s-input`, `s-form`, `s-svg`, `s-shape`, `s-media`, `s-iframe`
363
+ - Components: `s-loop`, `s-transition`, `s-freestyle`, `s-motion`
364
+ - Blade: `s-directive`
365
+ - Shadcn/ui: `s-chart`, `s-table`, `s-combobox`, `s-accordion`, `s-calendar`, `s-contiguous`
366
+ - `page` (optional): UUID of the page/route (for root elements)
367
+ - `parent` (optional): UUID of the parent element (for child elements)
368
+
369
+ ---
370
+
371
+ #### `update_element`
372
+ Update an existing UI element.
373
+
374
+ **Parameters:**
375
+ - `uuid` (required): UUID of the element to update
376
+ - `data` (required): Object with HTML attributes and Stellify fields
377
+
378
+ **Standard HTML attributes:** `placeholder`, `href`, `src`, `type`, etc.
379
+
380
+ **Stellify fields:**
381
+ - `name`: Element name in editor
382
+ - `type`: Element type
383
+ - `locked`: Prevent editing (boolean)
384
+ - `tag`: HTML tag (div, input, button, etc.)
385
+ - `classes`: CSS classes array `["class1", "class2"]`
386
+ - `text`: Element text content
387
+
388
+ **Event handlers** (set value to method UUID):
389
+ - `click`: @click
390
+ - `submit`: @submit
391
+ - `change`: @change
392
+ - `input`: @input
393
+ - `focus`: @focus
394
+ - `blur`: @blur
395
+ - `keydown`: @keydown
396
+ - `keyup`: @keyup
397
+ - `mouseenter`: @mouseenter
398
+ - `mouseleave`: @mouseleave
399
+
400
+ ---
401
+
402
+ #### `get_element`
403
+ Get a single element by UUID.
404
+
405
+ **Parameters:**
406
+ - `uuid` (required): UUID of the element
407
+
408
+ ---
409
+
410
+ #### `get_element_tree`
411
+ Get an element with all its descendants as a hierarchical tree structure.
412
+
413
+ **Parameters:**
414
+ - `uuid` (required): UUID of the root element
415
+
416
+ ---
417
+
418
+ #### `delete_element`
419
+ Delete an element and all its children (CASCADE).
420
+
421
+ **Parameters:**
422
+ - `uuid` (required): UUID of the element to delete
423
+
424
+ ---
425
+
426
+ #### `search_elements`
427
+ Search for elements in the project.
428
+
429
+ **Parameters:**
430
+ - `search` (optional): Search query to match element name, type, or content
431
+ - `type` (optional): Filter by element type
432
+ - `include_metadata` (optional): Include additional metadata (default: false)
433
+ - `per_page` (optional): Results per page, 1-100 (default: 20)
434
+
435
+ ---
436
+
437
+ #### `html_to_elements`
438
+ Convert HTML to Stellify elements in ONE operation. This is the fastest way to build interfaces!
439
+
440
+ **Parameters:**
441
+ - `elements` (required): HTML string to convert
442
+ - `page` (optional): Route UUID to attach elements to. Omit for Vue components.
443
+ - `selection` (optional): Parent element UUID to attach to (alternative to page)
444
+ - `test` (optional): If true, returns structure without creating elements
445
+
446
+ **Features:**
447
+ - Parses HTML structure
448
+ - Creates all elements with proper nesting
449
+ - Preserves attributes, classes, text content
450
+ - Auto-detects Vue bindings (`{{ variable }}`) and creates linked statements
451
+ - Returns element UUIDs for use in `save_file` template array
452
+
453
+ **Element type mapping:**
454
+ - `button`, `input`, `textarea`, `select` → `s-input`
455
+ - `div`, `span`, `p`, `section`, etc. → `s-wrapper`
456
+ - `form` → `s-form`
457
+ - `img`, `video`, `audio` → `s-media`
458
+
459
+ ---
460
+
461
+ ### Global Library Tools
462
+
463
+ #### `list_globals`
464
+ List all global files in the Application database. Globals are reusable, curated code that can be installed into tenant projects.
465
+
466
+ **Parameters:** None
467
+
468
+ ---
469
+
470
+ #### `get_global`
471
+ Get a global file with all its methods, statements, and clauses.
472
+
473
+ **Parameters:**
474
+ - `uuid` (required): UUID of the global file
475
+
476
+ ---
477
+
478
+ #### `install_global`
479
+ Install a global file from the Application database into a tenant project.
480
+
481
+ **Parameters:**
482
+ - `file_uuid` (required): UUID of the global file to install
483
+ - `directory_uuid` (required): UUID of the directory to install into
484
+
485
+ ---
486
+
487
+ #### `search_global_methods`
488
+ Search for methods across the Application database (global/framework methods).
489
+
490
+ **Parameters:**
491
+ - `query` (required): Search query to find methods by name
492
+
493
+ ---
494
+
495
+ ### Module Tools
496
+
497
+ Modules are named collections of related global files that can be installed together.
498
+
499
+ #### `list_modules`
500
+ List all available modules.
501
+
502
+ **Parameters:** None
503
+
504
+ ---
505
+
506
+ #### `get_module`
507
+ Get a module with all its files.
508
+
509
+ **Parameters:**
510
+ - `uuid` (required): UUID of the module
511
+
512
+ ---
513
+
514
+ #### `create_module`
515
+ Create a new module to group related global files.
516
+
517
+ **Parameters:**
518
+ - `name` (required): Unique name for the module (e.g., "laravel-sanctum-auth")
519
+ - `description` (optional): Description of what the module provides
520
+ - `version` (optional): Version string (default: "1.0.0")
521
+ - `tags` (optional): Tags for categorization (e.g., `["auth", "api", "sanctum"]`)
522
+
523
+ ---
524
+
525
+ #### `add_file_to_module`
526
+ Add a global file to a module.
527
+
528
+ **Parameters:**
529
+ - `module_uuid` (required): UUID of the module
530
+ - `file_uuid` (required): UUID of the global file to add
531
+ - `order` (optional): Installation order (auto-increments if not specified)
532
+
533
+ ---
534
+
535
+ #### `install_module`
536
+ Install all files from a module into a tenant project.
537
+
538
+ **Parameters:**
539
+ - `module_uuid` (required): UUID of the module to install
540
+ - `directory_uuid` (required): UUID of the directory to install files into
541
+
542
+ ---
156
543
 
157
544
  ## How Stellify Works
158
545
 
159
- Stellify stores your Laravel application code as **structured JSON** in a database, not text files. This architecture enables:
546
+ Stellify stores your application code as **structured JSON** in a database, not text files. This architecture enables:
160
547
 
161
548
  - **Surgical precision:** AI modifies specific methods without touching other code
162
549
  - **Query your codebase like data:** Find all methods that use a specific class
163
550
  - **Instant refactoring:** Rename a method across your entire application instantly
164
551
  - **Version control at the statement level:** Track changes to individual code statements
165
552
  - **AI-native development:** Give AI granular access without worrying about breaking existing code
553
+ - **Auto-dependency resolution:** Framework classes are automatically fetched from Laravel API docs
554
+
555
+ When you build with Stellify through this MCP server, code is parsed into structured data and can be assembled back into executable code when you deploy.
556
+
557
+ ### Dependency Resolution
558
+
559
+ When you use `auto_create_dependencies`, Stellify resolves dependencies in this order:
166
560
 
167
- When you build with Stellify through this MCP server, code is parsed into structured data and can be assembled back into executable PHP when you deploy.
561
+ 1. **Tenant Database** - Check if the class exists in your project
562
+ 2. **Application Database** - Check the global library of pre-defined classes
563
+ 3. **Laravel API Docs** - For core `Illuminate\*` classes, fetch from [api.laravel.com](https://api.laravel.com/docs/12.x/)
564
+ 4. **Vendor Directory** - For installed packages, read directly from `vendor/`
168
565
 
169
- ## The Incremental Workflow
566
+ ### Supported Package Sources
170
567
 
171
- Stellify works incrementally, not by parsing entire files at once:
568
+ | Source | Namespaces | Method |
569
+ |--------|-----------|--------|
570
+ | Laravel API | `Illuminate\*` | Fetches from api.laravel.com |
571
+ | Vendor | `Laravel\Socialite\*` | Reads from vendor/laravel/socialite |
572
+ | Vendor | `Laravel\Cashier\*` | Reads from vendor/laravel/cashier |
573
+ | Vendor | `Laravel\Sanctum\*` | Reads from vendor/laravel/sanctum |
574
+ | Vendor | `Laravel\Passport\*` | Reads from vendor/laravel/passport |
575
+ | Vendor | `Spatie\*` | Reads from vendor/spatie/* packages |
576
+ | Vendor | `Livewire\*` | Reads from vendor/livewire/livewire |
577
+ | Vendor | `Inertia\*` | Reads from vendor/inertiajs/inertia-laravel |
172
578
 
173
- 1. **Create Structure** File skeleton with no methods
174
- 2. **Add Signatures** → Method declarations without bodies
175
- 3. **Parse Bodies** → Statement-by-statement implementation
176
- 4. **Assemble** → Stellify converts structured data back to PHP
579
+ For vendor packages, Stellify uses PHP-Parser to extract the actual method signatures from your installed package version - ensuring accuracy with your specific dependencies.
177
580
 
178
- This gives AI surgical control over your code.
581
+ ### Code Structure
582
+
583
+ ```
584
+ Directory
585
+ └── File
586
+ └── Method
587
+ ├── Parameters (Clauses)
588
+ └── Statements
589
+ └── Clauses / Language Tokens
590
+ ```
591
+
592
+ Each piece of code is broken down into:
593
+ - **Directory**: Organizational container for files
594
+ - **File**: Contains methods and file metadata
595
+ - **Method**: Function with parameters and body statements
596
+ - **Statement**: A single line/statement of code
597
+ - **Clause**: Leaf node (variable, string, number, etc.)
598
+ - **Language Token**: System-defined keywords and symbols (reusable)
599
+
600
+ ## Workflows
601
+
602
+ ### PHP Controller Workflow
603
+
604
+ 1. `get_project` → Find directory UUID
605
+ 2. `create_file` → type='controller', name='UserController'
606
+ 3. `create_method` → name='store', parameters=[{name:'request', type:'Request'}]
607
+ 4. `add_method_body` → code='return response()->json($request->all());'
608
+
609
+ ### Vue Component Workflow
610
+
611
+ 1. `get_project` → Find the 'js' directory UUID
612
+ 2. `create_file` → type='js', extension='vue' in js directory
613
+ 3. Create statements for imports and data:
614
+ - `create_statement` + `add_statement_code`: `"import { ref } from 'vue';"`
615
+ - `create_statement` + `add_statement_code`: `"const count = ref(0);"`
616
+ 4. `create_method` + `add_method_body` → Create functions
617
+ 5. `html_to_elements` → Convert template HTML to elements
618
+ 6. `update_element` → Wire event handlers (click → method UUID)
619
+ 7. `save_file` → Finalize with:
620
+ - `extension`: 'vue'
621
+ - `template`: [rootElementUuid]
622
+ - `data`: [methodUuid] (METHOD UUIDs only)
623
+ - `statements`: [importStmtUuid, refStmtUuid] (STATEMENT UUIDs)
179
624
 
180
625
  ## Development
181
626
 
@@ -200,9 +645,10 @@ Make sure your `.env` file exists and contains your API token.
200
645
  - Test the API directly: `curl -H "Authorization: Bearer YOUR_TOKEN" https://stellisoft.com/api/v1/file/search`
201
646
 
202
647
  ### Claude Desktop doesn't see the tools
203
- - Verify the path in `config.json` is absolute and correct
204
- - Restart Claude Desktop
205
- - Check Claude Desktop logs for errors
648
+ 1. Verify the configuration file path is correct for your OS
649
+ 2. Check that the Stellify API token is valid
650
+ 3. Restart Claude Desktop completely (Quit, not just close window)
651
+ 4. Check Claude Desktop logs for error messages
206
652
 
207
653
  ### TypeScript errors during build
208
654
  ```bash
@@ -211,6 +657,14 @@ npm install
211
657
  npm run build
212
658
  ```
213
659
 
660
+ ### Installation issues
661
+ ```bash
662
+ # Clear npm cache and reinstall
663
+ npm cache clean --force
664
+ npm uninstall -g @stellisoft/stellify-mcp
665
+ npm install -g @stellisoft/stellify-mcp
666
+ ```
667
+
214
668
  ## Architecture
215
669
 
216
670
  ```
@@ -228,38 +682,6 @@ The MCP server is a thin client that:
228
682
  2. Translates tool calls to API requests
229
683
  3. Returns formatted responses
230
684
 
231
- ## Next Steps
232
-
233
- After Phase 1 works, we'll add:
234
- - Global method library (reference battle-tested code)
235
- - Contribute methods to global library
236
- - Rich metadata extraction
237
- - Usage statistics
238
-
239
- ## Troubleshooting
240
-
241
- ### Claude Desktop doesn't see the tools
242
-
243
- 1. Verify the configuration file path is correct for your OS
244
- 2. Check that the Stellify API token is valid
245
- 3. Restart Claude Desktop completely (Quit, not just close window)
246
- 4. Check Claude Desktop logs for error messages
247
-
248
- ### API connection errors
249
-
250
- - Verify your API token at https://stellisoft.com/settings/tokens
251
- - Check that `STELLIFY_API_URL` is correct
252
- - Ensure your Stellify account is active
253
-
254
- ### Installation issues
255
-
256
- ```bash
257
- # Clear npm cache and reinstall
258
- npm cache clean --force
259
- npm uninstall -g @stellisoft/stellify-mcp
260
- npm install -g @stellisoft/stellify-mcp
261
- ```
262
-
263
685
  ## Contributing
264
686
 
265
687
  We welcome contributions! Please see our contributing guidelines and feel free to submit pull requests.
@@ -284,4 +706,4 @@ MIT License - see [LICENSE](LICENSE) file for details
284
706
 
285
707
  ---
286
708
 
287
- Built with ❤️ by the Stellify team
709
+ Built with love by the Stellify team