UNPKG

mcp-adr-analysis-server

Version:

MCP server for analyzing Architectural Decision Records and project architecture

89 lines 3.21 kB
/** * Update Knowledge Tool - Simple CRUD operations for knowledge graph * * Provides atomic operations to add/remove entities and relationships in the knowledge graph. * This follows ADR-018 atomic tools pattern, replacing stateful KnowledgeGraphManager methods. */ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; import type { KnowledgeGraphManager } from '../utils/knowledge-graph-manager.js'; import type { ToolContext } from '../types/tool-context.js'; export interface UpdateKnowledgeArgs { operation: 'add_entity' | 'remove_entity' | 'add_relationship' | 'remove_relationship'; entity?: string; entityType?: 'intent' | 'adr' | 'code' | 'tool' | 'decision'; relationship?: string; source?: string; target?: string; metadata?: Record<string, any>; } export interface GraphSummary { nodeCount: number; edgeCount: number; intentCount: number; adrCount: number; lastUpdated: string; } /** * Update knowledge graph with simple CRUD operations * * This tool provides atomic operations to modify the knowledge graph: * - add_entity: Add a new node (intent, ADR, tool, etc.) * - remove_entity: Remove an existing node * - add_relationship: Add an edge between two nodes * - remove_relationship: Remove an edge between two nodes * * All operations are atomic and return the updated graph state. * * @param args - Operation arguments * @param args.operation - Type of operation to perform * @param args.entity - Entity ID (for add_entity/remove_entity) * @param args.entityType - Type of entity (for add_entity) * @param args.relationship - Relationship type (for add_relationship/remove_relationship) * @param args.source - Source node ID (for relationships) * @param args.target - Target node ID (for relationships) * @param args.metadata - Additional metadata for the entity/relationship * @param ctx - Tool execution context * @param kgManager - Knowledge graph manager instance * * @returns Promise resolving to tool result with: * - success: Whether operation succeeded * - graphState: Current graph summary after operation * - message: Human-readable result message * * @throws {Error} When: * - Invalid operation type * - Missing required parameters for operation * - Entity/relationship not found (for remove operations) * * @example Add an ADR entity * ```typescript * await updateKnowledge({ * operation: 'add_entity', * entity: 'adr-019', * entityType: 'adr', * metadata: { title: 'Use GraphQL', status: 'proposed' } * }, ctx, kgManager); * ``` * * @example Add a relationship * ```typescript * await updateKnowledge({ * operation: 'add_relationship', * relationship: 'implements', * source: 'adr-019', * target: 'src/api/graphql.ts' * }, ctx, kgManager); * ``` * * @example Remove an entity * ```typescript * await updateKnowledge({ * operation: 'remove_entity', * entity: 'adr-015' * }, ctx, kgManager); * ``` * * @since v2.2.0 */ export declare function updateKnowledge(args: UpdateKnowledgeArgs, ctx: ToolContext, kgManager: KnowledgeGraphManager): Promise<CallToolResult>; //# sourceMappingURL=update-knowledge-tool.d.ts.map