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.
- package/CODE_OF_CONDUCT.md +83 -0
- package/CONFIG.md +10 -6
- package/README.ja.md +146 -69
- package/README.md +150 -73
- package/bin/severally-mcp.mjs +17 -2
- package/config.example.json +26 -0
- package/docs/how-it-works.ja.md +4 -2
- package/docs/how-it-works.md +5 -3
- package/docs/install.ja.md +59 -24
- package/docs/install.md +60 -24
- package/package.json +16 -4
- package/plugins/severally/.claude-plugin/plugin.json +1 -1
- package/plugins/severally/.codex-plugin/plugin.json +1 -1
- package/plugins/severally/dist/severally-mcp.mjs +29220 -27764
- package/plugins/severally/skills/_template/SKILL.md.tmpl +16 -22
- package/plugins/severally/skills/_template/reference.md.tmpl +11 -5
- package/plugins/severally/skills/antigravity/severally/SKILL.md +16 -22
- package/plugins/severally/skills/antigravity/severally/reference.md +11 -5
- package/plugins/severally/skills/claude/severally/SKILL.md +16 -22
- package/plugins/severally/skills/claude/severally/reference.md +11 -5
- package/plugins/severally/skills/codex/severally/SKILL.md +16 -22
- package/plugins/severally/skills/codex/severally/reference.md +11 -5
- package/plugins/severally/skills/opencode/severally/SKILL.md +16 -22
- package/plugins/severally/skills/opencode/severally/reference.md +11 -5
- package/scripts/build.mjs +31 -26
- package/scripts/doctor.mjs +52 -17
- package/scripts/init-config.mjs +8 -6
- package/scripts/install.mjs +342 -84
- package/scripts/live-check.mjs +52 -19
- package/scripts/live-mcp-check.mjs +42 -12
- package/scripts/test.mjs +10 -4
- package/src/adapters/antigravity-sandbox.mjs +39 -23
- package/src/adapters/antigravity.mjs +34 -16
- package/src/adapters/claude-code.mjs +73 -21
- package/src/adapters/codex.mjs +69 -27
- package/src/adapters/opencode-sandbox.mjs +40 -21
- package/src/adapters/opencode.mjs +31 -13
- package/src/brief.mjs +65 -41
- package/src/consultants.mjs +99 -30
- package/src/export.mjs +49 -12
- package/src/expose-paths.mjs +162 -44
- package/src/failures.mjs +23 -13
- package/src/jobs.mjs +420 -140
- package/src/parse-result.mjs +85 -30
- package/src/platform.mjs +5 -7
- package/src/policy.mjs +139 -32
- package/src/redact.mjs +38 -14
- package/src/run.mjs +104 -22
- package/src/schema.mjs +76 -22
- package/src/server.mjs +176 -166
- package/src/status.mjs +132 -0
- 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
|
|
13
|
+
Beyond Node.js 22 or newer and a logged-in CLI, as in the README:
|
|
14
14
|
|
|
15
|
-
- macOS/Linux: npm's global
|
|
16
|
-
`severally-mcp` command
|
|
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
|
-
|
|
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
|
|
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
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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`.
|
|
112
|
-
leaves
|
|
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
|
|
117
|
-
`
|
|
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:
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
run
|
|
162
|
-
|
|
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
|
|
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-
|
|
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
|
|
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.
|
|
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": ">=
|
|
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
|
-
"
|
|
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.
|
|
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.
|
|
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",
|