hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Enables natural language queries to MySQL databases, allowing users to fetch data, list available tables, and read table contents using natural language commands, powered by XiYanSQL text-to-SQL technology.
Supports use of OpenAI models like GPT-3.5-turbo for processing natural language queries to SQL databases, configurable through the server settings.
Tabla de contenido
Características
- 🌐 Obtenga datos en lenguaje natural a través de XiYanSQL
- 🤖 Admite LLM generales (GPT, qwenmax), modelo SOTA de texto a SQL
- 💻 Admite modo local puro (¡alta seguridad!)
- 📝 Soporte para MySQL y PostgreSQL.
- 🖱️ Listar las tablas disponibles como recursos
- 🔧 Leer el contenido de la tabla
Avance
Arquitectura
Hay dos maneras de integrar este servidor en su proyecto, como se muestra a continuación: El modo remoto, que es el predeterminado, requiere una clave API para acceder al modelo xiyanSQL-qwencoder-32B del proveedor de servicios (consulte Configuración ). El modo local es más seguro y no requiere la clave API.
Mejores prácticas e informes
Evaluación en MCPBench
La siguiente figura ilustra el rendimiento del servidor XiYan MCP, medido mediante el benchmark MCPBench. El servidor XiYan MCP demuestra un rendimiento superior al del servidor MySQL MCP y al del servidor PostgreSQL MCP, alcanzando una ventaja de entre 2 y 22 puntos porcentuales. Los resultados detallados del experimento se pueden consultar en MCPBench y en el informe "Informe de evaluación de servidores MCP" .
Vista previa de herramientas
- La herramienta
get_data
proporciona una interfaz de lenguaje natural para recuperar datos de una base de datos. Este servidor convierte la entrada de lenguaje natural a SQL mediante un modelo integrado y llama a la base de datos para devolver los resultados de la consulta. - El recurso
{dialect}://{table_name}
permite obtener una parte de datos de muestra de la base de datos para la referencia del modelo cuando se especifica un table_name específico. - El recurso
{dialect}://
enumerará los nombres de las bases de datos actuales
Instalación
Instalación desde pip
Se requiere Python 3.11 o superior. Puede instalar el servidor mediante pip; se instalará la versión más reciente:
Después de esto puedes ejecutar directamente el servidor mediante:
Sin embargo, no ofrece ninguna función hasta que complete la siguiente configuración. Obtendrá un archivo yml. Después, puede ejecutar el servidor mediante:
Instalación desde Smithery.ai
Ver @XGenerationLab/xiyan_mcp_server
No completamente probado.
Configuración
Necesita un archivo de configuración YAML para configurar el servidor. El archivo de configuración predeterminado se encuentra en config_demo.yml y tiene este aspecto:
Configuración de LLM
Name
es el nombre del modelo a utilizar, key
es la clave API del modelo y url
es la URL API del modelo. Admitimos los siguientes modelos.
versiones | LLM generales (GPT, qwenmax) | Modelo SOTA de Modelscope | Modelo SOTA de Dashscope | LLM locales |
---|---|---|---|---|
descripción | básico, fácil de usar | Mejor rendimiento, estable, recomendado. | Mejor rendimiento, para prueba | lento, alta seguridad |
nombre | el nombre oficial del modelo (por ejemplo, gpt-3.5-turbo,qwen-max) | XGenerationLab/XiYanSQL-QwenCoder-32B-2412 | xiyansql-qwencoder-32b | xiyansql-qwencoder-3b |
llave | la clave API del proveedor de servicios (por ejemplo, OpenAI, Alibaba Cloud) | la clave API de modelscope | la clave API por correo electrónico | "" |
URL | el punto final del proveedor de servicios (por ejemplo, " https://api.openai.com/v1 ") | https://api-inference.modelscope.cn/v1/ | https://xiyan-stream.biz.aliyun.com/service/api/xiyan-sql | http://localhost:5090 |
LLM generales
Si desea utilizar los LLM generales, por ejemplo gpt3.5, puede configurarlos directamente de esta manera:
Si desea utilizar Qwen de Alibaba, por ejemplo Qwen-max, puede utilizar la siguiente configuración:
Modelo SOTA de texto a SQL
Recomendamos XiYanSQL-qwencoder-32B ( https://github.com/XGenerationLab/XiYanSQL-QwenCoder ), que es el modelo SOTA en conversión de texto a SQL. Consulte el benchmark de Bird . Hay dos maneras de usar el modelo. Puede usar cualquiera de ellas: (1) Modelscope , (2) Alibaba Cloud DashScope.
(1) Versión de Modelscope
Debe aplicar una key
de inferencia de API de Modelscope, https://www.modelscope.cn/docs/model-service/API-Inference/intro Luego puede usar la siguiente configuración:
Lea la descripción de nuestro modelo para obtener más detalles.
(2) Versión Dashscope
Implementamos el modelo en Alibaba Cloud DashScope, por lo que debe configurar las siguientes variables de entorno: Envíeme su correo electrónico para obtener la key
. ( godot.lzl@alibaba-inc.com ) En el correo electrónico, adjunte la siguiente información:
Le enviaremos una key
según su correo electrónico. Puede key
en el archivo yml. La key
caducará al cabo de un mes, 200 consultas o cualquier otra restricción legal.
Nota: este modelo de servicio es solo para prueba, si necesita usarlo en producción, contáctenos.
Alternativamente, también puede implementar el modelo XiYanSQL-qwencoder-32B en su propio servidor.
Modelo local
Nota: El modelo local es lento (aproximadamente 12 segundos por consulta en mi MacBook). Si necesita un servicio estable y rápido, le recomendamos usar la versión de ModelScope.
Para ejecutar xiyan_mcp_server en modo local, necesita
- una PC/Mac con al menos 16 GB de RAM
- 6 GB de espacio en disco
Paso 1: Instalar paquetes de Python adicionales
Paso 2: (opcional) Descargue el modelo manualmente. Recomendamos xiyansql-qwencoder-3b . Puede descargar el modelo manualmente mediante
Ocupará 6 GB de espacio en disco.
Paso 3: descargue el script y ejecute server.src/xiyan_mcp_server/local_xiyan_server.py
El servidor se ejecutará en http://localhost:5090/
Paso 4: prepara la configuración y ejecuta xiyan_mcp_server. El config.yml debería ser como:
Hasta ahora el modo local está listo.
Configuración de la base de datos
host
, port
, user
, password
y database
son la información de conexión de la base de datos.
Puedes usar bases de datos locales o remotas. Ahora somos compatibles con MySQL y PostgreSQL (próximamente con más dialectos).
MySQL
PostgreSQL
Paso 1: Instalar paquetes de Python
Paso 2: prepara el config.yml de esta manera:
Tenga en cuenta que dialect
debe ser postgresql
para postgresql.
Lanzamiento
Escritorio de Claude
Agregue esto en su archivo de configuración de Claude Desktop, consulte el ejemplo de configuración de Claude Desktop
Cline
Prepara la configuración como Claude Desktop
Ganso
Agregue el siguiente comando en la configuración, consulte el ejemplo de configuración de Goose
Cursor
Utilice el mismo comando que Goose .
Ingenioso
Agregue lo siguiente en el comando:
Agregue un entorno: la clave es YML y el valor es la ruta a su archivo YML. Consulte el ejemplo de configuración de Witsy.
¡No funciona!
Contáctanos: Ding Group钉钉群| Sígueme en Weibo
Citación
Si encuentra útil nuestro trabajo, no dude en citarnos.
This server cannot be installed
Un servidor de protocolo de contexto de modelo que permite realizar consultas en lenguaje natural a bases de datos MySQL, impulsado por la tecnología de texto a SQL XiYanSQL.