XiYan MCP Server について
XiYan MCP Server は、自然言語でデータベースを照会できる MCP サーバーです。XiYan-SQL が質問を SQL に変換して結果を返します。MySQL と PostgreSQL に対応し、リモートモデルと完全ローカルのモデルを選択できるため、データの安全性とモデル性能のバランスを考える利用者に向いています。
主な機能
- 01自然言語から SQL への変換と結果の取得
- 02MySQL と PostgreSQL への対応
- 03汎用 LLM、ModelScope 提供モデル、ローカルモデルの選択
- 04データベースとテーブルをサンプルデータ付きでリソースとして一覧表示
- 05stdio と SSE によるトランスポート対応
活用シーン
- 01Claude Desktop や Cursor から自然言語で業務データベースを照会する
- 02データを外部に出せない環境でローカルモデルを使って照会する
- 03非技術者向けのローカルデータ照会アシスタントを用意する
MCP 対応
MCP サーバーとして、自然言語の質問を受け取る get_data ツールと、データベースおよびテーブルを一覧できるリソースを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
XiYan MCP Server
自然言語によるデータベースへの問い合わせを可能にする Model Context Protocol(MCP)サーバー
XiYan-SQL を基盤としており、オープンベンチマークにおけるテキストからSQLへの変換で最先端の性能を発揮します
💻 XiYan-mcp-server |
🌐 XiYan-SQL |
📖 Arxiv |
🏆 XiYanSQL Model |
📄 PapersWithCode
🤗 HuggingFace |
🤖 ModelScope |
🌕 析言GBI
English | 中文 | 日本語
Ding GroupのDingTalkグループ|
Weiboでフォロー
目次
機能
- 🌐 XiYanSQL を使って自然言語でデータを取得
- 🤖 一般的なLLM(GPT、qwenmax)とテキストからSQLへの変換における最先端モデルに対応
- 💻 完全ローカルモードに対応(高いセキュリティを実現!)
- 📝 MySQLとPostgreSQLに対応
- 🖱️ 利用可能なテーブルをリソースとして一覧表示
- 🔧 テーブルの内容を読み取り
プレビュー
アーキテクチャ
このサーバーをプロジェクトに統合する方法は、以下の2つです。 左側はリモートモードで、デフォルトのモードです。サービスプロバイダーの xiyanSQL-qwencoder-32B モデルにアクセスするには、API キーが必要です(設定を参照)。 もう1つはローカルモードで、より安全です。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.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: ""
MCP の設定
トランスポートプロトコルは stdio または sse に設定できます。
STDIO
stdio プロトコルの場合は、次のように設定できます。
mcp:
transport: "stdio"
SSE
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) | Modelscope の SOTA モデル | Dashscope の SOTA モデル | ローカル LLM |
|---|---|---|---|---|
| 説明 | 基本的で使いやすい | 最高のパフォーマンス、安定性が高く、推奨 | 最高のパフォーマンス、試用向け | 低速、高いセキュリティ |
| name | モデルの正式名称(例:gpt-3.5-turbo、qwen-max) | XGenerationLab/XiYanSQL-QwenCoder-32B-2412 | xiyansql-qwencoder-32b | xiyansql-qwencoder-3b |
| key | サービスプロバイダー(例:OpenAI、Alibaba Cloud)の API キー | Modelscope の API キー | メールで取得する API キー | "" |
| url | サービスプロバイダーのエンドポイント(例:"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
gpt3.5 などの汎用 LLM を使用する場合は、次のように直接設定できます。
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:
Text-to-SQL の SOTA モデル
Text-to-SQL における SOTA モデルである XiYanSQL-qwencoder-32B(https://github.com/XGenerationLab/XiYanSQL-QwenCoder)を推奨します。詳しくは[Bird ベンチマーク](https://bird-bench.github.io/)をご覧ください。 このモデルを使用する方法は 2 つあります。どちらかを選択できます。 (1)Modelscope、(2)Alibaba Cloud DashScope。
(1)Modelscope 版
Modelscope から API-inference の 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)Dashscope 版
Alibaba Cloud DashScope にモデルをデプロイしているため、次の環境変数を設定する必要があります。
key を取得するには、メールをお送りください。([email protected])
メールには、次の情報を添付してください。
name: "YOUR NAME",
email: "YOUR EMAIL",
organization: "your college or Company or Organization"
メールに基づいて key をお送りします。yml ファイルに key を設定してください。
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(https://github.com/XGenerationLab/XiYanSQL-QwenCoder)を独自のサーバーにデプロイすることもできます。 詳しくはローカルモデルをご覧ください。
データベースの設定
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: ""
dialect には postgresql を指定してください。
起動
サーバーの起動
sse でサーバーを起動する場合は、ターミナルで次のコマンドを実行してください。
YML=path/to/yml python -m xiyan_mcp_server
ブラウザーで http://localhost:8000/sse に情報が表示されます。(デフォルト値です。MCP サーバーが別のホスト/ポートで実行されている場合は変更してください)
一方、stdio トランスポートプロトコルを使用する場合、通常はターミナルで起動するのではなく、特定の MCP アプリケーションで MCP サーバーのコマンドを宣言します。
ただし、必要に応じてこのコマンドでデバッグすることもできます。
クライアントの設定
Claude Desktop
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 トランスポートプロトコルをサポートしていません。
Cline
Claude Desktop と同様に設定を準備してください。
Goose
stdio を使用する場合は、設定に次のコマンドを追加してください。Goose の設定例を参照してください。
env YML=path/to/yml /xxx/python -m xiyan_mcp_server
一方、sse を使用する場合は、Type を SSE に変更し、エンドポイントを http://127.0.0.1:8000/sse に設定してください。
Cursor
次のようなコマンドを使用してください。
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"
}
}
}
Witsy
コマンドに次の内容を追加してください。
/xxx/python -m xiyan_mcp_server
env を追加します。キーは YML、値は yml ファイルへのパスです。 Witsy の設定例を参照してください。
お問い合わせ:
当社の研究や製品にご興味がありましたら、お気軽にお問い合わせください。
お問い合わせ先:
Yifu Liu, [email protected]
DingTalk グループへの参加
その他の関連リンク
引用
この成果がお役に立ちましたら、ぜひ引用してください。
@article{XiYanSQL,
title={XiYan-SQL: A Novel Multi-Generator Framework For Text-to-SQL},
author={Yifu Liu and Yin Zhu and Yingqi Gao and Zhiling Luo and Xiaoxia Li and Xiaorong Shi and Yuntao Hong and Jinyang Gao and Yu Li and Bolin Ding and Jingren Zhou},
year={2025},
eprint={2507.04701},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2507.04701},
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

