Claude DesktopにSQLclをMCPサーバーとして登録し、実際にデータベースに問い合わせを行ってみました。以下はその作業の記録です。
最初に最新版のSQLclをダウンロードします。
SQLclの実行にはJavaが必要です。Javaもダウンロードしてインストールしておきます。
SQLclはsqlcl-latest.zipというファイル名でダウンロードされます。これを展開すると、展開先のディレクトリの下にsqlclというフォルダが作成されます。その中にディレクトリbinがあり、そこにSQLclを起動するファイルsql(Windows向けはsql.exe)が含まれます。
このsqlまたはsql.exeの位置を覚えておきます。
SQLclのMCPサーバーを実行してみます。SQLclをMCPサーバーとして実行するには、-mcpオプションを付加します。以下の例は、ホーム・ディレクトリ直下でsqlcl-latest.zipを解凍しています。
$HOME/sqlcl/bin/sql -mcp
~ % $HOME/sqlcl/bin/sql -mcp
---------- MCP SERVER STARTUP ----------
MCP Server started successfully on Wed Jul 09 09:56:59 JST 2025
Press Ctrl+C to stop the server
----------------------------------------
MCPサーバーの正常な起動を確認したら、Ctrl-Cを入力して終了します。
Claude Desktopの設定を開きます。
設定ダイアログの左のメニューより開発者を選び、構成を編集をクリックします。
編集するファイルclaude_desktop_config.jsonが選択されます。構成ファイルの位置を覚えている場合は、直接ファイルを編集してもよいでしょう。
claude_desktop_config.jsonに以下のエントリを追記します。PATHの部分も含めて、先ほどインストールしたSQLclの実行ファイルsqlの絶対パスを入力します。
{
"mcpServers": {
"sqlcl": {
"command": "PATH/bin/sql",
"args": ["-mcp"]
}
}
}
3.4 Preparing Your Environmentに、SQLclのMCPサーバーに認識させるデータベースの設定方法が紹介されています。connコマンドによる方法が紹介されていますが、Noteにあるように、データベースへの接続はSQL Developer Extension for VS Codeと共有されています。
そのため、データベース接続の作成や削除には、SQL Developer Extension for VS Codeを使用した方が楽かなと思います。
以上で準備は完了です。
Claude Desktopの設定ファイルを更新したのち再起動します。
ドキュメントの3.6 Example Use Cases and Promptsに記載されているプロンプトを試してみます。
sqlclで使える接続を一覧して。
Autonomous Databaseの開発ワークスペースに接続して。
これからはSHスキーマに含まれる表やビューを対象にします。
SELECT
c.cust_first_name || ' ' || c.cust_last_name as customer_name,
c.cust_city,
c.cust_street_address,
c.cust_postal_code,
COUNT(*) as total_orders,
TO_CHAR(SUM(s.amount_sold), '999,999.99') as total_amount,
TO_CHAR(MAX(s.time_id), 'YYYY-MM-DD') as last_order_date
FROM sh.customers c
JOIN sh.sales s ON c.cust_id = s.cust_id
WHERE c.cust_state_province = 'CA'
AND s.time_id >= DATE '2001-01-01' -- 2001年の受注
GROUP BY c.cust_id, c.cust_first_name, c.cust_last_name, c.cust_city, c.cust_street_address, c.cust_postal_code
ORDER BY SUM(s.amount_sold) DESC
FETCH FIRST 15 ROWS ONLY
その検索結果を受けて、以下の回答が生成されています。
地域および製品カテゴリ別の売上を階層的に分類し、前年比成長率も示してください。
巷ではClaudeのLLMのコード生成能力の高さが評価されていますが、SQLの生成についても能力が高いと感じます。
Autonomous DatabaseではユーザーADMIN、オンプレミスではSYSまたはSYSTEMでデータベースに接続します。
ツール呼び出しの履歴は、接続したスキーマに作成された表DBTOOLS$MCP_LOGに記録されます。
今回は接続スキーマ名はWKSP_APEXDEVなので、以下のSELECT文を実行します。
SELECT * FROM WKSP_APEXDEV.DBTOOLS$MCP_LOG order by created_on desc
V$SESSIONよりMCPサーバーが接続しているセッションを確認します。
select module, action from v$session where username = 'WKSP_APEXDEV'
列MODULEにLLMのモデル名、列ACTIONに呼び出されたツール名が設定されています。
今回の記事は以上になります。
完