Skip to main content
Glama
angrysky56

Narrative Graph MCP

rtm_traverse_narrative

Analyze narrative text at customizable abstraction levels by traversing its structure, extracting summaries based on depth, branching factor, and recall settings for enhanced understanding.

Instructions

Traverse a narrative tree at different depths to get summaries at varying abstraction levels

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
maxBranchingFactorNoMaximum number of child nodes (K parameter)
maxRecallDepthNoMaximum depth for recall (D parameter)
textYesThe narrative text to traverse
titleYesTitle of the narrative
traversalDepthYesDepth to traverse in the tree (controls abstraction level)

Implementation Reference

  • The core handler function for the rtm_traverse_narrative tool. Builds RTM tree from input text/title, traverses to specified depth, computes recall sequence and statistics, returns JSON-structured content.
    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) }], }; } }
  • Zod input schema for rtm_traverse_narrative tool defining parameters: text, title, traversalDepth, maxBranchingFactor, maxRecallDepth.
    import { z } from 'zod'; export const traverseNarrativeSchema = z.object({ text: z.string().describe('The narrative text to traverse'), title: z.string().describe('Title of the narrative'), traversalDepth: z.number().min(1).max(10).describe('Depth to traverse in the tree (controls abstraction level)'), maxBranchingFactor: z.number().default(4).describe('Maximum number of child nodes (K parameter)'), maxRecallDepth: z.number().default(6).describe('Maximum depth for recall (D parameter)'), }); export type TraverseNarrativeInput = z.infer<typeof traverseNarrativeSchema>;
  • src/index.ts:47-52 (registration)
    Registration in tools registry mapping 'rtm_traverse_narrative' to the traverseNarrative handler.
    const tools = { rtm_create_narrative_tree: createNarrativeTree, rtm_generate_ensemble: generateEnsemble, rtm_traverse_narrative: traverseNarrative, rtm_find_optimal_depth: findOptimalDepth, };
  • src/index.ts:66-70 (registration)
    Tool definition in toolDefinitions array: name, description, and inputSchema reference for 'rtm_traverse_narrative'.
    { name: 'rtm_traverse_narrative', description: 'Traverse a narrative tree at different depths to get summaries at varying abstraction levels', inputSchema: traverseNarrativeSchema, },
  • src/index.ts:37-37 (registration)
    Import statement for the traverseNarrative handler function.
    import traverseNarrative from './tools/traverseNarrative.js';

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

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