Skip to main content
Glama

get_memory_relationships

Retrieve related memories for a specific memory ID in the AGI MCP Server, filtering by relationship direction or type to analyze connections within the AI's persistent memory system.

Instructions

Get relationships for a specific memory

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
directionNoDirection of relationships to retrieveboth
memory_idYesUUID of the memory
relationship_typeNoFilter by relationship type (optional)

Implementation Reference

  • Core handler function in MemoryManager class that executes the database query to fetch memory relationships based on memory ID, direction (incoming/outgoing/both), and optional relationship type filter.
    async getMemoryRelationships(memoryId, direction = 'both', relationshipType = null) { try { let query = this.db .select({ id: schema.memoryRelationships.id, fromMemoryId: schema.memoryRelationships.fromMemoryId, toMemoryId: schema.memoryRelationships.toMemoryId, relationshipType: schema.memoryRelationships.relationshipType, strength: schema.memoryRelationships.strength, properties: schema.memoryRelationships.properties, createdAt: schema.memoryRelationships.createdAt, direction: sql`CASE WHEN ${schema.memoryRelationships.fromMemoryId} = ${memoryId} THEN 'outgoing' ELSE 'incoming' END`.as('direction'), relatedMemoryId: sql`CASE WHEN ${schema.memoryRelationships.fromMemoryId} = ${memoryId} THEN ${schema.memoryRelationships.toMemoryId} ELSE ${schema.memoryRelationships.fromMemoryId} END`.as('related_memory_id') }) .from(schema.memoryRelationships); if (direction === 'outgoing') { query = query.where(eq(schema.memoryRelationships.fromMemoryId, memoryId)); } else if (direction === 'incoming') { query = query.where(eq(schema.memoryRelationships.toMemoryId, memoryId)); } else { query = query.where( or( eq(schema.memoryRelationships.fromMemoryId, memoryId), eq(schema.memoryRelationships.toMemoryId, memoryId) ) ); } if (relationshipType) { query = query.where(eq(schema.memoryRelationships.relationshipType, relationshipType)); } const results = await query .orderBy(desc(schema.memoryRelationships.strength), desc(schema.memoryRelationships.createdAt)); return results; } catch (error) { console.warn('Memory relationships query failed:', error.message); return []; } }
  • mcp.js:610-616 (registration)
    MCP server switch-case registration that handles incoming tool calls by invoking MemoryManager.getMemoryRelationships and formatting the response.
    case "get_memory_relationships": const relationships = await memoryManager.getMemoryRelationships( args.memory_id, args.direction || 'both', args.relationship_type || null ); return { content: [{ type: "text", text: JSON.stringify(relationships, null, 2) }] };
  • Input schema definition for the tool in the MCP server's listTools response.
    name: "get_memory_relationships", description: "Get relationships for a specific memory", inputSchema: { type: "object", properties: { memory_id: { type: "string", description: "UUID of the memory" }, direction: { type: "string", enum: ["incoming", "outgoing", "both"], description: "Direction of relationships to retrieve", default: "both" }, relationship_type: { type: "string", description: "Filter by relationship type (optional)" } }, required: ["memory_id"] }
  • Tool schema definition in the exported memoryTools array (potentially for modular tool definitions).
    name: "get_memory_relationships", description: "Get relationships for a specific memory", inputSchema: { type: "object", properties: { memory_id: { type: "string", description: "UUID of the memory" }, direction: { type: "string", enum: ["incoming", "outgoing", "both"], description: "Direction of relationships to retrieve", default: "both" }, relationship_type: { type: "string", description: "Filter by relationship type (optional)" } }, required: ["memory_id"] } },

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/QuixiAI/agi-mcp-server'

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