Skip to main content
Glama

export_tree

Export hierarchical research trees to JSON, Markdown, Mermaid, or DOT formats for visualization and documentation purposes.

Instructions

Export a tiling tree in various formats for visualization or documentation

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
treeIdYesID of the tree to export
formatYesExport format

Implementation Reference

  • Core handler implementation for the 'export_tree' tool. Dispatches to format-specific export methods based on the input format parameter.
    export(format: string, treeId: string): string {
      const tree = this.trees.get(treeId);
      if (!tree) {
        throw new Error(`Tree ${treeId} not found`);
      }
    
      switch (format) {
        case "json":
          return this.exportJSON(tree);
        case "markdown":
          return this.exportMarkdown(tree);
        case "mermaid":
          return this.exportMermaid(tree);
        case "dot":
          return this.exportDOT(tree);
        default:
          throw new Error(`Unknown export format: ${format}`);
      }
    }
  • Input schema definition for the 'export_tree' tool, specifying required parameters treeId and format with allowed enum values.
    {
      name: "export_tree",
      description: "Export a tiling tree in various formats for visualization or documentation",
      inputSchema: {
        type: "object",
        properties: {
          treeId: {
            type: "string",
            description: "ID of the tree to export",
          },
          format: {
            type: "string",
            enum: ["json", "markdown", "mermaid", "dot"],
            description: "Export format",
          },
        },
        required: ["treeId", "format"],
      },
    },
  • MCP server dispatch handler case for 'export_tree' that invokes treeManager.export and formats the response.
    case "export_tree": {
      const result = treeManager.export(
        args.format as any,
        args.treeId as string
      );
      return {
        content: [
          {
            type: "text",
            text: result,
          },
        ],
      };
  • src/index.ts:393-395 (registration)
    Registers the list of tools including 'export_tree' via the TOOLS constant for MCP tool discovery.
    server.setRequestHandler(ListToolsRequestSchema, async () => ({
      tools: TOOLS,
    }));
  • Helper function used by exportMarkdown to recursively build the markdown representation of the tree.
    private tileToMarkdown(tile: Tile, depth: number): string {
      const indent = "  ".repeat(depth);
      const prefix = "#".repeat(Math.min(depth + 2, 6));
    
      let md = `${indent}${prefix} ${tile.title}\n\n`;
      md += `${indent}${tile.description}\n\n`;
    
      if (tile.splitAttribute) {
        md += `${indent}**Split by:** ${tile.splitAttribute}\n`;
        if (tile.splitRationale) {
          md += `${indent}**Rationale:** ${tile.splitRationale}\n`;
        }
        if (tile.isMECE !== undefined) {
          md += `${indent}**MECE Validated:** ${tile.isMECE ? "✓" : "✗"}\n`;
        }
        md += "\n";
      }
    
      if (tile.isLeaf && tile.evaluation) {
        md += `${indent}**Evaluation:**\n`;
        const evaluation = tile.evaluation;
        if (evaluation.impact) md += `${indent}- Impact: ${evaluation.impact}/10\n`;
        if (evaluation.feasibility) md += `${indent}- Feasibility: ${evaluation.feasibility}/10\n`;
        if (evaluation.uniqueness) md += `${indent}- Uniqueness: ${evaluation.uniqueness}/10\n`;
        if (evaluation.timeframe) md += `${indent}- Timeframe: ${evaluation.timeframe}\n`;
        if (evaluation.notes) md += `${indent}- Notes: ${evaluation.notes}\n`;
        md += "\n";
      }
    
      // Add children
      for (const childId of tile.childrenIds) {
        const child = this.tiles.get(childId);
        if (child) {
          md += this.tileToMarkdown(child, depth + 1);
        }
      }
    
      return md;
    }

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/k-chrispens/tiling-trees-mcp'

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