register_relationship
Define and store relationships between code entities, such as calls, inherits, or imports, to maintain structured connections and metadata within a codebase.
Instructions
Register a relationship between entities.
Args: from_entity: Name of the source entity to_entity: Name of the target entity relationship_type: Type of relationship (calls, inherits, imports, etc.) metadata: Additional metadata as key-value pairs
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| from_entity | Yes | ||
| metadata | No | ||
| relationship_type | Yes | ||
| to_entity | Yes |
Implementation Reference
- sourcesage/mcp_server.py:76-118 (handler)The handler function for the 'register_relationship' tool. It finds entities by name, creates a relation between them using KnowledgeGraph.add_relation, saves the knowledge graph if storage is configured, and returns the relation ID or error message.def register_relationship( from_entity: str, to_entity: str, relationship_type: str, metadata: dict[str, Any] | None = None, ) -> str: """Register a relationship between entities. Args: from_entity: Name of the source entity to_entity: Name of the target entity relationship_type: Type of relationship (calls, inherits, imports, etc.) metadata: Additional metadata as key-value pairs """ # Find entities by name from_entities = self.knowledge.find_entity(from_entity) to_entities = self.knowledge.find_entity(to_entity) if not from_entities: return f"Error: Source entity '{from_entity}' not found" if not to_entities: return f"Error: Target entity '{to_entity}' not found" # If multiple entities with the same name, use the first one from_id = from_entities[0].entity_id to_id = to_entities[0].entity_id relation_id = self.knowledge.add_relation( from_id=from_id, to_id=to_id, relation_type=relationship_type, metadata=metadata, ) if not relation_id: return "Error: Failed to create relationship" # Save knowledge if storage path is set if self.storage_path: self.knowledge.save_to_file(self.storage_path) return f"Relationship registered with ID: {relation_id}"