Skip to content

Commit 0980de0

Browse files
committed
fix(npm-cli): default to server subcommand instead of --help
Invoking `npx davinci-resolve-mcp` with no arguments previously defaulted to `--help`, which wrote usage text to stdout and exited 0. MCP stdio clients (Hermes Agent, Claude Desktop, Cursor, etc.) read that as malformed JSON-RPC, retried three times, then dropped the connection. `bin/davinci-resolve-mcp.mjs` now defaults to the `server` subcommand when no arguments are supplied. Explicit `--help`, `-h`, `help`, `--version`, and `-v` continue to print to stdout as before. Existing configs that already pass `server` explicitly are unaffected. Bumps version surfaces to 2.24.1. Reported in #41.
1 parent 30387f1 commit 0980de0

8 files changed

Lines changed: 53 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
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.
44

5+
## What's New in v2.24.1
6+
7+
**`npx davinci-resolve-mcp` no longer breaks MCP clients when invoked without a
8+
subcommand.** The npm bootstrapper previously defaulted to `--help`, which wrote
9+
usage text to stdout and exited 0. MCP stdio clients (Hermes Agent, Claude
10+
Desktop, Cursor, etc.) read that as malformed JSON-RPC, retried three times,
11+
then dropped the connection. `bin/davinci-resolve-mcp.mjs` now defaults to the
12+
`server` subcommand when no arguments are supplied. Explicit `--help`, `-h`,
13+
`help`, `--version`, and `-v` continue to print to stdout as before, and
14+
existing configs that already pass `server` explicitly are unaffected. Reported
15+
in [#41](https://github.com/samuelgursky/davinci-resolve-mcp/issues/41).
16+
517
## What's New in v2.24.0
618

719
**Host-chat vision protocol (V2)**`analyze_*` actions now use

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# DaVinci Resolve MCP Server
22

3-
[![Version](https://img.shields.io/badge/version-2.24.0-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
3+
[![Version](https://img.shields.io/badge/version-2.24.1-blue.svg)](https://github.com/samuelgursky/davinci-resolve-mcp/releases)
44
[![npm](https://img.shields.io/npm/v/davinci-resolve-mcp.svg?label=npm&color=CB3837)](https://www.npmjs.com/package/davinci-resolve-mcp)
55
[![API Coverage](https://img.shields.io/badge/API%20Coverage-100%25-brightgreen.svg)](docs/reference/api-coverage.md)
66
[![Tools](https://img.shields.io/badge/MCP%20Tools-32%20(329%20full)-blue.svg)](#server-modes)

bin/davinci-resolve-mcp.mjs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,10 @@ function commandControlPanel(args) {
336336
}
337337

338338
function main() {
339-
const [command = "--help", ...args] = process.argv.slice(2);
339+
const argv = process.argv.slice(2);
340+
// No args → run the MCP stdio server. Anything printed to stdout would
341+
// otherwise be parsed as JSON-RPC by MCP clients and break the connection.
342+
const [command = "server", ...args] = argv;
340343

341344
try {
342345
if (command === "--help" || command === "-h" || command === "help") {

install.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
# ─── Version ──────────────────────────────────────────────────────────────────
3636

37-
VERSION = "2.24.0"
37+
VERSION = "2.24.1"
3838
SUPPORTED_PYTHON_MIN = (3, 10)
3939
SUPPORTED_PYTHON_MAX = (3, 12)
4040

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "davinci-resolve-mcp",
3-
"version": "2.24.0",
3+
"version": "2.24.1",
44
"description": "NPM bootstrapper for the DaVinci Resolve MCP Server.",
55
"license": "MIT",
66
"author": "Samuel Gursky <samgursky@gmail.com>",

release-notes/v2.24.1.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
## v2.24.1
2+
3+
v2.24.1 fixes a CLI bug that caused `npx davinci-resolve-mcp` (with no
4+
subcommand) to print help text to stdout, which MCP clients then tried to parse
5+
as JSON-RPC. Reported in
6+
[#41](https://github.com/samuelgursky/davinci-resolve-mcp/issues/41).
7+
8+
### Fixed
9+
10+
- `bin/davinci-resolve-mcp.mjs` now defaults to the `server` subcommand when
11+
invoked with no arguments. Previously the default was `--help`, which wrote
12+
usage text to stdout and exited 0; MCP stdio clients (Hermes Agent, Claude
13+
Desktop, Cursor, etc.) read that as malformed JSON-RPC, retried three times,
14+
then dropped the connection. Existing configs that already pass `server`
15+
explicitly are unaffected. Explicit `--help`, `-h`, `help`, `--version`, and
16+
`-v` continue to print to stdout as before.
17+
18+
### Changed
19+
20+
- Bumped version surfaces to `2.24.1`.
21+
22+
### Validation
23+
24+
- `venv/bin/python tests/test_import.py`
25+
- `venv/bin/python scripts/audit_api_parity.py`
26+
- `node bin/davinci-resolve-mcp.mjs --help`
27+
- `node bin/davinci-resolve-mcp.mjs --version`
28+
- `npm pack --dry-run`
29+
- `git diff --check`
30+
31+
No Resolve scripting behavior changed; live Resolve mutation validation was not
32+
required.

src/granular/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
handlers=[logging.StreamHandler()],
8181
)
8282

83-
VERSION = "2.24.0"
83+
VERSION = "2.24.1"
8484
logger = logging.getLogger("davinci-resolve-mcp")
8585
logger.info(f"Starting DaVinci Resolve MCP Server v{VERSION}")
8686
logger.info(f"Detected platform: {get_platform()}")

src/server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
python src/server.py --full # Start the 329-tool granular server instead
1212
"""
1313

14-
VERSION = "2.24.0"
14+
VERSION = "2.24.1"
1515

1616
import base64
1717
import os

0 commit comments

Comments
 (0)