Getting Started
Get up and running with Dinobase in under 5 minutes.
Install
Section titled “Install”curl -fsSL https://dinobase.ai/install.sh | bashuv tool install dinobasepip install dinobasepipx install dinobaseRequires Python 3.10+.
Initialize
Section titled “Initialize”dinobase initThis creates ~/.dinobase/ with a config file and DuckDB database.
Add a connector
Section titled “Add a connector”File connectors (instant)
Section titled “File connectors (instant)”The fastest way to start — no sync, no API keys:
dinobase add parquet --path ./data/events/ --name analyticsdinobase add csv --path ./exports/customers.csv --name customersSaaS APIs
Section titled “SaaS APIs”Connect with an API key:
dinobase add stripe --api-key sk_live_...dinobase add hubspot --api-key pat-na1-...dinobase syncOr connect via OAuth (browser-based authorization):
dinobase auth hubspotdinobase auth salesforcedinobase syncDatabases
Section titled “Databases”dinobase add postgres --connection-string postgresql://user:pass@host/dbdinobase syncMCP servers
Section titled “MCP servers”Connect any MCP server as a connector. Dinobase discovers the server’s read-only tools and syncs their output as SQL tables:
# stdio (local process)dinobase connector create posthog_mcp \ --transport stdio \ --command "npx -y @posthog/mcp-server"dinobase sync posthog_mcp
# SSE or streamable HTTPdinobase connector create my_server \ --transport sse \ --url "https://server/sse"After syncing, query the data like any other connector:
dinobase query "SELECT * FROM posthog_mcp.list_projects LIMIT 10"To call tools directly (for writes or tools with required arguments):
dinobase mcp call posthog_mcp.dashboard-get '{"id": 1118504}'See MCP Server Connectors for full details.
See all available connectors
Section titled “See all available connectors”dinobase connectors --available --prettyLists all 100+ supported connectors grouped by category (SaaS APIs, databases, cloud storage, files). See Connectors for full details and Connectors Reference for the complete list.
Explore your data
Section titled “Explore your data”# What connectors are configured?dinobase status --pretty
# Inspect a table's columns and typesdinobase describe stripe.customers --prettyExample describe output:
stripe.customers (180 rows)
id VARCHAR -- Unique identifier for the object. email VARCHAR -- The customer's email address. Can be null created INTEGER -- Time at which the object was created. Unix timestamp. Use to_timestamp() to convert. delinquent BOOLEAN -- Whether the customer has an overdue invoice.Column descriptions come from upstream APIs — Stripe’s OpenAPI spec, HubSpot’s Properties API, Postgres column comments. See Schema Annotations for how to add your own.
Run a query
Section titled “Run a query”dinobase query "SELECT COUNT(*) FROM stripe.customers" --prettyCross-connector join:
dinobase query " SELECT s.email, s.name, h.company, d.amount FROM stripe.customers s JOIN hubspot.contacts h ON s.email = h.email JOIN hubspot.deals d ON h.id = d.contact_id WHERE d.dealstage = 'closedwon' ORDER BY d.amount DESC LIMIT 10" --prettyAll queries use DuckDB SQL syntax. Tables are referenced as schema.table. See Querying Data for more SQL patterns and join strategies.
Set up an agent
Section titled “Set up an agent”Dinobase works with any AI agent. One command installs the MCP config for your client:
Claude Code
Section titled “Claude Code”# One-liner — installs Dinobase and configures Claude Code:curl -fsSL https://dinobase.ai/install.sh | bash -s -- claude-code
# Or if Dinobase is already installed:dinobase install claude-codeOr use the CLI directly — no configuration needed:
dinobase info # what data is availabledinobase describe X # column detailsdinobase query "..." # execute SQLSee the Claude Code integration guide for full details.
Claude Desktop
Section titled “Claude Desktop”# One-liner — installs Dinobase and configures Claude Desktop:curl -fsSL https://dinobase.ai/install.sh | bash -s -- claude-desktop
# Or if Dinobase is already installed:dinobase install claude-desktopWrites the config to your Claude Desktop config file automatically. See the Claude Desktop integration guide.
Cursor
Section titled “Cursor”# One-liner — installs Dinobase and configures Cursor:curl -fsSL https://dinobase.ai/install.sh | bash -s -- cursor
# Or if Dinobase is already installed:dinobase install cursorWrites .cursor/mcp.json in your project root. See the Cursor integration guide.
OpenClaw
Section titled “OpenClaw”openclaw skills install dinobaseSee the OpenClaw integration guide.
Other agents
Section titled “Other agents”Dinobase integrates with many AI frameworks. See the full list of integrations.
Keep data fresh
Section titled “Keep data fresh”Set freshness thresholds and sync intervals per connector:
dinobase add stripe --api-key ... --freshness 30m --sync-interval 15mRun a background sync daemon:
dinobase sync --schedule --interval 30mOr sync alongside the MCP server:
dinobase serve --sync --sync-interval 30mSee Syncing & Scheduling for freshness thresholds, live fetch, and scheduled sync details.
Try with sample data
Section titled “Try with sample data”Generate realistic test data without any API keys:
pip install fakerpython scripts/generate_sample_data.pydinobase initdinobase add parquet --path sample_data/ --name demodinobase query "SELECT COUNT(*) FROM demo.customers" --prettyNext steps
Section titled “Next steps”- Connectors — all connector types in detail
- Querying Data — SQL patterns, joins, aggregations
- Syncing & Scheduling — freshness, live fetch, daemon mode
- Schema Annotations — add context for AI agents
- Mutations — write data back to upstream APIs
- MCP Integration — how the MCP server works
- Connectors Reference — full list of 100+ connectors
- CLI Reference — all commands and flags