MCPcopy Create free account
hub / github.com/modelcontextprotocol/go-sdk / openNodes

Method openNodes

examples/server/memory/kb.go:394–432  ·  view source on GitHub ↗

openNodes returns entities with specified names and their interconnecting relations.

(names []string)

Source from the content-addressed store, hash-verified

392
393// openNodes returns entities with specified names and their interconnecting relations.
394func (k knowledgeBase) openNodes(names []string) (KnowledgeGraph, error) {
395 graph, err := k.loadGraph()
396 if err != nil {
397 return KnowledgeGraph{}, err
398 }
399
400 // Create map for quick name lookup
401 nameSet := make(map[string]bool)
402 for _, name := range names {
403 nameSet[name] = true
404 }
405
406 // Filter entities
407 var filteredEntities []Entity
408 for _, entity := range graph.Entities {
409 if nameSet[entity.Name] {
410 filteredEntities = append(filteredEntities, entity)
411 }
412 }
413
414 // Create map for quick entity lookup
415 filteredEntityNames := make(map[string]bool)
416 for _, entity := range filteredEntities {
417 filteredEntityNames[entity.Name] = true
418 }
419
420 // Filter relations
421 var filteredRelations []Relation
422 for _, relation := range graph.Relations {
423 if filteredEntityNames[relation.From] && filteredEntityNames[relation.To] {
424 filteredRelations = append(filteredRelations, relation)
425 }
426 }
427
428 return KnowledgeGraph{
429 Entities: filteredEntities,
430 Relations: filteredRelations,
431 }, nil
432}
433
434func (k knowledgeBase) CreateEntities(ctx context.Context, req *mcp.CallToolRequest, args CreateEntitiesArgs) (*mcp.CallToolResult, CreateEntitiesResult, error) {
435 var res mcp.CallToolResult

Callers 2

OpenNodesMethod · 0.95

Calls 1

loadGraphMethod · 0.95

Tested by 1