@n0zer0d4y/vulcan-file-ops 1.2.8 → 1.2.10
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 +90 -0
- package/dist/server/index.js +9 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,96 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
## [1.2.10] - 2026-01-31
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- **CRITICAL**: Fixed MCP server toggle failure in Claude Desktop caused by capability mismatch
|
|
17
|
+
- **Root Cause**: Server declared `resources: {}` and `prompts: {}` capabilities but had NO handlers for `resources/list` and `prompts/list` methods
|
|
18
|
+
- Claude Desktop calls these methods after initialization, receives "Method not found" (-32601) errors, and fails to enable the server toggle
|
|
19
|
+
- **Solution**: Removed `resources` and `prompts` capability declarations from both Server constructor and initialize response
|
|
20
|
+
- Per MCP specification: A server MUST NOT declare capabilities for features it does not implement
|
|
21
|
+
- This bug was originally fixed in v1.2.3 but was reintroduced in v1.2.8 when code was restored to v1.2.1 baseline
|
|
22
|
+
- See `local_docs/RCA-Claude-Desktop-MCP-Capability-Mismatch-2026-01-31.md` for complete root cause analysis
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- Server now only declares `tools` capability (which is fully implemented)
|
|
27
|
+
- Removed unused capability declarations that caused protocol compliance issues
|
|
28
|
+
|
|
29
|
+
### References
|
|
30
|
+
|
|
31
|
+
- [MCPcat Guide: Fix MCP Error -32601](https://mcpcat.io/guides/fixing-method-not-found-32601-error/)
|
|
32
|
+
- MCP Protocol Specification: Capability declaration requirements
|
|
33
|
+
|
|
34
|
+
## [1.2.9] - 2026-01-31
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **CRITICAL**: Fixed protocol version negotiation causing Claude Desktop connection failures
|
|
39
|
+
- Server now returns the protocol version requested by the client instead of hardcoded `LATEST_PROTOCOL_VERSION`
|
|
40
|
+
- Claude Desktop requests `2025-06-18` but previous versions returned `2025-11-25`, causing immediate disconnection
|
|
41
|
+
- This fix ensures compatibility with all MCP clients regardless of their supported protocol version
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
|
|
45
|
+
- Protocol version in initialize response now mirrors client's requested version
|
|
46
|
+
- Added documentation comments explaining protocol version negotiation requirements
|
|
47
|
+
|
|
48
|
+
## [1.2.8] - 2026-01-31
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- Restored source code to working v1.2.1 baseline
|
|
53
|
+
- Downgraded `@modelcontextprotocol/sdk` from `^1.25.2` to `1.20.0` for stability
|
|
54
|
+
- Removed experimental console suppression changes that caused issues
|
|
55
|
+
|
|
56
|
+
### Notes
|
|
57
|
+
|
|
58
|
+
- This release reverts problematic changes while maintaining SDK 1.20.0 compatibility
|
|
59
|
+
|
|
60
|
+
## [1.2.7] - 2026-01-31
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
|
|
64
|
+
- Downgraded `@modelcontextprotocol/sdk` to `1.20.0` to resolve Claude Desktop compatibility issues
|
|
65
|
+
- SDK 1.25.x introduced breaking changes in stdio transport and protocol handling
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
|
|
69
|
+
- Locked SDK version to exact `1.20.0` (removed caret range)
|
|
70
|
+
|
|
71
|
+
## [1.2.6] - 2026-01-31
|
|
72
|
+
|
|
73
|
+
### Fixed
|
|
74
|
+
|
|
75
|
+
- Silenced dotenv debug output that was polluting stdout and corrupting MCP JSON-RPC protocol
|
|
76
|
+
- Added `quiet: true` option to `dotenv.config()` call
|
|
77
|
+
- Improved MCP mode detection logic
|
|
78
|
+
- Changed TTY detection from AND to OR logic: now triggers MCP mode if EITHER stdin OR stdout is piped
|
|
79
|
+
- This fixes edge cases where different shells/platforms report TTY status inconsistently
|
|
80
|
+
|
|
81
|
+
### Changed
|
|
82
|
+
|
|
83
|
+
- Console suppression now activates when any standard stream is piped, not just when both are piped
|
|
84
|
+
|
|
85
|
+
## [1.2.5] - 2026-01-31
|
|
86
|
+
|
|
87
|
+
### Fixed
|
|
88
|
+
|
|
89
|
+
- **CRITICAL**: Fixed ES Module execution order bug causing stdout pollution in MCP mode
|
|
90
|
+
- Console suppression code in `cli.ts` was ineffective due to ES Module static import hoisting
|
|
91
|
+
- Child modules (including `server/index.ts`) were evaluated BEFORE parent module's top-level code
|
|
92
|
+
- Moved console suppression to the top of `server/index.ts` before any imports
|
|
93
|
+
- Deferred `parseArguments()` call from module-level to inside `runServer()` function
|
|
94
|
+
- Added `--help` and `--version` flag detection to preserve CLI functionality
|
|
95
|
+
- See `local_docs/RCA-Claude-Desktop-MCP-Toggle-Failure-2026-01-31.md` for complete root cause analysis
|
|
96
|
+
|
|
97
|
+
### Changed
|
|
98
|
+
|
|
99
|
+
- MCP mode detection now excludes `--help` and `--version` flags to allow CLI usage
|
|
100
|
+
- Reorganized initialization sequence to ensure console suppression happens before any potential output
|
|
101
|
+
|
|
12
102
|
## [1.2.4] - 2026-01-21
|
|
13
103
|
|
|
14
104
|
### Fixed
|
package/dist/server/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
|
-
import { CallToolRequestSchema, ListToolsRequestSchema, InitializeRequestSchema, PingRequestSchema, RootsListChangedNotificationSchema,
|
|
4
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, InitializeRequestSchema, PingRequestSchema, RootsListChangedNotificationSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
5
5
|
import fs from "fs/promises";
|
|
6
6
|
import path from "path";
|
|
7
7
|
import dotenv from "dotenv";
|
|
@@ -382,21 +382,24 @@ const server = new Server({
|
|
|
382
382
|
tools: {
|
|
383
383
|
listChanged: true,
|
|
384
384
|
},
|
|
385
|
-
|
|
386
|
-
prompts
|
|
385
|
+
// CRITICAL: Do NOT declare resources or prompts capabilities
|
|
386
|
+
// We don't implement handlers for resources/list or prompts/list
|
|
387
|
+
// Declaring them causes Claude Desktop to call these methods,
|
|
388
|
+
// receive "Method not found" errors, and fail to enable the toggle
|
|
387
389
|
},
|
|
388
390
|
});
|
|
389
391
|
// Initialize handler - required for MCP protocol
|
|
390
392
|
server.setRequestHandler(InitializeRequestSchema, async (request) => {
|
|
391
393
|
const clientCapabilities = request.params.capabilities;
|
|
392
394
|
return {
|
|
393
|
-
|
|
395
|
+
// CRITICAL: Return the protocol version the CLIENT requested, not LATEST
|
|
396
|
+
// Claude Desktop only supports 2025-06-18 and will disconnect if we return 2025-11-25
|
|
397
|
+
protocolVersion: request.params.protocolVersion,
|
|
394
398
|
capabilities: {
|
|
395
399
|
tools: {
|
|
396
400
|
listChanged: true,
|
|
397
401
|
},
|
|
398
|
-
|
|
399
|
-
prompts: {},
|
|
402
|
+
// CRITICAL: Do NOT declare resources or prompts - we don't implement them
|
|
400
403
|
},
|
|
401
404
|
serverInfo: {
|
|
402
405
|
name: "vulcan-file-ops",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n0zer0d4y/vulcan-file-ops",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.10",
|
|
4
4
|
"mcpName": "io.github.n0zer0d4y/vulcan-file-ops",
|
|
5
5
|
"description": "MCP server for AI assistants: read, write, edit, and manage files securely on local filesystem.",
|
|
6
6
|
"license": "MIT",
|