measure-mcp
AI tape measure: cookware capacity, recipe scaling, room fit, Amazon FBA size tiers, moving volume.
Connector by purahmanian · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying measure-mcp?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/purahmanian-measure-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 14 read · 11 write · 0 delete · 1 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 26
Read from the source code; the running server may list different tools.
Read 14 · Look things up without changing anything.
kitchen_measure_vesselmeasure_depth_infomeasure_distance_between_pointsmeasure_find_filesmeasure_list_reference_objectsmeasure_objectmeasure_open_captureroom_check_doorwayroom_check_fitroom_floor_plan_svgroom_list_objectsroom_list_openings
Show 2 more tools
room_list_wallsroom_load_scan
Write 11 · Create, change, send or run things.
kitchen_scale_recipekitchen_vessel_from_dimensionsmoving_cube_sheet_lookupmoving_data_infomoving_estimate_from_inventorymoving_estimate_from_scanmoving_estimate_objectmoving_export_inventorymoving_recommend_containermoving_recommend_storagemoving_recommend_truck
Not yet classified 1 · We could not tell from the name and description.
room_summary
Files it touches
- Any path the agent passes to its tools
Tools (26)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
kitchen_measure_vesselCapacity of a bowl, baking dish, cake pan, sheet pan or pot from one depth capture or 3D scan (to scale a recipe). Camera looking down into the upright vessel on a flat surface (45 degrees above the table or steeper), whole rim in frame. path: LiDAR/Portrait HEIC, capture bundle (folder or .zip), metric depth file (16-bit PNG in mm, TIFF or NPZ in meters), a plain photo, or a 3D scan: a Scaniverse, Polycam or 3D Scanner App OBJ or PLY (a .zip with the .obj, .mtl and texture is fine). A scan needs the vessel upright on a table with some table in view; it is the object nearest the middle, clutt…
kitchen_scale_recipeScale a recipe written for one pan to another vessel, with kitchen-friendly amounts. ingredients: ONE text block, an ingredient per line (paste the list as is), or a list of strings ("2 1/4 cups flour", "3 eggs", "1/2 cup (115 g) butter, melted") or {"amount", "unit", "name"} objects. A line with no number stays unscaled and is listed in warnings. source_vessel: the pan the recipe was written for; target_vessel: the pan to use now. Each is a `vessel` object from kitchen_measure_vessel or kitchen_vessel_from_dimensions, or just a name ("9x13", "8 inch round", "half sheet"); vessels_resolved sa…
kitchen_vessel_from_dimensionsBuild a vessel and its capacity from a standard pan name or typed dimensions; no photo, always works. Pass EITHER preset OR dimensions (both is an error). preset takes natural names: "9x13", "9 x 13 inch pan", "8 inch round", "8-inch cake pan", "half sheet", "loaf pan", "bundt", "2 qt saucepan", "10 inch skillet", "23x33 cm"... Presets include square/round/springform pans, 9x13, loaf pans, quarter/half/full sheets, pie plate, skillets, bundt and tube pans, one muffin cup, casseroles and pots by quart. The result says which preset it resolved to (preset.resolved_to, preset.match exact|alias|pa…
measure_depth_infoCheck what a photo or depth file contains BEFORE measuring from it. path: HEIC/HEIF, TIFF, 16-bit PNG, NPZ, JPEG, or a capture-app bundle (folder or .zip). Returns summary (quote it), info {kind, has_depth, depth_size [w, h], accuracy absolute|relative, source, intrinsics_origin, valid_fraction, warnings}, advice and capabilities {monocular_depth, heic, usd}. accuracy "relative" needs a reference object; intrinsics_origin "assumed" means the camera field of view is a guess (every size is then capped at low confidence with a wide +/-). A file with no depth is a plain photo: see advice for the …
measure_distance_between_pointsStraight-line distance between two pixels of a depth capture (a doorway width, a shelf gap). path: LiDAR/Portrait HEIC, capture bundle or metric depth file (TIFF, 16-bit PNG in mm, NPZ). point_a and point_b: [x, y] in PHOTO pixels (depth-map pixels when there is no photo). rgb_path: optional original photo (EXIF gives the focal length). reference: see measure_list_reference_objects; with a plain photo the two points must lie on the reference's surface. units: metric|imperial|both. Returns summary (quote it), confidence, measurements [distance] (+/- about 95%), warnings. A depth file without c…
measure_find_filesList recent measurable files on this computer, newest first, with what each contains. When the user says "this photo" or "the scan I just took" in chat you have NO file path: ask them to save it to ~/measure-mcp-inbox (or AirDrop it to Downloads), then call this tool and use the path it returns. folder: look only there (direct children, no recursion); default: $MEASURE_MCP_INBOX, ~/Downloads, ~/Desktop, ~/measure-mcp-inbox. limit: 1-100 (default 20). Finds HEIC/HEIF, JPEG, depth TIFF/PNG/NPZ, capture .zip or folders, PLY/OBJ/USDZ and RoomPlan/scan JSON. Each file: path, size_bytes, modified, …
measure_list_reference_objectsList everyday objects of known size (credit_card, us_quarter, us_letter, a4, half_sheet_pan, dollar_bill) that give a photo a metric scale, and how to pass one as `reference`. Lay it flat on the same surface as the thing measured, fully visible, then pass reference={"type": key, "corners": [[x,y] x4 in photo pixels, clockwise from top-left]} (discs: "bbox"). Needed for relative depth; it also fixes a guessed field of view, and measures a flat object's footprint in a plain photo.
measure_objectSize (length, width, height) of one object standing on a flat surface, from a depth capture or 3D scan. path: LiDAR/Portrait HEIC, capture bundle (folder or .zip), a metric depth file (TIFF, 16-bit PNG in mm, NPZ), or a 3D scan: a Scaniverse, Polycam or 3D Scanner App OBJ or PLY export (a .zip holding the .obj plus its .mtl and texture is fine). A scan must show the object standing on a table; the object is the one nearest the middle, as a gravity-aligned box, and rgb_path, bbox, point and reference do not apply to it. The file's units and up axis are detected and reported in the result's `sc…
measure_open_captureDescribe a capture bundle from the measure-mcp iOS app (a folder or .zip): depth.tiff, confidence, colour image and a capture.json sidecar with intrinsics, pose and device. Returns summary (quote it), depth_size, source (lidar), accuracy, valid_fraction, depth_range_m, intrinsics. Pass the same path to kitchen_measure_vessel, measure_object, measure_distance_between_points to measure.
moving_cube_sheet_lookupLook up how many cubic feet (and pounds) the movers' cube sheet assigns to an item, with sources. Use this to answer "why 50 cu ft for my sofa?" or to find the right catalog name before building an inventory. Accepts names, aliases, plurals, small typos and size hints ("55 inch tv", "18 cu ft fridge"). Each match lists the value, the range across published sheets, alternative values, the weight at the movers' 7 lb per cu ft rule, and whether the row was re-verified against its source. Never includes prices.
moving_data_infoReport the versions, as-of dates, source URLs, verified/unverified row counts and staleness warnings of the moving data files (cube sheet, trucks, containers, storage units).
moving_estimate_from_inventoryEstimate the volume (cu ft / m3) and weight of a move from a list of belongings. Give ``inventory_text`` (one block or a list of lines) such as "queen bed, 3-seat sofa, 20 medium boxes", and/or structured ``items``. Text understands quantities ("3x", "two", "a dozen"), plurals, small typos, "Bedroom:" headers and notes in parentheses. Items it cannot match are returned in ``unresolved`` and are NOT in the total; assumed sizes are listed in ``needs_review``: ask the user about them rather than hiding them.
moving_estimate_from_scanEstimate a move from a RoomPlan room scan (JSON export, USDZ, or a PLY/OBJ the room tools can load). Pass ``path`` (one merged scan) or ``paths`` (one file per room). Scanned furniture (sofa, bed, table, storage, appliances...) is mapped to cube-sheet sizes; built-in fixtures (sink, toilet, bathtub, built-in cabinets) are excluded unless fixture_policy="include_all". IMPORTANT: a scan only sees large furniture, so boxes, clothes, books and kitchenware are missing: read ``coverage_warning``, ask the user about boxes, and pass them as ``extra_items`` (same item format as moving_estimate_from_in…
moving_estimate_objectVolume of one oddly shaped object from measured size, ready to add to an inventory. Give ``dims`` ("36 x 72 x 12 in", [36, 72, 12] with dims_unit, or {length,width,height}; any order, default unit inches, no edge over 10 m) or ``path`` to a depth capture of the object on a surface, or a 3D scan export of it (a Scaniverse, Polycam or 3D Scanner App OBJ or PLY; a .zip holding the .obj, .mtl and texture is fine; the object is the one nearest the middle of the scan). For a scan the file's units and up axis are detected and reported in the notes; if that is wrong, pass scan_units (m|cm|mm|in: what…
moving_export_inventoryTurn an estimate into a printable or shareable inventory list for movers, insurance or storage. Pass ``estimate_id`` from moving_estimate_* (or the full dict from detail='full'). ``html`` has print CSS (open in a browser, Save as PDF); ``markdown``, ``csv`` and ``json`` come back inline in ``content`` when small. Files are only written into the server's output folder (MEASURE_MCP_OUTPUT_DIR, default ~/measure-mcp-output): ``output_name`` is a plain file name (no folders; the extension follows ``format``), an existing file is never overwritten, and the result's ``path`` says where it went. The…
Show 11 more tools
moving_recommend_containerPick portable moving containers (PODS 8/12/16 ft, U-Haul U-Box) for a load, by volume AND weight limit. Containers have hard weight limits that dense loads (books, tools) can hit before the volume is full; ``weight_binding`` says when weight, not volume, decides the count. Returns a plan such as [{"container_id": "pods.16ft", "count": 1}] per family. PODS capacities come from third-party sources (marked unverified): confirm with the provider. Input as in moving_recommend_truck. No prices.
moving_recommend_storagePick a self-storage unit size (5x5 up to 10x30) for a load, leaving an access aisle. Unit volume is floor area times ceiling height (8 ft is typical; pass ceiling_ft if the facility differs). Usable space is 0.65-0.80 of that (packing efficiency minus 0.05 for an aisle). Also reports the next smaller unit and how much would not fit, and two-unit combinations. Input as in moving_recommend_truck. No prices.
moving_recommend_truckPick the smallest rental truck or van (U-Haul, Penske, Budget) for a load, by volume AND payload. Pass ``estimate_id`` (or the dict) from moving_estimate_*, or bare volume_cuft / weight / box_fraction (not both an estimate and volume_cuft). Loads never fill a truck completely, so the required capacity is volume divided by a packing efficiency of 0.70-0.85 (more boxes pack tighter; override with ``efficiency``). ``size_range`` shows whether the answer holds across the estimate's error. Capacities are provider-published approximations. U-Haul does not publish payloads here: for those vehicles t…
room_check_doorwayCan this item go through that door or open passage? Tests a rigid box through the clear opening, turning it any way it can go. ``dims`` as in room_check_fit but all three sizes are needed: "84 x 37 x 34 in", [84, 37, 34] with ``dims_unit``, or {"name": "sofa", "width": 84, "depth": 37, "height": 34, "unit": "in", "diagonal_depth": 31, "leg_height": 6}. Real sofas are not boxes: give ``diagonal_depth`` (top-back corner to bottom-front corner of the frame, the figure movers use) when known, and ``leg_height`` if the legs unscrew. ``opening_id`` is a door or open passage from room_list_openings;…
room_check_fitWill this item fit? Checks an item's footprint against a wall's free run or the whole room and returns a verdict with margin. ``dims`` is the item size, width x depth x height (width = longest front-facing side, depth = front to back): a string such as "84 x 37 x 34 in", "60x30 in" (height unknown), "2.1 x 0.95 x 0.9 m"; a list such as [84, 37, 34] with ``dims_unit`` (default inches, and the reply says so); or an object like {"name": "sofa", "width": 84, "depth": 37, "height": 34, "unit": "in"} ({"length", "width", "height"} is read as width = length, depth = width). ``item_name`` labels it. …
room_floor_plan_svgDraw the room as a floor plan SVG: walls with dimension lines, doors with swing arcs, windows, furniture, and optionally a proposed item. Pass ``placement`` (one entry of ``placements`` from room_check_fit, with an optional "verdict" key to color it) to draw the item; ``dims`` / ``item_name`` only supply its label. Dimensions are written in the requested ``units``. The SVG is ALWAYS saved into the server's output folder (MEASURE_MCP_OUTPUT_DIR, default ~/measure-mcp-output) as ``output_name`` (a plain file name; folders in it are dropped and ``.svg`` is enforced, default "floor_plan") and the…
room_list_objectsList furniture and appliances found in the scan with category, size (width x depth x height), footprint, height off the floor and nearest wall. RoomPlan scans carry Apple categories (sofa, table, bed, storage, refrigerator, ...); raw point clouds give ``unknown``. Filter by ``category`` (case-insensitive). Long listings are capped (``detail="full"`` for all). ``load_options`` as in room_summary.
room_list_openingsList doors, windows and open passages with width, height, sill and head height, wall, position and swing side. Filter by ``kind`` (door, window, opening, gap_unknown) or ``wall_id``, which takes a wall id or words: "longest wall", "wall with the door", "wall behind the sofa" (see room_check_fit). Door sizes from RoomPlan may be the leaf size rather than the clear opening, so measure a tight door with a tape. Only ``door``, ``opening`` and ``gap_unknown`` entries can be used with room_check_doorway. ``load_options`` as in room_summary.
room_list_wallsList the walls with a plain-language ``label`` (id, length, what is on it), length, height, direction, free segments between doors/openings, and what stands along them. ``free_segments`` leave out door and opening spans (plus a 5 cm jamb margin); windows do not cut a wall because they only limit height. ``min_free_length_m`` hides walls whose longest free run is shorter (meters). Use this to find a wall for a bed, sofa or bookcase and to map "the wall behind the sofa" to an id. ``u0``/``u1`` are distances in meters along the wall from its start; ``inward_normal`` points into the room. Long li…
room_load_scanRead a room scan and report what was found (walls, doors, windows, objects, size, detected units and up axis). ``path`` is the scan file. Supported: RoomPlan CapturedRoom JSON (several encodings) and measure-room JSON; USD/USDZ (RoomPlan export or any labeled scene; needs ``pip install measure-mcp[usd]``); PLY and OBJ point clouds or meshes, whose floor, ceiling, walls, door/window gaps and furniture are recovered geometrically. Units (m, cm, mm, in, ft) and the up axis are detected from the geometry, never trusted from file metadata; pass ``scan_units`` / ``up_axis`` only to override. ``know…
room_summaryOverall size of the room: footprint shape and vertices, floor area, ceiling height, volume, wall lengths, openings and objects. ``path`` is the scan file. Each measurement has a value, a +/- (about 95%), a confidence and a display string in the requested ``units``. The ``summary`` field is a sentence that can be quoted as is. Every wall has a ``label`` such as "wall_3: 4.20 m, has door_1 (door), with sofa obj_1". ``detail="full"`` adds measurement names and sources and lifts the list caps. ``load_options``: the object returned by room_load_scan, only if it was non-empty (nothing is remembered…
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 55
- Last commit
- Oct 16, 2026 (15 days ago)
- Last release
- Oct 16, 2026 (15 days ago)
- Last package publish
- Oct 16, 2026 (15 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.purahmanian/measure-mcp- Version
- 0.1.0
- Auth
- No auth
- Packages
- pypi measure-mcp
- License
- MIT
- Repository
- github.com/purahmanian/measure-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from purahmanian
- 0.528score
Keepa MCP
purahmanian
MCP server for Keepa Amazon price and sales rank history API
ConnectorBFreshness: BLocalRead-onlyClaude Code +5 - 0.524score
Google Trends MCP
purahmanian
Google Trends MCP server: interest over time, comparisons, related queries, trending searches
ConnectorCFreshness: CLocalRead-only★ 2Claude Code +5 - 0.492score
FL Studio MCP Mac
purahmanian
macOS-first MCP bridge for FL Studio using CoreMIDI and FL Studio Python MIDI scripts.
ConnectorCFreshness: CLocal↓ 33/wkClaude Code +5 - 0.488score
Junglescout MCP
purahmanian
Jungle Scout MCP server: keyword volumes, product database, sales estimates, share of voice
ConnectorCFreshness: CLocalRead-onlyClaude Code +5
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get measure-mcp running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
measure-mcp. Agent Mart. https://agentmart.dev/connectors/purahmanian-measure-mcp (last updated 2026-10-24)