Skip to main content
Glama

XiYan MCP Server

Apache 2.0
114
  • Linux
  • Apple

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.

arquitectura.png

Mejores prácticas e informes

Cree un asistente de datos local usando MCP + Modelscope API-Inference sin escribir una sola línea de código.

Xiyan MCP en Modelscope

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" .

exp\_mcpbench.png

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:

pip install xiyan-mcp-server

Si desea instalar la versión de desarrollo desde la fuente, puede instalarla desde el código fuente en github:

pip install git+https://github.com/XGenerationLab/xiyan_mcp_server.git

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:

mcp: transport: "stdio" model: name: "XGenerationLab/XiYanSQL-QwenCoder-32B-2412" key: "" url: "https://api-inference.modelscope.cn/v1/" database: host: "localhost" port: 3306 user: "root" password: "" database: ""

Configuración de MCP

Puede configurar el protocolo de transporte en stdio o sse .

STDIO

Para el protocolo stdio, puedes configurarlo así:

mcp: transport: "stdio"
SSE

Para el protocolo sse, puede configurar mcp de la siguiente manera:

mcp: transport: "sse" port: 8000 log_level: "INFO"

El puerto predeterminado es 8000 Puede cambiarlo si lo necesita. El nivel de registro predeterminado es ERROR . Recomendamos configurar el nivel de registro en INFO para obtener información más detallada.

También se pueden personalizar otras configuraciones como debug , host , sse_path y message_path , pero normalmente no es necesario modificarlas.

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.

versionesLLM generales (GPT, qwenmax)Modelo SOTA de ModelscopeModelo SOTA de DashscopeLLM locales
descripciónbásico, fácil de usarMejor rendimiento, estable, recomendado.Mejor rendimiento, para pruebalento, alta seguridad
nombreel nombre oficial del modelo (por ejemplo, gpt-3.5-turbo,qwen-max)XGenerationLab/XiYanSQL-QwenCoder-32B-2412xiyansql-qwencoder-32bxiyansql-qwencoder-3b
llavela clave API del proveedor de servicios (por ejemplo, OpenAI, Alibaba Cloud)la clave API de modelscopela clave API por correo electrónico""
URLel 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-sqlhttp://localhost:5090
LLM generales

Si desea utilizar los LLM generales, por ejemplo gpt3.5, puede configurarlos directamente de esta manera:

model: name: "gpt-3.5-turbo" key: "YOUR KEY " url: "https://api.openai.com/v1" database:

Si desea utilizar Qwen de Alibaba, por ejemplo Qwen-max, puede utilizar la siguiente configuración:

model: name: "qwen-max" key: "YOUR KEY " url: "https://dashscope.aliyuncs.com/compatible-mode/v1" database:
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:

model: name: "XGenerationLab/XiYanSQL-QwenCoder-32B-2412" key: "" url: "https://api-inference.modelscope.cn/v1/"

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:

name: "YOUR NAME", email: "YOUR EMAIL", organization: "your college or Company or Organization"

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.

model: name: "xiyansql-qwencoder-32b" key: "KEY" url: "https://xiyan-stream.biz.aliyun.com/service/api/xiyan-sql"

Nota: este modelo de servicio es solo para prueba, si necesita usarlo en producción, contáctenos.

(3) Versión local

Como alternativa, también puede implementar el modelo XiYanSQL-qwencoder-32B en su propio servidor. Consulte "Modelo local" para obtener más información.

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
database: host: "localhost" port: 3306 user: "root" password: "" database: ""
PostgreSQL

Paso 1: Instalar paquetes de Python

pip install psycopg2

Paso 2: prepara el config.yml de esta manera:

database: dialect: "postgresql" host: "localhost" port: 5432 user: "" password: "" database: ""

Tenga en cuenta que dialect debe ser postgresql para postgresql.

Lanzamiento

Lanzamiento del servidor

Si desea iniciar el servidor con sse , debe ejecutar el siguiente comando en una terminal:

YML=path/to/yml python -m xiyan_mcp_server

Debería ver la información de http://localhost:8000/sse en su navegador. (Por defecto, cambie esta configuración si su servidor mcp se ejecuta en otro host o puerto).

