davinci-resolve-mcp 2.63.1 → 2.63.2
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/CHANGELOG.md +19 -0
- package/README.md +1 -1
- package/docs/install.md +10 -1
- package/install.py +33 -2
- package/package.json +1 -1
- package/src/granular/common.py +1 -1
- package/src/server.py +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Release history for the DaVinci Resolve MCP Server. The latest release is summarized in the root README; older entries live here to keep the README focused.
|
|
4
4
|
|
|
5
|
+
## What's New in v2.63.2
|
|
6
|
+
|
|
7
|
+
Installer fix for Windows MSIX builds of Claude Desktop (issue #93, reported by
|
|
8
|
+
@corolorn). No tool-surface change.
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **Installer writes Claude Desktop config to the MSIX-virtualized path on
|
|
13
|
+
Windows** — Claude Desktop for Windows ships as an MSIX package (even from
|
|
14
|
+
the official website), and MSIX filesystem virtualization redirects the
|
|
15
|
+
app's config to
|
|
16
|
+
`%LOCALAPPDATA%\Packages\Claude_<publisherhash>\LocalCache\Roaming\Claude\claude_desktop_config.json`.
|
|
17
|
+
The installer previously wrote to the documented `%APPDATA%\Claude\` path,
|
|
18
|
+
which the MSIX-packaged app never reads, so the server silently never
|
|
19
|
+
appeared. The installer now detects the containerized path (publisher hash
|
|
20
|
+
globbed, not hard-coded) and writes there when present, falling back to
|
|
21
|
+
`%APPDATA%\Claude\` for non-MSIX installs. Documented both locations in
|
|
22
|
+
`docs/install.md`.
|
|
23
|
+
|
|
5
24
|
## What's New in v2.63.1
|
|
6
25
|
|
|
7
26
|
Documentation-only. Records the `Graph.SetLUT` master-LUT-dir behavior (from the
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DaVinci Resolve MCP Server
|
|
2
2
|
|
|
3
|
-
[](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
|
|
4
4
|
[](https://www.npmjs.com/package/davinci-resolve-mcp)
|
|
5
5
|
[](docs/reference/api-coverage.md)
|
|
6
6
|
[-blue.svg)](#server-modes)
|
package/docs/install.md
CHANGED
|
@@ -50,7 +50,7 @@ The installer can automatically configure any of these clients:
|
|
|
50
50
|
|
|
51
51
|
| Client | Config Written To |
|
|
52
52
|
|--------|-------------------|
|
|
53
|
-
| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) |
|
|
53
|
+
| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS); `%APPDATA%\Claude\claude_desktop_config.json` (Windows, see MSIX note below) |
|
|
54
54
|
| Claude Code | `.mcp.json` (project root) |
|
|
55
55
|
| Cursor | `~/.cursor/mcp.json` |
|
|
56
56
|
| VS Code (Copilot) | `.vscode/mcp.json` (workspace) |
|
|
@@ -64,6 +64,15 @@ The installer can automatically configure any of these clients:
|
|
|
64
64
|
|
|
65
65
|
You can configure multiple clients at once, or use `--clients manual` to get copy-paste config snippets.
|
|
66
66
|
|
|
67
|
+
> **Windows MSIX note (Claude Desktop):** Claude Desktop for Windows is
|
|
68
|
+
> distributed as an MSIX package — even when downloaded from the official
|
|
69
|
+
> website. MSIX filesystem virtualization redirects the app's config to
|
|
70
|
+
> `%LOCALAPPDATA%\Packages\Claude_<publisherhash>\LocalCache\Roaming\Claude\claude_desktop_config.json`,
|
|
71
|
+
> and the app never reads the documented `%APPDATA%\Claude\` path (which may
|
|
72
|
+
> still exist on disk). The installer detects the virtualized location and
|
|
73
|
+
> writes there automatically. If the server does not appear in Claude Desktop
|
|
74
|
+
> after a manual setup, check both locations.
|
|
75
|
+
|
|
67
76
|
For [Autohand Code](https://github.com/autohandai/code-cli/), register the managed launcher after setup:
|
|
68
77
|
|
|
69
78
|
```bash
|
package/install.py
CHANGED
|
@@ -35,7 +35,7 @@ from src.utils.update_check import (
|
|
|
35
35
|
|
|
36
36
|
# ─── Version ──────────────────────────────────────────────────────────────────
|
|
37
37
|
|
|
38
|
-
VERSION = "2.63.
|
|
38
|
+
VERSION = "2.63.2"
|
|
39
39
|
# Only hard floor: mcp[cli] requires Python 3.10+. There is no upper bound —
|
|
40
40
|
# Resolve's scripting bridge loads into newer interpreters on recent builds
|
|
41
41
|
# (Python 3.14 verified against Resolve Studio 20.3.2). Older Resolve builds
|
|
@@ -282,6 +282,37 @@ def appdata():
|
|
|
282
282
|
"""Windows %APPDATA% equivalent."""
|
|
283
283
|
return Path(os.environ.get("APPDATA", home() / "AppData" / "Roaming"))
|
|
284
284
|
|
|
285
|
+
def localappdata():
|
|
286
|
+
"""Windows %LOCALAPPDATA% equivalent."""
|
|
287
|
+
return Path(os.environ.get("LOCALAPPDATA", home() / "AppData" / "Local"))
|
|
288
|
+
|
|
289
|
+
def windows_claude_desktop_config():
|
|
290
|
+
"""Resolve the Claude Desktop config path on Windows, MSIX-aware (issue #93).
|
|
291
|
+
|
|
292
|
+
Claude Desktop for Windows ships as an MSIX package (even when downloaded
|
|
293
|
+
from the official website, not the Store). MSIX filesystem virtualization
|
|
294
|
+
redirects the app's %APPDATA% reads/writes into a per-package container,
|
|
295
|
+
so the app actually uses:
|
|
296
|
+
|
|
297
|
+
%LOCALAPPDATA%\\Packages\\Claude_<publisherhash>\\LocalCache\\Roaming\\Claude\\
|
|
298
|
+
|
|
299
|
+
A config written to the documented %APPDATA%\\Claude\\ location is invisible
|
|
300
|
+
to the app -- the server silently never appears. Prefer the containerized
|
|
301
|
+
path whenever a Claude MSIX package directory with that structure exists;
|
|
302
|
+
fall back to %APPDATA%\\Claude\\ otherwise. The publisher-hash suffix is
|
|
303
|
+
globbed rather than hard-coded so a re-signed package still matches.
|
|
304
|
+
"""
|
|
305
|
+
packages = localappdata() / "Packages"
|
|
306
|
+
try:
|
|
307
|
+
candidates = sorted(packages.glob("Claude_*"))
|
|
308
|
+
except OSError:
|
|
309
|
+
candidates = []
|
|
310
|
+
for pkg in candidates:
|
|
311
|
+
virtual = pkg / "LocalCache" / "Roaming" / "Claude"
|
|
312
|
+
if virtual.is_dir():
|
|
313
|
+
return virtual / "claude_desktop_config.json"
|
|
314
|
+
return appdata() / "Claude" / "claude_desktop_config.json"
|
|
315
|
+
|
|
285
316
|
def xdg_config():
|
|
286
317
|
"""Linux XDG_CONFIG_HOME or default."""
|
|
287
318
|
return Path(os.environ.get("XDG_CONFIG_HOME", home() / ".config"))
|
|
@@ -314,7 +345,7 @@ MCP_CLIENTS = [
|
|
|
314
345
|
"name": "Claude Desktop",
|
|
315
346
|
"get_path": lambda: {
|
|
316
347
|
"Darwin": home() / "Library" / "Application Support" / "Claude" / "claude_desktop_config.json",
|
|
317
|
-
"Windows":
|
|
348
|
+
"Windows": windows_claude_desktop_config(),
|
|
318
349
|
"Linux": xdg_config() / "Claude" / "claude_desktop_config.json",
|
|
319
350
|
}.get(SYSTEM),
|
|
320
351
|
"config_key": "mcpServers",
|
package/package.json
CHANGED
package/src/granular/common.py
CHANGED
|
@@ -80,7 +80,7 @@ if not logging.getLogger().handlers:
|
|
|
80
80
|
handlers=[logging.StreamHandler()],
|
|
81
81
|
)
|
|
82
82
|
|
|
83
|
-
VERSION = "2.63.
|
|
83
|
+
VERSION = "2.63.2"
|
|
84
84
|
logger = logging.getLogger("davinci-resolve-mcp")
|
|
85
85
|
logger.info(f"Starting DaVinci Resolve MCP Server v{VERSION}")
|
|
86
86
|
logger.info(f"Detected platform: {get_platform()}")
|