File System Protocol — an MCP server exposing file system operations for a Plan 9–style mountable agent environment.
Project description
fsp — File System Protocol
pip install fsp-py
# or
uv add fsp-py
fsp is an MCP server that exposes file system operations over a uniform
namespace. It is the first piece of a Plan 9–style mountable agent
environment: any backend (local disk, database, vector store, remote
service) can be projected as a path tree and accessed through a small set
of composable tools.
The Unix design principles — uniform namespace, small composable tools,
portability — have carried computing for fifty years. fsp brings them to
agents over MCP.
What ships in 0.0.1
A minimal local-disk implementation of the file system surface:
- CRUD —
read,write,edit,delete,move,copy,mkdir - Navigation —
ls,tree,stat - Pattern Search —
glob,grep
Stubs are present for retrieval (semantic_search, lexical_search,
vector_search), graph traversal, graph ranking, and the query engine —
they return a structured "not implemented" FSPResult so clients can
discover the full surface today and pick up real implementations as later
releases land their backends.
The only runtime dependency is mcp.
Run the server
# stdio (default — for desktop MCP clients)
fsp --root /path/to/expose
# HTTP/SSE
fsp --root /path/to/expose --transport sse --host 127.0.0.1 --port 8000
Use it from Python
from fsp import FSP
fs = FSP(root="/workspace")
print(fs.ls("/").data)
fs.write("/notes/today.md", "hello")
print(fs.grep("hello").data)
Every method returns the same FSPResult shape — ok, path, data,
error, meta — so the output of one call can feed the next.
Roadmap
mkconnandadd_mount— multi-backend mount routing- Database, vector store, and remote service backends
- Retrieval, graph traversal, and graph ranking implementations
- Query engine and CLI passthrough
License
Apache-2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fsp_py-0.0.1.tar.gz.
File metadata
- Download URL: fsp_py-0.0.1.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b403d0c55d53568552298d0597823d8ecf5e66ac0b50e14303c477f014eb34ed
|
|
| MD5 |
25a84592e6be6b31718c43687ceaeb5c
|
|
| BLAKE2b-256 |
553c0b1f9cddc94dcc9d5b343c614afab76fba4978e88e90488b2de0bae8da48
|
File details
Details for the file fsp_py-0.0.1-py3-none-any.whl.
File metadata
- Download URL: fsp_py-0.0.1-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
880a408f16082d4da65631c3d7be9ad199a93de388d17892e14a5b0c52550279
|
|
| MD5 |
0dacef3db1182c46e1240d2a2f63993d
|
|
| BLAKE2b-256 |
dba99c1d5de3c9658e0eccbbb9d664067b72539e9c811b31bc49c2da71f746cf
|