Connectors
A connector is anything Dinobase can read from (and often write back to): a SaaS API, a database, a file path, an MCP server, or a custom REST endpoint. Each connector becomes a schema in DuckDB.
| Category | Examples | Sync needed? | Storage |
|---|---|---|---|
| SaaS APIs | Stripe, HubSpot, GitHub | Yes | dlt syncs to parquet |
| Databases | PostgreSQL, MySQL, Snowflake | Yes | dlt syncs to parquet |
| Files | Parquet, CSV, S3, GCS | No | DuckDB reads files directly |
| MCP servers | Any stdio/SSE/HTTP MCP server | Yes | Tool output cached as JSON views |
| Custom REST | Any REST API via local YAML config | Yes/live | dlt fetches, cached as JSON views |
The add command
Section titled “The add command”dinobase add <type> [credentials] [options]Credential resolution order
Section titled “Credential resolution order”- CLI flags —
--api-key sk_live_... - Environment variables —
STRIPE_SECRET_KEY - Interactive prompt — asks if neither is set
# These are equivalent:dinobase add stripe --api-key sk_live_...
export STRIPE_SECRET_KEY=sk_live_...dinobase add stripeCustom naming
Section titled “Custom naming”By default, the connector name matches the type. Use --name for multiple instances:
dinobase add stripe --api-key sk_live_... --name stripe_proddinobase add stripe --api-key sk_test_... --name stripe_testCreates separate schemas: stripe_prod.* and stripe_test.*.
Sync intervals
Section titled “Sync intervals”Set per-connector intervals (used with dinobase sync --schedule):
dinobase add stripe --api-key sk_live_... --sync-interval 30mdinobase add hubspot --api-key pat-... --sync-interval 1hSupported formats: 30s, 5m, 1h, 6h, 1d.
SaaS API connectors
Section titled “SaaS API connectors”Powered by dlt verified sources and REST API connectors.
dinobase add stripe --api-key sk_live_...dinobase add hubspot --api-key pat-na1-...dinobase syncAfter syncing, data is stored as parquet and queryable as stripe.*, hubspot.*, etc.
See SaaS APIs reference for all supported services.
Database connectors
Section titled “Database connectors”Connect via connection string (SQLAlchemy-compatible):
dinobase add postgres --connection-string postgresql://user:pass@host:5432/dbdinobase add mysql --connection-string mysql://user:pass@host:3306/dbdinobase add snowflake --connection-string snowflake://user:pass@account/db/schemadinobase add sqlite --path /path/to/database.dbSee Databases reference for all supported databases.
File connectors
Section titled “File connectors”No sync needed. DuckDB reads files at query time through views.
# Local directory of parquet filesdinobase add parquet --path ./data/events/ --name analytics
# Single CSV filedinobase add csv --path ./exports/report.csv --name report
# S3dinobase add parquet --path s3://bucket/prefix/ --name warehouse
# GCSdinobase add parquet --path gs://bucket/data/ --name warehousePath resolution
Section titled “Path resolution”| Input | Behavior |
|---|---|
Directory (./data/) | Finds all matching files recursively |
Single file (./data/events.parquet) | One table from the file |
Glob (./data/*.parquet) | Matches by pattern |
S3 URL (s3://bucket/prefix/) | DuckDB reads from S3 at query time |
GCS URL (gs://bucket/prefix/) | DuckDB reads from GCS at query time |
Each file becomes a table named after its filename: events.parquet becomes the events table.
See Files reference for more details.
Custom REST connectors
Section titled “Custom REST connectors”Connect any REST API endpoint by writing a local YAML config. Data is fetched via dlt (handles auth, pagination) and cached as JSON files that DuckDB queries via read_json_auto().
dinobase connector create posthog_flags \ --url "https://app.posthog.com/api/" \ --endpoint "projects/123/feature_flags/" \ --data-selector resultsdinobase add posthog_flags --api-key phx_xxxdinobase query "SELECT name, active FROM posthog_flags.feature_flags"See the full Custom REST Connectors reference for the YAML format, auth types, fetch modes, and connector management commands.
MCP server connectors
Section titled “MCP server connectors”Connect any MCP server (stdio, SSE, or streamable HTTP) as a connector. Dinobase auto-discovers read-only tools and syncs their output as SQL tables. For writes or parameterized calls, use dinobase mcp call or the Python API.
dinobase connector create posthog_mcp \ --transport stdio \ --command "npx -y @posthog/mcp-server"dinobase sync posthog_mcpdinobase query "SELECT * FROM posthog_mcp.list_projects LIMIT 10"See the full MCP Server Connectors reference for the YAML format, tool-selection rules, and direct tool-call examples (CLI + Python).
Viewing configured connectors
Section titled “Viewing configured connectors”# List all available connector typesdinobase connectors
# See what's actually connected and loadeddinobase status --prettyRemoving a connector
Section titled “Removing a connector”Edit ~/.dinobase/config.yaml directly to remove a connector entry. Data stays in DuckDB until overwritten.