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
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| relations | Yes |
Implementation Reference
- src/memory/index.ts:281-286 (handler)The MCP tool handler for 'create_relations', which invokes KnowledgeGraphManager.createRelations and formats the response.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:115-125 (helper)Core logic in KnowledgeGraphManager to create (add if not duplicate) relations to the persistent graph.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:267-287 (registration)Registration of the 'create_relations' MCP tool with its schema and handler.// Register create_relations tool 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 for individual Relation objects, used in the input/output schemas for create_relations.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") });
- src/memory/index.ts:56-60 (schema)TypeScript interface defining the structure of a Relation.export interface Relation { from: string; to: string; relationType: string; }