
Datacron
io.github.VBlackJackPublished by GitHub account VBlackJackv2026.1103.0Updated Nov 3, 2026
Local-first MCP server that exposes a Markdown vault through MCP.
Overview
Datacron's local MCP server; no sign-in required; STDIO.
No AI overview yet: these facts come from the registry entry and the server itself.
Installation
In SourceWeft
- Open Datacron in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Datacron
Local MCP server to query and maintain a Markdown vault from Claude, Codex, Gemini, or another stdio MCP client, without sending the whole vault into the context.
[License: Apache 2.0] [Python: 3.11+] [MCP: local stdio] [CI]
English | Français
What can you do with Datacron?
Recover project context, prepare for a conversation, and keep track of commitments. Datacron gives your assistant durable memory in readable, editable Markdown. Your notes remain usable independently of the client you choose.
Offline library: build a browsable Markdown library for Obsidian or another local reader, with a home page and topic indexes. Review proposed rewrites, splits and archives before changing the source vault. See the offline library guide and the 2026.0913.02 release notes.
The assistant orchestrates these requests using the available tools and granted permissions. A shared protocol guides reading, people updates, and write verification. Ambiguous identities require clarification; storing a deadline does not schedule a reminder. Explore daily follow-up.
Start here: install · first session · user guide · MCP reference · privacy.
Installation
Windows: one double-click installer
The easiest way on Windows: download Datacron-Setup.exe from the
latest Release, double-click it,
and pick your vault. No Python, no terminal, no administrator rights; Datacron registers
itself with your AI clients automatically. Full guide:
Windows installation.
Python: from PyPI
From source
From a clone of the repository:
Or, to install only the application:
Runtime prerequisites:
- Python 3.11+
ripgrepavailable on thePATHforsearch_regex; without it that tool falls back to a slower scan of indexed chunk bodies- a folder of Markdown notes
- a supported stdio MCP client, such as Claude Desktop, Codex CLI, or Gemini CLI
First session
- Choose your notes folder with the installer or
datacron setup. - Reconnect Datacron in your MCP client to load the tools and instructions. The Claude Desktop chat does not present the server instructions: paste the session start line printed by setup into your Claude preferences (see setup).
- Ask: "Find the notes for my project and summarize its status with sources."
For memory sessions, session_context returns bounded context and the shared protocol.
prepare_follow_up prepares sourced updates; existing writers apply them according to
permissions. get_follow_up retrieves the latest structured revisions. Existing prose notes
remain readable and are not automatically converted.
The server operates locally. Your client may send returned excerpts to its model provider; see privacy and security.
For cached session contracts, archive ranking, resumable write tracking and conversation evaluation, see daily workflow improvements.
Quick start
The easy path - one command detects your AI clients, initializes the vault, indexes it, and registers Datacron everywhere:
See the installation guide for options (--client, --scope, writing,
durability). Or step by step:
The mcp install subcommand above is dedicated to Claude Desktop. For Codex CLI, Gemini CLI,
Antigravity, LM Studio, Cursor, and the other clients, use multi-client setup with
datacron setup --client <identifier> or auto-detection with --client all.
Add to LM Studio
LM Studio 0.3.17+ has one user configuration and no project scope. The preferred command is:
For a Python installation where datacron-mcp is on PATH, the equivalent read-only
configuration can also be imported with this official deeplink:
Add to LM Studio
The link imports this example. Open LM Studio's MCP editor and replace both
<YOUR_VAULT> placeholders before starting the server:
The example does not enable write tools. CLI setup is safer for packaged installations because it writes the actual executable path automatically.
Restart the configured client or clients after installation.
To run the server manually:
The direct script entry used by the installer is also available:
datacron-mcp reads the vault from DATACRON_VAULT_ROOT.
Configuration
datacron init creates .datacron/VAULT.yaml. That file can carry vault-local
configuration, notably query expansion:
Useful environment variables:
Path lists use the OS separator (: on Unix, ; on Windows).
Writing
Writes are deliberately OFF by default. Without DATACRON_WRITE_PATHS, write tools return a
clear error and create no file.
To enable writing to a specific subfolder:
datacron setup can also apply the allowlist machine-wide (user environment
variable, opt-in) so every MCP client inherits it; default: _memory, _drafts,
_journal. See the setup guide.
Available write tools:
create_note_ai: creates a typed Markdown note, without overwrite.append_journal: adds an entry under a heading of an existing note.set_frontmatter: updates lifecycle fields, therejectedoptions list, and the monotonelast_idcounter without modifying the Markdown body.patch_note_preamble: replaces or removes the Markdown preamble before the first recognized Markdown heading (ATX or Setext), with mandatory CAS control.patch_note_section: replaces the content under an existing heading with CAS control.delete_note_section: explicitly deletes an H2-H6 section (ATX or Setext) and its subtree.rename_note_section: renames only the title of an H2-H6 section (ATX or Setext).move_note_section: previews or commits an exact H2-H6 subtree move within a note, with mandatory CAS.revert_note: restores the exact bytes of a version kept in history.apply_organization_manifest: validates and then applies a local content-addressed bundle after confirmation bound to the exact admitted organization pre-state.
Guarantees:
- strict note confinement within
DATACRON_WRITE_PATHS; organization-batch note sources and targets must also stay inside the unchanged liveorganization.scopeand pass the live note-admission policy, including exclusions - two internal exact-CAS targets for an organization batch:
.datacron/VAULT.yaml, only to change the top-levelorganizationmapping without changingorganization.scope, and.datacron/ulids.json, only when Datacron derives the key migration required by amove_replace_exact - atomic overwrite via temporary file +
os.replace - content-addressed history before modifying an existing note
- synchronous
reconcile()after a normal write; immediate searchability is guaranteed only when reconciliation succeeds - local audit log
- for an organization manifest: crash-consistent recovery and atomic replacement of each file; simultaneous visibility across several paths is not guaranteed
Concurrent multi-machine mode is not supported for writes: keep a single-writer rule on the vault.
For apply_organization_manifest, also stop every other Datacron client and server during the
maintenance window. Before applying, keep a verified byte-exact backup outside the vault of the
affected notes and the complete .datacron directory until every post-commit check is green. Call
mode="validate" first, review the bounded hashes it returns, then reuse
the exact confirmation_token with mode="apply". The token binds the manifest and payloads, all
admitted Markdown notes inside organization.scope, the exact vault configuration and identity
sidecars, and the projected report. It deliberately does not bind unrelated note bytes outside
organization.scope. A change to any authenticated component invalidates the confirmation before
mutation. history_mode=full is required at validation time. If Datacron derives identity-sidecar
case-collision cleanup, also review identity_sidecar_case_canonicalization_count and its
content-free SHA-256 before applying; both proofs are token-bound and retained in the durable
receipt.
An existing replace_exact or move_replace_exact source must carry its id in frontmatter; an
identity available only from the sidecar is unsupported by this v1 schema. If the batch is already
durably committed but index reconciliation or the planner oracle fails, the response says so
explicitly (committed_index_incomplete or committed_report_mismatch) and the same call can be
retried with the same token.
An organization-batch blocker is reported by datacron ops inspect with a pending_batch_ reason
and both single-note repair actions unavailable; use the full offline rollback procedure in the
operational-health guide rather than repairing or quarantining one member.
Available capabilities
Datacron indexes a folder of Markdown notes, exposes a local MCP server, then returns the
relevant notes or chunks to the client instead of a full dump. The vault stays an ordinary
Markdown folder: Datacron only adds a .datacron/ sidecar for the index, logs, internal
ULIDs, history, and the operation journal. The one exception is datacron setup at project
scope, which is part of the default: it also writes each detected client's project config
into the vault root, such as .mcp.json, .cursor/mcp.json, .gemini/settings.json,
.agents/mcp_config.json, .codex/config.toml or .vscode/mcp.json. Those files carry
machine-local absolute paths, so a synced vault carries them to every machine. Pass
--scope user to keep the vault free of them.
MCP Tools
The tables below list the standard profile (23 tools). For assistants that choose better from a
short list, DATACRON_TOOL_PROFILE=essential registers 5 tools instead: remember, recall,
what_changed, get_note and get_health. See the
essential tool profile.
Reading
Writing
Operational
Advisory (experimental)
MCP resources:
datacron://vault/mapdatacron://vault/infodatacron://policy/active
Search
search_text combines several signals:
- FTS5/BM25 for the base lexical score
- a heavier weight on the note title and heading trail than on the chunk body, so a note about a subject outranks a note that merely mentions it
- FR↔EN query expansion configured in
VAULT.yaml - conservative temporal re-rank:
- a note referenced in another note's
supersedesis strongly demoted confidence: lowandconfidence: needs_verificationapply a light penaltyinclude_superseded=truebrings historical notes back up
- a note referenced in another note's
- optional scope:
folder,tags, andfrontmatternarrow the searched notes with the same semantics aslist_notes; the response echoes the filters actually applied - optional grouping:
group_by_note=truekeeps the best chunk of each note and reports how many of its chunks matched, which cuts the returned tokens by about 40 percent on the eval corpus
search_regex stays literal: it applies neither query expansion nor temporal re-rank.
Historical search measurements - July 17, 2026
These measurements cover 19 questions and one configuration. They are not a benchmark of the current release or a guarantee for another vault.
Local measurement of the tool/impl pipeline actually received by the agent, 19 questions,
8k-token / 20-result configuration, July 17, 2026:
On this historical set, tool-level recall@5 matched the BM25 store. Use datacron eval
with a suitable question set to measure behavior on your own notes.
Privacy and security
- Datacron does no telemetry.
- Datacron calls no cloud LLM.
- The MCP client, for example Claude, Codex, or Gemini, may send the chunks that Datacron returns to its provider. Datacron does not send it the full vault.
- Content returned to clients is wrapped in
<vault_content>...</vault_content>. - Results are bounded by count and by token budget.
- Filesystem access is confined by
DATACRON_READ_PATHSandDATACRON_WRITE_PATHS. - MCP operations are audited in the local logs.
CLI commands
Current limitations
- Lexical search only: no vector search or embeddings.
- No autonomous agent: the MCP client orchestrates.
- No concurrent multi-machine writes.
- Client detection in
datacron setupis best-effort (a config directory or a binary on thePATH); an install in a non-standard location may be missed and can then be configured by hand.
Documentation
Full index: docs/en/index.md | Index français.
To get started:
- Installation and configuration guide
- Use Datacron with Ollama
- Frequently asked questions
- User guide
- Offline library and note consolidation
- Daily memory, people, and commitments
- Essential tool profile
Technical references:
- Vault conventions (SPEC)
- Vault organization
- Runbooks
- Read and reorganize note sections
- Architecture and public surface
- Security boundary
- Integrity scrubber
- Operational health and durability
- Freshness contract
Development
CI runs the invariants and the entire regression suite on Linux/Python 3.12 for changes limited to the READMEs, CHANGELOG, and Markdown pages under docs/fr/ or docs/en/. All other changes retain the six Linux/Windows and Python 3.11-3.13 combinations. Publications require the full matrix, as do empty or unverifiable diffs. ShellCheck, the dependency audit, and the required Quality gate remain active in both paths. The first push of a new branch also uses the full matrix because no previous comparison point is available.
License
Copyright 2026 Julien Bombled.
Licensed under the Apache License, Version 2.0.
Source: README.md at commit 5d3efd9
Tools
0Version history
10- v2026.1103.0LatestNov 3, 2026
- v2026.1020.0Oct 20, 2026
- v2026.1016.0Oct 16, 2026
- v2026.1015.0Oct 16, 2026
- v2026.1001.0Oct 1, 2026
- v2026.926.0Sep 26, 2026
- v2026.924.0Sep 25, 2026
- v2026.921.0Sep 23, 2026
- v2026.918.0Sep 18, 2026
- v2026.913.2Sep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.