目次
Related MCP server: MCP MySQL Server
特徴
🌐 XiYanSQLを通じて自然言語でデータを取得する
🤖 一般的な LLM (GPT、qwenmax)、Text-to-SQL SOTA モデルをサポート
💻 純粋なローカル モードをサポートします (高いセキュリティ!)
📝 MySQL と PostgreSQL をサポートします。
🖱️ 利用可能なテーブルをリソースとして一覧表示する
🔧 表の内容を読む
プレビュー
建築
このサーバーをプロジェクトに統合する方法は2つあります。以下をご覧ください。左はリモートモードで、デフォルトのモードです。サービスプロバイダーからxiyanSQL-qwencoder-32BモデルにアクセスするにはAPIキーが必要です(設定を参照)。右はより安全なローカルモードで、APIキーは必要ありません。

ベストプラクティスとレポート
「コードを1行も書かずに、MCP + Modelscope API-Inferenceを使用してローカルデータアシスタントを構築する」
MCPBenchでの評価
以下の図は、MCPBenchベンチマークで測定したXiYan MCPサーバーのパフォーマンスを示しています。XiYan MCPサーバーは、MySQL MCPサーバーとPostgreSQL MCPサーバーの両方と比較して優れたパフォーマンスを示し、2~22パーセントポイントのリードを獲得しました。詳細な実験結果は、 MCPBenchおよびレポート「MCPサーバー評価レポート」でご覧いただけます。

ツールプレビュー
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.gitSmithery.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: ""MCP構成
トランスポート プロトコルをstdioまたはsseに設定できます。
標準入出力
stdio プロトコルの場合は、次のように設定できます。
mcp:
transport: "stdio"南南東
sse プロトコルの場合、mcp config を以下のように設定できます。
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) | ModelscopeによるSOTAモデル | DashscopeによるSOTAモデル | 地元の法学修士課程 |
説明 | 基本的で使いやすい | 最高のパフォーマンス、安定、推奨 | 最高のパフォーマンス、トライアル用 | 遅い、高セキュリティ |
名前 | 公式モデル名(例:gpt-3.5-turbo、qwen-max) | XGenerationLab/XiYanSQL-QwenCoder-32B-2412 | xiyansql-qwencoder-32b | xiyansql-qwencoder-3b |
鍵 | サービスプロバイダーのAPIキー(例:OpenAI、Alibaba Cloud) | モデルスコープのAPIキー | APIキーをメールで受け取る | 「」 |
URL | サービスプロバイダーのエンドポイント(例:" https://api.openai.com/v1 ") |
一般法学修士
一般的な LLM (例: gpt3.5) を使用する場合は、次のように直接設定できます。
model:
name: "gpt-3.5-turbo"
key: "YOUR KEY "
url: "https://api.openai.com/v1"
database:Alibaba の Qwen (例: Qwen-max) を使用する場合は、次の設定を使用できます。
model:
name: "qwen-max"
key: "YOUR KEY "
url: "https://dashscope.aliyuncs.com/compatible-mode/v1"
database:テキストからSQLへのSOTAモデル
テキストからSQLへの変換におけるSOTAモデルであるXiYanSQL-qwencoder-32B( https://github.com/XGenerationLab/XiYanSQL-QwenCoder )をお勧めします。Birdベンチマークを参照してください。このモデルの使用方法は2つあります。どちらでも使用できます。(1) Modelscope 、(2) Alibaba Cloud DashScope。
(1)モデルスコープ版
Modelscope から API 推論のkeyを適用する必要があります ( 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)ダッシュスコープバージョン
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実行ファイル(
Claude Desktop は現在、SSE トランスポート プロトコルをサポートしていません。
クライン
Claude Desktopのような設定を準備する
ガチョウ
stdioを使用する場合は、設定に次のコマンドを追加します。Goose設定例を参照してください。
env YML=path/to/yml /xxx/python -m xiyan_mcp_serverそれ以外の場合、 sseを使用する場合は、タイプを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_serverenv: キーはYML、値はymlファイルへのパスを追加します。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}
}