SQLite数据库管理服务器

一个提供全面SQLite数据库管理和分析功能的MCP服务器,允许LLMs探索数据库模式、查询数据、执行更新和进行统计分析。

  • by mekanixms
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 mekanixms/sqlite-mcp-server

使用说明

SQLite MCP服务器

提供全面SQLite数据库管理和分析功能的模型上下文协议(MCP)服务器。此服务器允许LLM探索数据库模式、查询数据、执行更新和进行统计分析。

特性

  • 模式探索

    • 列出数据库中的所有表
    • 查看特定表的详细架构信息
    • 检查列类型和约束
  • 数据管理

    • 执行只读SQL查询
    • 执行数据修改(更新、插入、删除)
    • 具有错误处理功能的安全执行
  • 数据分析

    • 基本统计分析(行计数、空计数、数字统计)
    • 详细分析,包括分类数据分布
    • 自动类型检测和适当的统计措施

先决条件

  • Python 3.8或更高版本
  • SQLite数据库文件
  • 克劳德桌面 (可选,用于桌面集成)

安装

  1. 首先,确保您拥有所需的Python包:
pip install mcp pandas
  1. 下载SQLite MCP服务器脚本:
# Clone this repository or download sqlite_mcp.py directly
curl -O https://raw.githubusercontent.com/yourusername/sqlite-mcp/main/sqlite_mcp.py
  1. 对于Claude Desktop集成:
# Install using MCP CLI
mcp install sqlite_mcp.py --name "SQLite Explorer" --env DB_PATH=/path/to/your/database.sqlite

用法

  • 找到claude_desktop_config.json文件,并在下面添加到mcpServers部分
  • 将路径更改为适合您系统的正确路径。
  • 在.env文件中的DB_PATH变量中设置数据库位置。
"sqlite_mcp": {
    "command": "C:\\path\\to\\python.exe",
    "args": [
    "C:\\path\\to\\sqlite-mcp\\server.py"
    ]
}

可用资源

服务器公开以下MCP资源:

  • schema://tables

    • 列出数据库中的所有可用表
    • 示例响应:
      Available tables:
      - users
      - products
      - orders
      
  • schema://{table}

    • 返回特定表的详细架构信息
    • 示例响应:
      Table: users
      
      Create Statement:
      CREATE TABLE users (
          id INTEGER PRIMARY KEY,
          name TEXT NOT NULL,
          email TEXT UNIQUE
      )
      
      Columns:
      - id (INTEGER) NOT NULL PRIMARY KEY
      - name (TEXT) NOT NULL
      - email (TEXT)
      

可用工具

怎么翻译

执行只读SQL查询:

SELECT * FROM users LIMIT 5

update_data

执行数据修改:

INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')
UPDATE users SET email = 'new@example.com' WHERE id = 1

分析表

对表数据进行统计分析:

参数:

  • table:要分析的表的名称
  • analysis_type:“基本”或“详细”

示例响应:

{
  "row_count": 1000,
  "column_count": 5,
  "null_counts": {
    "id": 0,
    "name": 0,
    "email": 15
  },
  "numeric_columns": {
    "id": {
      "mean": 500.5,
      "std": 288.819,
      "min": 1,
      "max": 1000
    }
  }
}

安全考虑

服务器实施了多种安全措施:

  1. 所有SQL操作的输入验证
  2. 只读查询与数据修改是分开的
  3. 数据库连接错误处理
  4. 通过参数化查询实现SQL注入保护

错误处理

服务器为常见问题提供明确的错误消息:

  • 数据库连接失败
  • SQL语法无效
  • 表中未找到错误
  • 权限问题
  • 类型不匹配

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。