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.

Inhaltsverzeichnis

Merkmale

  • 🌐 Daten in natürlicher Sprache über XiYanSQL abrufen
  • 🤖 Unterstützt allgemeine LLMs (GPT, qwenmax), Text-to-SQL SOTA-Modell
  • 💻 Unterstützt den rein lokalen Modus (hohe Sicherheit!)
  • 📝 Unterstützt MySQL und PostgreSQL.
  • 🖱️ Verfügbare Tabellen als Ressourcen auflisten
  • 🔧 Tabelleninhalt lesen

Vorschau

Architektur

Es gibt zwei Möglichkeiten, diesen Server in Ihr Projekt zu integrieren, wie unten gezeigt: Die linke ist der Remote-Modus, der Standardmodus. Für den Zugriff auf das xiyanSQL-qwencoder-32B-Modell vom Dienstanbieter ist ein API-Schlüssel erforderlich (siehe Konfiguration ). Ein anderer Modus ist der lokale Modus, der sicherer ist. Hierfür ist kein API-Schlüssel erforderlich.

Best Practice und Berichte

„Erstellen Sie einen lokalen Datenassistenten mit MCP + Modelscope API-Inference, ohne eine einzige Codezeile zu schreiben.“

„Xiyan MCP auf Modelscope“

Auswertung auf MCPBench

Die folgende Abbildung veranschaulicht die Leistung des XiYan MCP-Servers, gemessen im MCPBench-Benchmark. Der XiYan MCP-Server zeigt sowohl im Vergleich zum MySQL MCP-Server als auch zum PostgreSQL MCP-Server eine überlegene Leistung und erreicht einen Vorsprung von 2 bis 22 Prozentpunkten. Die detaillierten Versuchsergebnisse finden Sie unter MCPBench und im Bericht „Evaluationsbericht zu MCP-Servern“ .

Werkzeugvorschau

  • Das Tool get_data bietet eine Schnittstelle für natürliche Sprache zum Abrufen von Daten aus einer Datenbank. Der Server konvertiert die eingegebene natürliche Sprache mithilfe eines integrierten Modells in SQL und ruft die Datenbank auf, um die Abfrageergebnisse zurückzugeben.
  • Die Ressource {dialect}://{table_name} ermöglicht das Abrufen eines Teils der Beispieldaten aus der Datenbank als Modellreferenz, wenn ein bestimmter Tabellenname angegeben ist.
  • Die Ressource {dialect}:// listet die Namen der aktuellen Datenbanken auf

Installation

Installation von pip

Python 3.11+ wird benötigt. Sie können den Server über pip installieren. Es wird die neueste Version installiert:

pip install xiyan-mcp-server

Wenn Sie die Entwicklungsversion aus der Quelle installieren möchten, können Sie die Installation aus dem Quellcode auf GitHub durchführen:

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

Installation von Smithery.ai

Siehe @XGenerationLab/xiyan_mcp_server

Nicht vollständig getestet.

Konfiguration

Sie benötigen eine YAML-Konfigurationsdatei, um den Server zu konfigurieren. Eine Standardkonfigurationsdatei befindet sich in config_demo.yml und sieht wie folgt aus:

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

MCP-Konfiguration

Sie können das Transportprotokoll auf stdio oder sse einstellen.

STDIO

Für das stdio-Protokoll können Sie Folgendes einstellen:

mcp: transport: "stdio"
SSE

Für das SSE-Protokoll können Sie die MCP-Konfiguration wie folgt festlegen:

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

Der Standardport ist 8000 . Sie können den Port bei Bedarf ändern. Der Standard-Log-Level ist ERROR . Für detailliertere Informationen empfehlen wir, den Log-Level auf INFO zu setzen.

Andere Konfigurationen wie debug , host , sse_path und message_path können ebenfalls angepasst werden, müssen aber normalerweise nicht geändert werden.

LLM-Konfiguration

Name ist der Name des zu verwendenden Modells, key ist der API-Schlüssel des Modells, url ist die API-URL des Modells. Wir unterstützen folgende Modelle.

