.do
Mcp

DataLake MCP

Model Context Protocol integration for DataLake

DataLake MCP

A managed Apache Iceberg data catalog for large-scale analytics on object storage with ACID transactions and schema flexibility.

Installation

npx @dotdo/mcp install datalake

Tools

datalake_create

Create a new Iceberg data catalog.

Tool Schema:

{
  "name": "datalake_create",
  "description": "Create a new Iceberg data catalog.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_delete

Permanently remove the data lake and all its tables.

Tool Schema:

{
  "name": "datalake_delete",
  "description": "Permanently remove the data lake and all its tables.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_createTable

Create a new Iceberg table in the catalog.

Tool Schema:

{
  "name": "datalake_createTable",
  "description": "Create a new Iceberg table in the catalog.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_dropTable

Remove an Iceberg table from the catalog.

Tool Schema:

{
  "name": "datalake_dropTable",
  "description": "Remove an Iceberg table from the catalog.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_query

Execute SQL queries using R2 SQL engine.

Tool Schema:

{
  "name": "datalake_query",
  "description": "Execute SQL queries using R2 SQL engine.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_insert

Insert data into an Iceberg table.

Tool Schema:

{
  "name": "datalake_insert",
  "description": "Insert data into an Iceberg table.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_update

Update existing records in an Iceberg table.

Tool Schema:

{
  "name": "datalake_update",
  "description": "Update existing records in an Iceberg table.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_delete

Delete records from an Iceberg table.

Tool Schema:

{
  "name": "datalake_delete",
  "description": "Delete records from an Iceberg table.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_snapshot

Create a new snapshot for time-travel queries.

Tool Schema:

{
  "name": "datalake_snapshot",
  "description": "Create a new snapshot for time-travel queries.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_timeTravel

Query data as it existed at a specific point in time.

Tool Schema:

{
  "name": "datalake_timeTravel",
  "description": "Query data as it existed at a specific point in time.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_evolveSchema

Add, rename, or delete columns without rewriting data.

Tool Schema:

{
  "name": "datalake_evolveSchema",
  "description": "Add, rename, or delete columns without rewriting data.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_listTables

List all tables in the catalog.

Tool Schema:

{
  "name": "datalake_listTables",
  "description": "List all tables in the catalog.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

datalake_getSchema

Retrieve the schema for a specific table.

Tool Schema:

{
  "name": "datalake_getSchema",
  "description": "Retrieve the schema for a specific table.",
  "inputSchema": {
    "type": "object",
    "properties": {
      // Tool parameters
    }
  }
}

Resources

datalake/created

Triggered when a new Iceberg data catalog is created.

Resource URI: datalake://created

datalake/deleted

Triggered when data lake is removed.

Resource URI: datalake://deleted

datalake/Table.created

Triggered when a new table is created in the catalog.

Resource URI: datalake://Table.created

datalake/Table.dropped

Triggered when a table is removed from the catalog.

Resource URI: datalake://Table.dropped

datalake/queried

Triggered when SQL query is executed via R2 SQL.

Resource URI: datalake://queried

datalake/Data.inserted

Triggered when data is inserted into a table.

Resource URI: datalake://Data.inserted

datalake/Data.updated

Triggered when records are updated in a table.

Resource URI: datalake://Data.updated

datalake/Data.deleted

Triggered when records are deleted from a table.

Resource URI: datalake://Data.deleted

datalake/Snapshot.created

Triggered when a new snapshot is created.

Resource URI: datalake://Snapshot.created

datalake/Query.timeTraveled

Triggered when historical data is queried.

Resource URI: datalake://Query.timeTraveled

datalake/Schema.evolved

Triggered when table schema is modified.

Resource URI: datalake://Schema.evolved

Usage with Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "datalake": {
      "command": "npx",
      "args": ["-y", "@dotdo/mcp", "serve", "datalake"]
    }
  }
}