Knowledge Graph Memory Server
Knowledge Graph Memory Server
Eine grundlegende Implementierung von persistentem Speicher unter Verwendung eines lokalen Wissensgraphen. Dies ermöglicht es Claude, sich Informationen über den Benutzer über Chats hinweg zu merken.
Kernkonzepte
Entitäten
Entitäten sind die primären Knoten im Wissensgraphen. Jede Entität hat:
Einen eindeutigen Namen (Bezeichner)
Einen Entitätstyp (z. B. "Person", "Organisation", "Ereignis")
Eine Liste von Beobachtungen
Beispiel:
{
"name": "John_Smith",
"entityType": "person",
"observations": ["Speaks fluent Spanish"]
}Beziehungen
Beziehungen definieren gerichtete Verbindungen zwischen Entitäten. Sie werden immer im Aktiv gespeichert und beschreiben, wie Entitäten interagieren oder miteinander in Beziehung stehen.
Beispiel:
{
"from": "John_Smith",
"to": "Anthropic",
"relationType": "works_at"
}Beobachtungen
Beobachtungen sind diskrete Informationseinheiten über eine Entität. Sie sind:
Als Strings gespeichert
An spezifische Entitäten angehängt
Können unabhängig hinzugefügt oder entfernt werden
Sollten atomar sein (eine Tatsache pro Beobachtung)
Beispiel:
{
"entityName": "John_Smith",
"observations": [
"Speaks fluent Spanish",
"Graduated in 2019",
"Prefers morning meetings"
]
}Related MCP server: Loc Knowledge Graph Memory Server
API
Tools
create_entities
Erstellt mehrere neue Entitäten im Wissensgraphen
Eingabe:
entities(Array von Objekten)Jedes Objekt enthält:
name(String): EntitätsbezeichnerentityType(String): Typklassifizierungobservations(String[]): Zugehörige Beobachtungen
Ignoriert Entitäten mit bereits existierenden Namen
create_relations
Erstellt mehrere neue Beziehungen zwischen Entitäten
Eingabe:
relations(Array von Objekten)Jedes Objekt enthält:
from(String): Name der Quellentitätto(String): Name der ZielentitätrelationType(String): Beziehungstyp im Aktiv
Überspringt doppelte Beziehungen
add_observations
Fügt bestehenden Entitäten neue Beobachtungen hinzu
Eingabe:
observations(Array von Objekten)Jedes Objekt enthält:
entityName(String): Zielentitätcontents(String[]): Neue hinzuzufügende Beobachtungen
Gibt hinzugefügte Beobachtungen pro Entität zurück
Schlägt fehl, wenn die Entität nicht existiert
delete_entities
Entfernt Entitäten und deren Beziehungen
Eingabe:
entityNames(String[])Kaskadierendes Löschen zugehöriger Beziehungen
Stille Operation, wenn die Entität nicht existiert
delete_observations
Entfernt spezifische Beobachtungen von Entitäten
Eingabe:
deletions(Array von Objekten)Jedes Objekt enthält:
entityName(String): Zielentitätobservations(String[]): Zu entfernende Beobachtungen
Stille Operation, wenn die Beobachtung nicht existiert
delete_relations
Entfernt spezifische Beziehungen aus dem Graphen
Eingabe:
relations(Array von Objekten)Jedes Objekt enthält:
from(String): Name der Quellentitätto(String): Name der ZielentitätrelationType(String): Beziehungstyp
Stille Operation, wenn die Beziehung nicht existiert
read_graph
Liest den gesamten Wissensgraphen
Keine Eingabe erforderlich
Gibt die vollständige Graphstruktur mit allen Entitäten und Beziehungen zurück
search_nodes
Sucht nach Knoten basierend auf einer Abfrage
Eingabe:
query(String)Durchsucht:
Entitätsnamen
Entitätstypen
Beobachtungsinhalte
Gibt übereinstimmende Entitäten und deren Beziehungen zurück
open_nodes
Ruft spezifische Knoten nach Namen ab
Eingabe:
names(String[])Gibt zurück:
Angeforderte Entitäten
Beziehungen zwischen den angeforderten Entitäten
Überspringt stillschweigend nicht existierende Knoten
Verwendung mit Claude Desktop
Einrichtung
Fügen Sie dies zu Ihrer claude_desktop_config.json hinzu:
Docker
{
"mcpServers": {
"memory": {
"command": "docker",
"args": ["run", "-i", "-v", "claude-memory:/app/dist", "--rm", "mcp/memory"]
}
}
}NPX
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}Verwenden Sie unter Windows cmd /c, um npx zu starten:
{
"mcpServers": {
"memory": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}NPX mit benutzerdefinierter Einstellung
Der Server kann über die folgenden Umgebungsvariablen konfiguriert werden:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
],
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl"
}
}
}
}Verwenden Sie unter Windows:
{
"mcpServers": {
"memory": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@modelcontextprotocol/server-memory"
],
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl"
}
}
}
}MEMORY_FILE_PATH: Pfad zur JSONL-Datei des Speichers (Standard:memory.jsonlim Server-Verzeichnis)
Installationsanweisungen für VS Code
Für eine schnelle Installation verwenden Sie eine der untenstehenden Ein-Klick-Installationsschaltflächen:
Für eine manuelle Installation können Sie den MCP-Server mit einer dieser Methoden konfigurieren:
Methode 1: Benutzerkonfiguration (Empfohlen)
Fügen Sie die Konfiguration zu Ihrer MCP-Konfigurationsdatei auf Benutzerebene hinzu. Öffnen Sie die Befehlspalette (Strg + Umschalt + P) und führen Sie MCP: Open User Configuration aus. Dies öffnet Ihre mcp.json-Datei, in der Sie die Serverkonfiguration hinzufügen können.
Methode 2: Arbeitsbereichskonfiguration
Alternativ können Sie die Konfiguration zu einer Datei namens .vscode/mcp.json in Ihrem Arbeitsbereich hinzufügen. Dies ermöglicht es Ihnen, die Konfiguration mit anderen zu teilen.
Weitere Details zur MCP-Konfiguration in VS Code finden Sie in der offiziellen VS Code MCP-Dokumentation.
NPX
{
"servers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}Verwenden Sie unter Windows:
{
"servers": {
"memory": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}Docker
{
"servers": {
"memory": {
"command": "docker",
"args": [
"run",
"-i",
"-v",
"claude-memory:/app/dist",
"--rm",
"mcp/memory"
]
}
}
}System-Prompt
Der Prompt zur Nutzung des Speichers hängt vom Anwendungsfall ab. Das Ändern des Prompts hilft dem Modell, die Häufigkeit und die Art der erstellten Erinnerungen zu bestimmen.
Hier ist ein Beispiel-Prompt für die Chat-Personalisierung. Sie könnten diesen Prompt im Feld "Benutzerdefinierte Anweisungen" eines Claude.ai-Projekts verwenden.
Follow these steps for each interaction:
1. User Identification:
- You should assume that you are interacting with default_user
- If you have not identified default_user, proactively try to do so.
2. Memory Retrieval:
- Always begin your chat by saying only "Remembering..." and retrieve all relevant information from your knowledge graph
- Always refer to your knowledge graph as your "memory"
3. Memory
- While conversing with the user, be attentive to any new information that falls into these categories:
a) Basic Identity (age, gender, location, job title, education level, etc.)
b) Behaviors (interests, habits, etc.)
c) Preferences (communication style, preferred language, etc.)
d) Goals (goals, targets, aspirations, etc.)
e) Relationships (personal and professional relationships up to 3 degrees of separation)
4. Memory Update:
- If any new information was gathered during the interaction, update your memory as follows:
a) Create entities for recurring organizations, people, and significant events
b) Connect them to the current entities using relations
c) Store facts about them as observationsErstellen
Docker:
docker build -t mcp/memory -f src/memory/Dockerfile . Zur Beachtung: Ein vorheriges mcp/memory-Volume enthält eine index.js-Datei, die vom neuen Container überschrieben werden könnte. Wenn Sie ein Docker-Volume für die Speicherung verwenden, löschen Sie die index.js-Datei des alten Docker-Volumes, bevor Sie den neuen Container starten.
Lizenz
Dieser MCP-Server ist unter der MIT-Lizenz lizenziert. Dies bedeutet, dass Sie die Software frei verwenden, ändern und verbreiten dürfen, vorbehaltlich der Bedingungen der MIT-Lizenz. Weitere Details finden Sie in der LICENSE-Datei im Projekt-Repository.
Available Tools
9 toolsadd_observationsC
Add new observations to existing entities in the knowledge graph
| Name | Required | Description | Default |
|---|---|---|---|
| observations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Add new observations' implies a write/mutation operation, it doesn't disclose important behavioral traits like permission requirements, whether this operation is idempotent, what happens if entities don't exist, or any rate limits. The description is minimal and lacks crucial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that gets straight to the point with zero wasted words. It's front-loaded with the core functionality and efficiently communicates the basic purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, 0% schema description coverage, no output schema, and complex nested parameters, the description is inadequate. It doesn't explain what constitutes an 'observation', how they're structured, what the operation returns, or any error conditions. The minimal description leaves too many unanswered questions for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 1 parameter (which contains nested objects), the description provides no information about parameters beyond what's implied by the tool name. It doesn't explain what 'observations' should contain, the format expected, or how the 'entityName' parameter relates to existing entities. The description fails to compensate for the complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add new observations') and target ('to existing entities in the knowledge graph'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'create_entities' or 'delete_observations', which would require more specific scope definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_entities' or 'delete_observations'. It mentions 'existing entities' which implies a prerequisite, but doesn't specify when this operation is appropriate versus creating new entities or modifying other aspects of the graph.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_entitiesC
Create multiple new entities in the knowledge graph
| Name | Required | Description | Default |
|---|---|---|---|
| entities | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool creates entities, implying a write/mutation operation, but doesn't cover critical aspects like permissions needed, whether creation is idempotent, error handling, or what happens on success/failure. This leaves significant gaps for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for the tool's complexity, making it easy to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a write operation with nested parameters), lack of annotations, 0% schema description coverage, and no output schema, the description is incomplete. It doesn't address behavioral traits, parameter details, or return values, leaving the agent with insufficient context for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema provides no parameter descriptions. The description mentions 'multiple new entities' but doesn't explain the 'entities' parameter's structure, required fields (name, entityType, observations), or semantics. It adds minimal value beyond the schema's bare structure, failing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create') and resource ('multiple new entities in the knowledge graph'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'create_relations' or 'add_observations', which handle related but distinct operations in the same domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when-not-to-use scenarios, or comparisons to siblings like 'add_observations' (which might add to existing entities) or 'create_relations' (which links entities). Usage is implied but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_relationsC
Create multiple new relations between entities in the knowledge graph. Relations should be in active voice
| Name | Required | Description | Default |
|---|---|---|---|
| relations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states this creates relations (implying mutation) but doesn't disclose permissions needed, whether relations are reversible, error handling, or rate limits. The 'active voice' note is trivial and doesn't address core behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and to the point with two sentences, avoiding unnecessary verbosity. However, the second sentence about 'active voice' feels misplaced and doesn't contribute meaningfully to tool understanding, slightly reducing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, 0% schema coverage, and no output schema, the description is inadequate. It lacks details on prerequisites, side effects, response format, and error conditions, leaving significant gaps in understanding how to invoke and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but fails to do so. It mentions 'relations' but doesn't explain the structure, required fields, or constraints beyond what's in the schema. The 'active voice' requirement adds no parameter clarity, leaving semantics largely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create multiple new relations') and resource ('between entities in the knowledge graph'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'create_entities' or 'delete_relations', which would require more precise boundary definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'create_entities' or 'delete_relations'. The mention of 'active voice' is a stylistic requirement rather than usage context, leaving the agent with no practical decision-making criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_entitiesC
Delete multiple entities and their associated relations from the knowledge graph
| Name | Required | Description | Default |
|---|---|---|---|
| entityNames | Yes | An array of entity names to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a deletion operation, implying it's destructive, but doesn't specify whether deletions are permanent, reversible, or require specific permissions. It mentions associated relations are also deleted, which is useful context, but lacks details on error handling, rate limits, or response format, leaving significant gaps for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action and target without any wasted words. Every part of the sentence earns its place by specifying the scope ('multiple entities and their associated relations') and context ('from the knowledge graph'), making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, lack of annotations, and no output schema, the description is incomplete. It doesn't address critical aspects like what happens on success or failure, whether deletions cascade as implied, or any safety warnings. For a deletion tool with no structured safety hints, this leaves the agent under-informed about potential impacts and outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'entityNames' clearly documented as an array of entity names to delete. The description adds no additional parameter information beyond what the schema provides, such as format examples or constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and target ('multiple entities and their associated relations from the knowledge graph'), making the purpose immediately understandable. It distinguishes from siblings like delete_observations and delete_relations by specifying it targets entities and their relations. However, it doesn't explicitly contrast with create_entities or read_graph, which would have made it a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like delete_observations or delete_relations, nor does it mention prerequisites such as needing existing entities to delete. It implies usage by stating the action but lacks explicit context or exclusions, leaving the agent to infer when this is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_observationsC
Delete specific observations from entities in the knowledge graph
| Name | Required | Description | Default |
|---|---|---|---|
| deletions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action 'delete' without behavioral details. It doesn't disclose whether deletions are permanent, require specific permissions, have rate limits, or what happens if observations don't exist. For a destructive operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, no annotations, no output schema, and low schema coverage, the description is inadequate. It lacks critical information about safety, permissions, error handling, and return values, which are essential for an AI agent to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but only vaguely mentions 'specific observations' without explaining parameter structure. It doesn't clarify what 'entityName' refers to or how 'observations' are identified, leaving the schema to do all the work. Baseline 3 is appropriate as it minimally adds context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delete' and the resource 'observations from entities in the knowledge graph', making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'delete_entities' or 'delete_relations', which would require more specific language about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'delete_entities' or 'delete_relations'. It doesn't mention prerequisites, such as whether entities must exist first, or specify use cases like cleaning up erroneous data versus bulk removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_relationsC
Delete multiple relations from the knowledge graph
| Name | Required | Description | Default |
|---|---|---|---|
| relations | Yes | An array of relations to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'delete multiple relations', implying a destructive mutation, but doesn't cover critical aspects like permissions needed, whether deletions are permanent or reversible, error handling for non-existent relations, or rate limits. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words, clearly front-loading the core action and resource. It's appropriately sized for the tool's complexity, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, lack of annotations, and no output schema, the description is incomplete. It doesn't explain what happens upon deletion (e.g., effects on the graph), return values, or error conditions. For a mutation tool with zero structured coverage, more context is needed to guide safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the schema fully documenting the 'relations' parameter as an array of objects with 'from', 'to', and 'relationType'. The description adds no additional parameter semantics beyond what's in the schema, such as format examples or constraints, so it meets the baseline for high coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delete' and the resource 'relations from the knowledge graph', making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'delete_entities' or 'delete_observations', which would require specifying it targets relations specifically rather than other graph components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'delete_entities' or 'create_relations'. It lacks context about prerequisites, such as whether relations must exist or be deletable, and doesn't mention any exclusions or recommended scenarios for bulk deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_nodesC
Open specific nodes in the knowledge graph by their names
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | An array of entity names to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It doesn't disclose whether this is a read-only operation, what 'open' entails (e.g., retrieves metadata, expands relationships), error handling for non-existent names, or any rate limits/permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero waste. Every word contributes to the purpose statement, and it's appropriately front-loaded with the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and multiple siblings, the description is inadequate. It lacks crucial context about what 'open' returns, how it differs from other read operations, and behavioral traits needed for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the 'names' parameter. The description adds no additional meaning beyond implying these are 'entity names', which is redundant with the schema's 'entity names to retrieve'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('open') and resource ('specific nodes in the knowledge graph'), with the qualifier 'by their names' adding specificity. It distinguishes from siblings like 'read_graph' (general reading) and 'search_nodes' (search-based retrieval), but doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'read_graph' or 'search_nodes'. The description implies usage when you know exact node names, but doesn't state when-not to use it or name specific alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_graphB
Read the entire knowledge graph
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states a read operation but doesn't disclose behavioral traits like permissions needed, rate limits, response format, pagination, or whether it's safe/destructive. 'Entire' hints at scope but lacks operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a read operation with implied complexity (graph data), the description is incomplete. It lacks details on return values, error handling, or behavioral context needed for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema coverage, the baseline is 4. The description adds value by specifying 'entire knowledge graph', which clarifies scope beyond the empty schema, but doesn't detail output semantics or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Read the entire knowledge graph' clearly states the action (read) and resource (knowledge graph). It distinguishes from siblings like 'search_nodes' (filtered) and 'open_nodes' (specific), though not explicitly. However, it lacks specificity about what 'entire' means versus alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving all graph data, contrasting with 'search_nodes' for filtered queries. However, it doesn't explicitly state when to use this versus 'open_nodes' or other read-like siblings, nor provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_nodesC
Search for nodes in the knowledge graph based on a query
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query to match against entity names, types, and observation content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it 'searches for nodes' but doesn't disclose behavioral traits like whether this is a read-only operation, what happens with no matches, performance characteristics, or return format. For a search tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple search tool and front-loads the core functionality. Every word earns its place in conveying the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and multiple sibling tools with overlapping functionality, the description is incomplete. It doesn't explain what constitutes a 'node', what search results look like, how results are ranked/limited, or when to choose this over other graph access tools. For a search operation in a knowledge graph context, more contextual information would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single 'query' parameter. The description mentions 'based on a query' but adds no additional meaning beyond what the schema provides about what the query matches against. Baseline 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('search') and resource ('nodes in the knowledge graph') with the purpose being 'based on a query'. It's specific about what the tool does but doesn't explicitly differentiate from sibling tools like 'open_nodes' or 'read_graph' that might also retrieve node information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'open_nodes' and 'read_graph' that likely also access node data, there's no indication of when search is appropriate versus other retrieval methods. No prerequisites, exclusions, or comparative context is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.0- First observed
add_observations - First observed
create_entities - First observed
create_relations - First observed
delete_entities - First observed
delete_observations - First observed
delete_relations - First observed
open_nodes - First observed
read_graph - First observed
search_nodes
TDQS
Most tools have distinct purposes targeting specific operations like adding/deleting observations, entities, or relations, and reading/searching the graph. However, 'open_nodes' and 'search_nodes' could be confused as both involve finding nodes, though 'open_nodes' seems to retrieve specific nodes by name while 'search_nodes' queries based on content.
All tool names follow a consistent verb_noun pattern in snake_case, such as 'add_observations', 'create_entities', and 'delete_relations'. This uniformity makes the tool set predictable and easy to navigate for an agent.
With 9 tools, the server is well-scoped for managing a knowledge graph, covering core operations like CRUD for entities, relations, and observations, as well as reading and searching. This count is appropriate and each tool appears to earn its place without being overwhelming.
The tool set provides comprehensive coverage for basic knowledge graph operations, including creation, deletion, reading, and searching. A minor gap is the lack of update tools for entities, relations, or observations, which might require workarounds like delete-and-recreate, but core workflows are well-supported.
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 Connectors
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Personal wiki and memory layer for AI assistants. Persistent, structured memory across sessions.
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
Related MCP Servers
- AlicenseBqualityFmaintenanceA persistent memory implementation using a local knowledge graph that lets Claude remember information about users across conversations.96MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to remember information about users across conversations by storing and retrieving data as entities, relations, and observations in a persistent local knowledge graph.73,646-
- AlicenseNot gradedqualityDmaintenanceEnables Claude to remember information about users across chats using a persistent local knowledge graph that stores entities, relationships, and observations.73,646-
- AlicenseNot gradedqualityCmaintenanceA persistent memory system using a local knowledge graph that enables Claude to remember information about users across chats, with advanced search, graph traversal, and filtering capabilities for entities, relations, and observations.MIT
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/modelcontextprotocol/knowledge-graph-memory-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server