semantic-js-mcp 0.10.2 → 0.10.3
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/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +6 -0
- package/README.md +18 -72
- package/SETUP.md +413 -0
- package/docs/distribution.md +9 -16
- package/package.json +4 -4
- package/protocol.mjs +1 -1
- package/scripts/distribution-policy.mjs +1 -1
- package/scripts/documentation-contract.mjs +60 -19
- package/scripts/documentation-gate-smoke.mjs +182 -41
- package/scripts/documentation-gate.mjs +93 -9
- package/skills/semantic-navigation/references/protocol-literals.md +1 -1
- package/AGENT_SETUP.md +0 -176
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.10.3] - 2026-07-18
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Consolidate installation into `SETUP.md`, the shared setup procedure for people and coding agents. README now provides only a brief entry point. The procedure places guards, prerequisites, installation, and verification before troubleshooting and background; uses direct explanatory language; requires exact host and version checks; rejects partial npm extraction; and does not treat installation as permission to inspect source code.
|
|
12
|
+
|
|
7
13
|
## [0.10.2] - 2026-07-17
|
|
8
14
|
|
|
9
15
|
### Added
|
package/README.md
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
# Semantic JS MCP
|
|
2
2
|
|
|
3
|
+
## Setup
|
|
4
|
+
|
|
5
|
+
Before running an installation command, follow [SETUP.md](SETUP.md). It is the
|
|
6
|
+
single source of truth for setup by either a person or a coding agent, including
|
|
7
|
+
prerequisites, host selection, installation, verification, updates, rollback,
|
|
8
|
+
and removal.
|
|
9
|
+
|
|
10
|
+
Semantic JS MCP requires Node.js 22 or newer and `rg` (ripgrep). It can be
|
|
11
|
+
installed through the verified Codex plugin route or registered as a local
|
|
12
|
+
stdio server in another compatible MCP host. Package installation alone does not configure an MCP host.
|
|
13
|
+
|
|
14
|
+
After setup, see [Getting started](docs/getting-started.md) for practical
|
|
15
|
+
investigation prompts and compact evidence examples.
|
|
16
|
+
|
|
3
17
|
**Your coding agent is only as good as its understanding of your codebase.**
|
|
4
18
|
|
|
5
19
|
Coding agents can generate code quickly, but reliable engineering requires more than reading files and matching text. They need to understand which declaration a reference belongs to, how symbols cross workspace boundaries, whether the collected evidence is complete, and whether that evidence is still accurate.
|
|
6
20
|
|
|
7
21
|
Semantic JS MCP gives coding agents structured, read-only semantic context so they can navigate, review, and change code with explicit uncertainty.
|
|
8
22
|
|
|
9
|
-
When a user explicitly asks a coding agent to install or configure the package, the agent should follow the [agent setup guide](AGENT_SETUP.md).
|
|
10
|
-
|
|
11
23
|
Its scope is intentionally narrow: it strengthens an agent's understanding of symbol identity, types, references, diagnostics, and evidence coverage. It does not replace architectural reasoning, source inspection, dependency analysis, tests, or runtime observation.
|
|
12
24
|
|
|
13
25
|
**Better agents begin with better evidence.**
|
|
@@ -18,45 +30,7 @@ For each file, it identifies the owning workspace and uses the corresponding Typ
|
|
|
18
30
|
|
|
19
31
|
## Project Status
|
|
20
32
|
|
|
21
|
-
Version `0.10.
|
|
22
|
-
|
|
23
|
-
## Installation
|
|
24
|
-
|
|
25
|
-
### Codex plugin
|
|
26
|
-
|
|
27
|
-
Add the public marketplace, then install the plugin:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
codex plugin marketplace add elnonathan/semantic-js-mcp
|
|
31
|
-
codex plugin add semantic-js-mcp@elnonathan
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Codex CLI 0.144.4 or newer is required for npm-backed marketplace installation. Start a new Codex session after installation. The plugin bundles both the MCP server configuration and the semantic-navigation skill.
|
|
35
|
-
|
|
36
|
-
### Updating the Codex plugin
|
|
37
|
-
|
|
38
|
-
Codex installs from a local snapshot of each configured marketplace. Refresh that snapshot before reinstalling so `plugin add` resolves the version currently declared by the marketplace:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
codex plugin marketplace upgrade elnonathan
|
|
42
|
-
codex plugin add semantic-js-mcp@elnonathan
|
|
43
|
-
codex plugin list
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
`plugin add` reinstalls the plugin; a separate removal is not required. Start a new Codex session after the command reports the expected version.
|
|
47
|
-
|
|
48
|
-
### MCP executable
|
|
49
|
-
|
|
50
|
-
Install the package globally when using an MCP host that accepts a command-based stdio configuration:
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
npm install --global semantic-js-mcp
|
|
54
|
-
semantic-js-mcp doctor
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Configure the host to run `semantic-js-mcp serve`.
|
|
58
|
-
|
|
59
|
-
For practical investigation prompts and compact evidence examples, see [Getting started](docs/getting-started.md).
|
|
33
|
+
Version `0.10.3` is the current release. APIs and result contracts may evolve while the project remains on the `0.x` release line. See the [roadmap](ROADMAP.md) for areas under consideration.
|
|
60
34
|
|
|
61
35
|
## Runtime
|
|
62
36
|
|
|
@@ -64,7 +38,7 @@ For practical investigation prompts and compact evidence examples, see [Getting
|
|
|
64
38
|
- Node.js 24 LTS is recommended for new installations. See the [Node.js release schedule](https://nodejs.org/en/about/previous-releases).
|
|
65
39
|
- `rg` (ripgrep) must be available on `PATH` for repository-wide discovery.
|
|
66
40
|
- The nearest workspace TypeScript SDK is used when available; the bundled TypeScript SDK is the fallback.
|
|
67
|
-
- TypeScript, `typescript-language-server`, and the Vue language server are pinned dependencies. Published packages bundle every production dependency so Codex installations do not require a separate dependency installation step.
|
|
41
|
+
- TypeScript, `typescript-language-server`, and the Vue language server are pinned dependencies. Published packages bundle every production dependency so Codex installations do not require a separate dependency installation step. Startup verifies provider entry points before accepting MCP requests.
|
|
68
42
|
- Source discovery and language selection include `.ts`, `.tsx`, `.mts`, `.cts`, `.js`, `.jsx`, `.mjs`, `.cjs`, and `.vue` files.
|
|
69
43
|
- Run `npm run check:runtime` to report every required component and its resolved file path.
|
|
70
44
|
|
|
@@ -72,10 +46,10 @@ The package exposes a `semantic-js-mcp` executable. `semantic-js-mcp serve` star
|
|
|
72
46
|
|
|
73
47
|
## Development Setup
|
|
74
48
|
|
|
75
|
-
|
|
49
|
+
Complete the [source-checkout setup](SETUP.md#source-checkout), then run the
|
|
50
|
+
checks applicable to the change:
|
|
76
51
|
|
|
77
52
|
```bash
|
|
78
|
-
npm ci
|
|
79
53
|
npm run check
|
|
80
54
|
npm run check:runtime
|
|
81
55
|
npm run doctor
|
|
@@ -87,34 +61,6 @@ npm run smoke:lifecycle
|
|
|
87
61
|
|
|
88
62
|
Run `npm run benchmark` after changes to scanning, references, caching, lifecycle, or memory. Provider disposal changes can also be characterized with `npm run benchmark:lifecycle-memory`; its output declares the garbage-collection and platform measurement method. Normal analysis is local and read-only; it does not require network access after dependencies are installed.
|
|
89
63
|
|
|
90
|
-
For an MCP host that accepts a direct stdio configuration, point it at the checked-out server using an absolute path:
|
|
91
|
-
|
|
92
|
-
```json
|
|
93
|
-
{
|
|
94
|
-
"mcpServers": {
|
|
95
|
-
"semanticjsmcp": {
|
|
96
|
-
"command": "node",
|
|
97
|
-
"args": ["/absolute/path/to/semantic-js-mcp/server.mjs"]
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
The bundled [`.mcp.json`](.mcp.json) provides the relative-path configuration used when the repository is installed as a Codex plugin.
|
|
104
|
-
|
|
105
|
-
When the package executable is available on the host's `PATH`, the equivalent stdio configuration is:
|
|
106
|
-
|
|
107
|
-
```json
|
|
108
|
-
{
|
|
109
|
-
"mcpServers": {
|
|
110
|
-
"semanticjsmcp": {
|
|
111
|
-
"command": "semantic-js-mcp",
|
|
112
|
-
"args": ["serve"]
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
64
|
## Tool Graph
|
|
119
65
|
|
|
120
66
|
Tools are ordered from smaller responses to deeper evidence:
|
package/SETUP.md
ADDED
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
# Setup
|
|
2
|
+
|
|
3
|
+
This guide provides one setup procedure for both people and coding agents. For
|
|
4
|
+
a new installation, complete Guards, Prerequisites, Choose A Version, one
|
|
5
|
+
installation route, and Verify The Installation in that order.
|
|
6
|
+
|
|
7
|
+
For an update, rollback, removal, or source checkout, go directly to the named
|
|
8
|
+
section and follow its references to the shared verification steps.
|
|
9
|
+
|
|
10
|
+
## Guards
|
|
11
|
+
|
|
12
|
+
Setup changes software or MCP configuration on the user's machine. Before
|
|
13
|
+
making a change, confirm all of the following:
|
|
14
|
+
|
|
15
|
+
1. The user explicitly requested the setup operation.
|
|
16
|
+
2. Choose exactly one installation route. Use the Codex route for Codex and the
|
|
17
|
+
generic stdio route for another compatible MCP host.
|
|
18
|
+
3. Keep the package out of the current project's dependencies.
|
|
19
|
+
Do not run `npm install semantic-js-mcp` without `--global`.
|
|
20
|
+
4. Inspect existing MCP configuration before editing it, and preserve every
|
|
21
|
+
unrelated server and setting.
|
|
22
|
+
5. Obtain any approval required for network access, global installation,
|
|
23
|
+
configuration changes, cleanup, or restart.
|
|
24
|
+
6. Respect the security policy and configuration schema of the operating
|
|
25
|
+
system, organization, repository, and MCP host.
|
|
26
|
+
|
|
27
|
+
If a guard cannot be satisfied, stop and report `blocked` with the specific
|
|
28
|
+
reason. Do not continue from a failed command, a partial installation, or an
|
|
29
|
+
unknown configuration format.
|
|
30
|
+
|
|
31
|
+
Setup does not authorize source-code analysis. No source-code call is required
|
|
32
|
+
to verify installation unless the user separately requests a functional test.
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
Run:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
node --version
|
|
40
|
+
rg --version
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Both commands must succeed. Semantic JS MCP requires Node.js 22 or newer and
|
|
44
|
+
`rg` (ripgrep) on `PATH`.
|
|
45
|
+
|
|
46
|
+
If either prerequisite is missing, report `blocked`. Installing, replacing, or
|
|
47
|
+
downgrading Node.js or ripgrep is a separate system change and requires the
|
|
48
|
+
user's approval.
|
|
49
|
+
|
|
50
|
+
## Choose A Version
|
|
51
|
+
|
|
52
|
+
When the supplied npm URL ends in `/v/X.Y.Z`, use that exact numeric version.
|
|
53
|
+
For example, `/v/0.10.2` requests version `0.10.2`.
|
|
54
|
+
|
|
55
|
+
When no version is supplied for an installation or update, run:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm view semantic-js-mcp version
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Record the returned numeric version. Commands in this guide use `X.Y.Z` as a
|
|
62
|
+
placeholder; replace it before execution. A command containing the literal
|
|
63
|
+
`X.Y.Z` is not ready to run.
|
|
64
|
+
|
|
65
|
+
Do not silently substitute `latest`, an installed version, or a newer version
|
|
66
|
+
for the version the user requested.
|
|
67
|
+
|
|
68
|
+
## Install With Codex
|
|
69
|
+
|
|
70
|
+
Use this route when Codex is the MCP host. The plugin supplies both the MCP
|
|
71
|
+
server configuration and the semantic-navigation skill, so a separate global
|
|
72
|
+
npm installation is unnecessary.
|
|
73
|
+
|
|
74
|
+
### 1. Inspect Codex State
|
|
75
|
+
|
|
76
|
+
Run:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
codex --version
|
|
80
|
+
codex plugin marketplace list
|
|
81
|
+
codex plugin list
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Codex CLI must be version 0.144.4 or newer. The two list commands establish
|
|
85
|
+
whether the marketplace or plugin already exists. There is no need to locate
|
|
86
|
+
or edit a Codex configuration file.
|
|
87
|
+
|
|
88
|
+
If the Codex version is too old, report `blocked`.
|
|
89
|
+
|
|
90
|
+
### 2. Add Or Refresh The Marketplace
|
|
91
|
+
|
|
92
|
+
If marketplace `elnonathan` is absent, run:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
codex plugin marketplace add elnonathan/semantic-js-mcp
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
If marketplace `elnonathan` is already present, refresh it instead:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
codex plugin marketplace upgrade elnonathan
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 3. Confirm The Offered Version
|
|
105
|
+
|
|
106
|
+
Run:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
codex plugin list
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Find `semantic-js-mcp@elnonathan` and confirm that its offered version matches
|
|
113
|
+
the version recorded in Choose A Version. If it differs, report `blocked`
|
|
114
|
+
instead of installing a different release.
|
|
115
|
+
|
|
116
|
+
### 4. Install The Plugin
|
|
117
|
+
|
|
118
|
+
Run:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
codex plugin add semantic-js-mcp@elnonathan
|
|
122
|
+
codex plugin list
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
The final list must show `semantic-js-mcp@elnonathan` as `installed, enabled`
|
|
126
|
+
at the requested version.
|
|
127
|
+
|
|
128
|
+
Do not also run `npm install` or `semantic-js-mcp doctor` for this route. The
|
|
129
|
+
plugin owns the package and server configuration.
|
|
130
|
+
|
|
131
|
+
### 5. Restart Codex
|
|
132
|
+
|
|
133
|
+
Start a new Codex session so it can load the plugin. A coding agent cannot
|
|
134
|
+
restart its own active session; in that case, report `pending-restart` and ask
|
|
135
|
+
the user to start the new session.
|
|
136
|
+
|
|
137
|
+
After restart, continue with Verify The Installation.
|
|
138
|
+
|
|
139
|
+
## Install With Another MCP Host
|
|
140
|
+
|
|
141
|
+
Use this route only when the application is not Codex and its official
|
|
142
|
+
documentation confirms support for local MCP servers over `stdio`.
|
|
143
|
+
|
|
144
|
+
### 1. Confirm The Host Configuration
|
|
145
|
+
|
|
146
|
+
Before installing the package:
|
|
147
|
+
|
|
148
|
+
1. identify the MCP host by name;
|
|
149
|
+
2. find its documented MCP configuration location and schema;
|
|
150
|
+
3. inspect the existing configuration;
|
|
151
|
+
4. record any existing Semantic JS MCP entry; and
|
|
152
|
+
5. preserve every unrelated entry.
|
|
153
|
+
|
|
154
|
+
If the host, stdio support, configuration location, or schema cannot be
|
|
155
|
+
confirmed, report `blocked`. Configuration formats are host-specific, so do
|
|
156
|
+
not copy a filename, JSON shape, URL, or port from another application.
|
|
157
|
+
|
|
158
|
+
### 2. Install The Exact Global Version
|
|
159
|
+
|
|
160
|
+
Replace `X.Y.Z` with the recorded version, then run:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
npm install --global semantic-js-mcp@X.Y.Z
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Read the complete npm output. A zero exit code is not sufficient when npm also
|
|
167
|
+
reports a permission or extraction problem.
|
|
168
|
+
Treat `EPERM`, `EACCES`, `TAR_ENTRY_ERROR`, or a missing-file error as a partial installation.
|
|
169
|
+
|
|
170
|
+
Do not edit the host configuration after a partial installation. Remove the
|
|
171
|
+
partial global package only with the user's approval, then report `blocked`
|
|
172
|
+
with the npm error.
|
|
173
|
+
|
|
174
|
+
### 3. Check The Executable
|
|
175
|
+
|
|
176
|
+
Run:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
semantic-js-mcp --version
|
|
180
|
+
semantic-js-mcp doctor
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
The version must exactly match the requested version. Interpret the structured
|
|
184
|
+
doctor status as follows:
|
|
185
|
+
|
|
186
|
+
- `pass`: continue;
|
|
187
|
+
- `untrusted`: continue, but preserve the reported uncertainty;
|
|
188
|
+
- `blocked` or `fail`: do not configure the host until the reported problem is
|
|
189
|
+
corrected with the user's approval.
|
|
190
|
+
|
|
191
|
+
### 4. Register The Server
|
|
192
|
+
|
|
193
|
+
Using the host's documented schema, add one server with these values:
|
|
194
|
+
|
|
195
|
+
- server name: `semanticjsmcp`
|
|
196
|
+
- transport: `stdio`
|
|
197
|
+
- executable or command: `semantic-js-mcp`
|
|
198
|
+
- arguments: one argument, `serve`
|
|
199
|
+
- enabled: `true`, only when the host schema defines an enabled field
|
|
200
|
+
|
|
201
|
+
Save the smallest possible configuration change and preserve every unrelated
|
|
202
|
+
entry. Do not add a URL, port, shell command, credentials, or background
|
|
203
|
+
service.
|
|
204
|
+
|
|
205
|
+
Do not start `semantic-js-mcp serve` manually. The MCP host must start the
|
|
206
|
+
process and communicate with it through standard input and standard output.
|
|
207
|
+
|
|
208
|
+
### 5. Restart The Host
|
|
209
|
+
|
|
210
|
+
Restart or reload the host exactly as its documentation requires, then continue
|
|
211
|
+
with Verify The Installation.
|
|
212
|
+
|
|
213
|
+
## Verify The Installation
|
|
214
|
+
|
|
215
|
+
Verification occurs after the required restart or reload.
|
|
216
|
+
|
|
217
|
+
### Codex
|
|
218
|
+
|
|
219
|
+
1. Run `codex plugin list`.
|
|
220
|
+
2. Confirm that `semantic-js-mcp@elnonathan` is `installed, enabled` at the
|
|
221
|
+
requested version.
|
|
222
|
+
3. Open the MCP tool list in the new Codex session.
|
|
223
|
+
|
|
224
|
+
### Another MCP Host
|
|
225
|
+
|
|
226
|
+
Run:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
semantic-js-mcp --version
|
|
230
|
+
semantic-js-mcp doctor
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
The version must match. Doctor must return `pass` or `untrusted`; preserve any
|
|
234
|
+
uncertainty reported by `untrusted`.
|
|
235
|
+
|
|
236
|
+
Confirm that the host still contains the `semanticjsmcp` entry, then open the
|
|
237
|
+
host's MCP tool list.
|
|
238
|
+
|
|
239
|
+
### Expected Result
|
|
240
|
+
|
|
241
|
+
The host must expose tools whose base names begin with `lsp_`. Some hosts add
|
|
242
|
+
the server name as a prefix.
|
|
243
|
+
|
|
244
|
+
Use one of these outcomes:
|
|
245
|
+
|
|
246
|
+
- `success`: the requested version is registered and `lsp_*` tools are
|
|
247
|
+
available;
|
|
248
|
+
- `pending-restart`: installation and configuration succeeded, but a new host
|
|
249
|
+
session is still required to check tool discovery;
|
|
250
|
+
- `blocked`: a prerequisite, installation, configuration, doctor, version, or
|
|
251
|
+
tool-discovery check failed.
|
|
252
|
+
|
|
253
|
+
Package installation or configuration text by itself is not `success`. Missing
|
|
254
|
+
tools are a reason to inspect registration and restart state, not to start the
|
|
255
|
+
server manually.
|
|
256
|
+
|
|
257
|
+
An installation-only request ends after tool discovery. Do not call an `lsp_*`
|
|
258
|
+
tool against source code unless the user separately requests a functional test
|
|
259
|
+
or explicitly approves the target file.
|
|
260
|
+
|
|
261
|
+
Report the outcome, detected host, requested and installed versions, changed
|
|
262
|
+
Semantic JS MCP entry, doctor status for a generic installation, tool-discovery
|
|
263
|
+
result, and any remaining blocker or uncertainty. Do not expose credentials or
|
|
264
|
+
unrelated configuration values.
|
|
265
|
+
|
|
266
|
+
## Troubleshooting
|
|
267
|
+
|
|
268
|
+
| Symptom | Action |
|
|
269
|
+
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
270
|
+
| Node.js is older than 22 or `node` is missing | Report `blocked`. Change Node.js only with separate user approval. |
|
|
271
|
+
| `rg` is missing | Report `blocked`. Install ripgrep only with separate user approval. |
|
|
272
|
+
| npm reports `EPERM`, `EACCES`, `TAR_ENTRY_ERROR`, or a missing file | Treat the installation as partial. Do not configure the host. Remove only the partial global package when authorized. |
|
|
273
|
+
| `semantic-js-mcp --version` differs from the requested version | Report `blocked`; do not configure the different version. |
|
|
274
|
+
| Doctor returns `blocked` or `fail` | Correct only the reported prerequisite and only with user approval. |
|
|
275
|
+
| Codex offers the wrong version | Run `codex plugin marketplace upgrade elnonathan`, check again, and report `blocked` if it still differs. |
|
|
276
|
+
| The host does not show `lsp_*` tools | Confirm the saved entry, command, arguments, enabled state, and required restart. Do not invent a URL or port. |
|
|
277
|
+
| The host configuration location or schema is unknown | Use installed help or official host documentation. Report `blocked` rather than guessing. |
|
|
278
|
+
|
|
279
|
+
Troubleshooting never requires disabling a security control, bypassing a
|
|
280
|
+
sandbox, executing a remote shell pipeline, or replacing an entire
|
|
281
|
+
configuration file.
|
|
282
|
+
|
|
283
|
+
## Update
|
|
284
|
+
|
|
285
|
+
Record the installed version and existing Semantic JS MCP entry first. Resolve
|
|
286
|
+
the exact target version with Choose A Version.
|
|
287
|
+
|
|
288
|
+
For Codex, run:
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
codex plugin marketplace upgrade elnonathan
|
|
292
|
+
codex plugin list
|
|
293
|
+
codex plugin add semantic-js-mcp@elnonathan
|
|
294
|
+
codex plugin list
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Confirm the offered version before `plugin add`. Start a new Codex session,
|
|
298
|
+
then complete Verify The Installation.
|
|
299
|
+
|
|
300
|
+
For another host, replace `X.Y.Z` and run:
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
npm install --global semantic-js-mcp@X.Y.Z
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Repeat the executable check, doctor, required restart, and Verify The
|
|
307
|
+
Installation. Keep an existing host entry when it is already correct.
|
|
308
|
+
|
|
309
|
+
## Rollback
|
|
310
|
+
|
|
311
|
+
Record the previously known working version and Semantic JS MCP entry. Do not
|
|
312
|
+
replace that version with the current registry version.
|
|
313
|
+
|
|
314
|
+
For another host, replace `X.Y.Z` with the previous numeric version:
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
npm install --global semantic-js-mcp@X.Y.Z
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
Restore only the recorded Semantic JS MCP entry. Restart the host and complete
|
|
321
|
+
Verify The Installation.
|
|
322
|
+
|
|
323
|
+
A Codex marketplace can install only the version it currently offers. If it
|
|
324
|
+
does not offer the requested rollback version, report `blocked`; do not
|
|
325
|
+
substitute another version or edit the marketplace cache.
|
|
326
|
+
|
|
327
|
+
## Removal
|
|
328
|
+
|
|
329
|
+
Record the installed version and current Semantic JS MCP entry before making a
|
|
330
|
+
change.
|
|
331
|
+
|
|
332
|
+
For Codex, run:
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
codex plugin remove semantic-js-mcp@elnonathan
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
Remove marketplace `elnonathan` only when no other installed plugin uses it
|
|
339
|
+
and the user approves:
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
codex plugin marketplace remove elnonathan
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
For another host:
|
|
346
|
+
|
|
347
|
+
1. Remove only the `semanticjsmcp` entry from the documented host
|
|
348
|
+
configuration.
|
|
349
|
+
2. Preserve every unrelated server and setting.
|
|
350
|
+
3. Run:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
npm uninstall --global semantic-js-mcp
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Restart or reload the host. Confirm that Semantic JS MCP tools are no longer
|
|
357
|
+
registered.
|
|
358
|
+
|
|
359
|
+
## Source Checkout
|
|
360
|
+
|
|
361
|
+
Use this section for repository development or when the user explicitly asks
|
|
362
|
+
to run a source checkout. Do not combine it with a registry or Codex plugin
|
|
363
|
+
installation.
|
|
364
|
+
|
|
365
|
+
From the repository root, run:
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
npm ci
|
|
369
|
+
npm run check:runtime
|
|
370
|
+
npm run doctor
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
For a non-Codex host that supports direct stdio commands, use its documented
|
|
374
|
+
schema and these values:
|
|
375
|
+
|
|
376
|
+
- server name: `semanticjsmcp`
|
|
377
|
+
- transport: `stdio`
|
|
378
|
+
- executable or command: `node`
|
|
379
|
+
- arguments: the absolute path to the checkout's `server.mjs`
|
|
380
|
+
|
|
381
|
+
Preserve every unrelated host entry. Restart or reload the host and complete
|
|
382
|
+
the source-checkout verification below. Do not run the global executable checks
|
|
383
|
+
for this route.
|
|
384
|
+
|
|
385
|
+
After restart, confirm that the host still contains the `semanticjsmcp` entry
|
|
386
|
+
with the recorded `node` command and absolute `server.mjs` argument. Open the
|
|
387
|
+
host's MCP tool list and apply the outcomes under
|
|
388
|
+
[Expected Result](#expected-result). Do not call an `lsp_*` tool unless the
|
|
389
|
+
user separately requests a functional test or explicitly approves the target
|
|
390
|
+
file.
|
|
391
|
+
|
|
392
|
+
The repository's `.mcp.json` is the relative-path configuration bundled by the
|
|
393
|
+
Codex plugin. It is not a universal configuration file for other MCP hosts.
|
|
394
|
+
|
|
395
|
+
## Background
|
|
396
|
+
|
|
397
|
+
An MCP host is the application that starts the server and exposes its tools.
|
|
398
|
+
Installing an npm package places files and an executable on the machine, but it
|
|
399
|
+
does not register that executable with an MCP host.
|
|
400
|
+
|
|
401
|
+
A generic stdio host starts `semantic-js-mcp serve` as a child process and
|
|
402
|
+
communicates through standard input and standard output. The host owns that
|
|
403
|
+
process lifecycle, which is why manually starting the command does not make
|
|
404
|
+
tools appear in the host.
|
|
405
|
+
|
|
406
|
+
The Codex plugin route supplies both MCP configuration and the
|
|
407
|
+
semantic-navigation skill. Codex plugin state and tool discovery verify that
|
|
408
|
+
route, so it does not need a separate global npm installation or doctor run.
|
|
409
|
+
|
|
410
|
+
This procedure does not override system, developer, organization, repository,
|
|
411
|
+
or host security policy. Its authority is limited to the requested Semantic JS
|
|
412
|
+
MCP operation and never includes unrelated configuration, credentials, or
|
|
413
|
+
source-code analysis.
|
package/docs/distribution.md
CHANGED
|
@@ -4,22 +4,15 @@ The package manifest defines an explicit public file allowlist and exposes the `
|
|
|
4
4
|
|
|
5
5
|
## Codex
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
The marketplace entry pins a concrete npm package version. Codex CLI 0.144.4 is the minimum verified client for npm-backed marketplace installation. A release updates the package version, plugin manifest, and marketplace entry together.
|
|
13
|
-
|
|
14
|
-
For an existing marketplace installation, refresh its local snapshot before reinstalling the plugin:
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
codex plugin marketplace upgrade elnonathan
|
|
18
|
-
codex plugin add semantic-js-mcp@elnonathan
|
|
19
|
-
codex plugin list
|
|
20
|
-
```
|
|
7
|
+
The marketplace entry pins a concrete npm package version. Codex CLI 0.144.4
|
|
8
|
+
is the minimum verified client for npm-backed marketplace installation. A
|
|
9
|
+
release updates the package version, plugin manifest, and marketplace entry
|
|
10
|
+
together.
|
|
21
11
|
|
|
22
|
-
|
|
12
|
+
Follow [Install With Codex](../SETUP.md#install-with-codex) for installation or
|
|
13
|
+
update commands, version checks, restart handling, and tool verification. This
|
|
14
|
+
document describes the distribution contract and does not define a second
|
|
15
|
+
setup procedure.
|
|
23
16
|
|
|
24
17
|
## Executable
|
|
25
18
|
|
|
@@ -85,7 +78,7 @@ The `publish.yml` workflow publishes tags matching `v*` from a GitHub-hosted Nod
|
|
|
85
78
|
|
|
86
79
|
Configure the npm trusted publisher for GitHub user `elnonathan`, repository `semantic-js-mcp`, workflow filename `publish.yml`, and environment `npm-publish`. Allow `npm publish` only. In package publishing access, require two-factor authentication and disallow tokens.
|
|
87
80
|
|
|
88
|
-
Create and push the matching `v<version>` tag only after the release commit is on `main` and its CI matrix passes.
|
|
81
|
+
Create and push the matching `v<version>` tag only after the release commit is on `main` and its CI matrix passes. If the protected environment requires review, approve the waiting deployment. Verify the published package before creating the matching GitHub release.
|
|
89
82
|
|
|
90
83
|
## Continuous Integration
|
|
91
84
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "semantic-js-mcp",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.3",
|
|
4
4
|
"description": "Semantic understanding of JavaScript codebases for AI agents",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
".codex-plugin/",
|
|
29
29
|
".mcp.json",
|
|
30
30
|
".prettierrc.json",
|
|
31
|
-
"
|
|
31
|
+
"SETUP.md",
|
|
32
32
|
"CHANGELOG.md",
|
|
33
33
|
"CONTRIBUTING.md",
|
|
34
34
|
"ROADMAP.md",
|
|
@@ -67,8 +67,8 @@
|
|
|
67
67
|
"verify:published": "node scripts/postpublication-smoke.mjs",
|
|
68
68
|
"benchmark": "node scripts/benchmark.mjs",
|
|
69
69
|
"benchmark:lifecycle-memory": "node scripts/lifecycle-memory-benchmark.mjs",
|
|
70
|
-
"format": "prettier --write \".codex-plugin/**/*.json\" \".agents/plugins/marketplace.json\" \".github/**/*.yml\" \".mcp.json\" \".prettierrc.json\" \"package.json\" \"package-lock.json\" \"CHANGELOG.md\" \"CONTRIBUTING.md\" \"README.md\" \"ROADMAP.md\" \"SECURITY.md\" \"*.mjs\" \"docs/**/*.md\" \"lib/**/*.mjs\" \"scripts/**/*.mjs\" \"skills/**/SKILL.md\" \"skills/**/agents/*.yaml\"",
|
|
71
|
-
"format:check": "prettier --check \".codex-plugin/**/*.json\" \".agents/plugins/marketplace.json\" \".github/**/*.yml\" \".mcp.json\" \".prettierrc.json\" \"package.json\" \"package-lock.json\" \"CHANGELOG.md\" \"CONTRIBUTING.md\" \"README.md\" \"ROADMAP.md\" \"SECURITY.md\" \"*.mjs\" \"docs/**/*.md\" \"lib/**/*.mjs\" \"scripts/**/*.mjs\" \"skills/**/SKILL.md\" \"skills/**/agents/*.yaml\""
|
|
70
|
+
"format": "prettier --write \".codex-plugin/**/*.json\" \".agents/plugins/marketplace.json\" \".github/**/*.yml\" \".mcp.json\" \".prettierrc.json\" \"package.json\" \"package-lock.json\" \"CHANGELOG.md\" \"CONTRIBUTING.md\" \"README.md\" \"ROADMAP.md\" \"SECURITY.md\" \"SETUP.md\" \"*.mjs\" \"docs/**/*.md\" \"lib/**/*.mjs\" \"scripts/**/*.mjs\" \"skills/**/SKILL.md\" \"skills/**/agents/*.yaml\"",
|
|
71
|
+
"format:check": "prettier --check \".codex-plugin/**/*.json\" \".agents/plugins/marketplace.json\" \".github/**/*.yml\" \".mcp.json\" \".prettierrc.json\" \"package.json\" \"package-lock.json\" \"CHANGELOG.md\" \"CONTRIBUTING.md\" \"README.md\" \"ROADMAP.md\" \"SECURITY.md\" \"SETUP.md\" \"*.mjs\" \"docs/**/*.md\" \"lib/**/*.mjs\" \"scripts/**/*.mjs\" \"skills/**/SKILL.md\" \"skills/**/agents/*.yaml\""
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
74
|
"@modelcontextprotocol/sdk": "1.27.1",
|
package/protocol.mjs
CHANGED
|
@@ -408,7 +408,7 @@ export const RESULT_SCHEMA = Object.freeze({
|
|
|
408
408
|
VERSION: 7,
|
|
409
409
|
});
|
|
410
410
|
|
|
411
|
-
export const SERVER_VERSION = "0.10.
|
|
411
|
+
export const SERVER_VERSION = "0.10.3";
|
|
412
412
|
|
|
413
413
|
export const REQUIRED_RUNTIME_COMPONENT = Object.freeze({
|
|
414
414
|
TYPESCRIPT_LANGUAGE_SERVER: "typescript-language-server/lib/cli.mjs",
|
|
@@ -2,7 +2,7 @@ export const REQUIRED_PACKAGE_FILE = Object.freeze({
|
|
|
2
2
|
PACKAGE_MANIFEST: "package.json",
|
|
3
3
|
PRETTIER_CONFIGURATION: ".prettierrc.json",
|
|
4
4
|
README: "README.md",
|
|
5
|
-
|
|
5
|
+
SETUP: "SETUP.md",
|
|
6
6
|
LICENSE: "LICENSE",
|
|
7
7
|
CLI: "cli.mjs",
|
|
8
8
|
SERVER: "server.mjs",
|