XiYan MCP Server

Apache 2.0
114
  • Linux
  • Apple

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.

Оглавление

Функции

  • 🌐 Извлечение данных на естественном языке через XiYanSQL
  • 🤖 Поддержка общих LLM (GPT, qwenmax), модели SOTA Text-to-SQL
  • 💻 Поддержка чисто локального режима (высокая безопасность!)
  • 📝 Поддержка MySQL и PostgreSQL.
  • 🖱️ Перечислите доступные таблицы в качестве ресурсов
  • 🔧 Прочитать содержимое таблицы

Предварительный просмотр

Архитектура

Существует два способа интеграции этого сервера в ваш проект, как показано ниже: Слева — удаленный режим, который является режимом по умолчанию. Для доступа к модели xiyanSQL-qwencoder-32B от поставщика услуг требуется ключ API (см. Конфигурация ). Другой режим — локальный режим, который более безопасен. Для него ключ API не требуется.

Лучшие практики и отчеты

«Создайте локального помощника по работе с данными с помощью MCP + Modelscope API-Inference без написания единой строки кода»

«Xiyan MCP на Modelscope»

Оценка на MCPBench

На следующем рисунке показана производительность сервера XiYan MCP, измеренная с помощью бенчмарка MCPBench. Сервер XiYan MCP демонстрирует превосходную производительность по сравнению с сервером MySQL MCP и сервером PostgreSQL MCP, достигая преимущества в 2-22 процентных пункта. Подробные результаты эксперимента можно найти на сайте MCPBench и в отчете "Evaluation Report on MCP Servers" .

Инструменты Предварительный просмотр

  • Инструмент get_data предоставляет интерфейс на естественном языке для извлечения данных из базы данных. Этот сервер преобразует входной естественный язык в SQL с помощью встроенной модели и вызывает базу данных для возврата результатов запроса.
  • Ресурс {dialect}://{table_name} позволяет получить часть выборочных данных из базы данных для ссылки на модель, если указано конкретное table_name.
  • Ресурс {dialect}:// выведет список имен текущих баз данных.

Установка

Установка из pip

Требуется Python 3.11+. Вы можете установить сервер через pip, и он установит последнюю версию:

pip install xiyan-mcp-server

Если вы хотите установить версию для разработки из исходного кода, вы можете выполнить установку из исходного кода на github:

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

Установка из Smithery.ai

См . @XGenerationLab/xiyan_mcp_server

Полностью не протестировано.

Конфигурация

Вам нужен файл конфигурации YAML для настройки сервера. Файл конфигурации по умолчанию находится в config_demo.yml и выглядит следующим образом:

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

Конфигурация МКП

Вы можете установить транспортный протокол stdio или sse .

СТДИО

Для протокола stdio можно настроить так:

mcp: transport: "stdio"
СШЭ

Для протокола sse вы можете настроить конфигурацию mcp следующим образом:

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

Порт по умолчанию — 8000 При необходимости вы можете изменить порт. Уровень журнала по умолчанию — ERROR . Для получения более подробной информации мы рекомендуем установить уровень журнала на INFO .

Другие конфигурации, такие как debug , host , sse_path , message_path также можно настроить, но обычно вам не нужно их изменять.

Конфигурация LLM

Name — имя используемой модели, key — API-ключ модели, url — API-url модели. Мы поддерживаем следующие модели.

