Skip to main content
Glama
itseasy21

Knowledge Graph Memory Server

search_nodes

Locate nodes in a knowledge graph by matching queries against entity names, types, and content. Enables AI systems to retrieve stored information efficiently for enhanced memory functionality.

Instructions

Search for nodes in the knowledge graph based on a query

Input Schema

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

Implementation Reference

  • The core implementation of the search_nodes tool logic in the KnowledgeGraphManager class. It loads the graph, filters entities matching the query in name, type, or observations, and includes relations between matching entities.
    async searchNodes(query: string): Promise<KnowledgeGraph> { const graph = await this.loadGraph(); // Filter entities const filteredEntities = graph.entities.filter(e => e.name.toLowerCase().includes(query.toLowerCase()) || e.entityType.toLowerCase().includes(query.toLowerCase()) || e.observations.some(o => o.toLowerCase().includes(query.toLowerCase())) ); // Create a Set of filtered entity names for quick lookup const filteredEntityNames = new Set(filteredEntities.map(e => e.name)); // Filter relations to only include those between filtered entities const filteredRelations = graph.relations.filter(r => filteredEntityNames.has(r.from) && filteredEntityNames.has(r.to) ); const filteredGraph: KnowledgeGraph = { entities: filteredEntities, relations: filteredRelations, }; return filteredGraph; }
  • index.ts:428-438 (registration)
    Registration of the search_nodes tool in the listTools response, including name, description, and input schema.
    { name: "search_nodes", description: "Search for nodes in the knowledge graph based on a query", inputSchema: { type: "object", properties: { query: { type: "string", description: "The search query to match against entity names, types, and observation content" }, }, required: ["query"], }, },
  • Input schema definition for the search_nodes tool, specifying a required 'query' string parameter.
    inputSchema: { type: "object", properties: { query: { type: "string", description: "The search query to match against entity names, types, and observation content" }, }, required: ["query"], },
  • MCP tool dispatch handler for search_nodes, which calls the KnowledgeGraphManager.searchNodes method and formats the response.
    case "search_nodes": return { content: [{ type: "text", text: JSON.stringify(await knowledgeGraphManager.searchNodes(args.query as string), null, 2) }] };
  • Instantiation of the KnowledgeGraphManager used by the search_nodes tool.
    const knowledgeGraphManager = new KnowledgeGraphManager();

Other Tools

Related Tools

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/itseasy21/mcp-knowledge-graph'

If you have feedback or need assistance with the MCP directory API, please join our Discord server