@muvon/octofs 0.12.0 → 0.13.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/README.md +37 -15
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
[](https://modelcontextprotocol.io)
|
|
11
11
|
[](https://crates.io/crates/octofs)
|
|
12
12
|
|
|
13
|
-
*Standalone Rust binary that exposes filesystem tools over the Model Context Protocol. Built on `rmcp` 3.
|
|
13
|
+
*Standalone Rust binary that exposes filesystem tools over the Model Context Protocol. Built on `rmcp` 3.x, `tokio`, and `axum`.*
|
|
14
14
|
|
|
15
|
-
[Installation](#installation) · [Quick Start](#quick-start) · [Features](#features) · [Tools Reference](#mcp-tools-reference) · [Architecture](#architecture)
|
|
15
|
+
[Installation](#installation) · [Quick Start](#quick-start) · [Features](#features) · [Tools Reference](#mcp-tools-reference) · [Architecture](#architecture) · [Changelog](CHANGELOG.md)
|
|
16
16
|
|
|
17
|
-
MCP Registry: [`io.github.Muvon/octofs`](https://
|
|
17
|
+
MCP Registry: [`io.github.Muvon/octofs`](https://registry.modelcontextprotocol.io)
|
|
18
18
|
|
|
19
19
|
</div>
|
|
20
20
|
|
|
@@ -53,9 +53,9 @@ Your AI coding assistant (Cursor, Claude, Windsurf, etc.) is smart — but it's
|
|
|
53
53
|
| **Implementation** | Compiled Rust binary, no runtime | Python/Node script |
|
|
54
54
|
| **Content Search** | Built-in search with context lines | String matching only |
|
|
55
55
|
| **Batch Operations** | Atomic multi-edit on single file | One-at-a-time |
|
|
56
|
-
| **Line
|
|
56
|
+
| **Line Addressing** | Composite `N:hh` ids — hash-verified at apply time; stale edits fail with relocation hints | Number-only |
|
|
57
57
|
| **Transport** | STDIO + Streamable HTTP | STDIO only |
|
|
58
|
-
| **Shell Integration** |
|
|
58
|
+
| **Shell Integration** | Automatic foreground-to-background handoff | Limited or none |
|
|
59
59
|
| **Remote Files** | Transparent SSH/SFTP on every file tool | None |
|
|
60
60
|
| **Safety** | Gitignore-aware, stale-write detection, path validation | Full filesystem access |
|
|
61
61
|
|
|
@@ -75,6 +75,25 @@ cargo install octofs
|
|
|
75
75
|
brew install muvon/tap/octofs
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
+
### npm (no Rust toolchain needed)
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npx -y @muvon/octofs --version
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The wrapper downloads the matching pre-built binary on first run. MCP config:
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"mcpServers": {
|
|
89
|
+
"octofs": {
|
|
90
|
+
"command": "npx",
|
|
91
|
+
"args": ["-y", "@muvon/octofs", "mcp"]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
78
97
|
### Pre-built Binaries
|
|
79
98
|
|
|
80
99
|
Download from [GitHub Releases](https://github.com/muvon/octofs/releases) for your platform:
|
|
@@ -88,9 +107,11 @@ Download from [GitHub Releases](https://github.com/muvon/octofs/releases) for yo
|
|
|
88
107
|
| macOS (Intel) | `x86_64-apple-darwin` |
|
|
89
108
|
| macOS (Apple Silicon) | `aarch64-apple-darwin` |
|
|
90
109
|
|
|
110
|
+
Each release also ships `.mcpb` bundles for one-click install in clients that support MCP bundles (e.g. Claude Desktop).
|
|
111
|
+
|
|
91
112
|
### MCP Registry
|
|
92
113
|
|
|
93
|
-
|
|
114
|
+
Published to the [MCP Registry](https://registry.modelcontextprotocol.io) as `io.github.Muvon/octofs`.
|
|
94
115
|
|
|
95
116
|
### From Source
|
|
96
117
|
|
|
@@ -180,7 +201,7 @@ Ask your AI assistant to:
|
|
|
180
201
|
- **Delete** — Remove a file (recoverable via undo)
|
|
181
202
|
- **Undo** — Revert last edit (up to 10 undo levels per file, in-memory)
|
|
182
203
|
- **Batch Edit** — Perform multiple insert/replace operations atomically on a single file
|
|
183
|
-
- **Stale-Write Protection** —
|
|
204
|
+
- **Stale-Write Protection** — Every edit target's `N:hh` id is verified against the file at apply time; a stale id fails with the current content and where it moved, instead of editing the wrong line
|
|
184
205
|
|
|
185
206
|
### 🔍 Code Intelligence
|
|
186
207
|
|
|
@@ -190,7 +211,7 @@ Ask your AI assistant to:
|
|
|
190
211
|
### 🖥️ Shell & System
|
|
191
212
|
|
|
192
213
|
- **Command Execution** — Run shell commands with output capture
|
|
193
|
-
- **Background Processes** —
|
|
214
|
+
- **Background Processes** — Long commands automatically continue in background with completion notifications
|
|
194
215
|
- **Working Directory** — Set/get/reset working directory context for operations
|
|
195
216
|
|
|
196
217
|
---
|
|
@@ -450,17 +471,18 @@ the file). `append_line` positions the copy in the target: `0` = beginning,
|
|
|
450
471
|
|
|
451
472
|
### `shell` — Execute commands
|
|
452
473
|
|
|
453
|
-
|
|
474
|
+
Commands start in the foreground and return their output normally when they
|
|
475
|
+
finish within about 10 seconds:
|
|
476
|
+
|
|
454
477
|
```json
|
|
455
478
|
{"command": "cargo test"}
|
|
456
479
|
{"command": "cd foo && cargo build"}
|
|
457
480
|
```
|
|
458
481
|
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
```
|
|
482
|
+
If a command is still running at that boundary, the same process continues in
|
|
483
|
+
the background. The response returns its PID and linked output resource, and a
|
|
484
|
+
completion notification arrives when it exits. There is no `background` flag
|
|
485
|
+
and the command is never killed or restarted during the handoff.
|
|
464
486
|
|
|
465
487
|
> On Windows, shutdown cleanup terminates only direct child processes (no Unix
|
|
466
488
|
> process-group semantics); use `taskkill /PID <pid> /T` for process trees.
|
|
@@ -516,7 +538,7 @@ octofs/
|
|
|
516
538
|
|
|
517
539
|
**Key design decisions:**
|
|
518
540
|
|
|
519
|
-
- **rmcp SDK** — Official Rust MCP SDK (`rmcp` 3.
|
|
541
|
+
- **rmcp SDK** — Official Rust MCP SDK (`rmcp` 3.x) for protocol handling
|
|
520
542
|
- **Tokio** — Async runtime; all file I/O uses `tokio::fs`, never blocking `std::fs`
|
|
521
543
|
- **File locking** — Per-file `tokio::sync::Mutex` prevents concurrent write conflicts
|
|
522
544
|
- **Undo history** — Up to 10 snapshots per file, in-memory (lost on restart)
|