# Data Source Loading

Discovers connected data sources, adds connectors, and probes tables read-only.

- Repository: https://github.com/microsoft/data-formulator (17644 stars)
- Category: Data and ML
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add microsoft/data-formulator --skill data-loading -g -a claude-code -y`
Codex: `npx skills add microsoft/data-formulator --skill data-loading -g -a codex -y`
Cursor: `npx skills add microsoft/data-formulator --skill data-loading -g -a cursor -y`
Gemini CLI: `npx skills add microsoft/data-formulator --skill data-loading -g -a gemini-cli -y`

## Description

Discover connected data sources, add new data connectors through a user-confirmed form, inspect table metadata, and run bounded read-only probes when the current workspace data is insufficient.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Skill: Data discovery

The workspace tables listed in your context are the data already loaded into the
system, and the only data that can be read directly. Everything these tools
return is *not* loaded yet, it lives in a connected source and only becomes
usable after the user selects a loading option and the server materializes it.

Use these tools to determine whether connected sources contain data needed for
the user's goal. They are read-only: discovering, describing, or probing a
source does not add anything to the workspace analysis inputs.

## Adding a connector

When the user wants to connect a new source, do not merely ask them to navigate
to settings and do not attempt to connect on their behalf.

1. Call `list_connectors` first because available built-ins and plugins vary by
   deployment. For a broad request such as "help me connect", summarize the
   concrete available types and ask which one they use.
2. Once the source type is known, call `describe_connector` when field or auth
   details are useful.
3. **When the requested source type is known and available, you MUST call
   `propose_connection` in this same turn.** Do not stop with text such as
   "I'll open the form", "you'll need to provide", or a list of required
   fields. Only the action opens the form. Include one or two helpful sentences
   alongside the action call explaining what the user should review or supply;
   this text appears above the chat while the form opens on the canvas. Pass
   `prefilled` values the user already supplied, including values parsed from a
   connection string or config snippet. Never invent missing values.
4. The form is only a proposal. The user reviews it and clicks Connect; the
   action must never connect automatically.

Prefilled values may include credentials the user deliberately supplied. Do not
repeat those values in prose or subsequent tool output. They are transient form
seeds and are removed from persisted UI state.

## Discovery sequence

The rest: https://github.com/microsoft/data-formulator/blob/HEAD/py-src/data_formulator/analyst/skills/data-loading/SKILL.md
