Skip to main content
Glama
modelcontextprotocol

Knowledge Graph Memory Server

知识图谱记忆服务器

一种使用本地知识图谱实现持久化记忆的基础方案。它让 Claude 能够在不同对话间记住关于用户的信息。

核心概念

实体 (Entities)

实体是知识图谱中的主要节点。每个实体包含:

  • 唯一名称(标识符)

  • 实体类型(例如:“人”、“组织”、“事件”)

  • 观察列表

示例:

{
  "name": "John_Smith",
  "entityType": "person",
  "observations": ["Speaks fluent Spanish"]
}

关系 (Relations)

关系定义了实体之间的有向连接。它们始终以主动语态存储,并描述实体之间如何交互或关联。

示例:

{
  "from": "John_Smith",
  "to": "Anthropic",
  "relationType": "works_at"
}

观察 (Observations)

观察是关于实体的离散信息片段。它们:

  • 以字符串形式存储

  • 附加到特定实体

  • 可以独立添加或删除

  • 应该是原子的(每个观察包含一个事实)

示例:

{
  "entityName": "John_Smith",
  "observations": [
    "Speaks fluent Spanish",
    "Graduated in 2019",
    "Prefers morning meetings"
  ]
}

Related MCP server: Loc Knowledge Graph Memory Server

API

工具

  • create_entities

    • 在知识图谱中创建多个新实体

    • 输入:entities(对象数组)

      • 每个对象包含:

        • name(字符串):实体标识符

        • entityType(字符串):类型分类

        • observations(字符串数组):关联的观察

    • 忽略名称已存在的实体

  • create_relations

    • 在实体之间创建多个新关系

    • 输入:relations(对象数组)

      • 每个对象包含:

        • from(字符串):源实体名称

        • to(字符串):目标实体名称

        • relationType(字符串):主动语态的关系类型

    • 跳过重复关系

  • add_observations

    • 向现有实体添加新观察

    • 输入:observations(对象数组)

      • 每个对象包含:

        • entityName(字符串):目标实体

        • contents(字符串数组):要添加的新观察

    • 返回每个实体的已添加观察

    • 如果实体不存在则失败

  • delete_entities

    • 删除实体及其关系

    • 输入:entityNames(字符串数组)

    • 级联删除关联关系

    • 如果实体不存在则静默操作

  • delete_observations

    • 从实体中删除特定观察

    • 输入:deletions(对象数组)

      • 每个对象包含:

        • entityName(字符串):目标实体

        • observations(字符串数组):要删除的观察

    • 如果观察不存在则静默操作

  • delete_relations

    • 从图中删除特定关系

    • 输入:relations(对象数组)

      • 每个对象包含:

        • from(字符串):源实体名称

        • to(字符串):目标实体名称

        • relationType(字符串):关系类型

    • 如果关系不存在则静默操作

  • read_graph

    • 读取整个知识图谱

    • 无需输入

    • 返回包含所有实体和关系的完整图结构

  • search_nodes

    • 根据查询搜索节点

    • 输入:query(字符串)

    • 搜索范围:

      • 实体名称

      • 实体类型

      • 观察内容

    • 返回匹配的实体及其关系

  • open_nodes

    • 按名称检索特定节点

    • 输入:names(字符串数组)

    • 返回:

      • 请求的实体

      • 请求实体之间的关系

    • 静默跳过不存在的节点

在 Claude Desktop 中使用

设置

将其添加到你的 claude_desktop_config.json 中:

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"
      ]
    }
  }
}

在 Windows 上,使用 cmd /c 来启动 npx

{
  "mcpServers": {
    "memory": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    }
  }
}

使用自定义设置的 NPX

可以通过以下环境变量配置服务器:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ],
      "env": {
        "MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl"
      }
    }
  }
}

在 Windows 上,使用:

{
  "mcpServers": {
    "memory": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@modelcontextprotocol/server-memory"
      ],
      "env": {
        "MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl"
      }
    }
  }
}
  • MEMORY_FILE_PATH:记忆存储 JSONL 文件的路径(默认:服务器目录下的 memory.jsonl

VS Code 安装说明

如需快速安装,请使用下方的一键安装按钮:

在 VS Code 中使用 NPX 安装 在 VS Code Insiders 中使用 NPX 安装

在 VS Code 中使用 Docker 安装 在 VS Code Insiders 中使用 Docker 安装

如需手动安装,你可以通过以下方法之一配置 MCP 服务器:

方法 1:用户配置(推荐) 将配置添加到你的用户级 MCP 配置文件中。打开命令面板(Ctrl + Shift + P)并运行 MCP: Open User Configuration。这将打开你的用户 mcp.json 文件,你可以在其中添加服务器配置。

方法 2:工作区配置 或者,你可以将配置添加到工作区中的 .vscode/mcp.json 文件中。这将允许你与他人共享该配置。

有关 VS Code 中 MCP 配置的更多详细信息,请参阅官方 VS Code MCP 文档

NPX

{
  "servers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    }
  }
}

在 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"
      ]
    }
  }
}

系统提示词

利用记忆的提示词取决于具体用例。更改提示词将有助于模型确定创建记忆的频率和类型。

以下是用于聊天个性化的示例提示词。你可以在 Claude.ai 项目 的“自定义指令”字段中使用此提示词。

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 observations

构建

Docker:

docker build -t mcp/memory -f src/memory/Dockerfile . 

注意:之前的 mcp/memory 卷可能包含一个 index.js 文件,该文件可能会被新容器覆盖。如果你正在使用 docker 卷进行存储,请在启动新容器之前删除旧 docker 卷中的 index.js 文件。

许可证

此 MCP 服务器采用 MIT 许可证授权。这意味着你可以自由使用、修改和分发该软件,但需遵守 MIT 许可证的条款和条件。有关更多详细信息,请参阅项目仓库中的 LICENSE 文件。

Available Tools

9 tools
add_observationsC

Add new observations to existing entities in the knowledge graph

ParametersJSON Schema
NameRequiredDescriptionDefault
observationsYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
relationsYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
entityNamesYesAn array of entity names to delete

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
deletionsYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
relationsYesAn array of relations to delete

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesAn array of entity names to retrieve

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query to match against entity names, types, and observation content

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 9 tool updatesv1.0.0
    • First observedadd_observations
    • First observedcreate_entities
    • First observedcreate_relations
    • First observeddelete_entities
    • First observeddelete_observations
    • First observeddelete_relations
    • First observedopen_nodes
    • First observedread_graph
    • First observedsearch_nodes

TDQS

B3.3/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityActive
ResponsivenessSlow

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

Related MCP Servers

Latest Blog Posts

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