Skip to content

Commit d892164

Browse files
Hello World
1 parent 81699db commit d892164

File tree

2 files changed

+67
-107
lines changed

2 files changed

+67
-107
lines changed

.idea/workspace.xml

Lines changed: 19 additions & 82 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 48 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Turbular
1+
# Turbular
22

33
<div align="center">
44

@@ -8,29 +8,34 @@
88

99
</div>
1010

11-
Turbular is an open-source Model Context Protocol (MCP) server that enables seamless database connectivity for Language Models (LLMs). It provides a unified API interface to interact with various database types, making it perfect for AI applications that need to work with multiple data sources.
11+
Turbular is an open-source Model Context Protocol (MCP) server that enables seamless database connectivity for Language
12+
Models (LLMs). It provides a unified API interface to interact with various database types, making it perfect for AI
13+
applications that need to work with multiple data sources.
1214

1315
## ✨ Features
1416

1517
- 🔌 **Multi-Database Support**: Connect to various database types through a single API
16-
- 🔄 **Schema Normalization**: Automatically normalize database schemas to correct naming conventions for LLM compatibility
18+
- 🔄 **Schema Normalization**: Automatically normalize database schemas to correct naming conventions for LLM
19+
compatibility
1720
- 🔒 **Secure Connections**: Support for SSL and various authentication methods
1821
- 🚀 **High Performance**: Optimizes your LLM generated queries
19-
- 📝 **Query Transformation**: Let LLM generate queries against normalized layouts and transform them into their unnormalized form
22+
- 📝 **Query Transformation**: Let LLM generate queries against normalized layouts and transform them into their
23+
unnormalized form
2024
- 🐳 **Docker Support**: Easy deployment with Docker and Docker Compose
21-
- 🔧 **Easy to Extend**: Adding new database providers can be easily done by extending the [BaseDBConnector interface](app/data_oracle/connectors/baseconnector.py)
25+
- 🔧 **Easy to Extend**: Adding new database providers can be easily done by extending
26+
the [BaseDBConnector interface](app/data_oracle/connectors/baseconnector.py)
2227

2328
## 🗄️ Supported Databases
2429

25-
| Database Type | Status | Icon |
26-
|--------------|--------|------|
27-
| PostgreSQL || <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/postgresql/postgresql-original.svg" width="20" height="20"> |
28-
| MySQL || <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/mysql/mysql-original.svg" width="20" height="20"> |
29-
| SQLite || <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/sqlite/sqlite-original.svg" width="20" height="20"> |
30-
| BigQuery || <img src="https://www.vectorlogo.zone/logos/google_bigquery/google_bigquery-icon.svg" width="20" height="20"> |
31-
| Oracle || <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/oracle/oracle-original.svg" width="20" height="20"> |
32-
| MS SQL || <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/microsoftsqlserver/microsoftsqlserver-plain.svg" width="20" height="20"> |
33-
| Redshift || <img src="https://cdn2.iconfinder.com/data/icons/amazon-aws-stencils/100/Database_copy_Amazon_RedShift-512.png" width="20" height="20"> |
30+
| Database Type | Status | Icon |
31+
|---------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------|
32+
| PostgreSQL | | <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/postgresql/postgresql-original.svg" width="20" height="20"> |
33+
| MySQL | | <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/mysql/mysql-original.svg" width="20" height="20"> |
34+
| SQLite | | <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/sqlite/sqlite-original.svg" width="20" height="20"> |
35+
| BigQuery | | <img src="https://www.vectorlogo.zone/logos/google_bigquery/google_bigquery-icon.svg" width="20" height="20"> |
36+
| Oracle | | <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/oracle/oracle-original.svg" width="20" height="20"> |
37+
| MS SQL | | <img src="https://raw.githubusercontent.com/devicons/devicon/master/icons/microsoftsqlserver/microsoftsqlserver-plain.svg" width="20" height="20"> |
38+
| Redshift | | <img src="https://cdn2.iconfinder.com/data/icons/amazon-aws-stencils/100/Database_copy_Amazon_RedShift-512.png" width="20" height="20"> |
3439

3540
## 🚀 Quick Start
3641

@@ -71,22 +76,28 @@ Turbular is an open-source Model Context Protocol (MCP) server that enables seam
7176
### Database Operations
7277

7378
#### Get Database Schema
79+
7480
```http
7581
POST /get_schema
7682
```
83+
7784
Retrieve the schema of a connected database for your LLM agent.
7885

