Skip to main content
Glama
update_consignee_example.py6.12 kB
#!/usr/bin/env python3 """Example showing how to update the consignee name field using the new update_column function.""" import asyncio from mcp_client import MCPClient async def update_consignee_example(): """Example of updating consignee field to keep only the company name.""" # Initialize MCP client client = MCPClient() await client.connect("csv-editor") # Load the CSV file print("Loading CSV file...") result = await client.call_tool( "load_csv", { "file_path": "/home/santosh/projects/csv-editor/tests/sample_data/123456/1753698447530_BOL_Lubecon USA LLC_GHY 1.csv" } ) session_id = result["session_id"] print(f"Session created: {session_id}") print(f"Loaded {result['row_count']} rows with {result['column_count']} columns") # Get current consignee value print("\nGetting current consignee value...") info_result = await client.call_tool( "get_session_info", {"session_id": session_id} ) print(f"Columns: {info_result['columns'][:10]}...") # Show first 10 columns # Method 1: Using 'split' operation to extract company name print("\n--- Method 1: Using 'split' operation ---") print("Extracting company name (everything before the dash)...") result = await client.call_tool( "update_column", { "session_id": session_id, "column": "Consignee Name", "operation": "split", "pattern": " -", # Split on " -" (space and dash) "value": 0 # Take the first part (index 0) } ) if result["success"]: print(f"✓ Column updated successfully!") print(f" Original: {result['original_sample'][0] if result['original_sample'] else 'N/A'}") print(f" Updated: {result['updated_sample'][0] if result['updated_sample'] else 'N/A'}") # Export the result print("\nExporting updated CSV...") export_result = await client.call_tool( "export_csv", { "session_id": session_id, "file_path": "/tmp/updated_bol_method1.csv", "format": "csv" } ) print(f"✓ Exported to: {export_result['file_path']}") # Close session await client.call_tool("close_session", {"session_id": session_id}) # Method 2: Using 'replace' operation with regex print("\n--- Method 2: Using 'replace' with regex ---") # Load the file again result = await client.call_tool( "load_csv", { "file_path": "/home/santosh/projects/csv-editor/tests/sample_data/123456/1753698447530_BOL_Lubecon USA LLC_GHY 1.csv" } ) session_id = result["session_id"] print("Removing location information using regex...") result = await client.call_tool( "update_column", { "session_id": session_id, "column": "Consignee Name", "operation": "replace", "pattern": r"\s*-.*$", # Match everything from " -" to end of string "replacement": "" # Replace with empty string } ) if result["success"]: print(f"✓ Column updated successfully!") print(f" Original: {result['original_sample'][0] if result['original_sample'] else 'N/A'}") print(f" Updated: {result['updated_sample'][0] if result['updated_sample'] else 'N/A'}") # Export the result export_result = await client.call_tool( "export_csv", { "session_id": session_id, "file_path": "/tmp/updated_bol_method2.csv", "format": "csv" } ) print(f"✓ Exported to: {export_result['file_path']}") # Close session await client.call_tool("close_session", {"session_id": session_id}) # Method 3: Using 'extract' operation print("\n--- Method 3: Using 'extract' with regex ---") # Load the file again result = await client.call_tool( "load_csv", { "file_path": "/home/santosh/projects/csv-editor/tests/sample_data/123456/1753698447530_BOL_Lubecon USA LLC_GHY 1.csv" } ) session_id = result["session_id"] print("Extracting company name using regex...") result = await client.call_tool( "update_column", { "session_id": session_id, "column": "Consignee Name", "operation": "extract", "pattern": r"^([^-]+)", # Extract everything before the first dash } ) if result["success"]: print(f"✓ Column updated successfully!") print(f" Original: {result['original_sample'][0] if result['original_sample'] else 'N/A'}") print(f" Updated: {result['updated_sample'][0] if result['updated_sample'] else 'N/A'}") # Also clean up any trailing spaces print("\nCleaning up whitespace...") result = await client.call_tool( "update_column", { "session_id": session_id, "column": "Consignee Name", "operation": "strip" } ) print(f"✓ Whitespace cleaned") # Export the result export_result = await client.call_tool( "export_csv", { "session_id": session_id, "file_path": "/tmp/updated_bol_method3.csv", "format": "csv" } ) print(f"✓ Exported to: {export_result['file_path']}") # Close session await client.call_tool("close_session", {"session_id": session_id}) await client.disconnect() print("\n✅ All methods completed successfully!") print("\nThe new 'update_column' function makes it simple to:") print(" • Extract parts of text (split, extract)") print(" • Clean up text (strip, replace)") print(" • Transform text (upper, lower)") print(" • Fill missing values") print("\nCheck the exported files in /tmp/ to see the results.") if __name__ == "__main__": asyncio.run(update_consignee_example())

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/santoshray02/csv-editor'

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