Skip to main content
Glama
164,693 tools. Last updated 2026-05-31 09:03

"Solid" matching MCP tools:

  • Place a single voxel block at a grid cell, using the same box brush humans use. This is how you BUILD - adding blocks is the default and the action you want almost every time. Coordinates are integer grid cells. World map: wx=gx*0.5, wy=2.0+gy*0.5, wz=gz*0.5. gy=0 is the first solid block layer (world y=2.0). One block per cell. Player-parity: must be within ~15m of where you stand AND touching the ground or an existing block (floating placement is rejected). op defaults to 'add'. Set op:'remove' ONLY to clear a SOLID block that already exists and is in your way - removing an empty cell is rejected as nothing-to-remove and wastes the turn, so never remove on open ground. Only inside your claim, allowed material, additive unless granted destructive. Returns { ok } or { ok:false, reason, suggested_stand } - on out-of-reach, move_to(suggested_stand) then retry.
    Connector
  • Calculate a Seattle-area cost estimate. Returns total, material, labor costs, days, and itemized line items. Material IDs: use get_material_options to get exact IDs, or pass a close match (e.g. "lvp", "composite", "cedar") and the server will resolve it. If ambiguous, the error message lists valid options. Required fields by projectType: interior-painting: rooms (Array<{id,name,length(ft),width(ft),height(6-30),paintCeiling(bool),paintTrim(bool),doorCount,windowCount,surfaceCondition("new-drywall"|"good-condition"|"poor-condition"),trimComplexity("baseboards-only"|"simple-trim"|"complex-trim"),wallTexture("smooth"|"light-texture"|"heavy-texture"),roomEmpty(bool)}>) | paintQuality (material ID) | paintFinish ("flat"|"eggshell"|"satin"|"semi-gloss"|"gloss") | includesPrimer (bool) | majorColorChange (bool) exterior-painting: wallArea(sqft) | trimArea(sqft) | doorCount | paintQuality (material ID) | surfacePrepLevel ("minimal"|"moderate"|"extensive") | includesPrimer (bool) | stories (1-3) | colorChange (bool) flooring: rooms (Array<{id,name,length(ft),width(ft)}>) | flooringMaterial (material ID, e.g. "vinyl-plank-lvp","solid-hardwood","ceramic-tile") | includesUnderlayment (bool) | underlaymentType? (material ID) | includesBaseboard (bool) | baseboardType? (material ID) | baseboardLinearFeet? | includesRemoval (bool) | removalType? ("carpet"|"tile"|"hardwood") | includesSubfloorPrep (bool) | transitionCount deck: deckType ("new"|"existing") | dimensions ({length,width,height(ft above ground)}) | deckingMaterial (material ID, e.g. "pressure-treated-decking","composite-decking-basic") | framingMaterial (material ID, e.g. "pressure-treated-framing-2x6") | includesRailing (bool) | railingMaterial? (material ID) | railingLinearFeet? | includesStairs (bool) | stairSteps? (0-20) | deckShape ("rectangle"|"l-shape"|"angled-corners"|"multi-level") | skirtingType ("none"|"lattice"|"matching-board") windows: windows (Array<{id,windowType(e.g."double-hung","casement","slider","bay"),width(inches 12-120),height(inches 12-120),quantity}>) | qualityLevel ("standard"|"premium"|"luxury") | includesTrimWork (bool) | trimMaterial? (material ID) | includesRemoval (bool) | energyEfficient (bool) siding: wallArea(sqft) | sidingMaterial (material ID) | includesInsulation (bool) | insulationType? (string) | homeHeight ("single-story"|"two-story"|"three-story") | includesRemoval (bool) | existingSidingType? (string) | trimLinearFeet (number) | soffit (bool) | soffitLinearFeet? (number) fence: linearFeet | fenceMaterial (material ID) | height (ft, 3-8) | gateCount (number 0-10) | gateWidth? (ft) | style? (e.g. "privacy","picket") | includesRemoval (bool) | terrain ("flat"|"sloped"|"mixed") | concreteFootings (bool) landscaping: yardArea(sqft, 100–50000) | includesIrrigation(bool) | irrigationType?(string) | irrigationZones?(1–20) | includesSod(bool) | sodSquareFeet?(defaults to yardArea) | includesMulch(bool) | mulchSquareFeet?(defaults to yardArea) | includesSitePrep(bool) | plants?(Array<{id,plantType,quantity,size("small"|"medium"|"large")}>) | hardscapeFeatures?(Array<{id,featureType,squareFeet,material}>) kitchen: kitchenSize(sqft, 40-600) | scope("cosmetic"|"standard"|"full-gut") | cabinets("keep"|"reface"|"prefab"|"semi-custom"|"custom") | countertop("keep"|"laminate"|"butcher-block"|"quartz"|"granite"|"marble") | appliances("keep"|"budget"|"mid-range"|"premium") | flooring("keep"|"lvp"|"tile"|"hardwood") | backsplash?(bool) | plumbingRelocation?(bool) | electricalUpgrade?(bool) | island?(bool) | lighting?(bool) bathroom: bathroomType("half-bath"|"full-bath"|"primary-bath"|"accessible") | bathroomSize(sqft, 20-300) | scope("cosmetic"|"standard"|"full-gut") | showerTub("keep"|"tub-to-shower"|"walk-in-shower"|"tub-replacement"|"freestanding-tub") | vanity("keep"|"budget"|"mid-range"|"premium") | tileWork("none"|"floor-only"|"floor-and-shower"|"full-tile") | heatedFloors?(bool) | newLighting?(bool) | ventilation?(bool) | plumbingRelocation?(bool) ada: projectScope("single-room"|"whole-home"|"bathroom-specific") | modifications({grabBars?,walkInShower?,widerDoorways?,ramp?,nonSlipFlooring?,leverHandles?,raisedToilet?,rollUnderSink?,accessibleCounters?,stairLift?} all bool) | currentCondition("minor"|"moderate"|"major") | homeStories?(1-3) | doorwayCount?(0-20) | rampLengthFeet?(0-60) | flooringSquareFeet?(0-5000)
    Connector
  • List the SOLID cells in a grid box. Returns up to 512 cells, each with {gx,gy,gz, material_id, source}. Call this BEFORE a batched build to see what is already there (prevents not-adjacent + would-trap-self rejections) and to recognise your own past work. Grid→world: x=gx*0.5, y=2.0+gy*0.5, z=gz*0.5. material_id is null for procedural ground nobody placed. Box volume must be <= 512 cells (8x8x8).
    Connector
  • Generate images from layer compositions. The layers parameter is an ordered array of layer definitions, and dimensions set the output width and height in pixels. Layer types: solid-color, gradient, text (with Markdown bold/italic), image, qr-code, barcode (Code 128, EAN-13, EAN-8, Code 39, ITF, Codabar), and layout (nested flex-like container with direction, gap, alignment, and padding). Layers are composited by index order with per-layer opacity and rotation. 99 Google Fonts are built in (Inter, Roboto, OpenSans, Montserrat, Poppins, Outfit, Lato, etc.) -- reference any by name without uploading font files. Custom fonts can be provided as base64. Output formats: PNG (default), JPEG, WebP, TIFF, GIF, AVIF.
    Connector
  • Calculate a Seattle-area cost estimate. Returns total, material, labor costs, days, and itemized line items. Material IDs: use get_material_options to get exact IDs, or pass a close match (e.g. "lvp", "composite", "cedar") and the server will resolve it. If ambiguous, the error message lists valid options. Required fields by projectType: interior-painting: rooms (Array<{id,name,length(ft),width(ft),height(6-30),paintCeiling(bool),paintTrim(bool),doorCount,windowCount,surfaceCondition("new-drywall"|"good-condition"|"poor-condition"),trimComplexity("baseboards-only"|"simple-trim"|"complex-trim"),wallTexture("smooth"|"light-texture"|"heavy-texture"),roomEmpty(bool)}>) | paintQuality (material ID) | paintFinish ("flat"|"eggshell"|"satin"|"semi-gloss"|"gloss") | includesPrimer (bool) | majorColorChange (bool) exterior-painting: wallArea(sqft) | trimArea(sqft) | doorCount | paintQuality (material ID) | surfacePrepLevel ("minimal"|"moderate"|"extensive") | includesPrimer (bool) | stories (1-3) | colorChange (bool) flooring: rooms (Array<{id,name,length(ft),width(ft)}>) | flooringMaterial (material ID, e.g. "vinyl-plank-lvp","solid-hardwood","ceramic-tile") | includesUnderlayment (bool) | underlaymentType? (material ID) | includesBaseboard (bool) | baseboardType? (material ID) | baseboardLinearFeet? | includesRemoval (bool) | removalType? ("carpet"|"tile"|"hardwood") | includesSubfloorPrep (bool) | transitionCount deck: deckType ("new"|"existing") | dimensions ({length,width,height(ft above ground)}) | deckingMaterial (material ID, e.g. "pressure-treated-decking","composite-decking-basic") | framingMaterial (material ID, e.g. "pressure-treated-framing-2x6") | includesRailing (bool) | railingMaterial? (material ID) | railingLinearFeet? | includesStairs (bool) | stairSteps? (0-20) | deckShape ("rectangle"|"l-shape"|"angled-corners"|"multi-level") | skirtingType ("none"|"lattice"|"matching-board") windows: windows (Array<{id,windowType(e.g."double-hung","casement","slider","bay"),width(inches 12-120),height(inches 12-120),quantity}>) | qualityLevel ("standard"|"premium"|"luxury") | includesTrimWork (bool) | trimMaterial? (material ID) | includesRemoval (bool) | energyEfficient (bool) siding: wallArea(sqft) | sidingMaterial (material ID) | includesInsulation (bool) | insulationType? (string) | homeHeight ("single-story"|"two-story"|"three-story") | includesRemoval (bool) | existingSidingType? (string) | trimLinearFeet (number) | soffit (bool) | soffitLinearFeet? (number) fence: linearFeet | fenceMaterial (material ID) | height (ft, 3-8) | gateCount (number 0-10) | gateWidth? (ft) | style? (e.g. "privacy","picket") | includesRemoval (bool) | terrain ("flat"|"sloped"|"mixed") | concreteFootings (bool) landscaping: yardArea(sqft, 100–50000) | includesIrrigation(bool) | irrigationType?(string) | irrigationZones?(1–20) | includesSod(bool) | sodSquareFeet?(defaults to yardArea) | includesMulch(bool) | mulchSquareFeet?(defaults to yardArea) | includesSitePrep(bool) | plants?(Array<{id,plantType,quantity,size("small"|"medium"|"large")}>) | hardscapeFeatures?(Array<{id,featureType,squareFeet,material}>) kitchen: kitchenSize(sqft, 40-600) | scope("cosmetic"|"standard"|"full-gut") | cabinets("keep"|"reface"|"prefab"|"semi-custom"|"custom") | countertop("keep"|"laminate"|"butcher-block"|"quartz"|"granite"|"marble") | appliances("keep"|"budget"|"mid-range"|"premium") | flooring("keep"|"lvp"|"tile"|"hardwood") | backsplash?(bool) | plumbingRelocation?(bool) | electricalUpgrade?(bool) | island?(bool) | lighting?(bool) bathroom: bathroomType("half-bath"|"full-bath"|"primary-bath"|"accessible") | bathroomSize(sqft, 20-300) | scope("cosmetic"|"standard"|"full-gut") | showerTub("keep"|"tub-to-shower"|"walk-in-shower"|"tub-replacement"|"freestanding-tub") | vanity("keep"|"budget"|"mid-range"|"premium") | tileWork("none"|"floor-only"|"floor-and-shower"|"full-tile") | heatedFloors?(bool) | newLighting?(bool) | ventilation?(bool) | plumbingRelocation?(bool) ada: projectScope("single-room"|"whole-home"|"bathroom-specific") | modifications({grabBars?,walkInShower?,widerDoorways?,ramp?,nonSlipFlooring?,leverHandles?,raisedToilet?,rollUnderSink?,accessibleCounters?,stairLift?} all bool) | currentCondition("minor"|"moderate"|"major") | homeStories?(1-3) | doorwayCount?(0-20) | rampLengthFeet?(0-60) | flooringSquareFeet?(0-5000)
    Connector
  • Point query for ONE grid cell. Returns {solid, material_id, source}. material_id is null when solidity is procedural ground (not a placed block). Use for a surgical adjacency check; for a box use inspect_region.
    Connector

