← Back to skills
extension
Category: Development & EngineeringAPI key requirement unconfirmed

数据库连接工具

通过MCP服务连接数据库进行查询。支持SQLite/MySQL/PostgreSQL/SQL Server,默认只读模式,禁止危险操作。

personAuthor: kissstronghubModelScope

数据库MCP技能

概述

本技能通过Python脚本连接SQLite数据库执行查询操作,支持多种数据库类型,提供安全的数据访问能力。

快速开始

1. 查看数据库中的表

python <skill_path>/scripts/db_mcp_helper.py query "SELECT name FROM sqlite_master WHERE type='table';"

2. 列出所有表

python <skill_path>/scripts/db_mcp_helper.py list-tables

3. 查看表结构

python <skill_path>/scripts/db_mcp_helper.py describe-table <表名>

4. 执行查询

python <skill_path>/scripts/db_mcp_helper.py query "SELECT * FROM 表名 LIMIT 10"

使用示例

示例:查询用户表

python skills/db-connect-utils/scripts/db_mcp_helper.py query "SELECT * FROM users LIMIT 5"

输出:

{
  "success": true,
  "columns": ["id", "name", "email", "age"],
  "rows": [[1, "张三", "zhangsan@example.com", 25]],
  "count": 1
}

示例:查看表结构

python skills/db-connect-utils/scripts/db_mcp_helper.py describe-table users

安全特性

| 特性 | 说明 | |------|------| | 只读模式 | 默认只允许SELECT查询 | | 禁止危险SQL | 自动拦截DELETE、DROP、ALTER等危险操作 | | 内存数据库 | 默认使用 :memory: SQLite,数据不落地 |

配置文件(可选)

如需持久化存储,可创建SQLite数据库文件:

# 创建数据库文件
python -c "import sqlite3; conn = sqlite3.connect('agent.db'); conn.close()"

# 查询文件数据库
python skills/db-connect-utils/scripts/db_mcp_helper.py query "SELECT * FROM users" "agent.db"

环境变量(.env)

# 数据库密码(如需连接其他数据库)
DB_PASSWORD=your_password_here
PG_PASSWORD=your_pg_password_here

注意:SQLite内存库不需要密码。

完整示例

import sqlite3
import json

# 创建示例数据
conn = sqlite3.connect(':memory:')
cursor = conn.cursor()

# 创建表
cursor.execute('''CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT UNIQUE,
    age INTEGER
)''')

# 插入数据
users = [
    (1, '张三', 'zhangsan@example.com', 25),
    (2, '李四', 'lisi@example.com', 30),
]
cursor.executemany('INSERT INTO users VALUES (?, ?, ?, ?)', users)
conn.commit()

# 查询
cursor.execute('SELECT * FROM users')
results = cursor.fetchall()
print(json.dumps(results, indent=2))

注意事项

  1. 本技能默认使用内存SQLite,数据在进程关闭后自动销毁
  2. 严格遵守只读规则,防止误删数据
  3. 如需持久化数据,请使用文件路径代替 :memory:
  4. 本技能仅用于个人学习和调试