← WebMCP Directory

topostack.app

topostack.app

live Unverified (seed import) Media & Personal 12 tools imperative implementation

Choose a place, customize layered relief or flat engraving, and generate SVG artwork in the free TopoStack studio.

First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com

Answer 4 · Act 8 · Transact 0 · Score: Not yet scored

Tool inspector

create_studio_link

act imperative

[Site-provided MCP tool — executes with your session credentials.] Turn a model request into a TopoStack studio link. Opening it generates the model in the browser, where the user reviews it and exports laser-ready SVG files. Share this link with the user as the final step.

Page: /studio

Input schema

PropertyTypeRequiredDescription
requestVersion — no Optional; 1 is assumed.
area — yes The ground to model. Use center + widthKm for a place and a span, or bounds to keep a whole box in view; the crop is fitted to the model's proportions.
placeLabel string no Human-readable place name, e.g. from search_places.
name string no Project name; defaults to the first part of placeLabel.
widthMm number no Finished model width in millimetres (default 300).
heightMm number no Finished model height in millimetres (default 200).
shape — no Outline of the model (default rectangle).
units — no Units for engraved labels and the scale bar (default metric).
output — no layered: a stack of laser-cut sheets forming a 3D relief (default). flat: contour lines engraved on a single sheet.
materialThicknessMm number no Sheet thickness in millimetres (default 3). Thicker material gives fewer, coarser layers.
verticalExaggeration number no How much to stretch the terrain vertically (default 2). The layer count follows from scale, relief, exaggeration and thickness.
contourCount integer no Flat output only: number of engraved contour lines (default 12).
details object no Map details to include. Anything left out keeps the studio default: water, water depth, roads, trails, elevation labels, north arrow and scale bar on; road labels, boundaries and coordinate grid off.
aviation object no FAA aviation detail, US and territories only; decorative, never for navigation. Every switch is off unless set: airspace (Class B, C and D boundaries), specialUse (restricted, MOA, warning and similar areas), runways, airports, navaids, obstacles (200 ft AGL and taller), labels (airport and navaid identifiers, and Class B, C and D altitudes).
airspaceStack — no Airspace in acrylic, US and territories only, layered output only; decorative, never for navigation. Class B, C and special use airspace, and optional Class D lids, are cut from acrylic and held at true height over the terrain on rods the maker cuts to length. false turns it off. An object turns it on from the defaults (plates, 4 mm round rods glued in segments); on a design that has it, only the fields given change. A whole Class B separates into its shelves near 10× vertical exaggeration.
title string no Optional engraved title: up to 3 lines separated by \n, 40 characters each.
laser object no Laser settings. A work area smaller than the model splits each sheet into pieces that fit the bed.
markers array no Points of interest engraved on the model.
Raw JSON schema
{
  "title": "TopoStack project request v1",
  "type": "object",
  "required": [
    "area"
  ],
  "additionalProperties": false,
  "properties": {
    "requestVersion": {
      "const": 1,
      "description": "Optional; 1 is assumed."
    },
    "area": {
      "description": "The ground to model. Use center + widthKm for a place and a span, or bounds to keep a whole box in view; the crop is fitted to the model's proportions.",
      "oneOf": [
        {
          "type": "object",
          "title": "Center and width",
          "required": [
            "center",
            "widthKm"
          ],
          "additionalProperties": false,
          "properties": {
            "center": {
              "type": "object",
              "required": [
                "lat",
                "lon"
              ],
              "additionalProperties": false,
              "properties": {
                "lat": {
                  "type": "number",
                  "minimum": -85.0511,
                  "maximum": 85.0511
                },
                "lon": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                }
              }
            },
            "widthKm": {
              "type": "number",
              "minimum": 0.1,
              "maximum": 2000,
              "description": "Ground distance shown from west to east, in kilometres."
            }
          }
        },
        {
          "type": "object",
          "title": "Bounding box",
          "required": [
            "bounds"
          ],
          "additionalProperties": false,
          "properties": {
            "bounds": {
              "type": "object",
              "required": [
                "west",
                "south",
                "east",
                "north"
              ],
              "additionalProperties": false,
              "description": "WGS84 degrees; south < north. West greater than east crosses the antimeridian, as in GeoJSON.",
              "properties": {
                "west": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                },
                "south": {
                  "type": "number",
                  "minimum": -85.0511,
                  "maximum": 85.0511
                },
                "east": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                },
                "north": {
                  "type": "number",
                  "minimum": -85.0511,
                  "maximum": 85.0511
                }
              }
            }
          }
        }
      ]
    },
    "placeLabel": {
      "type": "string",
      "maxLength": 240,
      "description": "Human-readable place name, e.g. from search_places."
    },
    "name": {
      "type": "string",
      "maxLength": 120,
      "description": "Project name; defaults to the first part of placeLabel."
    },
    "widthMm": {
      "type": "number",
      "minimum": 20,
      "maximum": 10000,
      "description": "Finished model width in millimetres (default 300)."
    },
    "heightMm": {
      "type": "number",
      "minimum": 20,
      "maximum": 10000,
      "description": "Finished model height in millimetres (default 200)."
    },
    "shape": {
      "enum": [
        "rectangle",
        "circle"
      ],
      "description": "Outline of the model (default rectangle)."
    },
    "units": {
      "enum": [
        "metric",
        "imperial"
      ],
      "description": "Units for engraved labels and the scale bar (default metric)."
    },
    "output": {
      "enum": [
        "layered",
        "flat"
      ],
      "description": "layered: a stack of laser-cut sheets forming a 3D relief (default). flat: contour lines engraved on a single sheet."
    },
    "materialThicknessMm": {
      "type": "number",
      "minimum": 0.5,
      "maximum": 25,
      "description": "Sheet thickness in millimetres (default 3). Thicker material gives fewer, coarser layers."
    },
    "verticalExaggeration": {
      "type": "number",
      "minimum": 1,
      "maximum": 10,
      "description": "How much to stretch the terrain vertically (default 2). The layer count follows from scale, relief, exaggeration and thickness."
    },
    "contourCount": {
      "type": "integer",
      "minimum": 4,
      "maximum": 40,
      "description": "Flat output only: number of engraved contour lines (default 12)."
    },
    "details": {
      "type": "object",
      "additionalProperties": false,
      "description": "Map details to include. Anything left out keeps the studio default: water, water depth, roads, trails, elevation labels, north arrow and scale bar on; road labels, boundaries and coordinate grid off.",
      "properties": {
        "water": {
          "type": "boolean"
        },
        "waterDepth": {
          "type": "boolean"
        },
        "roads": {
          "type": "boolean"
        },
        "trails": {
          "type": "boolean"
        },
        "roadLabels": {
          "type": "boolean"
        },
        "boundaries": {
          "type": "boolean"
        },
        "coordinateGrid": {
          "type": "boolean"
        },
        "elevationLabels": {
          "type": "boolean"
        },
        "northArrow": {
          "type": "boolean"
        },
        "scaleBar": {
          "type": "boolean"
        }
      }
    },
    "aviation": {
      "type": "object",
      "additionalProperties": false,
      "description": "FAA aviation detail, US and territories only; decorative, never for navigation. Every switch is off unless set: airspace (Class B, C and D boundaries), specialUse (restricted, MOA, warning and similar areas), runways, airports, navaids, obstacles (200 ft AGL and taller), labels (airport and navaid identifiers, and Class B, C and D altitudes).",
      "properties": {
        "airspace": {
          "type": "boolean"
        },
        "specialUse": {
          "type": "boolean"
        },
        "runways": {
          "type": "boolean"
        },
        "airports": {
          "type": "boolean"
        },
        "navaids": {
          "type": "boolean"
        },
        "obstacles": {
          "type": "boolean"
        },
        "labels": {
          "type": "boolean"
        }
      }
    },
    "airspaceStack": {
      "description": "Airspace in acrylic, US and territories only, layered output only; decorative, never for navigation. Class B, C and special use airspace, and optional Class D lids, are cut from acrylic and held at true height over the terrain on rods the maker cuts to length. false turns it off. An object turns it on from the defaults (plates, 4 mm round rods glued in segments); on a design that has it, only the fields given change. A whole Class B separates into its shelves near 10× vertical exaggeration.",
      "anyOf": [
        {
          "const": false
        },
        {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "form": {
              "enum": [
                "plates",
                "tiers",
                "volumes"
              ],
              "description": "plates: a piece at each altitude where airspace starts or ends, cut to the whole airspace at that height. tiers: pieces only where each shelf starts and ends, like the chart users' guide's wedding cake; least acrylic. volumes: solid stacked sheets, which use far more acrylic. Plates and tiers differ most where special use airspace spans several levels."
            },
            "tint": {
              "enum": [
                "chart",
                "clear"
              ],
              "description": "chart: blue and magenta acrylic after the sectional. clear: every piece from clear acrylic, with the class shown by engraving. Defaults to clear for plates and chart for tiers and volumes."
            },
            "classes": {
              "type": "object",
              "additionalProperties": false,
              "description": "Which airspace to build. Turning every kind off turns airspace off.",
              "properties": {
                "B": {
                  "type": "boolean",
                  "description": "Class B (default on)."
                },
                "C": {
                  "type": "boolean",
                  "description": "Class C (default on)."
                },
                "D": {
                  "type": "boolean",
                  "description": "Class D, as a flat lid over each tower airport (default off)."
                },
                "specialUse": {
                  "type": "boolean",
                  "description": "MOAs, restricted, warning and similar areas (default on)."
                }
              }
            },
            "ceilingCapFt": {
              "type": "number",
              "minimum": 1000,
              "maximum": 60000,
              "description": "Highest altitude built, in feet. By default the highest Class B or C ceiling in the area, or 10,000 ft."
            },
            "thicknessMm": {
              "type": "number",
              "minimum": 1,
              "maximum": 10,
              "description": "Acrylic thickness in millimetres; defaults to materialThicknessMm."
            },
            "kerfMm": {
              "type": "number",
              "minimum": 0,
              "maximum": 1,
              "description": "Laser kerf for the acrylic in millimetres; defaults to the laser kerf."
            },
            "rod": {
              "type": "object",
              "additionalProperties": false,
              "description": "The rods that hold the pieces, standing in sockets cut into the terrain.",
              "properties": {
                "shape": {
                  "enum": [
                    "round",
                    "square"
                  ],
                  "description": "Rod section (default round)."
                },
                "sizeMm": {
                  "type": "number",
                  "minimum": 2,
                  "maximum": 12,
                  "description": "Rod diameter, or a square rod's width, in millimetres (default 4)."
                },
                "fitClearanceMm": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 0.5,
                  "description": "Clearance around the rod in sockets and holes, in millimetres (default 0.1)."
                },
                "socketDepthMm": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 30,
                  "description": "Depth of the sockets in the terrain, in millimetres (default 6)."
                },
                "joint": {
                  "enum": [
                    "segments",
                    "through"
                  ],
                  "description": "segments: short rods glued between levels. through: one rod per column, rising through holes in the pieces (default segments)."
                }
              }
            }
          }
        }
      ]
    },
    "title": {
      "type": "string",
      "maxLength": 123,
      "description": "Optional engraved title: up to 3 lines separated by \\n, 40 characters each."
    },
    "laser": {
      "type": "object",
      "additionalProperties": false,
      "description": "Laser settings. A work area smaller than the model splits each sheet into pieces that fit the bed.",
      "properties": {
        "kerfMm": {
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "description": "Laser kerf in millimetres (default 0.15)."
        },
        "workAreaWidthMm": {
          "anyOf": [
            {
              "const": 0
            },
            {
              "type": "number",
              "minimum": 20,
              "maximum": 10000
            }
          ],
          "description": "Laser bed width in millimetres; 0 for unlimited (default)."
        },
        "workAreaHeightMm": {
          "anyOf": [
            {
              "const": 0
            },
            {
              "type": "number",
              "minimum": 20,
              "maximum": 10000
            }
          ],
          "description": "Laser bed height in millimetres; 0 for unlimited (default)."
        }
      }
    },
    "markers": {
      "type": "array",
      "maxItems": 20,
      "description": "Points of interest engraved on the model.",
      "items": {
        "type": "object",
        "required": [
          "lat",
          "lon"
        ],
        "additionalProperties": false,
        "properties": {
          "lat": {
            "type": "number",
            "minimum": -85.0511,
            "maximum": 85.0511
          },
          "lon": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "symbol": {
            "enum": [
              "pin",
              "circle",
              "triangle",
              "star",
              "cross"
            ],
            "description": "Marker shape (default pin)."
          },
          "name": {
            "type": "string",
            "maxLength": 60
          }
        }
      }
    }
  }
}

