Skip to main content
Glama
create_relation.py2.57 kB
"""Create relation tool - link memories explicitly.""" import time import uuid from typing import Any from ..context import db, mcp from ..security.validators import validate_relation_type, validate_score, validate_uuid from ..storage.models import Relation @mcp.tool() def create_relation( from_memory_id: str, to_memory_id: str, relation_type: str, strength: float = 1.0, metadata: dict[str, Any] | None = None, ) -> dict[str, Any]: """ Create an explicit relation between two memories. Links two memories with a typed relationship. Args: from_memory_id: Source memory ID (valid UUID). to_memory_id: Target memory ID (valid UUID). relation_type: Type of relation (must be one of: related, causes, supports, contradicts, has_decision, consolidated_from). strength: Strength of the relation (0.0-1.0). metadata: Additional metadata about the relation. Returns: Created relation ID and confirmation. Raises: ValueError: If any input fails validation. """ # Input validation from_memory_id = validate_uuid(from_memory_id, "from_memory_id") to_memory_id = validate_uuid(to_memory_id, "to_memory_id") relation_type = validate_relation_type(relation_type, "relation_type") strength = validate_score(strength, "strength") if not db.get_memory(from_memory_id): return {"success": False, "message": f"Source memory not found: {from_memory_id}"} if not db.get_memory(to_memory_id): return {"success": False, "message": f"Target memory not found: {to_memory_id}"} if existing := db.get_relations( from_memory_id=from_memory_id, to_memory_id=to_memory_id, relation_type=relation_type, ): return { "success": False, "message": f"Relation already exists: {existing[0].id}", "existing_relation_id": existing[0].id, } relation = Relation( id=str(uuid.uuid4()), from_memory_id=from_memory_id, to_memory_id=to_memory_id, relation_type=relation_type, strength=strength, created_at=int(time.time()), metadata=metadata or {}, ) db.create_relation(relation) return { "success": True, "relation_id": relation.id, "from": from_memory_id, "to": to_memory_id, "type": relation_type, "strength": strength, "message": f"Relation created: {from_memory_id} --[{relation_type}]--> {to_memory_id}", }

Implementation Reference

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/prefrontalsys/mnemex'

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