← WebMCP Directory

Tool tree

siftio.marouane-kouskous.workers.dev

Developer ToolsTools verified
Website
A local-first data vault. Load your CSV and JSON exports into the browser and let an AI agent query them over WebMCP — without the data ever leaving your machine.
Explore capabilities
    list_datasetsAnswer

    List every dataset currently loaded in the user's local SiftIO vault, with row counts and column schemas. Call this first to discover what is available.

    View tool JSON
    {
      "name": "list_datasets",
      "kind": "answer",
      "impl": "imperative",
      "description": "List every dataset currently loaded in the user's local SiftIO vault, with row counts and column schemas. Call this first to discover what is available.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    }
    list_samplesAnswer

    List the demo datasets bundled with SiftIO that can be loaded into the vault. Call this when list_datasets comes back empty — the vault starts empty in a fresh browser session, and these are the only datasets you can load yourself. Load them with load_sample and query them with the tools rather than fetching the files directly: querying runs in DuckDB over the whole vault, supports joins across datasets, and is recorded in the user's audit log.

    View tool JSON
    {
      "name": "list_samples",
      "kind": "answer",
      "impl": "imperative",
      "description": "List the demo datasets bundled with SiftIO that can be loaded into the vault. Call this when list_datasets comes back empty — the vault starts empty in a fresh browser session, and these are the only datasets you can load yourself. Load them with load_sample and query them with the tools rather than fetching the files directly: querying runs in DuckDB over the whole vault, supports joins across datasets, and is recorded in the user's audit log.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    }
    load_sampleAction

    Load one bundled demo dataset into the local vault by file name, taken from list_samples. This registers query_<table> and describe_<table> tools for it. Only bundled samples can be loaded this way; the user adds their own files by dropping them on the page.

    View tool JSON
    {
      "name": "load_sample",
      "kind": "act",
      "impl": "imperative",
      "description": "Load one bundled demo dataset into the local vault by file name, taken from list_samples. This registers query_<table> and describe_<table> tools for it. Only bundled samples can be loaded this way; the user adds their own files by dropping them on the page.",
      "inputSchema": {
        "type": "object",
        "required": [
          "file"
        ],
        "properties": {
          "file": {
            "type": "string",
            "description": "A file name from list_samples, e.g. \"transactions.csv\"."
          }
        }
      }
    }
    run_sqlAnswer

    Run a read-only SQL SELECT against the local DuckDB vault. Tables are named by the `table` field from list_datasets. Use this to join across datasets. At most 1000 rows are returned. The result echoes the `sql` that ran — quote it when you report a number, so the reader can see what was counted. Amounts may be negative where a dataset records refunds; excluding them is a different question, so say which you did.

    View tool JSON
    {
      "name": "run_sql",
      "kind": "answer",
      "impl": "imperative",
      "description": "Run a read-only SQL SELECT against the local DuckDB vault. Tables are named by the `table` field from list_datasets. Use this to join across datasets. At most 1000 rows are returned. The result echoes the `sql` that ran — quote it when you report a number, so the reader can see what was counted. Amounts may be negative where a dataset records refunds; excluding them is a different question, so say which you did.",
      "inputSchema": {
        "type": "object",
        "required": [
          "sql"
        ],
        "properties": {
          "sql": {
            "type": "string",
            "description": "A single SELECT statement."
          }
        }
      }
    }
    render_chartAction

    Run a read-only SELECT and draw the result in the SiftIO viewport so the user can see it. Use after run_sql when a picture helps. The result echoes the `sql` that ran, alongside `columns` and `rows`.

    View tool JSON
    {
      "name": "render_chart",
      "kind": "act",
      "impl": "imperative",
      "description": "Run a read-only SELECT and draw the result in the SiftIO viewport so the user can see it. Use after run_sql when a picture helps. The result echoes the `sql` that ran, alongside `columns` and `rows`.",
      "inputSchema": {
        "type": "object",
        "required": [
          "sql",
          "kind"
        ],
        "properties": {
          "sql": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "bar",
              "line",
              "scatter",
              "table"
            ]
          },
          "x": {
            "type": "string",
            "description": "Column for the x axis."
          },
          "y": {
            "type": "string",
            "description": "Column for the y axis."
          }
        }
      }
    }
    save_viewAction

    Pin a named query and chart to the user's board so it survives after this conversation ends.

    View tool JSON
    {
      "name": "save_view",
      "kind": "act",
      "impl": "imperative",
      "description": "Pin a named query and chart to the user's board so it survives after this conversation ends.",
      "inputSchema": {
        "type": "object",
        "required": [
          "name",
          "sql",
          "kind"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "sql": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "bar",
              "line",
              "scatter",
              "table"
            ]
          },
          "x": {
            "type": "string"
          },
          "y": {
            "type": "string"
          }
        }
      }
    }
    eject_datasetAction

    Remove a dataset from the local vault. The user is asked to confirm first.

    View tool JSON
    {
      "name": "eject_dataset",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove a dataset from the local vault. The user is asked to confirm first.",
      "inputSchema": {
        "type": "object",
        "required": [
          "table"
        ],
        "properties": {
          "table": {
            "type": "string"
          }
        }
      }
    }