De lo contrario, si usa el protocolo de transporte stdio , normalmente declara el comando "mcp server" en la aplicación mcp específica en lugar de ejecutarlo en una terminal. Sin embargo, puede depurar con este comando si es necesario.

Configuración del cliente

Escritorio de Claude

Agregue esto en su archivo de configuración de Claude Desktop, consulte el ejemplo de configuración de Claude Desktop

{ "mcpServers": { "xiyan-mcp-server": { "command": "/xxx/python", "args": [ "-m", "xiyan_mcp_server" ], "env": { "YML": "PATH/TO/YML" } } } }

Tenga en cuenta que el comando de Python requiere la ruta completa del ejecutable de Python ( /xxx/python ); de lo contrario, no se podrá encontrar el intérprete de Python. Puede determinar esta ruta con el comando which python . Esto también aplica a otras aplicaciones.

Claude Desktop actualmente no admite el protocolo de transporte SSE.

Cline

Prepara la configuración como Claude Desktop

Ganso

Si usa stdio , agregue el siguiente comando en la configuración, consulte el ejemplo de configuración de Goose

env YML=path/to/yml /xxx/python -m xiyan_mcp_server

De lo contrario, si usa sse , cambie el Tipo a SSE y configure el punto final en http://127.0.0.1:8000/sse

Cursor

Utilice un comando similar al siguiente.

Para stdio :

{ "mcpServers": { "xiyan-mcp-server": { "command": "/xxx/python", "args": [ "-m", "xiyan_mcp_server" ], "env": { "YML": "path/to/yml" } } } }

Para sse :

{ "mcpServers": { "xiyan_mcp_server_1": { "url": "http://localhost:8000/sse" } } }
Ingenioso

Agregue lo siguiente en el comando:

/xxx/python -m xiyan_mcp_server

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

Otros enlaces relacionados

Citación

Si encuentra útil nuestro trabajo, no dude en citarnos.

@article{xiyansql, title={A Preview of XiYan-SQL: A Multi-Generator Ensemble Framework for Text-to-SQL}, author={Yingqi Gao and Yifu Liu and Xiaoxia Li and Xiaorong Shi and Yin Zhu and Yiming Wang and Shiqi Li and Wei Li and Yuntao Hong and Zhiling Luo and Jinyang Gao and Liyu Mou and Yu Li}, year={2024}, journal={arXiv preprint arXiv:2411.08599}, url={https://arxiv.org/abs/2411.08599}, primaryClass={cs.AI} }
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

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.

  1. Características
    1. Avance
      1. Arquitectura
      2. Mejores prácticas e informes
      3. Evaluación en MCPBench
      4. Vista previa de herramientas
    2. Instalación
      1. Instalación desde pip
      2. Instalación desde Smithery.ai
    3. Configuración
      1. Configuración de MCP
      2. Configuración de LLM
      3. Configuración de la base de datos
    4. Lanzamiento
      1. Lanzamiento del servidor
      2. Configuración del cliente
    5. ¡No funciona!
      1. Otros enlaces relacionados
        1. Citación

          Related MCP Servers

          • -
            security
            F
            license
            -
            quality
            A Model Context Protocol server that enables SQL query execution, database management, and business intelligence capabilities through MySQL connections.
            Last updated -
            JavaScript
          • -
            security
            -
            license
            -
            quality
            A Model Context Protocol server that enables AI models to interact with MySQL databases, providing tools for querying, executing statements, listing tables, and describing table structures.
            Last updated -
            MIT License
          • -
            security
            -
            license
            -
            quality
            A Model Context Protocol server that enables AI models to interact with MySQL databases through a standardized interface, providing tools for querying, executing commands, and managing database schemas.
            Last updated -
            JavaScript
          • -
            security
            F
            license
            -
            quality
            A Model Context Protocol server that enables AI models to interact with MySQL databases through natural language, supporting SQL queries, table creation, and schema exploration.
            Last updated -
            1
            Python
            • Linux
            • Apple

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/XGenerationLab/xiyan_mcp_server'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server