Facthouse
Local AI memory: neuroscience-inspired Data→Information→Knowledge in SQLite you own.
Connector by gordonkjlee · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/gordonkjlee-facthouse
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 9 read · 1 write · 0 delete · 3 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 13
Read from the source code; the running server may list different tools.
Read 9 · Look things up without changing anything.
capture_factget_contextget_entityget_eventsget_schemasget_session_contextget_statslist_inferencessearch_knowledge
Write 1 · Create, change, send or run things.
log_event
Not yet classified 3 · We could not tell from the name and description.
capture_inferenceconsolidatevalidate_inference
Network hosts it talks to 7
api.voyageai.com· found in codecursor.directory· found in codefacthouse.dev· found in codegithub.com· found in codeglama.ai· found in codemcpservers.org· found in coderaw.githubusercontent.com· found in code
Files it touches
~/.claude- Your home directory (~)
~/.cursor~/.facthouse~/.grokC:\\dev\\appC:\\Users\\alex\\.facthouse-personalC:\\Users\\alex\\.facthouse-work
Tools (13)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
capture_factcapture_inferenceSubmit a hypothesis that nobody said, citing existing integrated fact ids as evidence. Call this when you have inferred something from knowledge already in the store — not when the user just stated it (that is capture_fact), and not during consolidate, which never invents. The hypothesis stays pending until validate_inference; it is not knowledge yet. If the hypothesis is that two named things already in this store are one thing, pass those two entity ids; similar facts are evidence, not identity.
consolidateDescription is built at runtime.
get_contextGet everything known about a topic, combining search with entity relationship traversal. More comprehensive than search_knowledge — it follows entity connections outward: from a named subject to the things it relates to, and the facts about those in turn. Call this when you need the COMPLETE picture of a topic, subject, or domain rather than a specific fact — planning something involving a person, project or system, catching up on a subject, or answering an open-ended question about any of them. Prefer search_knowledge when you want one fact fast; prefer this when missing a connection would …
get_entityGet everything known about a named thing — who or what it is, the facts about it, and how it connects to other things. A "thing" is any subject this store holds knowledge about: a person, an organisation, a project, a place, a product, a system — whatever the store is used for. This is the "tell me about X" tool. Call this WHENEVER a named thing is mentioned or alluded to and knowing it would improve your answer — including indirect references like "my manager", "the Helsinki office", "the payments service". Call it before advising on anything involving that thing, and before asking who or w…
get_eventsRetrieve events from the current or a previous session. Returns the raw episodic record — messages, tool calls, tool results, and artifacts in sequence order. Use this to recall what happened earlier in a conversation (especially after context compaction), or to review a previous session.
get_schemasList the knowledge domains this user's memory actually uses, and their subdomains. The set is not fixed — beyond the core domains it grows to fit the user, so it is worth asking rather than assuming. Call this before filtering a search by domain, before choosing a domain_hint for capture_fact, or when you want to know how this user's knowledge is organised. Rarely needed mid-conversation — search_knowledge and get_context work without it.
get_session_contextget_statsGet knowledge base statistics — how many facts are currently true, how many are held in total including superseded history, entity and domain counts, how facts are distributed across domains, and how much raw log can be reclaimed. Call this when the user asks what you know or remember about them, how much you have stored, or whether their memory is working. This answers "how much do you know", not "what do you know" — use search_knowledge, get_entity or get_context for actual recall. `semantic` is present when this store is configured for meaning search. `semantic.stored` is how many current…
list_inferencesList hypotheses by status. Call this when you need to see pending inferences before asking the user to confirm, rather than guessing they exist. Default status is pending. Confirmed rows are already in search_knowledge as labelled facts; this list is the gate, not a second knowledge store.
log_eventRecord a raw exchange — a user message, your response, a tool call, a tool result, an artifact — as the episodic record consolidation later extracts facts from. Logging both sides gives that extraction the context to know what a reply refers to. Where the client has hooks configured, every event is logged for you automatically and you do not need to call this at all. Call it when there are no hooks, or when an exchange matters enough to preserve verbatim — a decision, a correction, a specification — and you want it recorded whether or not hooks are running. Duplicates are reconciled at consol…
search_knowledgeDescription is built at runtime.
validate_inferenceConfirm or reject a pending hypothesis. Call this when the user has judged the inference, rather than confirming on your own. Confirming integrates it as a fact labelled source_type inference with the supporting fact ids as provenance. If the hypothesis named two entity ids, confirming also links them as the same thing for lookup; rejecting does not. Rejecting records that it is not knowledge. Only a pending inference can be validated.
Signals
- Stars
- 3
- Forks
- 1
- Open issues
- 1
- Weekly downloads
- 33
- Last commit
- Oct 7, 2026 (22 days ago)
- Last release
- Sep 10, 2026 (1 month ago)
- Last package publish
- Sep 10, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.gordonkjlee/facthouse- Version
- 0.31.0
- Auth
- No auth
- Packages
- npm @facthouse/mcp
- License
- MIT
- Repository
- github.com/gordonkjlee/facthouse
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from gordonkjlee
Cite this page
Facthouse MCP server. Agent Mart. https://agentmart.dev/connectors/gordonkjlee-facthouse (last updated 2026-10-24)