Skip to main content
Glama
using76
by using76

bulc_list_furniture_catalog

Browse and filter furniture items from the BULC catalog to find specific pieces for building design projects, returning IDs needed for placement.

Instructions

Get a list of available furniture items from the catalog. Use category filter to narrow down results. Returns catalog IDs needed for bulc_place_furniture.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category (e.g., 'Seats', 'Tables', 'Beds', 'Doors', 'Windows', 'Lights')
searchNoSearch by name (partial match)
limitNoMaximum number of results to return. Default: 20

Implementation Reference

  • Core handler logic: validates input using ListCatalogSchema and sends 'list_furniture_catalog' action to BULC client.
    case "bulc_list_furniture_catalog": {
      const validated = ListCatalogSchema.parse(args);
      result = await client.sendCommand({
        action: "list_furniture_catalog",
        params: validated,
      });
      break;
    }
  • Zod validation schema for tool parameters: category (optional string), search (optional string), limit (optional positive integer).
    const ListCatalogSchema = z.object({
      category: z.string().optional(),
      search: z.string().optional(),
      limit: z.number().int().positive().optional(),
    });
  • Tool metadata registration including name, description, input schema, and annotations (read-only, non-destructive).
    {
      name: "bulc_list_furniture_catalog",
      description:
        "Get a list of available furniture items from the catalog. " +
        "Use category filter to narrow down results. " +
        "Returns catalog IDs needed for bulc_place_furniture.",
      inputSchema: {
        type: "object" as const,
        properties: {
          category: {
            type: "string",
            description:
              "Filter by category (e.g., 'Seats', 'Tables', 'Beds', 'Doors', 'Windows', 'Lights')",
          },
          search: {
            type: "string",
            description: "Search by name (partial match)",
          },
          limit: {
            type: "integer",
            description: "Maximum number of results to return. Default: 20",
          },
        },
      },
      annotations: {
        readOnlyHint: true,
        destructiveHint: false,
      },
    },
  • src/index.ts:40-51 (registration)
    Global tool registry: includes furnitureTools in the complete list of MCP tools served via listTools.
    const allTools = [
      ...contextTools,      // 8 tools: spatial context, home info, levels, undo/redo, save
      ...roomTools,         // 5 tools: create, create_polygon, list, modify, delete
      ...wallTools,         // 5 tools: create, create_rectangle, list, modify, delete
      ...furnitureTools,    // 5 tools: catalog, place, list, modify, delete
      ...fdsDataTools,      // 7 tools: get, fire_source, detector, sprinkler, hvac, thermocouple, clear
      ...meshTools,         // 5 tools: list, create, auto, modify, delete
      ...simulationTools,   // 4 tools: get_settings, time, output, ambient
      ...fdsRunTools,       // 6 tools: preview, validate, export, run, status, stop
      ...resultTools,       // 5 tools: open_viewer, list_datasets, point_data, aset, report
      ...evacTools,         // 25 tools: setup, stairs, agents, run, results, advanced features
    ];
  • Main MCP callTool dispatcher routes furniture tools (including bulc_list_furniture_catalog) to handleFurnitureTool.
    // Furniture tools
    if (name.startsWith("bulc_") && name.includes("furniture")) {
      return await handleFurnitureTool(name, safeArgs);

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/using76/BULC_MCP'

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