SQL与JSON转换工具包

一个生产就绪的工具包,用于在SQL和JSON之间进行严格验证的转换,支持通过MCP在Claude Desktop中直接使用。

  • by giahoangnguyen
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 giahoangnguyen/data_conversion

使用说明

带有MCP封装的数据转换工具包

一个小型、可投入生产的工具包,用于在SQL和JSON之间进行转换,具备严格的验证和清晰的日志记录,所有功能均通过mcp封装,以便用户可以直接在Claude Desktop中试用该服务

快速入门

使用两个MCP工具在SQL和JSON之间进行转换:

sql_file_converter → 读取.sql文件并按表生成.jsonl文件

nosql_file_converter → 读取一个.jsonl文件并生成一个单独的.sql脚本

要求

Python 3.10及以上版本

SQLite(标准库 sqlite3)

没有第三方pip依赖

(可选)Claude Desktop 或 MCP 客户端

(可选)使用Ollama运行本地大型语言模型(LLM)

设置 git clone(克隆) 切换目录 创建 Python 虚拟环境并激活:`python -m venv .venv && source .venv/bin/activate` # Windows 系统下:`.venv\Scripts\activate` 如果不存在,则创建目录:mkdir -p uploads

1) 与Claude桌面版(MCP)一起使用

前往 Claude Desktop -> 设置 -> 开发者 -> 编辑配置: ~/.claude/config.json:

{
  "mcpServers": {
    "data-migration": {
      "command": "/Path/To/Your/Data_migration/src/.venv/bin/python",
      "args": ["/Path/To/Your/Data_migration/src/mcp/stdio_entry.py"],
      "env": {
        "SQL2NOSQL_PATH": "/Path/To/Your/Data_migration/src/backend/manager/sql_converter_manager.py",
        "SQL2NOSQL_FUNC": "convert_sql_to_nosql",
        "NOSQL2SQL_PATH": "/Path/To/Your/Data_migration/src/backend/manager/nosql_converter_manager.py",
        "NOSQL2SQL_FUNC": "convert_nosql_to_sql",
        "SQL_FILE_CONVERTER_PATH": "/Path/To/Your/Data_migration/src/backend/manager/sql_file_converter_manager.py",
        "SQL_FILE_CONVERTER_FUNC": "sql_file_to_jsonl",
        "NOSQL_FILE_CONVERTER_PATH": "/Path/To/Your/Data_migration/src/backend/manager/nosql_file_converter_manager.py",
        "NOSQL_FILE_CONVERTER_FUNC": "nosql_file_to_csv"
      }
    }
  }
}

启动Claude桌面版 → 工具将显示为:

sql_file_converter(参数:输入文件名,可选目标,默认选项)

nosql_file_converter(参数:输入文件名,可选输出文件名,方言,选项)

2) 与Ollama(本地大型语言模型)一起使用

启动Ollama:

ollama 服务 Ollama 拉取 llama3.1

In terminal 1: 进入 src/mcp 目录 运行 python3 stdio_entry.py

In terminal 2: 进入src/host目录 运行 python3 ollama_host.py

从这里开始,你可以通过将输入文件放入/uploads文件夹中,来调用工具,并指定将其转换为你想要的格式

示例:

使用 sql_file_converter 并传入 {"input_name":"multi_blocks.sql"}

使用 `nosql_file_converter` 工具,配置为:`{"input_name":"sample.jsonl","output_name":"result.sql"}`

注释

将输入文件放在uploads/目录下。

验证过程严格,对于错误的扩展名或缺失的文件会快速失败:

SQL运行器仅接受.sql文件。

NoSQL runner 仅接受 .jsonl 格式。