severally-mcp 2.1.0 → 2.4.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 (52) hide show
  1. package/CODE_OF_CONDUCT.md +83 -0
  2. package/CONFIG.md +10 -6
  3. package/README.ja.md +146 -69
  4. package/README.md +150 -73
  5. package/bin/severally-mcp.mjs +17 -2
  6. package/config.example.json +26 -0
  7. package/docs/how-it-works.ja.md +4 -2
  8. package/docs/how-it-works.md +5 -3
  9. package/docs/install.ja.md +59 -24
  10. package/docs/install.md +60 -24
  11. package/package.json +16 -4
  12. package/plugins/severally/.claude-plugin/plugin.json +1 -1
  13. package/plugins/severally/.codex-plugin/plugin.json +1 -1
  14. package/plugins/severally/dist/severally-mcp.mjs +29220 -27764
  15. package/plugins/severally/skills/_template/SKILL.md.tmpl +16 -22
  16. package/plugins/severally/skills/_template/reference.md.tmpl +11 -5
  17. package/plugins/severally/skills/antigravity/severally/SKILL.md +16 -22
  18. package/plugins/severally/skills/antigravity/severally/reference.md +11 -5
  19. package/plugins/severally/skills/claude/severally/SKILL.md +16 -22
  20. package/plugins/severally/skills/claude/severally/reference.md +11 -5
  21. package/plugins/severally/skills/codex/severally/SKILL.md +16 -22
  22. package/plugins/severally/skills/codex/severally/reference.md +11 -5
  23. package/plugins/severally/skills/opencode/severally/SKILL.md +16 -22
  24. package/plugins/severally/skills/opencode/severally/reference.md +11 -5
  25. package/scripts/build.mjs +31 -26
  26. package/scripts/doctor.mjs +52 -17
  27. package/scripts/init-config.mjs +8 -6
  28. package/scripts/install.mjs +342 -84
  29. package/scripts/live-check.mjs +52 -19
  30. package/scripts/live-mcp-check.mjs +42 -12
  31. package/scripts/test.mjs +10 -4
  32. package/src/adapters/antigravity-sandbox.mjs +39 -23
  33. package/src/adapters/antigravity.mjs +34 -16
  34. package/src/adapters/claude-code.mjs +73 -21
  35. package/src/adapters/codex.mjs +69 -27
  36. package/src/adapters/opencode-sandbox.mjs +40 -21
  37. package/src/adapters/opencode.mjs +31 -13
  38. package/src/brief.mjs +65 -41
  39. package/src/consultants.mjs +99 -30
  40. package/src/export.mjs +49 -12
  41. package/src/expose-paths.mjs +162 -44
  42. package/src/failures.mjs +23 -13
  43. package/src/jobs.mjs +420 -140
  44. package/src/parse-result.mjs +85 -30
  45. package/src/platform.mjs +5 -7
  46. package/src/policy.mjs +139 -32
  47. package/src/redact.mjs +38 -14
  48. package/src/run.mjs +104 -22
  49. package/src/schema.mjs +76 -22
  50. package/src/server.mjs +176 -166
  51. package/src/status.mjs +132 -0
  52. package/src/store.mjs +164 -19
package/docs/install.md CHANGED
@@ -10,10 +10,12 @@ into that cache, so it can be cleared afterwards.
10
10
 
11
11
  ## Requirements
12
12
 
13
- Beyond Node.js 20.10 or newer and a logged-in CLI, as in the README:
13
+ Beyond Node.js 22 or newer and a logged-in CLI, as in the README:
14
14
 
