factlog
Click on "Deploy 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., "@factlogPost a decision: use React for frontend"
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.
factlog
A shared, append-only fact log that lets AI agents (and their humans) coordinate on one workspace — a repository, or any bounded domain of agent activity: decisions, invariants, claims on file or uri scopes, questions, findings, and handoffs — persisted in SQLite, served over MCP (stdio and streamable HTTP), a CLI, a REST ingest endpoint, and a live web view.
Protocol semantics: factlog-rfc-v0.1.md
Implementation spec: factlog-build-spec.md
Context-discipline addendum (hooks, runner): factlog-context-discipline.md
Install
Node ≥ 20.
npm install && npm run build && npm link # puts `factlog` and `factlog-mcp` on PATH
npm test # full suite, incl. the 10-process concurrency gateRelated MCP server: Hivemind
Initialize a workspace
cd your-repo
factlog init # creates .factlog/factlog.db, adds it to .gitignoreConnect an agent (MCP)
Add to the repo's .mcp.json:
{ "mcpServers": { "factlog": { "command": "npx", "args": ["factlog-mcp"] } } }The server exposes factlog_brief, factlog_post, factlog_query,
factlog_changes, factlog_claim, factlog_supersede, factlog_release,
and factlog_resolve. Set FACTLOG_SESSION / FACTLOG_AGENT so writes are
attributed to the right session.
The same 8 tools are served over MCP streamable-HTTP at
http://127.0.0.1:4711/mcp by factlog serve (and on the workspace unix
socket .factlog/factlog.sock, mountable into containers). Identity comes
from x-factlog-agent/-session headers — or, hardened, from an actor token
(factlog token mint) presented as Authorization: Bearer, which stamps the
actor server-side, marks writes x-actor-verified, and can carry write-scope
ACLs plus an external taint (decision/invariant posts then land pending
until approved in the web UI). Set require_stamped_actors in
.factlog/policy.json to reject unstamped writes.
CLI
factlog brief # deterministic, budgeted context pack
factlog post decision --body "..." --scope 'src/auth/**'
factlog post note --body "..." --scope 'topic://finances/**' # uri scopes (RFC §3.4)
factlog claim --scope 'job://daily-digest' --task "..." # doubles as a run-lock; exit 2 on conflict
factlog release <id> --commit <sha>
factlog watch # tail -f the log
factlog serve # web view :4820 + daemon :4711 (/mcp, /ingest, hooks) + unix socket
factlog token mint --agent whatsapp --origin external --write-scope 'channel://**'
factlog bridge # fenced brief block in CLAUDE.md
factlog export # full log as NDJSON (no lock-in)factlog help lists the rest, including the hook-facing commands
(check-claim, session-status, next-task).
Operational events (RFC Appendix C)
CI, incident, and deploy tooling POSTs distilled judgments to
http://127.0.0.1:4711/ingest: incidents and red test suites become findings
auto-resolved by their closing transition; deploy freezes become blocking
invariants with meta["x-gate"]="block", which the PreToolUse hook enforces
mechanically — agents cannot edit a frozen scope — and meta["x-expires"]
expires them on schedule.
Hooks (enforced discipline for Claude Code)
demo/hooks/ ships a ready-made settings.json plus scripts: brief injected
on session start, edits blocked unless the session holds a covering claim,
stop gated on releasing claims and posting a handoff. Install per
demo/hooks/README.md.
Demo
The two-agents-one-repo walkthrough — parallel claims, a conflict flashing
red on the live timeline, a blocking question resolved across sessions, a
superseded decision — is scripted in demo/demo.md. Seed a
non-trivial log first with npm run seed.
This server cannot be deployed
Maintenance
Related MCP Connectors
- OctopadOAuthapp.octopad
The back-office workspace for your team's AIs: tasks, knowledge and context shared over MCP.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
- memnodeOAuthdev.memnode
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
An agent-native database over MCP: shared, validated, structured records in every AI chat.
Related MCP Servers
- AlicenseBqualityCmaintenanceShared workspace your AI agents write to. CMMN case management with 184+ MCP tools: cases, tasks, event-driven CMMN workflows with sentries, persistent memory with semantic search, billing and invoicing. OAuth or token auth; cloud-hosted remote MCP endpoint.10023MIT
- FlicenseNot gradedqualityDmaintenancePersistent, append-only event log for AI agent coordination, enabling agents to publish, query, and react to structured events across tools and sessions.81-
- AlicenseCqualityBmaintenanceAn append-only coordination memory for multi-agent and human work, backed by SQLite, with a local dashboard and acceptance contracts that enforce integrator review before work is considered accepted.421MIT
- AlicenseAqualityAmaintenanceLocal MCP event log for multi-agent workspaces, enabling structured event publishing, cursor-based polling, and status checks via SQLite-backed sidecar.10MIT