Versionenallgemeine LLMs (GPT, qwenmax)SOTA-Modell von ModelscopeSOTA-Modell von DashscopeLokale LLMs
Beschreibungeinfach, leicht zu bedienenbeste Leistung, stabil, empfehlenswertbeste Leistung, zum Ausprobierenlangsam, hohe Sicherheit
Namedie offizielle Modellbezeichnung (zB gpt-3.5-turbo,qwen-max)XGenerationLab/XiYanSQL-QwenCoder-32B-2412xiyansql-qwencoder-32bxiyansql-qwencoder-3b
Schlüsselden API-Schlüssel des Dienstanbieters (z. B. OpenAI, Alibaba Cloud)der API-Schlüssel von modelscopeden API-Schlüssel per E-Mail""
URLder Endpunkt des Dienstanbieters (z. B. „ https://api.openai.com/v1 “)https://api-inference.modelscope.cn/v1/https://xiyan-stream.biz.aliyun.com/service/api/xiyan-sqlhttp://localhost:5090
Allgemeine LLMs

Wenn Sie die allgemeinen LLMs verwenden möchten, z. B. gpt3.5, können Sie die Konfiguration direkt wie folgt vornehmen:

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

Wenn Sie Qwen von Alibaba verwenden möchten, z. B. Qwen-max, können Sie die folgende Konfiguration verwenden:

model: name: "qwen-max" key: "YOUR KEY " url: "https://dashscope.aliyuncs.com/compatible-mode/v1" database:
Text-zu-SQL-SOTA-Modell

Wir empfehlen den XiYanSQL-qwencoder-32B ( https://github.com/XGenerationLab/XiYanSQL-QwenCoder ), das SOTA-Modell für Text-zu-SQL (siehe Bird-Benchmark) . Es gibt zwei Möglichkeiten, das Modell zu verwenden. Sie können eine der beiden Möglichkeiten verwenden: (1) Modelscope , (2) Alibaba Cloud DashScope.

(1) Modelscope-Version

Sie müssen einen key der API-Inferenz von Modelscope anwenden, https://www.modelscope.cn/docs/model-service/API-Inference/intro . Dann können Sie die folgende Konfiguration verwenden:

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

Weitere Einzelheiten finden Sie in unserer Modellbeschreibung .

(2) Dashscope-Version

Wir haben das Modell auf Alibaba Cloud DashScope bereitgestellt, daher müssen Sie die folgenden Umgebungsvariablen festlegen: Senden Sie mir Ihre E-Mail, um den key zu erhalten. ( godot.lzl@alibaba-inc.com ) Fügen Sie der E-Mail bitte die folgenden Informationen bei:

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

Wir senden Ihnen einen key gemäß Ihrer E-Mail-Adresse. Sie können den key in die YML-Datei eintragen. Der key verfällt nach einem Monat oder 200 Abfragen oder anderen rechtlichen Einschränkungen.

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

Hinweis: Dieser Modelldienst dient nur zu Testzwecken. Wenn Sie ihn in der Produktion verwenden müssen, kontaktieren Sie uns bitte.

(3) Lokale Version

Alternativ können Sie das Modell XiYanSQL-qwencoder-32B auch auf Ihrem eigenen Server bereitstellen. Weitere Informationen finden Sie unter Lokales Modell .

Datenbankkonfiguration

host , port , user , password und database sind die Verbindungsinformationen der Datenbank.

Sie können lokale oder beliebige Remote-Datenbanken verwenden. Wir unterstützen derzeit MySQL und PostgreSQL (weitere Dialekte folgen in Kürze).

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

Schritt 1: Python-Pakete installieren

pip install psycopg2

Schritt 2: Bereiten Sie die Datei config.yml wie folgt vor:

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

Beachten Sie, dass dialect für PostgreSQL postgresql sein sollte.

Start

Serverstart

Wenn Sie den Server mit sse starten möchten, müssen Sie den folgenden Befehl in einem Terminal ausführen:

YML=path/to/yml python -m xiyan_mcp_server

Anschließend sollten Sie die Informationen unter http://localhost:8000/sse in Ihrem Browser sehen. (Standardmäßig ändern, wenn Ihr MCP-Server auf einem anderen Host/Port läuft.)

Wenn Sie stdio Transportprotokoll verwenden, deklarieren Sie den MCP-Serverbefehl normalerweise in einer bestimmten MCP-Anwendung, anstatt ihn in einem Terminal auszuführen. Sie können mit diesem Befehl jedoch bei Bedarf weiterhin debuggen.

Client-Einstellung

Claude Desktop

Fügen Sie dies in Ihre Claude Desktop-Konfigurationsdatei ein, siehe Claude Desktop-Konfigurationsbeispiel

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

Bitte beachten Sie, dass der Python-Befehl hier den vollständigen Pfad zur Python-Programmdatei ( /xxx/python ) benötigt, da der Python-Interpreter sonst nicht gefunden werden kann. Sie können diesen Pfad mit dem Befehl which python ermitteln. Dasselbe gilt auch für andere Anwendungen.

Claude Desktop unterstützt derzeit das SSE-Transportprotokoll nicht.

Cline

Bereiten Sie die Konfiguration wie Claude Desktop vor

Gans

Wenn Sie stdio verwenden, fügen Sie der Konfiguration den folgenden Befehl hinzu (siehe Goose-Konfigurationsbeispiel).

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

Andernfalls, wenn Sie sse verwenden, ändern Sie den Typ in SSE und setzen Sie den Endpunkt auf http://127.0.0.1:8000/sse

Cursor

Verwenden Sie den ähnlichen Befehl wie folgt.

Für stdio :

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

Für sse :

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

Fügen Sie dem Befehl Folgendes hinzu:

/xxx/python -m xiyan_mcp_server

Fügen Sie eine Umgebung hinzu: Der Schlüssel ist YML und der Wert ist der Pfad zu Ihrer YML-Datei. Siehe Witsy-Konfigurationsbeispiel

Es funktioniert nicht!

Kontaktieren Sie uns: Ding Group钉钉群| Folgen Sie mir auf Weibo

Zitat

Wenn Sie unsere Arbeit hilfreich finden, können Sie uns gerne zitieren.

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

Ein Model Context Protocol-Server, der Abfragen in natürlicher Sprache an MySQL-Datenbanken ermöglicht und auf der Text-zu-SQL-Technologie von XiYanSQL basiert.

  1. Merkmale
    1. Vorschau
      1. Architektur
      2. Best Practice und Berichte
      3. Auswertung auf MCPBench
      4. Werkzeugvorschau
    2. Installation
      1. Installation von pip
      2. Installation von Smithery.ai
    3. Konfiguration
      1. MCP-Konfiguration
      2. LLM-Konfiguration
      3. Datenbankkonfiguration
    4. Start
      1. Serverstart
      2. Client-Einstellung
    5. Es funktioniert nicht!
      1. Andere verwandte Links
        1. Zitat

          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