15
- - macOS/Linux: npm's global executable directory on `PATH`. The default (plugin mode, below) installs a
16
- `severally-mcp` command there for Codex to launch. `--manual` does without it.
15
+ - macOS/Linux: nothing about npm's global folder is required. The default (plugin mode, below) runs
16
+ `npm install -g` to put a `severally-mcp` command on `PATH` for Codex's plugin to launch. When npm cannot install
17
+ it globally (for example it needs sudo, or npm's global folder is not on `PATH`), the installer registers Codex
18
+ directly instead, and nothing else is needed. `--manual` does without the command.
17
19
  - Windows runs natively from PowerShell or Command Prompt; WSL is not required. CLIs are found through
18
20
  `PATH`/`PATHEXT` (`.exe`, `.cmd`, `.bat`, paths with spaces included).
19
21
 
@@ -42,7 +44,15 @@ run `npm run init-config` (see [Configuration](../README.md#configuration) in th
42
44
 
43
45
  ## Checking the registration
44
46
 
45
- After restarting the clients, check that each one sees severally. Skip the lines for CLIs you don't have:
47
+ `npx -y severally-mcp@latest status` shows it all at once, without starting a consultation: whether the config
48
+ file is valid, which consultants this machine can reach (and why the others cannot), whether every installed copy
49
+ is the same version, which clients have severally registered, and whether each CLI is logged in. The login check
50
+ reads each CLI's own status command and sends no prompt: `claude auth status` for Claude Code, `codex login status`
51
+ for Codex, and for OpenCode the number of credentials saved by `opencode auth list` (keys in the environment also
52
+ work, so none saved is only a warning). Antigravity has no such command, so it shows "not checked". Running out of
53
+ quota is not checked; the first consultation shows that.
54
+
55
+ To check one client yourself, after restarting it. Skip the lines for CLIs you don't have:
46
56
 
47
57
  ```bash
48
58
  # macOS / Linux (plugin mode)
@@ -65,14 +75,15 @@ For Claude Code alone, no clone and no installer are needed. In Claude Code:
65
75
  /plugin install severally@severally
66
76
  ```
67
77
 
68
- Restart Claude Code and check with `claude plugin details severally`. Node.js 20.10 or newer must be on `PATH`,
78
+ Restart Claude Code and check with `claude plugin details severally`. Node.js 22 or newer must be on `PATH`,
69
79
  since the plugin starts its server with `node`. The tools appear as `mcp__plugin_severally_severally__*`. This
70
80
  route has been tried on Linux only.
71
81
 
72
82
  To use severally from Codex, Antigravity or OpenCode as well, also run the installer from a clone
73
83
  ([From a clone](#from-a-clone)). It finds the marketplace plugin and leaves Claude Code to it. If you ran the installer before
74
84
  adding the marketplace plugin, run it once more: Claude Code would otherwise load severally twice, and the
75
- installer removes its own Claude Code copy and registration, backing them up first.
85
+ installer removes its own Claude Code copy and registration, backing them up first. Once the marketplace plugin is
86
+ there, the same installer run also updates it (see [Updating](#updating)).
76
87
 
77
88
  ## Two install modes
78
89
 
@@ -91,30 +102,47 @@ Windows. Pass `--manual` to use manual mode on macOS/Linux too.
91
102
 
92
103
  - It copies the server, with its dependencies, to `~/.severally/runtime/severally-mcp.mjs`. Every registration
93
104
  points at that copy, not at the cloned folder.
94
- - In plugin mode it also runs a global npm install, which provides the `severally-mcp` command that Codex
95
- launches. `--skip-global` skips that step and is accepted only when `severally-mcp` on `PATH` already points
96
- at the copied runtime. Manual mode needs no global install.
97
- - It changes client settings only through each CLI's own commands (`plugin add` / `mcp add`). Before it does
98
- anything, it backs up each client's settings file (`~/.claude.json`, `~/.codex/config.toml`,
105
+ - In plugin mode on macOS/Linux it also runs a global npm install of the runtime under the package name
106
+ `severally-runtime`, which provides the `severally-mcp` command that Codex's plugin launches. A global package
107
+ named `severally-mcp` that an earlier install left is removed with `npm uninstall -g severally-mcp` first.
108
+ If npm cannot install the command globally, or it is not first on `PATH`, the installer does not stop: it
109
+ registers Codex directly, with the same `codex mcp add` registration and long `consult_get` wait as `--manual`,
110
+ and says so. `--skip-global` skips the global install and is accepted only when `severally-mcp` on `PATH` already
111
+ points at the copied runtime. Manual mode needs no global install.
112
+ - It changes client settings only through each CLI's own commands (`plugin add` / `mcp add`), with one
113
+ exception: for a manually registered Codex it also writes one line, `tool_timeout_sec = 660`, into
114
+ `config.toml` under `[mcp_servers.severally]` (the same long wait the Codex plugin has; `codex mcp add` cannot
115
+ set it). An existing `tool_timeout_sec` there is kept, and the wait follows it. If the line cannot be written,
116
+ Codex is registered without the long wait and the installer says so.
117
+ - Before it does anything, it backs up each client's settings file (`~/.claude.json`, `~/.codex/config.toml`,
99
118
  `~/.gemini/config/mcp_config.json` and `~/.gemini/antigravity-cli/settings.json`,
100
119
  `~/.config/opencode/opencode.json(c)`) and any existing Skill directory to `~/.severally/backups/<timestamp>/`,
101
120
  naming each backup after its original path.
102
121
  - Switching modes backs up and then removes the duplicate registration left by the other mode.
103
122
  - If Claude Code already has severally from the marketplace, the installer does not register it with Claude Code,
104
- and removes its own earlier Claude Code copy (`~/.claude/skills/severally`) and user-scope registration.
123
+ and removes its own earlier Claude Code copy (`~/.claude/skills/severally`) and user-scope registration. It also
124
+ updates the marketplace copy (see [Updating](#updating)).
125
+ - At the end, if Claude Code is present and `~/.claude/settings.json` does not yet allow severally's five local
126
+ tools, it offers to add them (see the next section). It changes nothing else in that file.
105
127
  - For Codex, the marketplace file `.agents/plugins/marketplace.json` is copied from this repository; no public
106
128
  listing is involved.
107
129
 
108
130
  ## Skipping the permission prompt for tools that send nothing out
109
131
 
110
132
  Every tool except `consult_start` stays on your machine: `consult_get` (called repeatedly while a
111
- consultation runs), `consult_list`, `consult_cancel`, `consult_record` and `consult_export`. None of the clients has a command that adds tools to its allowlist, so the installer
112
- leaves this to you. Keep `consult_start` prompting: it is the point where material leaves for another vendor.
133
+ consultation runs), `consult_list`, `consult_cancel`, `consult_record` and `consult_export`. Keep `consult_start` prompting: it is the point where
134
+ material leaves for another vendor, and the installer never adds it.
113
135
 
114
136
  - **Claude Code**: the Skill already allows these five tools (its `allowed-tools`) for the turn it is invoked in, so
115
137
  polling a consultation does not prompt each time; the Skill itself asks for approval once. For the later turns
116
- (recording verdicts, a follow-up), add them in `~/.claude/settings.json` (plugin installs; for `--manual` write
117
- `mcp__severally__` instead of `mcp__plugin_severally_severally__`):
138
+ (recording verdicts, a follow-up), the installer offers to add them. At the end of the install, if Claude Code is
139
+ present and `~/.claude/settings.json` does not yet allow the five tools, it asks at the terminal "Let Claude Code
140
+ run ... without asking each time? [Y/n]" (the default is yes). With `--allow-local-tools` it adds them without
141
+ asking, for scripted installs. Without a terminal and without the flag it changes nothing and prints how to rerun
142
+ with the flag. It backs up `settings.json` first, keeps every other setting, and never adds a rule twice. The
143
+ rules use the prefix `mcp__plugin_severally_severally__` in plugin mode or for a marketplace install, and
144
+ `mcp__severally__` in manual mode. To do it by hand, add this to `~/.claude/settings.json` (write
145
+ `mcp__severally__` instead of `mcp__plugin_severally_severally__` for `--manual`):
118
146
  ```json
119
147
  { "permissions": { "allow": [
120
148
  "mcp__plugin_severally_severally__consult_get", "mcp__plugin_severally_severally__consult_list",
@@ -132,6 +160,8 @@ leaves this to you. Keep `consult_start` prompting: it is the point where materi
132
160
  - **OpenCode** allows MCP tools without asking unless your own `permission` settings say otherwise.
133
161
  - **Antigravity**: not covered here; the rule syntax for a single MCP tool has not been checked.
134
162
 
163
+ The installer does not touch the permissions of Codex, Antigravity or OpenCode.
164
+
135
165
  ### Letting consultations start without the prompt too
136
166
 
137
167
  The agent consults on its own (the Skill tells it not to ask whether to), so with `consult_start` prompting, every
@@ -155,11 +185,14 @@ and marketplace files under `~/.severally/backups/` before replacing them. Then
155
185
  Installed with an older version that registered the cloned folder itself? Add `--force` once to switch the
156
186
  existing registrations to the copied runtime. Without it, existing registrations are left as they are.
157
187
 
158
- Installed from the marketplace: run `/plugin marketplace update severally` in Claude Code, then restart it.
159
- Automatic updates are off by default; to turn them on, select severally under Marketplaces in `/plugin`, then
160
- Enable auto-update. If Codex, Antigravity or OpenCode use severally too, run the installer again as well: they
161
- run their own copy in `~/.severally/runtime`, and both copies read the same `~/.severally/config.json`, so keep
162
- them on the same version when a release changes the config format. When the copy in `~/.severally/runtime` or
188
+ Installed from the marketplace: when Claude Code already has severally from the marketplace, the installer also
189
+ runs `claude plugin marketplace update severally` and `claude plugin update severally@<marketplace>`, so one
190
+ `npx -y severally-mcp@latest install` brings every copy to the same version. If that fails, it prints the command to
191
+ run inside Claude Code, `/plugin marketplace update severally`. Restart Claude Code afterwards. For Claude Code
192
+ alone you can also run that command yourself instead of the installer. Automatic updates are off by default; to
193
+ turn them on, select severally under Marketplaces in `/plugin`, then Enable auto-update. Codex, Antigravity and
194
+ OpenCode run their own copy in `~/.severally/runtime`, and both copies read the same `~/.severally/config.json`;
195
+ the installer keeps them on the same version, which matters when a release changes the config format. When the copy in `~/.severally/runtime` or
163
196
  `~/.claude/skills/severally` runs a different version from the server answering, `consult_start` says so under
164
197
  `stale_install`, with the copies' versions and the commands that bring them level.
165
198
 
@@ -184,7 +217,8 @@ Remove-Item -LiteralPath "$HOME/.codex/skills/severally" -Recurse -Force
184
217
  Remove-Item -LiteralPath "$HOME/.gemini/config/skills/severally" -Recurse -Force
185
218
  Remove-Item -LiteralPath "$HOME/.config/opencode/skills/severally" -Recurse -Force
186
219
  Remove-Item -LiteralPath "$HOME/.severally/runtime" -Recurse -Force
187
- # Only if you previously installed the global command:
220
+ # Only if you installed the global command earlier (the old name is for an earlier install):
221
+ npm.cmd uninstall -g severally-runtime
188
222
  npm.cmd uninstall -g severally-mcp
189
223
  ```
190
224
 
@@ -204,7 +238,8 @@ rm -rf ~/.gemini/config/skills/severally
204
238
  # so delete the "severally" entry from the "mcp" object by hand):
205
239
  # edit ~/.config/opencode/opencode.json(c)
206
240
  rm -rf ~/.config/opencode/skills/severally
207
- npm uninstall -g severally-mcp
241
+ npm uninstall -g severally-runtime
242
+ npm uninstall -g severally-mcp # only if an earlier install left it
208
243
  rm -rf ~/.severally/runtime ~/.severally/marketplace
209
244
  ```
210
245
 
@@ -218,7 +253,8 @@ agy mcp remove severally
218
253
  # ~/.config/opencode/opencode.json(c) by hand
219
254
  rm -rf ~/.claude/skills/severally ~/.codex/skills/severally ~/.gemini/config/skills/severally \
220
255
  ~/.config/opencode/skills/severally
221
- # Only if a global command was previously installed:
256
+ # Only if a global command was installed earlier (the old name is for an earlier install):
257
+ npm uninstall -g severally-runtime
222
258
  npm uninstall -g severally-mcp
223
259
  rm -rf ~/.severally/runtime ~/.severally/marketplace
224
260
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "severally-mcp",
3
- "version": "2.1.0",
3
+ "version": "2.4.0",
4
4
  "description": "A plugin that lets your AI agent ask other coding agents for independent opinions, returned separately.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -27,10 +27,12 @@
27
27
  "README.md",
28
28
  "README.ja.md",
29
29
  "CONFIG.md",
30
+ "config.example.json",
31
+ "CODE_OF_CONDUCT.md",
30
32
  "docs"
31
33
  ],
32
34
  "engines": {
33
- "node": ">=20.10"
35
+ "node": ">=22"
34
36
  },
35
37
  "scripts": {
36
38
  "test": "node scripts/test.mjs",
@@ -40,7 +42,11 @@
40
42
  "live-mcp-check": "node scripts/live-mcp-check.mjs",
41
43
  "build": "node scripts/build.mjs",
42
44
  "init-config": "node scripts/init-config.mjs",
43
- "prepack": "node scripts/build.mjs"
45
+ "prepack": "node scripts/build.mjs",
46
+ "format": "prettier --write \"**/*.mjs\"",
47
+ "format:check": "prettier --check \"**/*.mjs\"",
48
+ "lint": "eslint .",
49
+ "typecheck": "tsc -p tsconfig.json"
44
50
  },
45
51
  "dependencies": {
46
52
  "@modelcontextprotocol/server": "^2.3.1",
@@ -49,7 +55,13 @@
49
55
  "zod": "^4.6.5"
50
56
  },
51
57
  "devDependencies": {
58
+ "@eslint/js": "9.36.0",
52
59
  "@modelcontextprotocol/client": "^2.3.1",
53
- "esbuild": "^0.28.2"
60
+ "@types/node": "22.18.6",
61
+ "esbuild": "^0.28.2",
62
+ "eslint": "9.36.0",
63
+ "globals": "16.4.0",
64
+ "prettier": "3.6.2",
65
+ "typescript": "5.9.2"
54
66
  }
55
67
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
3
  "name": "severally",
4
- "version": "2.1.0",
4
+ "version": "2.4.0",
5
5
  "description": "Ask Codex, Claude Code, Antigravity or OpenCode for an independent opinion, review or structured debate, in a sandboxed child session that can read files and search the web but cannot edit files, change the system, or start other agents.",
6
6
  "author": {
7
7
  "name": "coz.a",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "severally",
3
- "version": "2.1.0",
3
+ "version": "2.4.0",
4
4
  "description": "Ask Codex, Claude Code, Antigravity or OpenCode for an independent opinion, review or structured debate, in a sandboxed child session that can read files and search the web but cannot edit files, change the system, or start other agents.",
5
5
  "author": {
6
6
  "name": "coz.a",