Domain-agnostic vault-governance engine: frontmatter schema profiles, indexing, ranked search, a task ledger, atomic writes, and a composable MCP core (register_core). The reusable core behind severino-vault-mcp and severino-edu-mcp.
Project description
severino-vault-engine
A domain-agnostic vault-governance engine — the reusable core behind
severino-vault-mcp and
severino-edu-mcp. It governs a Git-backed, frontmatter-tagged Markdown vault
(Obsidian-style) and exposes that governance both as a library and as a
composable MCP tool surface.
Building your own MCP on this engine? Read
AGENTS.md— a drop-in recipe an AI coding agent can follow to stand up a conformant server in minutes.
What's in it
SchemaProfile— a vault's frontmatter contract (doc-types, statuses, id-prefixes, task lifecycle, and composable per-document field rules), with a versioned complete contract and deterministic fingerprint. One engine, many profiles: a different vault is a different profile, not a fork.- Index + search — a lenient frontmatter index and ranked, section-scoped
retrieval (
find_sections) that returns menus, never raw bodies. - Task ledger —
doc_type: taskdocs derived from the index, with a validated write path. - Atomic writes — a single serializer and
atomic_create_text/atomic_write_text/transactional_replace, so every writer shares one escaping + durability rule and concurrent creates never replace each other. - Governance contracts — deterministic fingerprints, stale-safe reviewable plans, and body-free mutation receipts shared by CLI, MCP, audit, and projection consumers.
register_core(mcp, ctx)— composes the generic MCP tools (search, doc read with a sensitivity gate, project inventory, daily progress, the task ledger, schema-validated frontmatter writes) onto any FastMCP server.
Install
pip install severino-vault-engine # or: uv add severino-vault-engine
The import package is vault_engine; the distribution on PyPI is
severino-vault-engine.
Use
from vault_engine.config import Config
from vault_engine.context import GovernanceContext
from vault_engine.core_tools import register_core
from mcp.server.fastmcp import FastMCP
ctx = GovernanceContext(Config.from_env()) # your vault + profile
mcp = FastMCP("my-vault-mcp")
register_core(mcp, ctx) # + your own tool groups
The servers in the family own only their domain (writeup/topology tools, course tools) and a thin entrypoint; everything generic lives here.
One governance runtime, many adapters
MCP is the governed AI surface, not an implementation dependency for the CLI. Both adapters compose the same in-process runtime:
CLI ─┐
├─> GovernanceContext ─> application services ─> governed stores
MCP ─┘
Configuration is injectable for deterministic multi-vault composition:
ctx = GovernanceContext.load(
"~/.config/my-vault/config.toml",
env={"SVMC_CACHE_SECONDS": "10"},
profile=MY_PROFILE,
)
ServerContext remains a backward-compatible subclass. See
docs/governance-runtime.md for the extension
model and contracts.
Security
Releases are published to PyPI from GitHub Actions via OIDC Trusted
Publishing (no long-lived API tokens) with PEP 740 attestations. To report
a vulnerability, see SECURITY.md.
License
MIT © Joe Severino
Project details
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 severino_vault_engine-0.3.0.tar.gz.
File metadata
- Download URL: severino_vault_engine-0.3.0.tar.gz
- Upload date:
- Size: 74.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
caf07075a72fbdc4c2fc0ec49e997ab42ae5e0b6f2fbba7e67dd22ac58ea2db9
|
|
| MD5 |
03b61bca7de9f0cf2efd5ec5cca8f53e
|
|
| BLAKE2b-256 |
13f978e86a2d7554aa4db549d9d7973d3cbea0aa72d6ee8c62e6a6edad7ef646
|
Provenance
The following attestation bundles were made for severino_vault_engine-0.3.0.tar.gz:
Publisher:
publish.yml on joeseverino/vault-engine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
severino_vault_engine-0.3.0.tar.gz -
Subject digest:
caf07075a72fbdc4c2fc0ec49e997ab42ae5e0b6f2fbba7e67dd22ac58ea2db9 - Sigstore transparency entry: 2133945823
- Sigstore integration time:
-
Permalink:
joeseverino/vault-engine@fba722b2b793a952ba9f444bdaf63db6e0eb0edc -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/joeseverino
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fba722b2b793a952ba9f444bdaf63db6e0eb0edc -
Trigger Event:
release
-
Statement type:
File details
Details for the file severino_vault_engine-0.3.0-py3-none-any.whl.
File metadata
- Download URL: severino_vault_engine-0.3.0-py3-none-any.whl
- Upload date:
- Size: 71.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57fa3112c4d866cb125fb06aa068dde63e33a620d7dd8b996bfa7525999251fa
|
|
| MD5 |
b8e2569845696197f2a1f3696ce865ef
|
|
| BLAKE2b-256 |
67c1b551028f4cec06b2f2d96d6b455e70d35be1e3d2e3bf18ac09d6cb255ff6
|
Provenance
The following attestation bundles were made for severino_vault_engine-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on joeseverino/vault-engine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
severino_vault_engine-0.3.0-py3-none-any.whl -
Subject digest:
57fa3112c4d866cb125fb06aa068dde63e33a620d7dd8b996bfa7525999251fa - Sigstore transparency entry: 2133945951
- Sigstore integration time:
-
Permalink:
joeseverino/vault-engine@fba722b2b793a952ba9f444bdaf63db6e0eb0edc -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/joeseverino
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fba722b2b793a952ba9f444bdaf63db6e0eb0edc -
Trigger Event:
release
-
Statement type: