mcp-dbutils 0.6.0__py3-none-any.whl → 0.8.0__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.
mcp_dbutils/base.py CHANGED
@@ -204,8 +204,8 @@ class DatabaseServer:
204
204
  async def handle_list_tools() -> list[types.Tool]:
205
205
  return [
206
206
  types.Tool(
207
- name="query",
208
- description="Execute read-only SQL query",
207
+ name="dbutils-run-query",
208
+ description="Execute read-only SQL query on database",
209
209
  inputSchema={
210
210
  "type": "object",
211
211
  "properties": {
@@ -222,7 +222,7 @@ class DatabaseServer:
222
222
  }
223
223
  ),
224
224
  types.Tool(
225
- name="list_tables",
225
+ name="dbutils-list-tables",
226
226
  description="List all available tables in the specified database",
227
227
  inputSchema={
228
228
  "type": "object",
@@ -244,9 +244,13 @@ class DatabaseServer:
244
244
 
245
245
  database = arguments["database"]
246
246
 
247
- if name == "list_tables":
247
+ if name == "dbutils-list-tables":
248
248
  async with self.get_handler(database) as handler:
249
249
  tables = await handler.get_tables()
250
+ if not tables:
251
+ # 空表列表的情况也返回数据库类型
252
+ return [types.TextContent(type="text", text=f"[{handler.db_type}] No tables found")]
253
+
250
254
  formatted_tables = "\n".join([
251
255
  f"Table: {table.name}\n" +
252
256
  f"URI: {table.uri}\n" +
@@ -254,8 +258,9 @@ class DatabaseServer:
254
258
  "---"
255
259
  for table in tables
256
260
  ])
257
- return [types.TextContent(type="text", text=formatted_tables)]
258
- elif name == "query":
261
+ # 添加数据库类型前缀
262
+ return [types.TextContent(type="text", text=f"[{handler.db_type}]\n{formatted_tables}")]
263
+ elif name == "dbutils-run-query":
259
264
  sql = arguments.get("sql", "").strip()
260
265
  if not sql:
261
266
  raise ConfigurationError("SQL query cannot be empty")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-dbutils
3
- Version: 0.6.0
3
+ Version: 0.8.0
4
4
  Summary: MCP Database Utilities Service
5
5
  Author: Dong Hao
6
6
  License-Expression: MIT
@@ -39,6 +39,7 @@ MCP Database Utilities is a unified database access service that supports multip
39
39
  - Support for multiple database configurations
40
40
  - Secure read-only query execution
41
41
  - Table structure and schema information retrieval
42
+ - Database tables listing via MCP tools
42
43
  - Intelligent connection management and resource cleanup
43
44
  - Debug mode support
44
45
 
@@ -292,9 +293,24 @@ except Exception as e:
292
293
  ### DatabaseServer
293
294
  Core server class providing:
294
295
  - Resource list retrieval
295
- - Tool call handling
296
+ - Tool call handling (list_tables, query)
296
297
  - Database handler management
297
298
 
299
+ ### MCP Tools
300
+
301
+ #### list_tables
302
+ Lists all tables in the specified database.
303
+ - Parameters:
304
+ * database: Database configuration name
305
+ - Returns: Text content with a list of table names
306
+
307
+ #### query
308
+ Executes a SQL query on the specified database.
309
+ - Parameters:
310
+ * database: Database configuration name
311
+ * sql: SQL query to execute (SELECT only)
312
+ - Returns: Query results in a formatted text
313
+
298
314
  ### DatabaseHandler
299
315
  Abstract base class defining interfaces:
300
316
  - get_tables(): Get table resource list
@@ -1,5 +1,5 @@
1
1
  mcp_dbutils/__init__.py,sha256=xcfE1spAaONAoxBYB1ZyDX8tw7nxV1PMqo_RwxLDp0A,1892
2
- mcp_dbutils/base.py,sha256=kKeTKW2BqiSu32VHElfDVBE1ziR9EvFw71AVbYf9Xq0,10919
2
+ mcp_dbutils/base.py,sha256=a6wBdSGsbPQq7fKb_H-relSKbDZov-d75G_Q3S_aYP4,11284
3
3
  mcp_dbutils/config.py,sha256=EwnPNuQVCBKd5WOXQfROyDTM-YpM_Odp0GhCPRg8YwE,1863
4
4
  mcp_dbutils/log.py,sha256=fibVIwsb1HVU5zriGrDZTMEirKjgIuxuN_B_YTdAJ7I,996
5
5
  mcp_dbutils/stats.py,sha256=2hiKi_M8V4xhVHlH5FS-Df5GuMEpuzif12C8ik06Khs,2538
@@ -11,8 +11,8 @@ mcp_dbutils/sqlite/__init__.py,sha256=QV4th2ywzUmCCa3GHCcBf8blJ_E8OYy0dJ2fSf1TfS
11
11
  mcp_dbutils/sqlite/config.py,sha256=RTHT2Xx--g-osD73CpT8DrCk0VHpHfPil3D6YUzXD-g,4519
12
12
  mcp_dbutils/sqlite/handler.py,sha256=bf_k93rCcJn09zc7tsqrlbiTGUg3FspimfWKxK_JQTs,4970
13
13
  mcp_dbutils/sqlite/server.py,sha256=7Bbq9l7Ca_4dzkAbbdRcXxvHoO_NFLzZHwlhKB0HIJc,7724
14
- mcp_dbutils-0.6.0.dist-info/METADATA,sha256=Dkyfy_4VUB4VO5tl6zKAljcvacBp-irM7xTxVzUjOIo,10390
15
- mcp_dbutils-0.6.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
- mcp_dbutils-0.6.0.dist-info/entry_points.txt,sha256=XTjt0QmYRgKOJQT6skR9bp1EMUfIrgpHeZJPZ3CJffs,49
17
- mcp_dbutils-0.6.0.dist-info/licenses/LICENSE,sha256=1A_CwpWVlbjrKdVEYO77vYfnXlW7oxcilZ8FpA_BzCI,1065
18
- mcp_dbutils-0.6.0.dist-info/RECORD,,
14
+ mcp_dbutils-0.8.0.dist-info/METADATA,sha256=403i2poAoHqP0HCb_w0PL7Dj7e59aewKZaaS_KEiPYA,10840
15
+ mcp_dbutils-0.8.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
+ mcp_dbutils-0.8.0.dist-info/entry_points.txt,sha256=XTjt0QmYRgKOJQT6skR9bp1EMUfIrgpHeZJPZ3CJffs,49
17
+ mcp_dbutils-0.8.0.dist-info/licenses/LICENSE,sha256=1A_CwpWVlbjrKdVEYO77vYfnXlW7oxcilZ8FpA_BzCI,1065
18
+ mcp_dbutils-0.8.0.dist-info/RECORD,,