Temporal Knowledge Substrate
Provides tools for managing temporal organizational knowledge in a Neo4j graph database, including creating domains, sessions, knowledge entities with versioning, and graph analytics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Temporal Knowledge SubstrateBegin a session in domain 'product-design' to document a gotcha about login flow."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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_FROMchains — 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 package manager
Neo4j 5.x instance (local or remote)
Related MCP server: Neo4j GraphRAG MCP Server
Quick Start
# Install
uv sync
# Run (stdio transport, default for MCP clients)
mcp-temporal-knowledge --db-url bolt://localhost:7687Configuration
All options can be set via CLI flags or environment variables. CLI takes precedence.
CLI Flag | Env Var | Default | Description |
|
|
| Neo4j connection URL |
|
|
| Neo4j username |
|
|
| Neo4j password |
|
|
| Neo4j database name |
|
|
| Transport: |
|
| (none) | Tool name prefix (e.g. |
|
|
| HTTP host (non-stdio transports) |
|
|
| HTTP port (non-stdio transports) |
|
|
| HTTP path (non-stdio transports) |
MCP Client Configuration
Claude Desktop / Claude Code
Add to your MCP config:
{
"mcpServers": {
"temporal-knowledge": {
"command": "mcp-temporal-knowledge",
"args": ["--db-url", "bolt://localhost:7687"]
}
}
}HTTP transport
mcp-temporal-knowledge \
--db-url bolt://localhost:7687 \
--transport streamable-http \
--server-host 0.0.0.0 \
--server-port 8000 \
--allow-origins "http://localhost:3000" \
--allowed-hosts "localhost,127.0.0.1"Tool Surface (22 tools)
Session workflow
Every session follows: create_domain (once) → begin_session → create/evolve/confirm knowledge → end_session
Tool | Description |
| List all domains with session counts and last activity |
| Create a knowledge domain (idempotent) |
| Start a session — returns |
| Close a session with a summary of what was learned |
Knowledge mutation
Tool | Description |
| Create entities. Refuses on collision (use evolve, confirm, or a different name) |
| Create a new chain node — preserves the prior version via |
| Record that entities were reviewed and found unchanged |
| Compact an |
| Link entities ( |
Querying
Tool | Description |
| Fulltext search across names and descriptions (head-of-chain only) |
| All current (head-of-chain) entities for a domain |
| Session history — who worked on what, when |
| Walk |
| Read-only Cypher escape hatch (writes rejected) |
Taxonomy & Analytics
Tool | Description |
| 10 ontological types + 5 sub-labels with the sub-label → ontological-type mapping |
| 11 knowledge + 4 process edge types |
| Create a GDS graph projection for analytics |
| Drop a GDS projection |
| PageRank centrality |
| Betweenness centrality (bridge nodes) |
| Louvain community detection |
| Weakly connected components |
Type System
Every knowledge node carries:
Exactly one ontological label (one of 10 below)
An
ont_typeproperty naming that label deterministicallyZero or more sub-labels via Neo4j multi-labeling
Ontological type | Category | Sub-labels |
| Referent |
|
| Referent |
|
| Referent | (none) |
| Event | (none) |
| Emergence | (none) |
API ergonomics: create_knowledge accepts either an ontological type (Actor) or a known sub-label (Person) as the type field. When a sub-label is given, the substrate auto-applies BOTH labels via multi-labeling (e.g., (:Actor:Person)).
Upgrading from v0.6.x
v0.7.0 is a breaking change. Migration script:
.venv/bin/python -m mcp_temporal_knowledge._migration.v0_7_0 \
--db-url bolt://localhost:7687 \
--username neo4j --password ... \
--database <name> \
[--dry-run]Eight phases, each independently reversible. --database is required (Neo4j Desktop 2 hosts multiple named databases on one instance). Phase 7 (Dependency reclassification) is operator-assisted — the script lists nodes for manual reclassification. See CHANGELOG.md for the full breaking-change inventory and docs/design/ for the principle and design archive.
Development
# Install with dev dependencies
uv sync --dev
# Run tests
uv run pytest
# Type checking
uv run pyrightSee HOWTO.xml for the ontological commitments and tool behavior. Provide this to the LLM as invariant scaffolding.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceA graph-based MCP server that provides AI coding agents with persistent memory to store patterns, track complex relationships, and retrieve knowledge across sessions. It leverages graph structures to handle temporal queries and relational paths that traditional vector stores often miss.230MIT
- AlicenseAqualityCmaintenanceAn MCP server that enables LLMs to perform semantic and fulltext searches within Neo4j while executing complex, search-augmented Cypher queries for GraphRAG applications. It provides tools for database schema discovery and supports multi-provider embeddings to facilitate advanced graph traversals.52MIT
- Alicense-qualityBmaintenanceAn MCP server that lets coding agents build and query a persistent knowledge graph of concepts, architecture, and decisions, enabling them to remember across sessions.602312MIT
- AlicenseAqualityBmaintenanceAn MCP server that ingests semiconductor PDFs into a Neo4j knowledge graph, enabling AI agents to query domain knowledge, verify claims against source text, and record design reasoning.35MIT
Related MCP Connectors
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kenningai/mcp-temporal-knowledge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server