Skip to main content
Glama
YuNaga224
by YuNaga224

create_relations

Define and establish multiple relationships between entities in a knowledge graph to enhance data connections and structure. Supports active voice for clear relation mapping.

Instructions

Create multiple new relations between entities in the knowledge graph. Relations should be in active voice

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
relationsYes

Implementation Reference

  • Core handler implementing the create_relations tool: deduplicates relations, updates source entity markdown files by adding relation lines.
    async createRelations(relations: Relation[]): Promise<Relation[]> { const graph = await this.loadGraph(); const newRelations: Relation[] = []; for (const relation of relations) { // Check if relation already exists const exists = graph.relations.some(r => r.from === relation.from && r.to === relation.to && r.relationType === relation.relationType ); if (exists) continue; // Update the source entity file const fromPath = getEntityPath(relation.from); try { const content = await fs.readFile(fromPath, 'utf-8'); const updatedContent = addRelationToContent(content, relation); await fs.writeFile(fromPath, updatedContent, 'utf-8'); newRelations.push(relation); } catch (error) { if (error instanceof Error && 'code' in error && (error as any).code === 'ENOENT') { throw new Error(`Entity ${relation.from} not found`); } throw error; } } return newRelations; }
  • index.ts:55-76 (registration)
    Registers the create_relations tool in ListToolsRequestSchema handler, including schema.
    { name: "create_relations", description: "Create multiple new relations between entities in the knowledge graph. Relations should be in active voice", inputSchema: { type: "object", properties: { relations: { type: "array", items: { type: "object", properties: { from: { type: "string", description: "The name of the entity where the relation starts" }, to: { type: "string", description: "The name of the entity where the relation ends" }, relationType: { type: "string", description: "The type of the relation" }, }, required: ["from", "to", "relationType"], }, }, }, required: ["relations"], }, },
  • MCP server switch case that handles tool calls to create_relations by invoking storageManager.
    case "create_relations": return { content: [{ type: "text", text: JSON.stringify(await storageManager.createRelations(args.relations as Relation[]), null, 2) }] };
  • types.ts:7-11 (schema)
    TypeScript interface defining the Relation structure used by the tool.
    export interface Relation { from: string; to: string; relationType: string; }

Other Tools

Related Tools

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/YuNaga224/obsidian-memory-mcp'

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