Expand description
Virtual filesystem for MCP tools.
Provides an in-memory, read-only virtual filesystem for storing and
accessing generated MCP tool definitions. Files are organized in a
hierarchical structure like /mcp-tools/servers/<server-id>/....
§Features
- In-memory storage: All files stored in memory for fast access
- Strong types: Type-safe paths and error handling
- Builder pattern: Fluent API for VFS construction
- Integration: Works seamlessly with
mcp-codegenoutput - Thread-safe: All types are
Send + Sync
§Examples
§Basic usage
use mcp_execution_files::{FileSystem, FilesBuilder};
// Create FileSystem using builder
let fs = FilesBuilder::new()
.add_file("/mcp-tools/manifest.json", "{}")
.add_file("/mcp-tools/types.ts", "export type Params = {};")
.build()
.unwrap();
// Read files
let content = fs.read_file("/mcp-tools/manifest.json").unwrap();
assert_eq!(content, "{}");
// Check existence
assert!(fs.exists("/mcp-tools/types.ts"));
assert!(!fs.exists("/missing.ts"));§Integration with code generation
use mcp_execution_files::FilesBuilder;
use mcp_execution_codegen::{GeneratedCode, GeneratedFile};
let mut code = GeneratedCode::new();
code.add_file(GeneratedFile {
path: "manifest.json".to_string(),
content: r#"{"version": "1.0"}"#.to_string(),
});
code.add_file(GeneratedFile {
path: "tools/sendMessage.ts".to_string(),
content: "export function sendMessage() {}".to_string(),
});
let vfs = FilesBuilder::from_generated_code(code, "/mcp-tools/servers/github")
.build()
.unwrap();
assert!(vfs.exists("/mcp-tools/servers/github/manifest.json"));
assert!(vfs.exists("/mcp-tools/servers/github/tools/sendMessage.ts"));§Directory operations
use mcp_execution_files::FilesBuilder;
let vfs = FilesBuilder::new()
.add_file("/mcp-tools/servers/test/file1.ts", "")
.add_file("/mcp-tools/servers/test/file2.ts", "")
.build()
.unwrap();
let files = vfs.list_dir("/mcp-tools/servers/test").unwrap();
assert_eq!(files.len(), 2);Re-exports§
pub use builder::FilesBuilder;pub use filesystem::ExportOptions;pub use filesystem::FileSystem;pub use types::FileEntry;pub use types::FilePath;pub use types::FilesError;pub use types::Result;
Modules§
- builder
- Builder pattern for constructing virtual filesystems.
- filesystem
- In-memory filesystem and export functionality.
- types
- Core types for the virtual filesystem.