Skip to content

Programmatic API

@nogoo9/mcp-server-cloud-fs is available as an npm library for embedding in your own applications.

Installation

bash
npm install @nogoo9/mcp-server-cloud-fs
# or
bun add @nogoo9/mcp-server-cloud-fs

Quick Example

ts
import {
  createMcpServer, VirtualFS, MemoryStore,
  S3Provider, parseUri,
} from "@nogoo9/mcp-server-cloud-fs";

const roots    = [parseUri("s3://my-bucket")];
const provider = new S3Provider({ region: "us-east-1" });
const cache    = new MemoryStore(provider, { ttlMs: 60_000, syncDebounceMs: 2000 });
const vfs      = new VirtualFS(provider, cache);
await vfs.hydrate();

const server = createMcpServer({ vfs, roots });

Exported API

ExportDescription
createMcpServer(ctx)Create a configured MCP server instance
executeShell(command, ctx)Run POSIX-like commands against the VFS
VirtualFSFUSE-inspired write-back overlay
MemoryStore, FilesystemStore, createRedisStore, PassThroughCacheCache backends
S3Provider, AzureProvider, GcsProvider, MemoryProvider, SqliteProviderStorage providers
parseUri, toCacheKey, resolveToolPathPath utilities
ShellContext, ShellCommandHandlerShell extension types

Custom Provider Example

ts
import {
  VirtualFS, MemoryStore, MemoryProvider, createMcpServer, parseUri,
} from "@nogoo9/mcp-server-cloud-fs";

// In-memory provider for testing
const provider = new MemoryProvider();
const cache = new MemoryStore(provider, { ttlMs: 30_000, syncDebounceMs: 1000 });
const vfs = new VirtualFS(provider, cache);
await vfs.hydrate();

const server = createMcpServer({
  vfs,
  roots: [parseUri("mem://test")],
  enableShell: true,
  enableDelete: false,
});

// Use with any MCP transport

Shell Integration

ts
import { executeShell, VirtualFS, MemoryStore, MemoryProvider } from "@nogoo9/mcp-server-cloud-fs";

// ... setup provider, cache, vfs ...

const result = await executeShell('ls -l mem://test/', {
  vfs,
  roots: [parseUri("mem://test")],
  enableDelete: false,
});

console.log(result); // directory listing output

Released under the PolyForm Shield 1.0.0 License.