версииобщие LLM (GPT,qwenmax)Модель SOTA от ModelscopeМодель SOTA от DashscopeМестные LLM
описаниебазовый, простой в использованиилучшая производительность, стабильный, рекомендуюлучшее исполнение, для пробымедленный, с высоким уровнем безопасности
имяофициальное название модели (например, gpt-3.5-turbo,qwen-max)XGenerationLab/XiYanSQL-QwenCoder-32B-2412xiyansql-qwencoder-32bxiyansql-qwencoder-3b
ключAPI-ключ поставщика услуг (например, OpenAI, Alibaba Cloud)API-ключ modelscopeAPI-ключ по электронной почте""
URL-адресконечная точка поставщика услуг (например, « https://api.openai.com/v1 »)https://api-inference.modelscope.cn/v1/https://xiyan-stream.biz.aliyun.com/service/api/xiyan-sqlhttp://localhost:5090
Общие LLM

Если вы хотите использовать общие LLM, например gpt3.5, вы можете выполнить прямую настройку следующим образом:

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

Если вы хотите использовать Qwen от Alibaba, например Qwen-max, вы можете использовать следующую конфигурацию:

model: name: "qwen-max" key: "YOUR KEY " url: "https://dashscope.aliyuncs.com/compatible-mode/v1" database:
Модель SOTA «текст-в-SQL»

Мы рекомендуем XiYanSQL-qwencoder-32B ( https://github.com/XGenerationLab/XiYanSQL-QwenCoder ), которая является моделью SOTA в text-to-sql, см. Bird benchmark . Есть два способа использования модели. Вы можете использовать любой из них. (1) Modelscope , (2) Alibaba Cloud DashScope.

(1) Версия Modelscope

Вам необходимо применить key API-вывода из Modelscope, https://www.modelscope.cn/docs/model-service/API-Inference/intro Затем вы можете использовать следующую конфигурацию:

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

Более подробную информацию читайте в описании модели .

(2) Версия Dashscope

Мы развернули модель на Alibaba Cloud DashScope, поэтому вам необходимо задать следующие переменные среды: Отправьте мне свой адрес электронной почты, чтобы получить key . ( godot.lzl@alibaba-inc.com ) В письме прикрепите следующую информацию:

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

Мы вышлем вам key по электронной почте. И вы можете ввести key в файл yml. key будет истекать через 1 месяц или 200 запросов или другие юридические ограничения.

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

Примечание: эта модель сервиса предназначена только для пробного использования. Если вам необходимо использовать ее в производстве, свяжитесь с нами.

(3) Локальная версия

В качестве альтернативы вы также можете развернуть модель XiYanSQL-qwencoder-32B на своем собственном сервере. Подробнее см. в разделе Локальная модель .

Конфигурация базы данных

host , port , user , password , database — это информация о подключении к базе данных.

Вы можете использовать локальные или любые удаленные базы данных. Теперь мы поддерживаем MySQL и PostgreSQL (скоро больше диалектов).

MySQL
database: host: "localhost" port: 3306 user: "root" password: "" database: ""
PostgreSQL

Шаг 1: Установка пакетов Python

pip install psycopg2

Шаг 2: подготовьте config.yml следующим образом:

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

Обратите внимание, что для postgresql dialect должен быть postgresql .

Запуск

Запуск сервера

Если вы хотите запустить сервер с помощью sse , вам необходимо выполнить следующую команду в терминале:

YML=path/to/yml python -m xiyan_mcp_server

Затем вы должны увидеть информацию по адресу http://localhost:8000/sse в вашем браузере. (По умолчанию, измените, если ваш mcp-сервер работает на другом хосте/порту)

В противном случае, если вы используете транспортный протокол stdio , вы обычно объявляете команду сервера mcp в определенном приложении mcp вместо того, чтобы запускать ее в терминале. Однако вы все равно можете выполнять отладку с помощью этой команды, если это необходимо.

Настройки клиента

Клод Десктоп

Добавьте это в файл конфигурации Claude Desktop, см. пример конфигурации Claude Desktop

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

Обратите внимание, что команда Python здесь требует полный путь к исполняемому файлу Python ( /xxx/python ); в противном случае интерпретатор Python не будет найден. Вы можете определить этот путь с помощью команды which python . То же самое относится и к другим приложениям.

Claude Desktop в настоящее время не поддерживает транспортный протокол SSE.

Клайн

Подготовьте конфигурацию как у Claude Desktop

Гусь

Если вы используете stdio , добавьте следующую команду в конфигурацию, см. пример конфигурации Goose

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

В противном случае, если вы используете sse , измените Type на SSE и установите конечную точку на http://127.0.0.1:8000/sse

Курсор

Используйте аналогичную команду следующим образом.

Для stdio :

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

Для sse :

{ "mcpServers": { "xiyan_mcp_server_1": { "url": "http://localhost:8000/sse" } } }
Остроумный

Добавьте в команду следующее:

/xxx/python -m xiyan_mcp_server

Добавьте env: ключ — YML, а значение — путь к вашему файлу yml. Пример конфигурации Ref Witsy

Это не работает!

Свяжитесь с нами: Ding Group钉钉群| Следуйте за мной на Weibo

Другие ссылки по теме

Цитата

Если вы считаете нашу работу полезной, не стесняйтесь дать нам ссылку.

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

Сервер Model Context Protocol, который позволяет выполнять запросы на естественном языке к базам данных MySQL, работающий на основе технологии преобразования текста в SQL XiYanSQL.

  1. Функции
    1. Предварительный просмотр
      1. Архитектура
      2. Лучшие практики и отчеты
      3. Оценка на MCPBench
      4. Инструменты Предварительный просмотр
    2. Установка
      1. Установка из pip
      2. Установка из Smithery.ai
    3. Конфигурация
      1. Конфигурация МКП
      2. Конфигурация LLM
      3. Конфигурация базы данных
    4. Запуск
      1. Запуск сервера
      2. Настройки клиента
    5. Это не работает!
      1. Другие ссылки по теме
        1. Цитата

          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

          ID: 38egctvcux