{
  "markdown": "# knowmind\n\n\n<!-- mcp-name: io.github.Schubeler-Consulting/knowmind -->\n\n**Persistent memory for your AI tools.** Store something once, and it is available in Claude Code, Cursor, and any other MCP client that runs a local (stdio) server — as a typed knowledge graph with provenance, confidence, and a bitemporal history for every fact. Hosted in Germany (Hetzner, Nuremberg data center); the CLI and MCP server in this repository are Apache-2.0.\n\n**The free tier is permanently free and requires no payment details.** The API, CLI, and MCP server are included in every tier.\n\n[![npm](https://img.shields.io/npm/v/knowmind)](https://www.npmjs.com/package/knowmind) · [knowmind.de](https://knowmind.de)\n\n## Connect your AI tool in three steps\n\n1. Create a free account at [knowmind.de](https://knowmind.de) and generate an access token: Dashboard → API tokens.\n2. Store the token locally:\n\n```\nnpx -y knowmind login --token kmt_xxxxxxxx\n```\n\n3. Wire up your client:\n\n**Claude Code** (one command)\n```\nclaude mcp add knowmind --env KNOWMIND_TOKEN=kmt_xxx -- npx -y knowmind mcp\n```\n\n**Cursor** (`~/.cursor/mcp.json`) — also works for Claude Desktop, Windsurf, Cline, Continue, Goose, and Zed with their respective config files:\n```json\n{\n  \"mcpServers\": {\n    \"knowmind\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"knowmind\", \"mcp\"],\n      \"env\": { \"KNOWMIND_TOKEN\": \"kmt_xxx\" }\n    }\n  }\n}\n```\n\n**Any other MCP client**: knowmind is a standard MCP server over stdio (`npx -y knowmind mcp`). On Windows, if `npx` does not start directly, use `\"command\": \"cmd\"`, `\"args\": [\"/c\", \"npx\", \"-y\", \"knowmind\", \"mcp\"]`.\n\n`npx -y knowmind install <ide>` writes this configuration for you (e.g. `claude`, `cursor`, `vscode`), and `npx -y knowmind init` sets up automatic memory hygiene — recall before each task, store after each meaningful change — for clients with a hook or rule mechanism (Claude Code, Cursor).\n\n## How knowmind stores facts\n\n- **Bitemporal history.** Every fact carries two time axes: when it was true and when it was recorded. Corrections never overwrite the original; the old statement stays queryable with the date it stopped being valid, so you can reconstruct what the system knew on any given day.\n- **Provenance and confidence per fact.** New facts require a confidence level and keep a link to their source. Older facts without a confidence level are marked as such.\n- **Typed knowledge graph.** Entities and relations use a restricted set of edge types; catch-all relations are rejected at write time.\n- **Operated in the EU, isolated per tenant.** The service runs on Hetzner in Nuremberg, Germany, with tenant isolation, a public data processing agreement, and a subprocessor list at [knowmind.de/legal/avv](https://knowmind.de/legal/avv). Access logs are hash-chained and externally timestamped (RFC 3161).\n\nknowmind is a hosted service; there is no self-hosted community edition. If you need self-hosting, one of the projects below will serve you better. knowmind is built for the people and teams that need an operated memory service with an audit trail in the EU.\n\n## Pricing\n\n| Tier | Price | For whom |\n|---|---|---|\n| Free | €0 | individuals and evaluation |\n| Pro | €15/month or €150/year | individual professionals |\n| Team | €99/month | teams with shared memory |\n| Business | €349/month | larger teams |\n| Enterprise | from €1,000/month | organizations with on-premise requirements |\n\nThe free tier includes 2,500 memories, 1 user, and a 30-day access log.\n\nHow that compares (vendor pricing pages, checked 2026-09-05):\n\n| Product | Free tier | First paid tier | Self-hosting |\n|---|---|---|---|\n| knowmind | 2,500 memories | €15/month | no (Enterprise on-premise option) |\n| Mem0 | 10,000 entries, 1,000 retrievals/month | $19/month | yes (Apache-2.0) |\n| Zep | 10,000 credits/month | $125/month | Graphiti open source; Zep as BYOC |\n| cognee | 1M tokens, 1 workspace | $2.50 per 1M tokens | yes |\n| Letta | limited agents, own keys | $20/month | yes (per vendor) |\n| Supermemory | ~$5 usage included | $19/month | from Scale tier |\n\nDetails and current prices: [knowmind.de/pricing](https://knowmind.de/pricing).\n\n## Commands\n\n```\nnpx -y knowmind search \"Where does the staging deploy run?\"\nnpx -y knowmind upload notes.md --title \"Meeting notes 2026-05-12\"\nnpx -y knowmind stats\nnpx -y knowmind health\nnpx -y knowmind status --line   # one-line status for your AI tool's statusline\n```\n\n## Available Tools\n\nThirteen tools over MCP. Every one works against your own workspace; the server\nnever sees another tenant's data.\n\n### Reading\n\n**`knowmind_recall`** — Search your memory and get the passages that answer a\nquestion, ranked. Combines keyword search, vector similarity and the knowledge\ngraph, then reranks with a cross-encoder.\n`query` (string, required) · `k` (integer, default 5, max 20) · `hops` (integer,\ndefault 2 — how far to follow graph edges from a hit)\n*Usage:* your AI tool asks \"Which database does the billing service use?\" before\nanswering, instead of guessing.\n*Errors:* returns an empty result set when nothing matches — never an invented\nanswer.\n\n**`knowmind_recall_at_time`** — The same search, but as your memory stood on a\ngiven date. Facts superseded after that date are excluded; facts that were valid\nthen are returned even if they are no longer true.\n`query` (string, required) · `as_of` (ISO date or timestamp, required in\npractice) · `k` (integer, default 5)\n*Usage:* \"What was our pricing in March?\" — answers from the state of that day,\nnot today's.\n*Difference from `knowmind_recall`:* use `recall` for what is true now, and\n`recall_at_time` for what was true then. Asking `recall` about the past returns\ntoday's facts.\n\n**`knowmind_list_recent`** — The most recently added entries, newest first.\n`k` (integer, default 10)\n*Usage:* a quick look at what landed in memory during this session.\n\n**`knowmind_list_relations`** — All typed edges attached to one entry, in both\ndirections.\n`memory_id` (string, required)\n*Usage:* \"What does this contract connect to?\" before changing or superseding it.\n*Errors:* unknown id returns an error, not an empty list.\n\n**`knowmind_schema`** — The entity classes and relation types this workspace\naccepts. No parameters.\n*Usage:* call it before `knowmind_entity` or `knowmind_link` to use a type the\nserver will accept, rather than inventing one.\n\n**`knowmind_stats`** — Size of the corpus: documents, chunks, entities, edges.\nNo parameters.\n\n**`knowmind_health`** — Whether the service and its stores are reachable. No\nparameters.\n*Usage:* a status line, or a check before a long ingest.\n\n### Writing\n\n**`knowmind_store_memory`** — Store a short fact, decision or note. Stays as one\nunit; it is not split.\n`content` (string, required) · `title` (string) · `memory_type` (string, e.g.\n`semantic`, `episodic`) · `tags` (array of strings) · `source` (string) ·\n`domain` (string) · `relations` (array — edges to create along with the entry)\n*Usage:* \"We decided to keep the monolith until Q3\" after a meeting.\n*Errors:* rejected with 422 when the text contains what looks like a password or\nan access key. Store a pointer instead, not the secret.\n\n**`knowmind_upload_document`** — Store a longer text as a document. It is split\ninto passages, embedded, and becomes searchable through `knowmind_recall`.\n`content` (string, required) · `title` (string) · `source` (string) ·\n`relations` (array)\n*Usage:* meeting minutes, a specification, a handbook chapter.\n*Difference from `knowmind_store_memory`:* one sentence you want back verbatim is\na memory; a page you want searched is a document. A long text stored as a memory\nis retrieved as one block, which crowds out other results.\n\n**`knowmind_update_fact`** — Supersede a fact that has changed. The old version\nkeeps its validity window and stays auditable; nothing is deleted.\n`target_id` (string, required) · `new_title` (string, required) · `new_content`\n(string, required) · `update_reason` (string)\n*Usage:* a price, a deadline or a responsibility changed. Never overwrite —\nsupersede, so \"what did we believe in July\" stays answerable.\n*Errors:* unknown `target_id` is rejected.\n\n**`knowmind_entity`** — Create or update a typed entity (a person, a company, a\nproduct) with aliases.\n`name` (string, required) · `entity_class` (string, required — see\n`knowmind_schema`) · `description` (string) · `aliases` (array of strings)\n*Usage:* give \"ACME Ltd.\" its aliases so a question about \"ACME\" finds it.\n*Errors:* a class outside the schema is rejected.\n\n**`knowmind_link`** — Create a typed edge between two entries, with a confidence\nvalue.\n`from_id` (string, required) · `to_id` (string, required) · `rel_type` (string,\nrequired — see `knowmind_schema`) · `confidence` (number 0–1)\n*Usage:* connect a contract to the client it belongs to. The inverse edge is\ncreated for you.\n\n**`knowmind_unlink`** — Remove a typed edge.\n`from_id`, `to_id`, `rel_type` (all required)\n*Usage:* an edge created in error. The entries themselves stay.\n\n### On deleting\n\nThere is no delete tool, and that is deliberate. Facts are superseded\n(`knowmind_update_fact`), edges are removed (`knowmind_unlink`), and the history\nstays auditable. Deleting an entire workspace including its data is a\nself-service action in the web interface at\n[knowmind.de](https://knowmind.de) — it is not something an agent should be able\nto do by calling a tool.\n\n### Discovery\n\n`GET https://knowmind.de/api/mcp/v1` returns name, version, protocol version and\nthe full tool list with input schemas — without a token. Directory crawlers and\ninspectors can read the complete surface anonymously; only `tools/call` requires\na key.\n\n## Links\n\n[Documentation](https://knowmind.de/docs) · [Pricing](https://knowmind.de/pricing) · [Data processing agreement](https://knowmind.de/legal/avv) · [Privacy](https://knowmind.de/legal/datenschutz)\n\n---\n\nDie deutsche Fassung steht in [README.de.md](README.de.md).\n",
  "bytes": 9917,
  "sha": "6ac65c315fc57b77f3181d5cefe7ffeebfa3532a4f2578886ecb1ebaf70c299e",
  "repo_slug": "whosoeverm8/knowmind",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_whosoeverm8_knowmind_c021b041/readme"
}