move_items_to_specific_grid_locations
Position items at exact coordinates within a grid container for precise experimental layouts and protocols.
Instructions
Places items at specific coordinates within a grid container
Usage: Precise positioning for experimental layouts or protocols Coordinates: Each item gets an exact (row, column) position Validation: Ensures equal number of items and positions
Returns: Success status and confirmation of final positions
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| target_container_id | Yes | ||
| item_ids | Yes | ||
| grid_locations | Yes |
Implementation Reference
- main.py:1054-1076 (handler)The handler function decorated with @mcp.tool that implements the logic to place specific items at exact grid coordinates in an RSpace inventory grid container using the inv_cli client.@mcp.tool(tags={"rspace", "inventory", "movement"}) def move_items_to_specific_grid_locations( target_container_id: Union[int, str], item_ids: List[str], grid_locations: List[GridLocation] ) -> dict: """ Places items at specific coordinates within a grid container Usage: Precise positioning for experimental layouts or protocols Coordinates: Each item gets an exact (row, column) position Validation: Ensures equal number of items and positions Returns: Success status and confirmation of final positions """ if len(item_ids) != len(grid_locations): raise ValueError("Number of items must match number of grid locations") locations = [i.GridLocation(loc.x, loc.y) for loc in grid_locations] placement = i.ByLocation(locations, *item_ids) result = inv_cli.add_items_to_grid_container(target_container_id, placement) return {"success": result.is_ok(), "results": result.data if hasattr(result, 'data') else str(result)}
- main.py:69-73 (schema)Pydantic model defining the input schema for grid positions (x: column, y: row, 1-based indexing). Used in the tool's grid_locations parameter.class GridLocation(BaseModel): """Specific position within a grid container""" x: int = Field(description="Column position (1-based)") y: int = Field(description="Row position (1-based)")