agentic-fs server: stores, services, REST + MCP. Implements the afs-core contracts.
Project description
afs-server
The agentic-fs service: the concrete backends (stores, search, extraction), the
services, and the REST + MCP surface. Implements the afs-core contracts.
Status
Store layer (in progress):
afs_server.settings—AFS_*env config; every swappable layer is selected by a backend name and every AWS-shaped backend takes anendpoint_urloverride.afs_server.stores— the store registry:get_object_store(settings)selects a builtin or an installed plugin (afs.object_storesentry-point group).afs_server.stores.objects_s3.S3ObjectStore— the S3ObjectStore. Because it speaks plain S3, it is your store for any S3-compatible endpoint (MinIO, Cloudflare R2, Wasabi, Backblaze B2) viaAFS_S3_ENDPOINT_URL— no code change.afs_server.stores.catalog_dynamodb.DynamoDBCatalogStore— the DynamoDBCatalogStoreover the single-table schema (AFS_DYNAMODB_ENDPOINT_URLpoints at DynamoDB Local for dev).
Both stores are certified by the afs-core conformance kits via moto.
afs_server.services.FsService— the read path (list/stat/ rangedread) over the stores, with scope + namespace enforcement and 404-not-403 misses.afs_server.app— the FastAPI app:/v1/healthz,/readyz,/me, andfs/{ns}/{entries,stat,doc}; dev auth (static principal, never prod); everyAfsErrorrendered as RFC 9457problem+json.afs_server.mcp— the MCP surface mounted at/mcp(FastMCP):whoami,fs_list,fs_stat,fs_readover the sameFsService(in-process, no HTTP self-calls). The full middleware chain + remaining tools land with their slices.
The image (../../Dockerfile) runs this app on Lambda / Fargate / locally;
make dev from the repo root runs it against MinIO + DynamoDB Local. Coming
next: the MCP mount (shares FsService in-process).
Swapping a backend (plug-and-play)
See docs/swap-guides/. In short: S3-compatible
storage needs only an env var; anything else implements the ObjectStore
Protocol, registers an entry point, and certifies against
afs_core.testing.ObjectStoreConformance.
Develop
uv sync
uv run pytest packages/afs-server # conformance kits run against moto
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 afs_server-1.0.0.tar.gz.
File metadata
- Download URL: afs_server-1.0.0.tar.gz
- Upload date:
- Size: 153.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","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 |
f292152a79ae354f621317ee401b9d88cd6a67c2efb52630ef200c0e360f445f
|
|
| MD5 |
6ee0176d0a97f24d349ed1c9d64c859d
|
|
| BLAKE2b-256 |
91b9ff327d90dfe7f4cd17169270c8cb9f62851cb5e15a4da9a9ec97a5f76ae8
|
File details
Details for the file afs_server-1.0.0-py3-none-any.whl.
File metadata
- Download URL: afs_server-1.0.0-py3-none-any.whl
- Upload date:
- Size: 84.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","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 |
0fb906305d5f4c1d1bd825e645da1d6adba9d098c83ef92e09b16eb968aff3fc
|
|
| MD5 |
7871d64cd1f64538e7836a5d19aeb6c7
|
|
| BLAKE2b-256 |
5633ec97c4d3e8220416476cb3bf959a7a5a140c3353e8c1609f637d68d102ce
|