You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: add tool filtering section + refresh counts in README
Surfaces the tool-filtering feature that landed in commits ca8a1c3 →
ba5b22e:
- New top-level "Tool Filtering" section explains the six presets, the
/arcane:configure slash command with its diff preview, and the env
var overrides (ARCANE_TOOL_PRESET etc.)
- Top nav gains a "Tool Filtering" link
- Built-in Workflow Prompts table: 4 → 5 (adds arcane_configure_tools)
- MCP Resources table: 2 → 4 (adds arcane://tools and
arcane://tools-config-notice)
- New slash-command row for /arcane:configure
- Configuration env var table: 4 new rows
(ARCANE_TOOL_PRESET / ARCANE_ENABLED_MODULES / ARCANE_ENABLED_TOOLS /
ARCANE_DISABLED_TOOLS) + a line noting env vars override the config
file and the server hot-reloads ~/.arcane/config.json
- Development test count: 79 → 119
- Project Structure: calls out registry.ts, presets.ts, config-watcher.ts,
the new commands/ dir, src/__tests__/integration/ and the updated
resource / prompt counts
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@@ -154,6 +155,42 @@ You need an **Arcane instance** running (see [getarcane.app](https://getarcane.a
154
155
155
156
---
156
157
158
+
## Tool Filtering
159
+
160
+
Exposing all 180 tools to Claude every turn chews through your context window. Pick a **preset** to trim the active tool set — only the tools in that preset appear in `tools/list`:
|`full`*(default if never configured)*| everything | 180 |
169
+
|`custom`| your own module + per-tool picks | variable |
170
+
171
+
**Configure interactively** in Claude Code:
172
+
173
+
```
174
+
/arcane:configure
175
+
```
176
+
177
+
Walks you through picking a preset (and optional fine-tuning), shows a `+X / −Y` diff against what's currently live, and writes the selection to `~/.arcane/config.json`. The server watches that file — changes apply **live** via `notifications/tools/list_changed`, no reconnect.
178
+
179
+
**Or set it by env var:**
180
+
181
+
```bash
182
+
ARCANE_TOOL_PRESET=commonly-used
183
+
ARCANE_ENABLED_MODULES=container,image,dashboard
184
+
ARCANE_ENABLED_TOOLS=arcane_system_get_health
185
+
ARCANE_DISABLED_TOOLS=arcane_system_prune
186
+
```
187
+
188
+
Resolution order: **preset → intersect with `modules` → add `enabled` → subtract `disabled`**. Unknown names log a warning and are ignored — never silent failures, never a bricked server.
189
+
190
+
Non-Claude-Code clients can use the `arcane_configure_tools` MCP prompt for the same flow.
191
+
192
+
---
193
+
157
194
## What Can It Do?
158
195
159
196
### Containers & Compose
@@ -205,21 +242,30 @@ rm -rf /tmp/arcane
205
242
206
243
## Built-in Workflow Prompts
207
244
208
-
The server includes four pre-built prompts that guide Claude through common multi-step operations:
245
+
The server includes five pre-built prompts that guide Claude through common multi-step operations:
209
246
210
247
| Prompt | What it does |
211
248
|--------|-------------|
212
249
|`/deploy-stack`| Walks through creating a project, pulling images, deploying, and verifying all services are healthy |
|`/security-audit`| Full environment scan: check scanner status, get vulnerability summary, review all findings by severity, check for image updates |
215
252
|`/cleanup-environment`| Safe cleanup: survey resources, present a plan, get confirmation, then prune images, networks, and volumes in the right order |
253
+
|`arcane_configure_tools`| Walks through selecting a tool-filter preset + module / per-tool overrides and writing them to `~/.arcane/config.json` (for clients without slash commands) |
216
254
217
-
Plus two**MCP Resources** that give Claude background context:
255
+
Plus four**MCP Resources** that give Claude background context:
218
256
219
257
| Resource | What it provides |
220
258
|----------|-----------------|
221
259
|`arcane://environments`| All available environments with IDs and status — so Claude can pick the right one |
222
260
|`arcane://version`| Server configuration details — base URL, default environment, protocol version |
261
+
|`arcane://tools`| JSON inventory of every tool (name, module, enabled state) — consumed by `/arcane:configure` to compute the before/after diff |
262
+
|`arcane://tools-config-notice`| Flags installs that haven't configured tool filtering yet and points them at `/arcane:configure`|
263
+
264
+
And a Claude Code slash command:
265
+
266
+
| Command | What it does |
267
+
|---------|-------------|
268
+
|`/arcane:configure`| Interactive tool-filter picker — preset, module allowlist, per-tool overrides, with a live diff before writing |
223
269
224
270
---
225
271
@@ -409,10 +455,16 @@ Plus two **MCP Resources** that give Claude background context:
409
455
|`ARCANE_DEFAULT_ENVIRONMENT_ID`| Auto-select this environment | - |
410
456
|`ARCANE_HTTP_PORT`| Port for HTTP/network mode |`3000`|
411
457
|`ARCANE_HTTP_HOST`| Host for HTTP/network mode |`localhost`|
|`ARCANE_ENABLED_TOOLS`| Comma-separated tool names to force-enable | - |
461
+
|`ARCANE_DISABLED_TOOLS`| Comma-separated tool names to force-disable | - |
412
462
|`LOG_LEVEL`|`debug`, `info`, `warn`, or `error`|`info`|
413
463
414
464
**Authentication:** API Key is recommended. JWT tokens are automatically refreshed before they expire.
415
465
466
+
**Tool filter:** anything set via env var overrides the corresponding field in `~/.arcane/config.json`. Unset fields fall through to the file. Change at runtime by editing `~/.arcane/config.json` — the server hot-reloads.
0 commit comments