A service to convert MySQL SQL queries to Elasticsearch DSL using MCP framework
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"sqltodsltranslator-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# 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 用于依赖管理 ### 安装步骤 1. 克隆项目代码: ```bash git clone <repository-url> cd SqlToDslTranslator-MCP ``` 2. 安装依赖: ```bash # 使用 pip pip install -e . # 或使用 poetry poetry install ``` 3. 运行服务: ```bash python -m SqlToDslTranslator_MCP ``` ## 使用示例 ### 基本查询转换 将简单的 SQL 查询转换为 Elasticsearch DSL: ```python 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 和聚合函数: ```python sql = "SELECT department, COUNT(*) as count FROM employees GROUP BY department" dsl = converter.convert(sql) print(dsl) ``` ### 复杂条件查询 支持多种条件和函数: ```python 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函数: ```python from src.SqlToDslTranslator_MCP.server import convert result = convert("SELECT COUNT(*) FROM logs WHERE level = 'ERROR'") print(result) ``` ### 命令行使用 也可以通过命令行工具进行转换: ```bash echo "SELECT COUNT(*) FROM logs WHERE level = 'ERROR'" | python -m SqlToDslTranslator_MCP ```
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.