Similar websites

wfsim.app

wfsim.app

A Warframe calculator that simulates the fight instead of estimating it — builder, simulator, optimizer. Every formula cites its source, and the golden tests ar…

live Unverified Media & Personal
101 tools A12 / Act89 / T0 Not yet scored Seen 2026-11-05
enemies_targets_list enemies_target_new enemies_target_copy enemies_target_open enemies_target_set
Inspect tools
commonplace-webmcp.vercel.app

commonplace-webmcp.vercel.app

Commonplace is an editable social reading space built for people and their browser agents.

live Unverified Media & Personal Transact tools
89 tools A10 / Act77 / T2 Not yet scored Seen 2026-11-05
commonplace.get_page_state commonplace_get_page_state commonplace.get_reading_list commonplace_get_reading_list commonplace.get_profile
Inspect tools
pixelforge-studio.appcaster.chatgpt.site

pixelforge-studio.appcaster.chatgpt.site

A professional browser pixel-art editor for drawing, frame animation, palettes, sprite sheets, GIF export, and WebMCP automation.

live Unverified Media & Personal Transact tools
88 tools A12 / Act70 / T6 Not yet scored Seen 2026-11-05
plan_text_creation get_text_creation_status create_from_text claim_text_creation update_text_creation
Inspect tools
pixelite.taskcraft.site

pixelite.taskcraft.site

Pixelite

live Unverified Media & Personal Transact tools
83 tools A4 / Act78 / T1 Not yet scored Seen 2026-11-05
get_document_info list_layers get_active_layer get_selection_info new_document
Inspect tools

Related on Influzer