Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

knowmind

NPM · KNOWMIND

AI agent memory & knowledge graph, hosted in Germany (GDPR). Recall, relations, store via MCP.

Available components

−2 this week 86 Trust /100

Last scanned (20 hours ago)

Scores higher than 90% of npm servers

Category Memory and Knowledge

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security90
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects sharp 0.34.5, reached via @huggingface/transformers > sharp. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 23 of 79 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Schubeler-Consulting/knowmind). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 3 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability63
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7420 tokens (~322/item across 23 items; 23 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management82
  • Stability check failed: the tool surface changed between 0.3.8 and 0.4.6: 0 tool removals, 2 breaking changes, 3 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
What we tested

Checks we ran (16)

  • Malware scan
  • Known CVEs
  • Install scripts
  • Dependency health
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 78 to 82.

  • 4 Nov 26 −3

    No change was recorded against any check on this day. Stability & Change Management went from 96 to 78.

  • 3 Nov 26 0
    • Package version: 0.3.9 → 0.4.6 functional
  • 1 Nov 26 0
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: fail → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 0.4.5 → 0.4.6 functional
  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 96.

  • 28 Oct 26 −1

    No change was recorded against any check on this day. Stability & Change Management went from 96 to 93.

  • 25 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
  • 24 Oct 26 0
    • Security disclosure: fail → unverified ▼ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/knowmind@0.4.6

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo Schubeler-Consulting/knowmind
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/Schubeler-Consulting/knowmind/.github/workflows/publish-npm.yml@refs/heads/master
Rekor log index 3634706410
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:884f8694bf10f80ad04c57f039ddd498a955615fd3807932712f4ff609bff104983e146bda91a59735aebb5e9ae3a807170990cc24478fd03dac716cf

Background: How many MCP packages publish verified provenance →

Vulnerabilities 3 findings
ID CVE Severity Vector Fix available
GHSA-f88m-g3jw-g9cj CVE-2026-114113 high yes
GHSA-rgj7-g3m4-5g8c CVE-2026-114112 high yes
GHSA-wq5f-xc86-pv6w CVE-2026-114111 high yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 79 packages
Packages resolved 79
Deprecated 1
Stale 23
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 23 exposed · ~7,420 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
knowmind_end_fact ~196

End an entry that no longer applies and that nothing replaces (a project closed, a source withdrawn): the entry gets valid_to (now, or the given time) and drops out of knowmind_recall, while knowmind_recall_at_time before that time still finds it. Nothing is deleted and no new entry is created. When a newer statement replaces the entry, use knowmind_update_fact instead. Calling it again changes nothing. Requires write scope.

NameTypeReqDescription
reasonstring–Why it ends (e.g. 'source withdrawn'); stored with the entry.
target_idstringyesID of the entry to end; get it via knowmind_recall - never invent it.
valid_tostring–ISO-8601 time with time zone from which the entry no longer applies; defaults to now. Example: '2026-10-11T22:10:00+02:00'.

No output schema declared.

No examples provided.

knowmind_entity ~284

DEPRECATED, removed on 2027-03-31: use knowmind_upsert_entity. This name keeps answering unchanged until then. Create the node for a thing the corpus talks about - a person, an organisation, an application, a host, a technology - or return the existing one. THE GRAPH NEEDS THESE: memories are texts, and two texts mentioning the same server stay unconnected until that server exists as its own node. Create an entity when a name recurs across memories or when you are about to link something that has no node yet, then connect it with knowmind_link. Same name, same class and same tenant always return the same id, so calling twice creates no duplicate. Give the entity its plain proper name ("PostgreSQL", not "the database we use"), and pick the class from the catalogue in knowmind_schema. Requires write scope.

NameTypeReqDescription
aliasesarray–Other spellings the same thing appears under. Optional.
descriptionstring–One sentence saying what this is. Optional, helps later retrieval.
entity_classstringyesClass from the catalogue (knowmind_schema -> entityClasses), e.g. Person, Organization, Application, Host, Technology.
namestringyesProper name of the thing, as it would be written in a document. No role, no status, no description.

No output schema declared.

No examples provided.

knowmind_get_health ~64

Return the health of the knowmind backend (Postgres, memory service, graph). Use before a batch of writes or when calls fail, to tell an outage apart from an empty result. Returns a status object per component. Read scope suffices; takes no parameters.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

knowmind_get_schema ~69

Return the relation catalogue of this tenant's knowledge graph: every allowed edge type with its subject and object classes and an explanation of when to use it. Call this before building edges with knowmind_link, so you pick the right predicate instead of the nearest-sounding one. Read scope suffices.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

knowmind_get_stats ~59

Return current counts for the tenant corpus: memories, graph edges and vector chunks. Use to gauge how much has been stored; for the actual entries use knowmind_list_recent or knowmind_recall. Read scope suffices; takes no parameters.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

knowmind_health ~90

DEPRECATED, removed on 2027-03-31: use knowmind_get_health. This name keeps answering unchanged until then. Return the health of the knowmind backend (Postgres, memory service, graph). Use before a batch of writes or when calls fail, to tell an outage apart from an empty result. Returns a status object per component. Read scope suffices; takes no parameters.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

knowmind_link ~1,049

DEPRECATED, removed on 2027-03-31: use knowmind_link_entities. This name keeps answering unchanged until then. Create a typed relation between two memory nodes (a knowledge-graph edge). THIS IS HOW THE GRAPH IS BUILT: after storing memories, connect them - a corpus without edges answers only what a single note already says. The server checks the edge against the ontology's shapes before writing it: the subject and object must belong to the classes the predicate requires (for entries without a class the check only warns), entity names must carry no role or suffix, and the edge must name its evidence - the id of the entry that states the relation. A rejected edge returns the violated rule. The inverse edge is materialized automatically, and derived edges (RUNS_ON, WORKS_FOR_CLIENT, HOST_SERVES_CLIENT, DEPENDS_ON_SUPPLIER) are computed by the server - never set them by hand. Get both node IDs via knowmind_recall first, and call knowmind_schema for the full catalogue with explanations. Allowed rel_type values: ABOUT (Contract|Document|FileResource → Topic), ASSIGNED_TO (ActionRecord|Task → Agent|Organization|Person|SoftwareAgent), CLIENT_OF (Agent|Organization|Person|SoftwareAgent → Organization), CONTACT_PERSON_FOR (Person → Organization), COVERED_BY (Topic → Contract|Document|FileResource), DELIVERED_AS (Application → Product), DELIVERED_BY (Product → Application), DEPENDS_ON (Application → Application), DEPLOYED_TO (Application → Container), DEVELOPED_BY (Application → Agent|Organization|Person|SoftwareAgent), DEVELOPS (Agent|Organization|Person|SoftwareAgent → Application), ENABLES (Application → Application), FOR_CLIENT (Project → Agent|Organization|Person|SoftwareAgent), HAS_ASSIGNED_TASK (Agent|Organization|Person|SoftwareAgent → ActionRecord|Task), HAS_CHILD (Person → Person), HAS_CLIENT (Organization → Agent|Organization|Person|SoftwareAgent), HAS_CONTACT_PERSON (Organization → Person), HAS_EMPLOYEE (Organization → Person), HAS_OPERATED_APPLICATION (Agent|Orga…

NameTypeReqDescription
confidencenumber–Edge confidence in [0..1]; 1.0 for a fact stated verbatim, 0.7 for a clear paraphrase. Below that, do not create the edge.
evidencestringyesMemory ID of the entry that states this relation (often from_id or a note found via knowmind_recall). Required: an edge without evidence is rejected.
from_idstringyesMemory ID of the source node (get it via knowmind_recall).
rel_typestringyesEdge type in UPPER_SNAKE_CASE from the allowed list. Must fit the subject and object classes.
to_idstringyesMemory ID of the target node.

No output schema declared.

No examples provided.

knowmind_link_entities ~1,023

Create a typed relation between two memory nodes (a knowledge-graph edge). THIS IS HOW THE GRAPH IS BUILT: after storing memories, connect them - a corpus without edges answers only what a single note already says. The server checks the edge against the ontology's shapes before writing it: the subject and object must belong to the classes the predicate requires (for entries without a class the check only warns), entity names must carry no role or suffix, and the edge must name its evidence - the id of the entry that states the relation. A rejected edge returns the violated rule. The inverse edge is materialized automatically, and derived edges (RUNS_ON, WORKS_FOR_CLIENT, HOST_SERVES_CLIENT, DEPENDS_ON_SUPPLIER) are computed by the server - never set them by hand. Get both node IDs via knowmind_recall first, and call knowmind_schema for the full catalogue with explanations. Allowed rel_type values: ABOUT (Contract|Document|FileResource → Topic), ASSIGNED_TO (ActionRecord|Task → Agent|Organization|Person|SoftwareAgent), CLIENT_OF (Agent|Organization|Person|SoftwareAgent → Organization), CONTACT_PERSON_FOR (Person → Organization), COVERED_BY (Topic → Contract|Document|FileResource), DELIVERED_AS (Application → Product), DELIVERED_BY (Product → Application), DEPENDS_ON (Application → Application), DEPLOYED_TO (Application → Container), DEVELOPED_BY (Application → Agent|Organization|Person|SoftwareAgent), DEVELOPS (Agent|Organization|Person|SoftwareAgent → Application), ENABLES (Application → Application), FOR_CLIENT (Project → Agent|Organization|Person|SoftwareAgent), HAS_ASSIGNED_TASK (Agent|Organization|Person|SoftwareAgent → ActionRecord|Task), HAS_CHILD (Person → Person), HAS_CLIENT (Organization → Agent|Organization|Person|SoftwareAgent), HAS_CONTACT_PERSON (Organization → Person), HAS_EMPLOYEE (Organization → Person), HAS_OPERATED_APPLICATION (Agent|Organization|Person|SoftwareAgent → Application), HAS_PARENT (Person → Person), HAS_PREDECESSOR (ActionRecord|Proje…

NameTypeReqDescription
confidencenumber–Edge confidence in [0..1]; 1.0 for a fact stated verbatim, 0.7 for a clear paraphrase. Below that, do not create the edge.
evidencestringyesMemory ID of the entry that states this relation (often from_id or a note found via knowmind_recall). Required: an edge without evidence is rejected.
from_idstringyesMemory ID of the source node (get it via knowmind_recall).
rel_typestringyesEdge type in UPPER_SNAKE_CASE from the allowed list. Must fit the subject and object classes.
to_idstringyesMemory ID of the target node.

No output schema declared.

No examples provided.

knowmind_list_inferred ~189

List relations that wait for a human decision, each with its review state (open, confirmed, rejected) and its reason: inferred_from_text (knowmind inferred it from a text) or starts_from_document (it starts from a document although its kind needs a person, organisation or similar). Per relation also the two connected entries, where it came from (source), the entry that supports it (evidence), and the counts per state. Open relations do not feed the derivation rules until someone confirms them. Use to review what the graph learned on its own; record a decision with knowmind_review_inferred. Read scope suffices.

NameTypeReqDescription
limitinteger–Number of relations to return (1-200, default 50).
offsetinteger–Relations to skip, for paging.
statusstring–Only relations in this state. Omit for all.

No output schema declared.

No examples provided.

knowmind_list_recent ~111

List the most recently created documents/memories in the tenant corpus, newest first (by created_at). Same corpus that recall searches. Use to review what was just stored or confirm a write landed; use knowmind_recall when you already know what you are looking for. Graph-only entities without a timestamp do not appear, so this count intentionally differs from stats.memories. Read scope suffices.

NameTypeReqDescription
kinteger–Number of newest entries to return (1-50, default 10).

No output schema declared.

No examples provided.

knowmind_list_relations ~93

List all relations of one memory (incoming and outgoing), each with its edge type and the connected node. Use to inspect how an entity is connected before adding or removing edges with knowmind_link/knowmind_unlink; find the memory_id first via knowmind_recall. Read scope suffices.

NameTypeReqDescription
memory_idstringyesMemory ID whose relations to list (get it via knowmind_recall).

No output schema declared.

No examples provided.

knowmind_recall ~299

DEPRECATED, removed on 2027-03-31: use knowmind_recall_memories. This name keeps answering unchanged until then. Retrieve relevant knowledge before answering anything that benefits from prior context - decisions, preferences, project state, people, deadlines, past conversations. Hybrid recall (BM25 + pgvector + knowledge graph) over the tenant corpus; returns the top-k memory chunks, each with a relevance score and source reference. Suitable whenever earlier context would improve the answer; use knowmind_recall_at_time when you need what was valid at a past point in time. Passages from pages in Open Knowledge Format carry metadata.review_flags: stale once stale_after is reached, unverified when no verification is recorded, superseded when the page's status is deprecated or superseded or its valid_to is reached, drifted when code cited by the page's claims changed or was removed since the page was written; an empty list means none applies. When kein_belastbarer_treffer is true, the corpus most likely holds no answer; unless the hits clearly answer the question, say so. Read scope suffices.

NameTypeReqDescription
hopsinteger–Accepted for compatibility (0-3, default 2); currently has no effect on recall.
kinteger–Number of chunks to return (1-25, default 5).
querystringyesNatural-language question; full sentences retrieve better than keywords.

No output schema declared.

No examples provided.

knowmind_recall_at_time ~232

Time-travel recall: return only memories that were valid at a given instant (valid_from <= as_of <= valid_to, or still open). Answers 'what did the agent know on March 14?'. Use instead of knowmind_recall when the point in time matters; otherwise use knowmind_recall for the current truth. Passages from pages in Open Knowledge Format carry metadata.review_flags (stale, unverified, superseded, drifted); stale and superseded are judged against as_of. When kein_belastbarer_treffer is true, the corpus as of as_of most likely holds no answer; it is judged on the hits visible at as_of. Unless they clearly answer the question, say so. Read scope suffices.

NameTypeReqDescription
as_ofstring–ISO-8601 timestamp to evaluate validity at; defaults to now. Example: '2026-03-14T00:00:00Z'.
kinteger–Number of chunks to return (1-25, default 5).
querystringyesNatural-language question.

No output schema declared.

No examples provided.

knowmind_recall_memories ~272

Retrieve relevant knowledge before answering anything that benefits from prior context - decisions, preferences, project state, people, deadlines, past conversations. Hybrid recall (BM25 + pgvector + knowledge graph) over the tenant corpus; returns the top-k memory chunks, each with a relevance score and source reference. Suitable whenever earlier context would improve the answer; use knowmind_recall_at_time when you need what was valid at a past point in time. Passages from pages in Open Knowledge Format carry metadata.review_flags: stale once stale_after is reached, unverified when no verification is recorded, superseded when the page's status is deprecated or superseded or its valid_to is reached, drifted when code cited by the page's claims changed or was removed since the page was written; an empty list means none applies. When kein_belastbarer_treffer is true, the corpus most likely holds no answer; unless the hits clearly answer the question, say so. Read scope suffices.

NameTypeReqDescription
hopsinteger–Accepted for compatibility (0-3, default 2); currently has no effect on recall.
kinteger–Number of chunks to return (1-25, default 5).
querystringyesNatural-language question; full sentences retrieve better than keywords.

No output schema declared.

No examples provided.

knowmind_review_inferred ~181

Record a human decision on one inferred relation from knowmind_list_inferred. confirm: the relation counts as checked and feeds the derivation rules from now on. reject: the relation, its reverse relation and every relation derived from it get valid_to=now; nothing is deleted. undo: takes a rejection back and restores the reverse and derived relations. Pass the edge_id from the list and, if there is one, the id of the entry that supports the decision as evidence. Returns the state before and after and the number of reverse and derived relations affected. Requires write scope.

NameTypeReqDescription
decisionstringyesconfirm, reject, or undo a rejection.
edge_idstringyesedge_id of the relation, as returned by knowmind_list_inferred.
evidencestring–Id of the entry that supports the decision. Optional.

No output schema declared.

No examples provided.

knowmind_schema ~95

DEPRECATED, removed on 2027-03-31: use knowmind_get_schema. This name keeps answering unchanged until then. Return the relation catalogue of this tenant's knowledge graph: every allowed edge type with its subject and object classes and an explanation of when to use it. Call this before building edges with knowmind_link, so you pick the right predicate instead of the nearest-sounding one. Read scope suffices.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

knowmind_stats ~85

DEPRECATED, removed on 2027-03-31: use knowmind_get_stats. This name keeps answering unchanged until then. Return current counts for the tenant corpus: memories, graph edges and vector chunks. Use to gauge how much has been stored; for the actual entries use knowmind_list_recent or knowmind_recall. Read scope suffices; takes no parameters.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

knowmind_store_memory ~1,274

Store durable insights the moment they arise - decisions, preferences, facts, results, appointments. Persists one memory entry in the tenant corpus (Postgres + vector index + graph node), afterwards findable via knowmind_recall and knowmind_list_recent. Always creates a new entry; an earlier entry with the same title stays valid, because titles do not identify entries here (to supersede, use knowmind_update_fact, or knowmind_upload_document, which replaces by title); sha-identical content is detected as idempotent (unchanged). Returns the new memory id. Use for a single short fact; for long or multi-fact text use knowmind_upload_document. GIVE THE EDGES ALONG: whatever the text says about people, organisations, projects, hosts or technologies belongs into `relations` in THIS call - name the counterpart, the server creates its node and the edge, no second call needed. A memory without edges is a note; with edges it becomes a graph that answers questions nobody wrote down. Use knowmind_link separately only to connect two entries that already exist. ENTRIES ARE NEVER HARD-DELETED, they are superseded: correct a fact with knowmind_update_fact, remove an edge with knowmind_unlink_entities. Both keep the history auditable, which is the point of this store - what was true when, and when that changed. Requires write scope.

NameTypeReqDescription
contentstringyesThe memory text. Keep it to one atomic fact per entry so it stays retrievable and updatable.
domainstring–Knowledge domain this entry belongs to, by its short key (e.g. 'sales', 'engineering'). Unknown keys are ignored and the entry stays unassigned - it is never guessed into a domain.
memory_typestring–Kind of memory: semantic (durable fact), episodic (event), procedural (how-to), reference (pointer to a resource). Default semantic.
relationsarray–Edges from this entry to the things it talks about - set them HERE, in the same call. Name the counterpart in plain words; the server finds or creates its node and draws the edge, so you need neither…
sourcestring–Where this came from - URL, file path, or a short note. Free text, stored for provenance.
tagsarray–Free-text keywords for later filtering (lowercase, no spaces recommended).
titlestring–Short human-readable title (a few words). Not a uniqueness key - duplicate titles create separate entries.

No output schema declared.

No examples provided.

knowmind_unlink ~137

DEPRECATED, removed on 2027-03-31: use knowmind_unlink_entities. This name keeps answering unchanged until then. End a relation between two memories; inverse and inferred edges end with it. It stays in history, where knowmind_recall_at_time finds it. Repeating it does nothing. Fixes a wrong knowmind_link. Requires write scope.

NameTypeReqDescription
from_idstringyesMemory ID of the source node.
rel_typestringyesEdge type to remove (UPPER_SNAKE_CASE, exactly as created).
to_idstringyesMemory ID of the target node.

No output schema declared.

No examples provided.

knowmind_unlink_entities ~110

End a relation between two memories; inverse and inferred edges end with it. It stays in history, where knowmind_recall_at_time finds it. Repeating it does nothing. Fixes a wrong knowmind_link. Requires write scope.

NameTypeReqDescription
from_idstringyesMemory ID of the source node.
rel_typestringyesEdge type to remove (UPPER_SNAKE_CASE, exactly as created).
to_idstringyesMemory ID of the target node.

No output schema declared.

No examples provided.

knowmind_update_fact ~193

Supersede a known fact without losing history: the existing memory gets valid_to=now, a new memory with valid_from=now is created and linked via SUPERSEDES. Use this instead of knowmind_store_memory when a fact CHANGES (address moved, contract renewed) - old statements are marked outdated, not deleted, so the timeline stays auditable and queryable via knowmind_recall_at_time. Returns the new memory id. Requires write scope.

NameTypeReqDescription
new_contentstringyesContent of the new memory (the updated fact).
new_titlestringyesTitle of the new, now-valid memory.
target_idstringyesID of the memory to supersede; get it via knowmind_recall - never invent it.
update_reasonstring–Why it changed (e.g. 'address changed', 'contract renewed'); stored on the SUPERSEDES edge.

No output schema declared.

No examples provided.

knowmind_upload_document ~1,057

Ingest a longer text as one document into the tenant corpus: chunk splitting, embeddings, vector chunks and graph nodes. Upsert-by-title (server default): if a valid document with the same title exists in the same domain, the new version supersedes it; the old version stays retrievable via knowmind_recall_at_time, and the superseded ids come back in replaced_document_ids. If the same text already exists in another valid document of the same domain, no new document is created and the response carries deduplicated. Use for long-form or multi-fact content (a report, a page, a doc); for a single short fact use knowmind_store_memory. Returns the document id and the number of chunks written. AFTER INGESTING: extract the facts the text states about people, organisations, projects, products, technologies and hosts, and create the corresponding edges via knowmind_link. Requires write scope.

NameTypeReqDescription
contentstringyesFull document text (Markdown or plain); chunked and embedded server-side.
relationsarray–Edges from this document to the things it talks about - set them HERE, in the same call. Name the counterpart in plain words; the server finds or creates its node and draws the edge. Allowed predicat…
replaceboolean–Default on knowmind.de: true, supersede the valid document with the same title in the same domain. false: store as a new document next to it.
sourcestring–Origin, a URL or file path. Free text appended to the content for provenance; it does not decide which document is superseded.
titlestring–Document title. Unless replace is false, it identifies the document: a valid document with the same title in the same domain is superseded and stays retrievable via knowmind_recall_at_time.

No output schema declared.

No examples provided.

knowmind_upsert_entity ~258

Create the node for a thing the corpus talks about - a person, an organisation, an application, a host, a technology - or return the existing one. THE GRAPH NEEDS THESE: memories are texts, and two texts mentioning the same server stay unconnected until that server exists as its own node. Create an entity when a name recurs across memories or when you are about to link something that has no node yet, then connect it with knowmind_link. Same name, same class and same tenant always return the same id, so calling twice creates no duplicate. Give the entity its plain proper name ("PostgreSQL", not "the database we use"), and pick the class from the catalogue in knowmind_schema. Requires write scope.

NameTypeReqDescription
aliasesarray–Other spellings the same thing appears under. Optional.
descriptionstring–One sentence saying what this is. Optional, helps later retrieval.
entity_classstringyesClass from the catalogue (knowmind_schema -> entityClasses), e.g. Person, Organization, Application, Host, Technology.
namestringyesProper name of the thing, as it would be written in a document. No role, no status, no description.

No output schema declared.

No examples provided.

Install

How do I install the knowmind MCP server?

knowmind runs locally as an npm package, launched with npx -y knowmind mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · knowmind

# add to Claude Code
claude mcp add schubeler-consulting-knowmind -- npx -y knowmind mcp
Common questions

What is the knowmind MCP server?

knowmind is an MCP server listed in the public MCP registry as io.github.Schubeler-Consulting/knowmind. AI agent memory & knowledge graph, hosted in Germany (GDPR). Recall, relations, store via MCP. This page covers its npm package (knowmind).

Is the knowmind MCP server safe to use?

knowmind scores 86 out of 100 on VerifyMCP. We recorded 3 known advisories against it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the knowmind MCP server expose?

knowmind exposes 23 tools: knowmind_recall_memories, knowmind_get_health, knowmind_get_stats, knowmind_list_recent, knowmind_store_memory, and 18 more. Their descriptions and schemas cost roughly 7,420 tokens of context every time the server is loaded.

Is the knowmind MCP server still maintained?

knowmind is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the knowmind MCP server under?

knowmind declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

What did VerifyMCP test on the knowmind MCP server?

VerifyMCP ran 16 checks on knowmind, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.