Vlfs Local
FreeNot checkedA local, lightweight Model Context Protocol (MCP) server implementing the OpenViking standard. Turns any workspace into an intelligent, semantic virtual filesys
About
A local, lightweight Model Context Protocol (MCP) server implementing the OpenViking standard. Turns any workspace into an intelligent, semantic virtual filesystem (VLFS) for LLM agents to prevent context window exhaustion.
README
A local, lightweight, and powerful implementation of the Virtualized Log-Structured File System (VLFS) principles, adhering to the OpenViking standard.
This project automatically turns your local workspace into a contextual Model Context Protocol (MCP) server. By simply running the server within your project, you empower any connected LLM agent with semantic memory, intelligent structural discovery, and isolated cognition layers.
Why VLFS Local?
When working with LLM agents on large codebases or projects, context window exhaustion is a constant threat. Standard approaches involve either dumping massive files into the prompt or relying on black-box external RAG systems.
VLFS Local provides a transparent, local-first alternative:
- Naive but Powerful: It uses standard POSIX-like verbs and simple SQLite vector indexing (
sqlite-vec). No complex infrastructure required. - Context Preservation: It gives your agent a dedicated, persistent memory layer that survives across sessions.
- The Discovery Funnel: It strictly enforces a hierarchical search strategy (L0 -> L1 -> L2) to minimize token usage while maximizing context retrieval.
The OpenViking Virtual Filesystem (viking://)
The MCP server exposes a unified virtual filesystem to the agent under the viking:// URI scheme. This root behaves like a real directory containing three isolated partitions:
viking://resources/: Your actual workspace/project files. This is where your code, documents, and assets live. The server respects your.gitignore.viking://skills/: Executable instructions and procedural guidance for the agent. Physically stored in.viking/skills/.viking://user/memories/: The agent's episodic cognition layer. A place for the agent to write reflections, session summaries, and long-term context. Physically stored in.viking/user/memories/.
Note: By adding .viking/ to your project's .gitignore, your agent's memory and skills are kept cleanly isolated from your actual source code repository.
The L0/L1/L2 Discovery Hierarchy
To prevent token exhaustion, the MCP tools enforce a strict discovery funnel, teaching the connected LLM how to efficiently navigate the project:
L0 Layer: Discovery & Metadata
Tools: fs_ls, fs_tree
- Provides the structural map of the workspace.
- Uses minimal tokens to show directory trees and file names without loading any raw content.
- Agents use this to understand the shape of the project and locate potential areas of interest.
L1 Layer: Scanning & Routing
Tools: memory_find / memory_recall
- Semantic vector search across the workspace.
- Instead of searching raw text, VLFS automatically generates a 1-2 sentence abstract (L1 Summary) for every file and stores its embedding in a local
sqlite-vecdatabase. - Agents use this to "fuzzy search" for concepts (e.g., "authentication logic") without committing to a deep, token-heavy read.
L2 Layer: Deep Reading & Exact Matching
Tools: fs_cat, fs_grep
- Retrieves the raw, unadulterated file contents (L2 Memory).
fs_catloads the full file into the context window.fs_grepperforms an exact literal string match across the raw text.- Agents are instructed to only use L2 tools once they have narrowed down their target via L0 or L1.
Registration & Synchronization (Indexing)
Creating or saving a file in your project directory does not automatically place it into the agent's semantic memory. Just like git add, files must be ingested and registered with the vector index to be discoverable via memory_find.
VLFS Local handles indexing in two ways:
- Single File Registration (
memory_store): When an agent explicitly writes a memory or updates a file using thememory_storetool, the core engine saves the raw file and immediately triggers a background extraction loop to index it. - Bulk Synchronization (
memory_sync): Because VLFS Local does not run a background daemon watching your filesystem, any file created or modified out-of-band is "unregistered" or "stale". This includes you (the human) modifying files in your IDE or pulling a PR, as well as the agent itself modifying code via standard CLI tools (e.g.,sed,echo, orreplace). To make these files discoverable in the semantic index, you or the agent must manually callmemory_sync(e.g.,ov ingest). This tool recursively scans the specifiedviking://partition, identifies files that are newer than their.meta.yamlsidecar (or lack one entirely), and bulk-processes them.
For each unregistered or stale file, the engine uses a local or cloud LLM (configurable) to generate an L1 abstract, embeds it, and updates the SQLite vector database. A .meta.yaml sidecar file is dropped next to the original file to act as the synchronization receipt.
Architecture
The system is split into two primary python packages:
vlfs_core(The Foundation): Handles raw data ingestion, abstract generation, chunking, embedding, and semantic database persistence.vlfs_mcp(The Agent Interface): Wraps the core engine into standard FastMCP tools, enforcing the OpenVikingviking://routing and exposing the L0/L1/L2 verbs to the LLM.
Setup & Configuration
Detailed setup instructions coming soon...
- Uses
vlfs_config.jsonfor overriding storage paths and model providers (supports Local Dev Mode via Ollama/CLI, Google GenAI, OpenAI).
Installing Vlfs Local
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/fedevela/vlfs-localFAQ
Is Vlfs Local MCP free?
Yes, Vlfs Local MCP is free — one-click install via Unyly at no cost.
Does Vlfs Local need an API key?
No, Vlfs Local runs without API keys or environment variables.
Is Vlfs Local hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Vlfs Local in Claude Desktop, Claude Code or Cursor?
Open Vlfs Local on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Vlfs Local with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
