create_relations
Define and establish connections between entities in a knowledge graph by specifying source, target, and relation type to enhance structured memory storage and retrieval.
Instructions
Create multiple new relations between entities in the knowledge graph. Relations should be in active voice
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| relations | Yes |
Input Schema (JSON Schema)
{
"properties": {
"relations": {
"items": {
"properties": {
"from": {
"description": "The name of the entity where the relation starts",
"type": "string"
},
"relationType": {
"description": "The type of the relation",
"type": "string"
},
"to": {
"description": "The name of the entity where the relation ends",
"type": "string"
}
},
"required": [
"from",
"to",
"relationType"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"relations"
],
"type": "object"
}
Implementation Reference
- src/memory/index.ts:115-125 (handler)The main handler function that creates new relations in the knowledge graph. It loads the existing graph, filters out duplicate relations, adds new ones, saves the graph, and returns the created relations.async createRelations(relations: Relation[]): Promise<Relation[]> { const graph = await this.loadGraph(); const newRelations = relations.filter(r => !graph.relations.some(existingRelation => existingRelation.from === r.from && existingRelation.to === r.to && existingRelation.relationType === r.relationType )); graph.relations.push(...newRelations); await this.saveGraph(graph); return newRelations; }
- src/memory/index.ts:268-287 (registration)Registers the create_relations tool with the MCP server, defining its name, description, input/output schemas, and the async handler function that processes the tool call.server.registerTool( "create_relations", { title: "Create Relations", description: "Create multiple new relations between entities in the knowledge graph. Relations should be in active voice", inputSchema: { relations: z.array(RelationSchema) }, outputSchema: { relations: z.array(RelationSchema) } }, async ({ relations }) => { const result = await knowledgeGraphManager.createRelations(relations); return { content: [{ type: "text" as const, text: JSON.stringify(result, null, 2) }], structuredContent: { relations: result } }; } );
- src/memory/index.ts:233-237 (schema)Zod schema definition for Relation validation, specifying the required fields (from, to, relationType) and their descriptions for input/output validation.const RelationSchema = z.object({ from: z.string().describe("The name of the entity where the relation starts"), to: z.string().describe("The name of the entity where the relation ends"), relationType: z.string().describe("The type of the relation") });