Skip to main content
Glama

getWhiteboard

Retrieve and analyze Heptabase whiteboard data by specifying a whiteboard ID, with options to include cards, connections, and depth of analysis for enhanced insights.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
depthNo
includeCardsNo
includeConnectionsNo
whiteboardIdYes

Implementation Reference

  • The primary handler for the 'getWhiteboard' MCP tool. Ensures data service initialization, fetches whiteboard data with options, generates a formatted text summary of the whiteboard, cards, and connections, and handles errors gracefully.
    this.tools.getWhiteboard = {
      inputSchema: getWhiteboardSchema,
      handler: async (params) => {
        try {
          await this.ensureDataServiceInitialized();
    
          const options = {
            includeCards: params.includeCards || false,
            includeConnections: params.includeConnections || false,
            depth: params.depth
          };
    
          const result = await this.dataService!.getWhiteboard(params.whiteboardId, options);
          
          let text = `Whiteboard: ${result.whiteboard.name} (ID: ${result.whiteboard.id})\n`;
          text += `Created: ${result.whiteboard.createdTime}\n`;
          text += `Last edited: ${result.whiteboard.lastEditedTime}\n`;
          
          if (result.cards) {
            text += `\nCards: ${result.cards.length}\n`;
            result.cards.forEach(card => {
              text += `- ${card.title || 'Untitled'} (ID: ${card.id})\n`;
            });
          }
          
          if (result.connections) {
            text += `\nConnections: ${result.connections.length}\n`;
          }
    
          return {
            content: [{
              type: 'text',
              text
            }]
          };
        } catch (error) {
          console.error('Error in getWhiteboard:', error);
          const errorMessage = error instanceof Error ? error.message : 'Unknown error';
          return {
            content: [{
              type: 'text',
              text: `Error: ${errorMessage}`
            }]
          };
        }
      }
    };
  • Zod input schema validation for the getWhiteboard tool, requiring whiteboardId and optionally including cards, connections, and depth.
    const getWhiteboardSchema = z.object({
      whiteboardId: z.string(),
      includeCards: z.boolean().optional(),
      includeConnections: z.boolean().optional(),
      depth: z.number().optional()
    });
  • src/server.ts:462-464 (registration)
    MCP server registration of the getWhiteboard tool, linking the schema and handler.
    this.server.tool('getWhiteboard', getWhiteboardSchema.shape, async (params) => {
      return this.tools.getWhiteboard.handler(params);
    });
  • Helper method in HeptabaseDataService that retrieves a whiteboard by ID, optionally populating associated cards and connections from the loaded data structures.
    async getWhiteboard(
      whiteboardId: string,
      options: { includeCards?: boolean; includeConnections?: boolean } = {}
    ): Promise<WhiteboardResult> {
      const whiteboard = this.data.whiteboards[whiteboardId];
      if (!whiteboard) {
        throw new Error('Whiteboard not found');
      }
    
      const result: WhiteboardResult = { whiteboard };
    
      if (options.includeCards) {
        const instances = Object.values(this.data.cardInstances).filter(
          instance => instance.whiteboardId === whiteboardId
        );
        const cardIds = instances.map(instance => instance.cardId);
        result.cards = cardIds.map(id => this.data.cards[id]).filter(Boolean);
      }
    
      if (options.includeConnections) {
        result.connections = Object.values(this.data.connections).filter(
          connection => connection.whiteboardId === whiteboardId
        );
      }
    
      return result;
    }
Install Server

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/LarryStanley/heptabase-mcp'

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