Skip to main content
Glama
angrysky56

Narrative Graph MCP

traverseNarrative.ts2.34 kB
// Tool implementation for traversing narratives import { createNarrative } from "../core/rtm-builder.js"; import { RTMTreeBuilder } from "../core/rtm-builder.js"; import { createTraversal } from "../core/rtm-traversal.js"; import { createDefaultParameters } from "../core/rtm-ensemble.js"; interface TraverseNarrativeParams { text: string; title: string; traversalDepth: number; maxBranchingFactor?: number; maxRecallDepth?: number; } // Tool implementation export default async function traverseNarrative(params: TraverseNarrativeParams) { try { // Create narrative and build tree const narrative = createNarrative(params.text, params.title); const parameters = { ...createDefaultParameters(), maxBranchingFactor: params.maxBranchingFactor || 4, maxRecallDepth: params.maxRecallDepth || 6 }; const builder = new RTMTreeBuilder(parameters); const tree = builder.buildTree(narrative); // Create clause map for traversal const clauseMap = new Map( narrative.clauses.map(c => [c.id, c]) ); // Traverse to specified depth const traversal = createTraversal(tree, clauseMap); const result = traversal.traverseToDepth(params.traversalDepth); // Get sequential recall const recallSequence = traversal.simulateRecall(params.traversalDepth); // Get tree statistics const treeStats = traversal.getTreeStatistics(); return { content: [{ type: "text", text: JSON.stringify({ success: true, treeId: tree.id, traversalResult: { depth: result.depth, nodeCount: result.nodes.length, totalClauses: result.totalClauses, avgCompressionRatio: result.compressionRatio, summaries: result.summary }, recallSequence: recallSequence, treeStatistics: treeStats, message: `Traversed to depth ${result.depth}, found ${result.nodes.length} nodes covering ${result.totalClauses} clauses` }, null, 2) }], }; } catch (error) { return { content: [{ type: "text", text: JSON.stringify({ success: false, error: error instanceof Error ? error.message : "Unknown error occurred" }, null, 2) }], }; } }

Implementation Reference

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/angrysky56/narrative-graph-mcp'

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