mcp-dbutils 0.9.0__py3-none-any.whl → 0.10.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,28 +1,35 @@
1
1
  """PostgreSQL configuration module"""
2
2
  from dataclasses import dataclass
3
3
  from typing import Optional, Dict, Any, Literal
4
- from urllib.parse import urlparse
4
+ from urllib.parse import urlparse, parse_qs
5
5
  from ..config import ConnectionConfig
6
6
 
7
- def parse_jdbc_url(jdbc_url: str) -> Dict[str, str]:
8
- """Parse JDBC URL into connection parameters
7
+ @dataclass
8
+ class SSLConfig:
9
+ """SSL configuration for PostgreSQL connection"""
10
+ mode: Literal['disable', 'require', 'verify-ca', 'verify-full'] = 'disable'
11
+ cert: Optional[str] = None
12
+ key: Optional[str] = None
13
+ root: Optional[str] = None
14
+
15
+ def parse_url(url: str) -> Dict[str, Any]:
16
+ """Parse PostgreSQL URL into connection parameters
9
17
 
10
18
  Args:
11
- jdbc_url: JDBC URL (e.g. jdbc:postgresql://host:port/dbname)
19
+ url: URL (e.g. postgresql://host:port/dbname?sslmode=verify-full)
12
20
 
13
21
  Returns:
14
- Dictionary of connection parameters
22
+ Dictionary of connection parameters including SSL settings
15
23
  """
16
- if not jdbc_url.startswith('jdbc:postgresql://'):
17
- raise ValueError("Invalid PostgreSQL JDBC URL format")
24
+ if not url.startswith('postgresql://'):
25
+ raise ValueError("Invalid PostgreSQL URL format")
18
26
 
19
- # Remove jdbc: prefix and ensure no credentials in URL
20
- url = jdbc_url[5:]
21
27
  if '@' in url:
22
- raise ValueError("JDBC URL should not contain credentials. Please provide username and password separately.")
28
+ raise ValueError("URL should not contain credentials. Please provide username and password separately.")
23
29
 
24
- # Parse URL
30
+ # Parse URL and query parameters
25
31
  parsed = urlparse(url)
32
+ query_params = parse_qs(parsed.query)
26
33
 
27
34
  params = {
28
35
  'host': parsed.hostname or 'localhost',
@@ -32,6 +39,24 @@ def parse_jdbc_url(jdbc_url: str) -> Dict[str, str]:
32
39
 
33
40
  if not params['dbname']:
34
41
  raise ValueError("PostgreSQL database name must be specified in URL")
42
+
43
+ # Parse SSL parameters if present
44
+ ssl_params = {}
45
+ if 'sslmode' in query_params:
46
+ mode = query_params['sslmode'][0]
47
+ if mode not in ['disable', 'require', 'verify-ca', 'verify-full']:
48
+ raise ValueError(f"Invalid sslmode: {mode}")
49
+ ssl_params['mode'] = mode
50
+
51
+ if 'sslcert' in query_params:
52
+ ssl_params['cert'] = query_params['sslcert'][0]
53
+ if 'sslkey' in query_params:
54
+ ssl_params['key'] = query_params['sslkey'][0]
55
+ if 'sslrootcert' in query_params:
56
+ ssl_params['root'] = query_params['sslrootcert'][0]
57
+
58
+ if ssl_params:
59
+ params['ssl'] = SSLConfig(**ssl_params)
35
60
 
36
61
  return params
37
62
 
@@ -44,6 +69,8 @@ class PostgreSQLConfig(ConnectionConfig):
44
69
  port: str = '5432'
45
70
  local_host: Optional[str] = None
46
71
  type: Literal['postgres'] = 'postgres'
72
+ url: Optional[str] = None
73
+ ssl: Optional[SSLConfig] = None
47
74
 
48
75
  @classmethod
49
76
  def from_yaml(cls, yaml_path: str, db_name: str, local_host: Optional[str] = None) -> 'PostgreSQLConfig':
@@ -74,9 +101,9 @@ class PostgreSQLConfig(ConnectionConfig):
74
101
  raise ValueError("Password must be specified in connection configuration")
75
102
 
76
103
  # Get connection parameters
77
- if 'jdbc_url' in db_config:
78
- # Parse JDBC URL for connection parameters
79
- params = parse_jdbc_url(db_config['jdbc_url'])
104
+ if 'url' in db_config:
105
+ # Parse URL for connection parameters
106
+ params = parse_url(db_config['url'])
80
107
  config = cls(
81
108
  dbname=params['dbname'],
82
109
  user=db_config['user'],
@@ -84,6 +111,8 @@ class PostgreSQLConfig(ConnectionConfig):
84
111
  host=params['host'],
85
112
  port=params['port'],
86
113
  local_host=local_host,
114
+ url=db_config['url'],
115
+ ssl=params.get('ssl')
87
116
  )
88
117
  else:
89
118
  if not db_config.get('dbname'):
@@ -92,6 +121,24 @@ class PostgreSQLConfig(ConnectionConfig):
92
121
  raise ValueError("Host must be specified in connection configuration")
93
122
  if not db_config.get('port'):
94
123
  raise ValueError("Port must be specified in connection configuration")
124
+
125
+ # Parse SSL configuration if present
126
+ ssl_config = None
127
+ if 'ssl' in db_config:
128
+ ssl_params = db_config['ssl']
129
+ if not isinstance(ssl_params, dict):
130
+ raise ValueError("SSL configuration must be a dictionary")
131
+
132
+ if ssl_params.get('mode') not in [None, 'disable', 'require', 'verify-ca', 'verify-full']:
133
+ raise ValueError(f"Invalid sslmode: {ssl_params.get('mode')}")
134
+
135
+ ssl_config = SSLConfig(
136
+ mode=ssl_params.get('mode', 'disable'),
137
+ cert=ssl_params.get('cert'),
138
+ key=ssl_params.get('key'),
139
+ root=ssl_params.get('root')
140
+ )
141
+
95
142
  config = cls(
96
143
  dbname=db_config['dbname'],
97
144
  user=db_config['user'],
@@ -99,17 +146,18 @@ class PostgreSQLConfig(ConnectionConfig):
99
146
  host=db_config['host'],
100
147
  port=str(db_config['port']),
101
148
  local_host=local_host,
149
+ ssl=ssl_config
102
150
  )
103
151
  config.debug = cls.get_debug_mode()
104
152
  return config
105
153
 
106
154
  @classmethod
107
- def from_jdbc_url(cls, jdbc_url: str, user: str, password: str,
108
- local_host: Optional[str] = None) -> 'PostgreSQLConfig':
109
- """Create configuration from JDBC URL and credentials
155
+ def from_url(cls, url: str, user: str, password: str,
156
+ local_host: Optional[str] = None) -> 'PostgreSQLConfig':
157
+ """Create configuration from URL and credentials
110
158
 
111
159
  Args:
112
- jdbc_url: JDBC URL (jdbc:postgresql://host:port/dbname)
160
+ url: URL (postgresql://host:port/dbname)
113
161
  user: Username for connection
114
162
  password: Password for connection
115
163
  local_host: Optional local host address
@@ -117,7 +165,7 @@ class PostgreSQLConfig(ConnectionConfig):
117
165
  Raises:
118
166
  ValueError: If URL format is invalid or required parameters are missing
119
167
  """
120
- params = parse_jdbc_url(jdbc_url)
168
+ params = parse_url(url)
121
169
 
122
170
  config = cls(
123
171
  dbname=params['dbname'],
@@ -126,6 +174,8 @@ class PostgreSQLConfig(ConnectionConfig):
126
174
  host=params['host'],
127
175
  port=params['port'],
128
176
  local_host=local_host,
177
+ url=url,
178
+ ssl=params.get('ssl')
129
179
  )
130
180
  config.debug = cls.get_debug_mode()
131
181
  return config
@@ -139,6 +189,17 @@ class PostgreSQLConfig(ConnectionConfig):
139
189
  'host': self.local_host or self.host,
140
190
  'port': self.port
141
191
  }
192
+
193
+ # Add SSL parameters if configured
194
+ if self.ssl:
195
+ params['sslmode'] = self.ssl.mode
196
+ if self.ssl.cert:
197
+ params['sslcert'] = self.ssl.cert
198
+ if self.ssl.key:
199
+ params['sslkey'] = self.ssl.key
200
+ if self.ssl.root:
201
+ params['sslrootcert'] = self.ssl.root
202
+
142
203
  return {k: v for k, v in params.items() if v}
143
204
 
144
205
  def get_masked_connection_info(self) -> Dict[str, Any]:
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-dbutils
3
- Version: 0.9.0
3
+ Version: 0.10.2
4
4
  Summary: MCP Database Utilities Service
5
5
  Author: Dong Hao
6
6
  License-Expression: MIT
7
7
  License-File: LICENSE
8
8
  Requires-Python: >=3.10
9
9
  Requires-Dist: mcp>=1.2.1
10
+ Requires-Dist: mysql-connector-python>=8.2.0
10
11
  Requires-Dist: psycopg2-binary>=2.9.10
11
12
  Requires-Dist: python-dotenv>=1.0.1
12
13
  Requires-Dist: pyyaml>=6.0.2
@@ -32,7 +33,7 @@ Description-Content-Type: text/markdown
32
33
  [中文文档](README_CN.md)
33
34
 
34
35
  ## Overview
35
- MCP Database Utilities is a unified database access service that supports multiple database types (PostgreSQL and SQLite). Through its abstraction layer design, it provides a simple and unified database operation interface for MCP servers.
36
+ MCP Database Utilities is a unified database access service that supports multiple database types (PostgreSQL, SQLite, and MySQL). Through its abstraction layer design, it provides a simple and unified database operation interface for MCP servers.
36
37
 
37
38
  ## Features
38
39
  - Unified database access interface
@@ -42,6 +43,7 @@ MCP Database Utilities is a unified database access service that supports multip
42
43
  - Database tables listing via MCP tools
43
44
  - Intelligent connection management and resource cleanup
44
45
  - Debug mode support
46
+ - SSL/TLS connection support for PostgreSQL and MySQL
45
47
 
46
48
  ## Installation and Configuration
47
49
 
@@ -143,54 +145,138 @@ Add to Claude configuration:
143
145
  - Python 3.10+
144
146
  - PostgreSQL (optional)
145
147
  - SQLite3 (optional)
148
+ - MySQL (optional)
146
149
 
147
150
  ### Configuration File
148
- The project requires a YAML configuration file, specified via the `--config` parameter. Configuration example:
151
+ The project requires a YAML configuration file, specified via the `--config` parameter. Configuration examples:
149
152
 
150
153
  ```yaml
151
154
  connections:
152
- # Standard PostgreSQL configuration example
153
- my_postgres:
155
+ # SQLite configuration examples
156
+ dev-db:
157
+ type: sqlite
158
+ path: /path/to/dev.db
159
+ # Password is optional
160
+ password:
161
+
162
+ # PostgreSQL standard configuration
163
+ test-db:
154
164
  type: postgres
155
- dbname: test_db
156
- user: postgres
157
- password: secret
158
- host: host.docker.internal # For Mac/Windows
159
- # host: 172.17.0.1 # For Linux (docker0 IP)
165
+ host: postgres.example.com
160
166
  port: 5432
167
+ dbname: test_db
168
+ user: test_user
169
+ password: test_pass
161
170
 
162
- # PostgreSQL with JDBC URL example
163
- my_postgres_jdbc:
171
+ # PostgreSQL URL configuration with SSL
172
+ prod-db:
164
173
  type: postgres
165
- jdbc_url: jdbc:postgresql://host.docker.internal:5432/test_db
166
- user: postgres # Credentials must be provided separately
167
- password: secret # Not included in JDBC URL for security
168
-
169
- # SQLite standard configuration
170
- my_sqlite:
171
- type: sqlite
172
- path: /app/sqlite.db # Database file path
173
- password: optional_password # optional
174
-
175
- # SQLite with JDBC URL configuration
176
- my_sqlite_jdbc:
177
- type: sqlite
178
- jdbc_url: jdbc:sqlite:/app/data.db?mode=ro&cache=shared # Supports query parameters
179
- password: optional_password # Provided separately for security
174
+ url: postgresql://postgres.example.com:5432/prod-db?sslmode=verify-full
175
+ user: prod_user
176
+ password: prod_pass
177
+
178
+ # PostgreSQL full SSL configuration example
179
+ secure-db:
180
+ type: postgres
181
+ host: secure-db.example.com
182
+ port: 5432
183
+ dbname: secure_db
184
+ user: secure_user
185
+ password: secure_pass
186
+ ssl:
187
+ mode: verify-full # disable/require/verify-ca/verify-full
188
+ cert: /path/to/client-cert.pem
189
+ key: /path/to/client-key.pem
190
+ root: /path/to/root.crt
191
+
192
+ # MySQL standard configuration
193
+ sandbox-mysql:
194
+ type: mysql
195
+ host: localhost
196
+ port: 3306
197
+ database: sandbox_db
198
+ user: sandbox_user
199
+ password: sandbox_pass
200
+ charset: utf8mb4
201
+
202
+ # MySQL URL configuration
203
+ integration-mysql:
204
+ type: mysql
205
+ url: mysql://mysql.example.com:3306/integration_db?charset=utf8mb4
206
+ user: integration_user
207
+ password: integration_pass
208
+
209
+ # MySQL with SSL configuration
210
+ secure-mysql:
211
+ type: mysql
212
+ host: secure-mysql.example.com
213
+ port: 3306
214
+ database: secure_db
215
+ user: secure_user
216
+ password: secure_pass
217
+ charset: utf8mb4
218
+ ssl:
219
+ mode: verify_identity
220
+ ca: /path/to/ca.pem
221
+ cert: /path/to/client-cert.pem
222
+ key: /path/to/client-key.pem
180
223
  ```
181
224
 
182
- The configuration supports JDBC URL format for both PostgreSQL and SQLite:
183
-
184
- PostgreSQL:
185
- 1. Standard configuration with individual parameters
186
- 2. JDBC URL configuration with separate credentials
187
-
188
- SQLite:
189
- 1. Standard configuration with path parameter
190
- 2. JDBC URL configuration with query parameters support:
191
- - mode=ro: Read-only mode
192
- - cache=shared: Shared cache mode
193
- - Other SQLite URI parameters
225
+ Database SSL Configuration Options:
226
+
227
+ PostgreSQL SSL Configuration:
228
+ 1. Using URL parameters:
229
+ ```
230
+ postgresql://host:port/dbname?sslmode=verify-full&sslcert=/path/to/cert.pem
231
+ ```
232
+ 2. Using dedicated SSL configuration section:
233
+ ```yaml
234
+ ssl:
235
+ mode: verify-full # SSL verification mode
236
+ cert: /path/to/cert.pem # Client certificate
237
+ key: /path/to/key.pem # Client private key
238
+ root: /path/to/root.crt # CA certificate
239
+ ```
240
+
241
+ PostgreSQL SSL Modes:
242
+ - disable: No SSL
243
+ - require: Use SSL but no certificate verification
244
+ - verify-ca: Verify server certificate is signed by trusted CA
245
+ - verify-full: Verify server certificate and hostname match
246
+
247
+ MySQL SSL Configuration:
248
+ 1. Using URL parameters:
249
+ ```
250
+ mysql://host:port/dbname?ssl-mode=verify_identity&ssl-ca=/path/to/ca.pem
251
+ ```
252
+ 2. Using dedicated SSL configuration section:
253
+ ```yaml
254
+ ssl:
255
+ mode: verify_identity # SSL verification mode
256
+ ca: /path/to/ca.pem # CA certificate
257
+ cert: /path/to/cert.pem # Client certificate
258
+ key: /path/to/key.pem # Client private key
259
+ ```
260
+
261
+ MySQL SSL Modes:
262
+ - disabled: No SSL
263
+ - preferred: Use SSL if available, but allow unencrypted connection
264
+ - required: Always use SSL, but don't verify server certificate
265
+ - verify_ca: Verify server certificate is signed by trusted CA
266
+ - verify_identity: Verify server certificate and hostname match
267
+
268
+ SQLite Configuration Options:
269
+ 1. Basic configuration with path:
270
+ ```yaml
271
+ type: sqlite
272
+ path: /path/to/db.sqlite
273
+ password: optional_password # Optional encryption
274
+ ```
275
+ 2. Using URI parameters:
276
+ ```yaml
277
+ type: sqlite
278
+ path: /path/to/db.sqlite?mode=ro&cache=shared
279
+ ```
194
280
 
195
281
  ### Debug Mode
196
282
  Set environment variable `MCP_DEBUG=1` to enable debug mode for detailed logging output.
@@ -207,12 +293,15 @@ graph TD
207
293
  DatabaseHandler[Database Handler]
208
294
  PostgresHandler[PostgreSQL Handler]
209
295
  SQLiteHandler[SQLite Handler]
296
+ MySQLHandler[MySQL Handler]
210
297
  DatabaseServer --> DatabaseHandler
211
298
  DatabaseHandler --> PostgresHandler
212
299
  DatabaseHandler --> SQLiteHandler
300
+ DatabaseHandler --> MySQLHandler
213
301
  end
214
302
  PostgresHandler --> PostgreSQL[(PostgreSQL)]
215
303
  SQLiteHandler --> SQLite[(SQLite)]
304
+ MySQLHandler --> MySQL[(MySQL)]
216
305
  ```
217
306
 
218
307
  The abstraction layer design is the core architectural concept in MCP Database Utilities. Just like a universal remote control that works with different devices, users only need to know the basic operations without understanding the underlying complexities.
@@ -224,7 +313,7 @@ The abstraction layer design is the core architectural concept in MCP Database U
224
313
 
225
314
  #### 2. Unified Interface Design
226
315
  - DatabaseHandler abstract class defines unified operation interfaces
227
- - All specific database implementations (PostgreSQL/SQLite) follow the same interface
316
+ - All specific database implementations (PostgreSQL/SQLite/MySQL) follow the same interface
228
317
  - Users interact with different databases in the same way
229
318
 
230
319
  #### 3. Configuration and Implementation Separation
@@ -241,7 +330,7 @@ The abstraction layer design is the core architectural concept in MCP Database U
241
330
  2. DatabaseHandler
242
331
  - Abstract base class defining unified interface
243
332
  - Includes get_tables(), get_schema(), execute_query(), etc.
244
- - Implemented by PostgreSQL and SQLite handlers
333
+ - Implemented by PostgreSQL, SQLite, and MySQL handlers
245
334
 
246
335
  3. Configuration System
247
336
  - YAML-based configuration file
@@ -364,6 +453,13 @@ Provides SQLite-specific features:
364
453
  - URI scheme support
365
454
  - Password protection support (optional)
366
455
 
456
+ ### MySQL Implementation
457
+ Provides MySQL-specific features:
458
+ - Remote connection support
459
+ - Character set configuration
460
+ - SSL/TLS secure connection
461
+ - URL and standard connection methods
462
+
367
463
  ## Contributing
368
464
  Contributions are welcome! Here's how you can help:
369
465
 
@@ -383,7 +479,6 @@ For detailed guidelines, see [CONTRIBUTING.md](.github/CONTRIBUTING.md)
383
479
  - [MCP Servers](https://github.com/modelcontextprotocol/servers) for inspiration and demonstration
384
480
  - AI Editors:
385
481
  * [Claude Desktop](https://claude.ai/download)
386
- * [5ire](https://5ire.app/)
387
482
  * [Cline](https://cline.bot)
388
483
  - [Model Context Protocol](https://modelcontextprotocol.io/) for comprehensive interfaces
389
484
 
@@ -0,0 +1,22 @@
1
+ mcp_dbutils/__init__.py,sha256=9dqT2BdVvwforQVWOvJq2M0zCHxFamWIYWC4-6aY70k,1905
2
+ mcp_dbutils/base.py,sha256=UjZuGxh0Zojcs-CIDfxz506EH7vJGqk79LBgq5RCoII,27653
3
+ mcp_dbutils/config.py,sha256=K0rlNio8sjuTp-CAuY1CnG8zljp2dhPsfZY7wUhwZX4,1923
4
+ mcp_dbutils/log.py,sha256=wKyMzB8IpKI7wsDUsN5SRfjf-bh_se6U9QhmzoNuxhw,809
5
+ mcp_dbutils/stats.py,sha256=WYD9NAKHH2bFKmUSTOg18-SuIXergpznPq8AtIjtxdI,7101
6
+ mcp_dbutils/mysql/__init__.py,sha256=OgwFO0gdymkvcEw-d1yqJB55XhcucmYQMEZkQ__CG_M,129
7
+ mcp_dbutils/mysql/config.py,sha256=C977PtaRk7gJm47fV7NaPeEDGInDZNBIQKfcgvjdBbU,8069
8
+ mcp_dbutils/mysql/handler.py,sha256=AJ1C-aVsBD3NXD31UjFC44cl4yuNeOO-HOY2mFBym0U,19737
9
+ mcp_dbutils/mysql/server.py,sha256=dF1FE_sYM9UOg6pQrq6EEHHPj2RtqB4Ve0FjQbVp-Fc,8603
10
+ mcp_dbutils/postgres/__init__.py,sha256=XanCXw-kVE6ayqFqjuLJ9swWPcCVlcKZXB2Et2Wjl9w,154
11
+ mcp_dbutils/postgres/config.py,sha256=FG0YUV4TtP1IGZT87ov_PK-ouOEjAOHdSaK42klk5OE,7750
12
+ mcp_dbutils/postgres/handler.py,sha256=O45K0MOosNQ68SJ8piXXH3aZ74RVQ981hudk6faj28Y,24397
13
+ mcp_dbutils/postgres/server.py,sha256=FROogvjr3xlKAZcAvJMNHGgyHqT_LaMK9-vYbA0Dbm0,8716
14
+ mcp_dbutils/sqlite/__init__.py,sha256=lTUOkSfSWNw_BohJ_KNxYKMCANdtpGa3JK_ZyJsg_Ls,134
15
+ mcp_dbutils/sqlite/config.py,sha256=2ekTp89rcCu4qQN1O3sZjIcOwjhzWi4tisD20T2WAik,4533
16
+ mcp_dbutils/sqlite/handler.py,sha256=VxBVbwpNSQHyiudQXYFYpcdoScvbK2IGzYMbkcpvFcI,17731
17
+ mcp_dbutils/sqlite/server.py,sha256=49ug43nyXZApclMXo0t5dKCN4wjDyDUZ-vmf746ac8M,7709
18
+ mcp_dbutils-0.10.2.dist-info/METADATA,sha256=2jbwB4ShFyfAiADcjChvtg4OvZVYA731BFS2VyYlRJw,14354
19
+ mcp_dbutils-0.10.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
20
+ mcp_dbutils-0.10.2.dist-info/entry_points.txt,sha256=XTjt0QmYRgKOJQT6skR9bp1EMUfIrgpHeZJPZ3CJffs,49
21
+ mcp_dbutils-0.10.2.dist-info/licenses/LICENSE,sha256=1A_CwpWVlbjrKdVEYO77vYfnXlW7oxcilZ8FpA_BzCI,1065
22
+ mcp_dbutils-0.10.2.dist-info/RECORD,,
@@ -1,18 +0,0 @@
1
- mcp_dbutils/__init__.py,sha256=9dqT2BdVvwforQVWOvJq2M0zCHxFamWIYWC4-6aY70k,1905
2
- mcp_dbutils/base.py,sha256=2fLSPL-BxdgKIOT_eq73wQGla6MZB03jUrWqBRSWVBQ,25474
3
- mcp_dbutils/config.py,sha256=uFI4Haw4en5gxHfCM9zugUqNCQFikdlHJZU_NTht7gQ,1905
4
- mcp_dbutils/log.py,sha256=fibVIwsb1HVU5zriGrDZTMEirKjgIuxuN_B_YTdAJ7I,996
5
- mcp_dbutils/stats.py,sha256=WYD9NAKHH2bFKmUSTOg18-SuIXergpznPq8AtIjtxdI,7101
6
- mcp_dbutils/postgres/__init__.py,sha256=XanCXw-kVE6ayqFqjuLJ9swWPcCVlcKZXB2Et2Wjl9w,154
7
- mcp_dbutils/postgres/config.py,sha256=Kqq0ZCa7PhtvMaBX3sfdEscGosHR1dWuiP8IkI5lzDo,5495
8
- mcp_dbutils/postgres/handler.py,sha256=O45K0MOosNQ68SJ8piXXH3aZ74RVQ981hudk6faj28Y,24397
9
- mcp_dbutils/postgres/server.py,sha256=FROogvjr3xlKAZcAvJMNHGgyHqT_LaMK9-vYbA0Dbm0,8716
10
- mcp_dbutils/sqlite/__init__.py,sha256=lTUOkSfSWNw_BohJ_KNxYKMCANdtpGa3JK_ZyJsg_Ls,134
11
- mcp_dbutils/sqlite/config.py,sha256=2ekTp89rcCu4qQN1O3sZjIcOwjhzWi4tisD20T2WAik,4533
12
- mcp_dbutils/sqlite/handler.py,sha256=VxBVbwpNSQHyiudQXYFYpcdoScvbK2IGzYMbkcpvFcI,17731
13
- mcp_dbutils/sqlite/server.py,sha256=49ug43nyXZApclMXo0t5dKCN4wjDyDUZ-vmf746ac8M,7709
14
- mcp_dbutils-0.9.0.dist-info/METADATA,sha256=I52Q7IV8un9A5tmTTmEOFKZiW_UYCrWwBDhDq1tzFyE,11986
15
- mcp_dbutils-0.9.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
- mcp_dbutils-0.9.0.dist-info/entry_points.txt,sha256=XTjt0QmYRgKOJQT6skR9bp1EMUfIrgpHeZJPZ3CJffs,49
17
- mcp_dbutils-0.9.0.dist-info/licenses/LICENSE,sha256=1A_CwpWVlbjrKdVEYO77vYfnXlW7oxcilZ8FpA_BzCI,1065
18
- mcp_dbutils-0.9.0.dist-info/RECORD,,