A service to convert MySQL SQL queries to Elasticsearch DSL using MCP framework
Project description
SQL to Elasticsearch DSL Translator
项目简介
SQL to Elasticsearch DSL Translator 是一个基于 MCP (Model Conversion Platform) 框架构建的服务,可以将 MySQL SQL 查询语句转换为 Elasticsearch DSL (Domain Specific Language) 查询。
该工具支持常见的 SQL 操作,包括:
- SELECT 查询
- WHERE 条件过滤
- GROUP BY 聚合
- ORDER BY 排序
- LIMIT 限制结果数量
- 函数操作(COUNT, AVG, SUM等)
- UNION 和 MINUS 操作
这个转换器可以帮助熟悉 SQL 语法但不熟悉 Elasticsearch DSL 的开发者快速构建 Elasticsearch 查询。
整个项目全是基于 ai 的自主生成。 支持版本: Elasticsearch 7.17
部署指南
环境要求
- Python 3.13 或更高版本
- pip 或 poetry 用于依赖管理
安装步骤
-
克隆项目代码:
git clone <repository-url> cd SqlToDslTranslator-MCP
-
安装依赖:
# 使用 pip pip install -e . # 或使用 poetry poetry install
-
运行服务:
python -m SqlToDslTranslator_MCP
使用示例
基本查询转换
将简单的 SQL 查询转换为 Elasticsearch DSL:
from src.SqlToDslTranslator_MCP.server import SQLToESDSLConverter
# 创建转换器实例
converter = SQLToESDSLConverter()
sql = "SELECT id, name, age FROM users WHERE age > 18 ORDER BY age LIMIT 10"
dsl = converter.convert(sql)
print(dsl)
聚合查询
支持 GROUP BY 和聚合函数:
sql = "SELECT department, COUNT(*) as count FROM employees GROUP BY department"
dsl = converter.convert(sql)
print(dsl)
复杂条件查询
支持多种条件和函数:
sql = "SELECT name, ROUND(age/10)*10 as age_group, COUNT(*) FROM users WHERE status = 'active' GROUP BY ROUND(age/10)*10 HAVING COUNT(*) > 5"
dsl = converter.convert(sql)
print(dsl)
通过MCP工具使用
作为MCP工具使用时,可以直接调用convert函数:
from src.SqlToDslTranslator_MCP.server import convert
result = convert("SELECT COUNT(*) FROM logs WHERE level = 'ERROR'")
print(result)
命令行使用
也可以通过命令行工具进行转换:
echo "SELECT COUNT(*) FROM logs WHERE level = 'ERROR'" | python -m SqlToDslTranslator_MCP
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sqltodsltranslator_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: sqltodsltranslator_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a127723e5d18394b6ce30c4169b66b61d9e293ebc36cb8586138869d252ba54
|
|
| MD5 |
401fa8298ccb0cffb9598ed5f5ce387d
|
|
| BLAKE2b-256 |
d4810fe9e14a01f0c832c9ab33245a1c7cb4832a4ebab6914088414ea993e763
|