Matching MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    PHP static analysis MCP server with 11 tools for querying 60+ code quality metrics, detecting problems (God Class, dependency cycles, SOLID violations), analyzing dependencies, identifying refactoring priorities, and mapping test coverage — all from live analysis data.
    Last updated
    11
    2
    77
    MIT
  • Build many blocks at once with macro ops, each expanded into individual box brushes. Coordinates are integer grid cells. World map: wx=gx*0.5, wy=2.0+gy*0.5, wz=gz*0.5. gy=0 is the first solid block layer (world y=2.0). One block per cell. Ops: {op:'box',min:[gx,gy,gz],max:[gx,gy,gz],material,operation?} (filled box); {op:'shell',min,max,material} (hollow box); {op:'layer',y,material,cells:[[gx,gz],...]} (flat layer); {op:'line',from:[gx,gy,gz],to:[gx,gy,gz],material}. operation 0=add (default), 1=remove (destructive). All coords are GRID cells. Capped at 512 blocks per call. Returns { placed, total, rejected (count by reason), rejected_cells:[{gx,gy,gz,reason}] (the exact cells that failed, so you can patch the gaps), stopped_reason?, suggested_stand? }.
    Connector
  • Probe the terrain: ground height, solid/air, and the nearest forward obstacle. Optionally pass at as [x,y,z] OR {x,y,z} (world coords) + yawDeg; defaults to your position + facing. Use it to check "is this spot on the ground / buildable?" before building.
    Connector
  • Snapshot of what is near you: your position, nearby players, recent chat, recent nearby edits, and a terrain block (terrain.ground_y = the surface to stand/build on; standing_on; nearby solid density; forward obstacle).
    Connector
  • Make a real-world asset token that uses the ERC-20 standard. Experimental, some features are not audited and are subject to change. Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
    Connector
  • Make a stablecoin token that uses the ERC-20 standard. Experimental, some features are not audited and are subject to change. Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
    Connector