【登壇資料】 『MCP Python SDKでSQLをチェックしてくれるMCPサーバーを自作してCursorから動かしてみた』

【登壇資料】 『MCP Python SDKでSQLをチェックしてくれるMCPサーバーを自作してCursorから動かしてみた』

CursorからSQLFluffを利用できるツールを提供するMCPサーバーと連携して、分析クエリを修正する例を試してみました。
Clock Icon2025.06.02

データ事業本部の鈴木です。

社内の勉強会でCursorから独自に作成したMCPサーバーを利用する例を共有しました。
簡単なものではありますがご紹介します。

資料

MCP Python SDKでSQLFluffを実行できるツールを備えたMCPサーバーを作成し、Cursorから利用する例を作成しました。直接ターミナルコマンドとしてSQLFluffを実行することもできますが、 MCP Python SDKでの実装を間に挟むことでCursorへの返却値をカスタマイズできたり、実行する環境を他のユーザーと共通化できることがメリットかなと思います。

ポイント

SQLFluffについて

SQLのフォーマットを自動で問題点の指摘や修正をしてくれる、オープンソースサービスです。

https://sqlfluff.com/

ターミナルからも実行できますが、Python向けのAPIも用意されており、Pythonスクリプトから利用可能です。
フォーマットチェックをしてくれるリント機能に加え、一部指摘事項を反映してくれる修正機能もあります。
詳しくは以下もご確認ください。

https://dev.classmethod.jp/articles/sqlfluff-2/

スライドでも紹介している通り、ASのエイリアス名などは修正機能では対応できないため、人間がエイリアス名を考える必要がありましたが、LLMを使うことで自動で適切な修正をできるのではないかという点が今回の例のポイントでもあります。

sqlfluff

Claudeを使ったMCPサーバーの作成

MCPのドキュメントにClaudeを使ったMCPサーバーの作成が紹介されていたため、今回はCursorでその方法で作成してみました。

https://modelcontextprotocol.io/tutorials/building-mcp-with-llms

Claudeを使ったMCPサーバーの作成

生成されたコード

今回くらいの内容だと自分で書いてしまった方が早い気はしますが、より機能が複雑であったりツール数が多くなってきた際に、LLMに支援してもらいつつスピーディーに実装ができるのは良いかもしれません。

SQLの修正結果

課題に思っていたエイリアスの作成もしてくれました。

エイリアスの作成

BigQueryの文法である程度複雑なSQLに対してチェックと修正をしてみましたが、こちらも問題なく動いていそうでした。

BigQueryのSQL文の修正

ある程度複雑なSnowflakeの文法のSQL文をBigQueryの文法に書き直せるかもやってみました。
BigQueryの文法にどこまで精緻に直せるかはLLM次第ではありますが、大きく異なる点はSQLFluffで検出できるため、LLM単体で書き直すより良いかもしれません。
これは例えばText2SQLがしたい場合に、特定の文法に沿わないSQL文が生成されるリスクを下げられることを期待しています。

SnowflakeのSQL文の修正

終わりに

社内の勉強会でCursorから独自に作成したMCPサーバーを利用する例を共有したのでご紹介でした。
参考になりましたら幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.