7986
**Parameters:**
87+
8088
- `db_info`: Database connection arguments
8189
- `return_normalize_schema` (optional): Return schema in LLM-friendly format
8290

8391
#### Execute Query
92+
8493
```http
8594
POST /execute_query
8695
```
96+
8797
Optimizes query and then execute SQL queries on the connected database.
8898

8999
**Parameters:**
100+
90101
- `db_info`: Database connection arguments
91102
- `query`: SQL query string
92103
- `normalized_query`: Boolean indicating if query is normalized
@@ -96,37 +107,47 @@ Optimizes query and then execute SQL queries on the connected database.
96107
### File Management
97108

98109
#### Upload BigQuery Key
110+
99111
```http
100112
POST /upload-bigquery-key
101113
```
114+
102115
Upload a BigQuery service account key file.
103116

104117
**Parameters:**
118+
105119
- `project_id`: BigQuery project ID
106120
- `key_file`: JSON key file
107121

108122
#### Upload SQLite Database
123+
109124
```http
110125
POST /upload-sqlite-file
111126
```
127+
112128
Upload a SQLite database file.
113129

114130
**Parameters:**
131+
115132
- `database_name`: Name to identify the database
116133
- `db_file`: SQLite database file (.db or .sqlite)
117134

118135
### Utility Endpoints
119136

120137
#### Health Check
138+
121139
```http
122140
GET /health
123141
```
142+
124143
Verify if the API is running.
125144

126145
#### List Supported Databases
146+
127147
```http
128148
GET /supported-databases
129149
```
150+
130151
Get a list of all supported database types.
131152

132153
## 🔧 Development Setup
@@ -139,14 +160,13 @@ Get a list of all supported database types.
139160
```
140161

141162
3. The development server includes:
142-
- FastAPI server with hot reload
143-
- PostgreSQL test database
144-
- Pre-configured test data
163+
- FastAPI server with hot reload
164+
- PostgreSQL test database
165+
- Pre-configured test data
145166

146167
4. Access the API documentation:
147-
- Swagger UI: http://localhost:8000/docs
148-
- ReDoc: http://localhost:8000/redoc
149-
168+
- Swagger UI: http://localhost:8000/docs
169+
- ReDoc: http://localhost:8000/redoc
150170

151171
## 🤝 Contributing
152172

@@ -166,6 +186,7 @@ We welcome contributions! Here's how you can help:
166186
- Use meaningful commit messages
167187

168188
### Roadmap
189+
169190
1. Add more testing, formatting and commit hooks
170191
2. Add SSH support for database connection
171192
3. Add APIs as datasources using [steampipe](https://steampipe.io/)
@@ -176,11 +197,13 @@ We welcome contributions! Here's how you can help:
176197
## 🧪 Testing
177198

178199
Run the test suite:
200+
179201
```bash
180202
pytest
181203
```
182204

183205
For development tests with the included PostgreSQL:
206+
184207
```bash
185208
./scripts/test_connection.py
186209
```
@@ -193,6 +216,7 @@ For development tests with the included PostgreSQL:
193216
## 📝 Connection Examples
194217

195218
### PostgreSQL
219+
196220
```python
197221
connection_info = {
198222
"database_type": "PostgreSQL",
@@ -206,6 +230,7 @@ connection_info = {
206230
```
207231

208232
### BigQuery
233+
209234
```python
210235
connection_info = {
211236
"database_type": "BigQuery",
@@ -216,22 +241,20 @@ connection_info = {
216241
```
217242

218243
### SQLite
244+
219245
```python
220246
connection_info = {
221247
"type": "SQLite",
222248
"database_name": "my_database"
223249
}
224250
```
225251

226-
## 📜 License
227-
228-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
229-
230252
## 🙏 Acknowledgments
231253

232254
- FastAPI for the amazing framework
233255
- SQLAlchemy for database support
234-
- [@henryclickclack](https://github.com/henryclickclack) [Henry Albert Jupiter Hommel](https://www.linkedin.com/in/henry-hommel-304675234/?originalSubdomain=de) as Co-Developer ❤️
256+
- [@henryclickclack](https://github.com/henryclickclack) [Henry Albert Jupiter Hommel](https://www.linkedin.com/in/henry-hommel-304675234/?originalSubdomain=de)
257+
as Co-Developer ❤️
235258
- All our contributors and users
236259

237260
## 📞 Support

0 commit comments

Comments
 (0)