← WebMCP Directory

Tool tree

airlock-webmcp.vercel.app

Productivity & BusinessTools verified
Website
An analytics workspace where an AI agent does the whole analysis without ever seeing your data.
Explore capabilities
    get_workspace_stateAnswer

    Return what is currently loaded and on screen: datasets with row counts, the active privacy settings, and how many individual data values have been released to an agent this session. Call this first to orient yourself before any other tool. Read-only and cheap.

    View tool JSON
    {
      "name": "get_workspace_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return what is currently loaded and on screen: datasets with row counts, the active privacy settings, and how many individual data values have been released to an agent this session. Call this first to orient yourself before any other tool. Read-only and cheap.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    list_datasetsAnswer

    List the datasets loaded in this browser tab with their ids, row counts, source filenames and load times. Column names are deliberately not included; use describe_dataset for the schema so an orientation call does not pull one it does not need.

    View tool JSON
    {
      "name": "list_datasets",
      "kind": "answer",
      "impl": "imperative",
      "description": "List the datasets loaded in this browser tab with their ids, row counts, source filenames and load times. Column names are deliberately not included; use describe_dataset for the schema so an orientation call does not pull one it does not need.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    get_active_selectionAnswer

    Return what the human is looking at right now: focused dataset, selected chart, highlighted series, active filter, or selected notebook text. Call this when the user points at something on screen ('why these?', 'explain this bar'). Read-only.

    View tool JSON
    {
      "name": "get_active_selection",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return what the human is looking at right now: focused dataset, selected chart, highlighted series, active filter, or selected notebook text. Call this when the user points at something on screen ('why these?', 'explain this bar'). Read-only.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    load_sample_datasetAction

    Load a bundled synthetic dataset into the workspace so there is something to analyse. 'payroll_2026' is a 4,000-row HR payroll export with salary, grade, department, gender, tenure and free-text notes. Loading a dataset also makes the inspection and query tools available, which are not registered on an empty workspace.

    View tool JSON
    {
      "name": "load_sample_dataset",
      "kind": "act",
      "impl": "imperative",
      "description": "Load a bundled synthetic dataset into the workspace so there is something to analyse. 'payroll_2026' is a 4,000-row HR payroll export with salary, grade, department, gender, tenure and free-text notes. Loading a dataset also makes the inspection and query tools available, which are not registered on an empty workspace.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "enum": [
              "payroll_2026"
            ],
            "description": "Identifier of the bundled sample dataset to load."
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    }
    request_raw_rowsAction

    Request individual rows from the human through the airlock. The query is planned but not returned until the human approves the exact rows in a modal. Use only when aggregates and profile_column cannot answer the question. Do not re-ask for the same rows after a denial. Prefer profile_column for distributions.

    View tool JSON
    {
      "name": "request_raw_rows",
      "kind": "act",
      "impl": "imperative",
      "description": "Request individual rows from the human through the airlock. The query is planned but not returned until the human approves the exact rows in a modal. Use only when aggregates and profile_column cannot answer the question. Do not re-ask for the same rows after a denial. Prefer profile_column for distributions.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "sql": {
            "type": "string",
            "minLength": 1
          },
          "row_limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          },
          "columns": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "justification": {
            "type": "string",
            "minLength": 20
          }
        },
        "required": [
          "sql",
          "row_limit",
          "columns",
          "justification"
        ],
        "additionalProperties": false
      }
    }