Getting Started¶
Three paths, from a 5-minute first query to a natural-language MCP session. Everything installs from PyPI — no git checkouts, no C compiler.
0. Start CUBRID (all paths)¶
Readiness takes up to a minute on first start:
1. Five-minute first query (pycubrid)¶
The expected output is checked by CI on CUBRID 11.2 and 11.4 — compare against fundamentals/pycubrid/expected/01_connect.expected. From here, fundamentals/ walks through CRUD, transactions, parameterized queries, collections, LOBs, and window functions — every directory with an expected/ folder is verified by make verify.
2. ORM and application templates (sqlalchemy-cubrid)¶
pip install sqlalchemy-cubrid # pulls SQLAlchemy 2.x
python fundamentals/sqlalchemy/01_connect_and_session.py
Production-shaped starters live in templates/ — a FastAPI service, Flask app, Django app, Streamlit dashboard, Celery async worker, and a pandas batch ETL. The dashboard is a one-command demo:
3. Natural language over the database (cubrid-mcp-server)¶
Claude Desktop / Claude Code / Cursor config blocks are in the cubrid-mcp-server README. Once connected, ask:
- "What tables are in this database?" →
all_table_names - "Show the structure of
cookbook_sales" →describe_table - "Top 5 products by revenue" →
execute_query(read-only) - "Drop the orders table" → rejected by the read-only whitelist (this refusal is the feature)
Verify a full checkout¶
pip install pycubrid sqlalchemy sqlalchemy-cubrid
make verify # runs every golden-backed example against your local CUBRID
Where to go next¶
| Goal | Start at |
|---|---|
| Copy-and-customize starters | templates/ |
| JDBC-to-Python migration | migration/java-to-python/ |
| Performance patterns | performance/ |
| Known CUBRID quirks | pitfalls/, KNOWN_ISSUES.md |
| Supported versions | SUPPORT_MATRIX.md |