Skip to main content
Glama
santoshray02

CSV Editor

by santoshray02

load_csv_from_url

Import CSV data directly from web URLs into the CSV Editor for processing, enabling remote file access without local downloads.

Instructions

Load a CSV file from a URL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
encodingNoutf-8
delimiterNo,
session_idNo

Implementation Reference

  • Core handler function that downloads CSV from URL using pandas.read_csv, validates URL, loads into session manager, and returns operation result with data preview.
    async def load_csv_from_url(
        url: str,
        encoding: str = "utf-8",
        delimiter: str = ",",
        session_id: Optional[str] = None,
        ctx: Context = None
    ) -> Dict[str, Any]:
        """Load a CSV file from a URL.
        
        Args:
            url: URL of the CSV file
            encoding: File encoding
            delimiter: Column delimiter
            session_id: Optional existing session ID
            ctx: FastMCP context
        
        Returns:
            Operation result with session ID and data info
        """
        try:
            # Validate URL
            is_valid, validated_url = validate_url(url)
            if not is_valid:
                return OperationResult(
                    success=False,
                    message=f"Invalid URL: {validated_url}",
                    error=validated_url
                ).model_dump()
            
            if ctx:
                await ctx.info(f"Loading CSV from URL: {url}")
                await ctx.report_progress(0.1, "Downloading file...")
            
            # Download CSV using pandas (it handles URLs directly)
            df = pd.read_csv(url, encoding=encoding, delimiter=delimiter)
            
            if ctx:
                await ctx.report_progress(0.8, "Processing data...")
            
            # Get or create session
            session_manager = get_session_manager()
            session = session_manager.get_or_create_session(session_id)
            session.load_data(df, url)
            
            if ctx:
                await ctx.report_progress(1.0, "Complete!")
                await ctx.info(f"Loaded {len(df)} rows and {len(df.columns)} columns")
            
            return OperationResult(
                success=True,
                message=f"Successfully loaded CSV from URL",
                session_id=session.session_id,
                rows_affected=len(df),
                columns_affected=df.columns.tolist(),
                data={
                    "shape": df.shape,
                    "source_url": url,
                    "preview": df.head(5).to_dict('records')
                }
            ).model_dump()
            
        except Exception as e:
            if ctx:
                await ctx.error(f"Failed to load CSV from URL: {str(e)}")
            return OperationResult(
                success=False,
                message="Failed to load CSV from URL",
                error=str(e)
            ).model_dump()
  • MCP tool registration with @mcp.tool decorator, which delegates to the imported handler _load_csv_from_url from io_operations.
    @mcp.tool
    async def load_csv_from_url(
        url: str,
        encoding: str = "utf-8",
        delimiter: str = ",",
        session_id: Optional[str] = None,
        ctx: Context = None
    ) -> Dict[str, Any]:
        """Load a CSV file from a URL."""
        return await _load_csv_from_url(url, encoding, delimiter, session_id, ctx)
  • Import of the actual handler function aliased as _load_csv_from_url for use in the registered tool stub.
    from .tools.io_operations import (
        load_csv as _load_csv,
        load_csv_from_url as _load_csv_from_url,
        load_csv_from_content as _load_csv_from_content,
        export_csv as _export_csv,
        get_session_info as _get_session_info,
        list_sessions as _list_sessions,
        close_session as _close_session
    )
  • Re-export of load_csv_from_url from io_operations for compatibility in data_operations module.
    load_csv_from_url,

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