phpstan-mcp-mx 0.1.0 → 0.1.1
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 +90 -8
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,19 +5,24 @@ bedient meerdere PHP-projecten tegelijk; welke dat zijn, leg je zelf vast.
|
|
|
5
5
|
|
|
6
6
|
## Installatie
|
|
7
7
|
|
|
8
|
+
Met `--scope user` is de server in al je projecten beschikbaar — wat je wilt bij één server
|
|
9
|
+
die meerdere projecten bedient.
|
|
10
|
+
|
|
8
11
|
```bash
|
|
9
|
-
|
|
12
|
+
npm install -g phpstan-mcp-mx
|
|
13
|
+
|
|
14
|
+
claude mcp add phpstan --scope user \
|
|
10
15
|
--env PHPSTAN_MCP_ROOTS=/pad/naar/projecten \
|
|
11
|
-
--
|
|
16
|
+
-- phpstan-mcp-mx
|
|
12
17
|
```
|
|
13
18
|
|
|
14
|
-
|
|
19
|
+
Zonder globale installatie kan het ook rechtstreeks van de registry; dat kost wel elke
|
|
20
|
+
sessiestart een npx-resolutie:
|
|
15
21
|
|
|
16
22
|
```bash
|
|
17
|
-
|
|
18
|
-
claude mcp add phpstan \
|
|
23
|
+
claude mcp add phpstan --scope user \
|
|
19
24
|
--env PHPSTAN_MCP_ROOTS=/pad/naar/projecten \
|
|
20
|
-
--
|
|
25
|
+
-- npx -y phpstan-mcp-mx
|
|
21
26
|
```
|
|
22
27
|
|
|
23
28
|
Voor Claude Desktop komt hetzelfde in `claude_desktop_config.json`:
|
|
@@ -26,14 +31,91 @@ Voor Claude Desktop komt hetzelfde in `claude_desktop_config.json`:
|
|
|
26
31
|
{
|
|
27
32
|
"mcpServers": {
|
|
28
33
|
"phpstan": {
|
|
29
|
-
"command": "
|
|
30
|
-
"args": ["-y", "phpstan-mcp-mx"],
|
|
34
|
+
"command": "phpstan-mcp-mx",
|
|
31
35
|
"env": { "PHPSTAN_MCP_ROOTS": "/pad/naar/projecten" }
|
|
32
36
|
}
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
```
|
|
36
40
|
|
|
41
|
+
### Als de server niet start: PATH
|
|
42
|
+
|
|
43
|
+
Krijg je iets als `env: node: No such file or directory`, of blijft de server op "failed to
|
|
44
|
+
connect" staan, dan is dit vrijwel altijd de oorzaak.
|
|
45
|
+
|
|
46
|
+
Het commando `phpstan-mcp-mx` is een script dat begint met `#!/usr/bin/env node`, en `npx`
|
|
47
|
+
is zelf ook een commando dat gevonden moet worden. Allebei werken ze in je terminal omdat je
|
|
48
|
+
shell-profiel Node op `PATH` zet. Maar de MCP-server wordt gestart door een ánder programma,
|
|
49
|
+
en dat erft je shell-profiel niet altijd — een GUI-app op macOS krijgt vaak alleen een kale
|
|
50
|
+
`PATH` met `/usr/bin` en `/bin`. Node staat daar niet: Homebrew zet hem in
|
|
51
|
+
`/opt/homebrew/bin`, en nvm, fnm, asdf en volta ergens onder je home.
|
|
52
|
+
|
|
53
|
+
De oplossing is absolute paden gebruiken, zodat er niets meer opgezocht hoeft te worden:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
command -v node # bijv. /opt/homebrew/bin/node
|
|
57
|
+
npm root -g # bijv. /opt/homebrew/lib/node_modules
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
claude mcp add phpstan --scope user \
|
|
62
|
+
--env PHPSTAN_MCP_ROOTS=/pad/naar/projecten \
|
|
63
|
+
-- /opt/homebrew/bin/node /opt/homebrew/lib/node_modules/phpstan-mcp-mx/dist/index.js
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
En voor Claude Desktop:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"mcpServers": {
|
|
71
|
+
"phpstan": {
|
|
72
|
+
"command": "/opt/homebrew/bin/node",
|
|
73
|
+
"args": ["/opt/homebrew/lib/node_modules/phpstan-mcp-mx/dist/index.js"],
|
|
74
|
+
"env": { "PHPSTAN_MCP_ROOTS": "/pad/naar/projecten" }
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Zelf nagaan of het aan `PATH` ligt, zonder de MCP-client erbij te halen. Het binary wordt
|
|
81
|
+
eerst in je eigen shell opgezocht en daarna met een kale `PATH` gestart — anders is het
|
|
82
|
+
commando zelf al onvindbaar en meet je iets anders:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
echo '' | env -i PATH=/usr/bin:/bin "$(command -v phpstan-mcp-mx)"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
env: node: No such file or directory
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Komt dat eruit, dan weet je genoeg. Dezelfde test op de absolute variant hoort gewoon te
|
|
93
|
+
starten:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
echo '' | env -i PATH=/usr/bin:/bin \
|
|
97
|
+
/opt/homebrew/bin/node /opt/homebrew/lib/node_modules/phpstan-mcp-mx/dist/index.js
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
phpstan-mcp 0.1.0 luistert op stdio, 0 root(s) geconfigureerd
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
(Nul roots klopt hier: `env -i` gooit ook `PHPSTAN_MCP_ROOTS` weg. Het gaat er alleen om dát
|
|
105
|
+
hij start.)
|
|
106
|
+
|
|
107
|
+
### Vanuit de repo
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
npm install && npm run build
|
|
111
|
+
claude mcp add phpstan --scope user \
|
|
112
|
+
--env PHPSTAN_MCP_ROOTS=/pad/naar/projecten \
|
|
113
|
+
-- node /pad/naar/phpstan-mcp-mx/dist/index.js
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Let op dat je dan vastzit aan die map: verplaats of verwijder je hem, dan faalt de server in
|
|
117
|
+
al je projecten.
|
|
118
|
+
|
|
37
119
|
## Configuratie
|
|
38
120
|
|
|
39
121
|
`PHPSTAN_MCP_ROOTS` is verplicht: een lijst absolute paden, gescheiden door een dubbele punt
|
package/dist/server.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type { Root } from './roots.js';
|
|
|
5
5
|
* package.json; die kan hier niet zomaar geïmporteerd worden, want een JSON-import
|
|
6
6
|
* verhuist bij het bouwen mee naar dist/ en wijst dan naar het verkeerde bestand.
|
|
7
7
|
*/
|
|
8
|
-
export declare const VERSION = "0.1.
|
|
8
|
+
export declare const VERSION = "0.1.1";
|
|
9
9
|
/**
|
|
10
10
|
* Bouwt de MCP-server met de tools die op deze set roots van toepassing zijn.
|
|
11
11
|
* De roots worden één keer bij het opstarten ingelezen: ze komen uit de
|
package/dist/server.js
CHANGED
|
@@ -5,7 +5,7 @@ import { registerTools } from './tools.js';
|
|
|
5
5
|
* package.json; die kan hier niet zomaar geïmporteerd worden, want een JSON-import
|
|
6
6
|
* verhuist bij het bouwen mee naar dist/ en wijst dan naar het verkeerde bestand.
|
|
7
7
|
*/
|
|
8
|
-
export const VERSION = '0.1.
|
|
8
|
+
export const VERSION = '0.1.1';
|
|
9
9
|
/**
|
|
10
10
|
* Bouwt de MCP-server met de tools die op deze set roots van toepassing zijn.
|
|
11
11
|
* De roots worden één keer bij het opstarten ingelezen: ze komen uit de
|