Installation & configuration
Install
The MCP server ships with the YData SDK — installing the SDK adds a
ydata-mcp-server console script to the environment's bin/:
Which environment?
Install into the Python environment your MCP client will launch the
server from — and note the full path to that environment's
ydata-mcp-server script (e.g. /path/to/env/bin/ydata-mcp-server).
Every client configuration in Connecting a client points
its command at that path, since MCP clients don't inherit your
shell's PATH.
The server communicates over stdio — it's meant to be launched by an MCP client as a subprocess, not run interactively. To explore it interactively during development, use the MCP Inspector instead:
Configure connections
Connector access is configured through named profiles in a JSON file,
never through tool arguments. Set the YDATA_MCP_CONNECTIONS environment
variable (in the client's env block — see Connecting a client)
to the file's path. Tools then reference a connection purely by name — the
file is never read by, or exposed to, the MCP client, so no hostname, bucket
name, or credential ever flows through the AI model's context.
Each profile needs a type plus that connector's own constructor fields.
A minimal file with a single local-filesystem connection:
One example profile per supported type:
{
"prod_s3": {
"type": "s3",
"access_key_id": "AKIA...",
"secret_access_key": "...",
"aws_region": "eu-central-1"
},
"prod_gcs": {
"type": "gcs",
"project_id": "my-gcp-project",
"key_path": "/path/to/service-account.json"
},
"prod_azure_blob": {
"type": "azure_blob",
"account_name": "mystorageaccount",
"account_key": "..."
},
"local_disk": {
"type": "local"
},
"prod_postgres": {
"type": "postgresql",
"username": "app_user",
"password": "...",
"database": "app_db",
"hostname": "db.internal.example.com",
"port": 5432,
"schema": "public"
},
"prod_mysql": {
"type": "mysql",
"username": "app_user",
"password": "...",
"database": "app_db",
"hostname": "db.internal.example.com",
"port": 3306
},
"prod_snowflake": {
"type": "snowflake",
"username": "app_user",
"password": "...",
"database": "app_db",
"hostname": "myaccount.snowflakecomputing.com",
"warehouse": "COMPUTE_WH",
"schema": "PUBLIC"
},
"prod_azure_sql": {
"type": "azure_sql",
"username": "app_user",
"password": "...",
"database": "app_db",
"hostname": "myserver.database.windows.net",
"port": 1433
},
"prod_bigquery": {
"type": "bigquery",
"project_id": "my-gcp-project",
"key_path": "/path/to/service-account.json"
},
"prod_databricks_lakehouse": {
"type": "databricks_lakehouse",
"host": "https://my-workspace.cloud.databricks.com",
"access_token": "dapi...",
"staging_credentials": {
"access_key_id": "AKIA...",
"secret_access_key": "..."
},
"cloud": "aws",
"catalog": "main",
"schema": "default"
},
"shared_databricks_data": {
"type": "databricks_unity_catalog",
"profile": "/path/to/delta-sharing-config.share"
}
}
Every field beyond type is passed straight through to that connector's own
constructor — see the supported connectors
documentation for what each accepts.
An unknown connection name in a tool call raises a clear error listing what is configured, so a typo is immediately visible in the conversation.
Configure LLM providers (optional)
Six tools call out to an LLM — generate_document,
generate_document_dataset, generate_document_from_template,
generate_qa_pairs, generate_llm_schema, and
generate_llm_synthetic_data. They resolve provider credentials the same way
connections do: named profiles in a separate JSON file, pointed to by the
YDATA_MCP_LLM_CONFIG environment variable. Skip this file entirely if you
won't use those tools.
{
"providers": {
"anthropic": {
"model": "claude-opus-4-6",
"subscription_key": "sk-ant-..."
},
"openai": {
"model": "gpt-5",
"subscription_key": "sk-..."
}
}
}
Supported provider names are openai, anthropic, gemini, and
workbench.
No default provider — by design
Every LLM-backed tool requires an explicit provider argument on each
call. There is no default or "active" provider: the caller always states
which one to use, and an unconfigured name raises an error listing the
providers that are actually configured.
Verify
With the client configured (next page), ask it something like "list the
connections the ydata MCP server has" — it should call list_connections
and report the names and types from your connections file, and
test_connection can health-check any of them.
