mcpField
X
XiYan MCP Server

XiYan MCP Server

ローカル
github.com/XGenerationLabデータベース23837 週間前に更新

XiYan MCP Server について

XiYan MCP Server は、自然言語でデータベースを照会できる MCP サーバーです。XiYan-SQL が質問を SQL に変換して結果を返します。MySQL と PostgreSQL に対応し、リモートモデルと完全ローカルのモデルを選択できるため、データの安全性とモデル性能のバランスを考える利用者に向いています。

主な機能

  1. 01自然言語から SQL への変換と結果の取得
  2. 02MySQL と PostgreSQL への対応
  3. 03汎用 LLM、ModelScope 提供モデル、ローカルモデルの選択
  4. 04データベースとテーブルをサンプルデータ付きでリソースとして一覧表示
  5. 05stdio と SSE によるトランスポート対応

活用シーン

  1. 01Claude Desktop や Cursor から自然言語で業務データベースを照会する
  2. 02データを外部に出せない環境でローカルモデルを使って照会する
  3. 03非技術者向けのローカルデータ照会アシスタントを用意する

MCP 対応

MCP サーバーとして、自然言語の質問を受け取る get_data ツールと、データベースおよびテーブルを一覧できるリソースを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

XiYan MCP Server

MCP Playwright

自然言語によるデータベースへの問い合わせを可能にする Model Context Protocol(MCP)サーバー
XiYan-SQL を基盤としており、オープンベンチマークにおけるテキストからSQLへの変換で最先端の性能を発揮します

💻 XiYan-mcp-server | 🌐 XiYan-SQL | 📖 Arxiv | 🏆 XiYanSQL Model | 📄 PapersWithCode 🤗 HuggingFace | 🤖 ModelScope | 🌕 析言GBI
MCP Server README の画像 ライセンス:Apache 2.0 PyPI ダウンロード数

Trust Score Smithery インストール数 GitHub スター数
English | 中文 | 日本語
Ding GroupのDingTalkグループ| Weiboでフォロー

目次

機能

  • 🌐 XiYanSQL を使って自然言語でデータを取得
  • 🤖 一般的なLLM(GPT、qwenmax)とテキストからSQLへの変換における最先端モデルに対応
  • 💻 完全ローカルモードに対応(高いセキュリティを実現!)
  • 📝 MySQLとPostgreSQLに対応
  • 🖱️ 利用可能なテーブルをリソースとして一覧表示
  • 🔧 テーブルの内容を読み取り

プレビュー

アーキテクチャ

このサーバーをプロジェクトに統合する方法は、以下の2つです。 左側はリモートモードで、デフォルトのモードです。サービスプロバイダーの xiyanSQL-qwencoder-32B モデルにアクセスするには、API キーが必要です(設定を参照)。 もう1つはローカルモードで、より安全です。API キーは必要ありません。

architecture.png

ベストプラクティスとレポート

"コードを1行も書かずに、MCP + Modelscope API-Inference を使ってローカルデータアシスタントを構築する"

"Modelscope 上の Xiyan MCP"

MCPBench での評価

以下の図は、MCPBench ベンチマークで測定した XiYan MCP サーバーの性能を示しています。XiYan MCP サーバーは、MySQL MCP サーバーと PostgreSQL MCP サーバーの両方を上回る性能を示し、2〜22 パーセントポイントの差をつけています。詳細な実験結果は、MCPBench およびレポート「MCP サーバーの評価レポート」をご覧ください。

exp_mcpbench.png

ツールの概要
  • 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-2412xiyansql-qwencoder-32bxiyansql-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-sqlhttp://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 グループへの参加

Ding Group 钉钉群

その他の関連リンク

MseeP.ai セキュリティ評価バッジ

引用

この成果がお役に立ちましたら、ぜひ引用してください。

@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}, 
}

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。