Temporal Knowledge Substrate MCP Server — domain-scoped knowledge accumulation with tool-enforced temporal integrity
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"mcp-temporal-knowledge","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# Temporal Knowledge Substrate An MCP server that lets LLM agents accumulate organizational knowledge across sessions, scoped by domain, backed by Neo4j. Tools enforce structural invariants so the graph can't corrupt itself — no raw Cypher writes. **Two-layer architecture:** - **Process layer** — Domains own Sessions. Sessions chain forward in time via `NEXT_SESSION`. The arrow of time is enforced by the tool, not by instructions. - **Knowledge layer** (append-only) — 10 ontological types + 5 sub-labels via Neo4j multi-labeling, connected by 11 relationship types. Knowledge evolves via `EVOLVED_FROM` chains — every prior moment is preserved, never overwritten. **The principle:** the tool may make claims about the graph but may not make claims about consciousness. Collisions error rather than silently merge. Description changes always create a new chain node — `update_knowledge` and `retype_knowledge` do not exist by design. See `HOWTO.xml` for the operator-facing teaching, and `docs/design/` for the design archive. ## Prerequisites - Python 3.10+ - [uv](https://docs.astral.sh/uv/) package manager - Neo4j 5.x instance (local or remote) ## Quick Start ```bash # Install uv sync # Run (stdio transport, default for MCP clients) mcp-temporal-knowledge --db-url bolt://localhost:7687 ``` ## Configuration All options can be set via CLI flags or environment variables. CLI takes precedence. | CLI Flag | Env Var | Default | Description | |---|---|---|---| | `--db-url` | `NEO4J_URI` or `NEO4J_URL` | `bolt://localhost:7687` | Neo4j connection URL | | `--username` | `NEO4J_USERNAME` | `neo4j` | Neo4j username | | `--password` | `NEO4J_PASSWORD` | `password` | Neo4j password | | `--database` | `NEO4J_DATABASE` | `neo4j` | Neo4j database name | | `--transport` | `NEO4J_TRANSPORT` | `stdio` | Transport: `stdio`, `sse`, or `streamable-http` | | `--namespace` | `NEO4J_NAMESPACE` | *(none)* | Tool name prefix (e.g. `myapp` -> `myapp-begin_session`) | | `--server-host` | `NEO…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.