概要
AIエージェントとバックエンドをつなぐ手段として、Model Context Protocolが注目されています。本記事では、データベースとIBM API Connect for GraphQLを接続し、MCP Inspectorというツールを利用して動作確認を実施します。
環境
PostgreSQL 16.11 (Ubuntu 24.04上に構築)
ngrok 3.34.0
API Connect for GraphQL SaaS (無料試用版を利用)
Stepzen CLI 0.53.0
事前準備
-
PostgreSQL上にテスト用のテーブルを作成します。また、後ほどデータベース名・ユーザ・パスワードの情報が必要になるため控えておきます。
CREATE TABLE EMPLOYEE ( EMP_ID INTEGER NOT NULL, AGE INTEGER, NAME VARCHAR(100), DEPARTMENT VARCHAR(100), PRIMARY KEY (EMP_ID) );INSERT INTO EMPLOYEE (EMP_ID, AGE, NAME, DEPARTMENT) VALUES (1001, 30, '山田太郎', '営業部'), (1002, 28, '佐藤花子', '総務部'), (1003, 35, '鈴木一郎', '開発部') (1017, 29, '竹内悠', '管理部'); -
今回は個人PC上のLinuxにDBを構築したので、SaaSからアクセスできるようにngrokというツールを利用します。ngrokを使うと、ローカルのPCにアクセスするためのトンネルを作成してくれます。導入方法はホームページに記載がありますが、会員登録を実施しトークンを取得しておく必要があります。また、TCPの通信をトンネリングする場合はクレジットカードの登録が必要になります。
sudo snap install ngrok ngrok config add-authtoken XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -
トンネリングの前に、5432番 (デフォルトの場合)が正しくリッスンしているか確認します。
ss -ltn|grep 5432 -
DBが正常に動いているのを確認できたら、ngrokを起動します。
ngrok tcp 5432ngrok (Ctrl+C to quit) 🤫 Put your secrets in vaults and (re)use them to transform traffic: https://ngrok.com/r/secrets Session Status online Account xxxx (Plan: Free) Version 3.34.0 Region Japan (jp) Latency 12ms Web Interface http://127.0.0.1:4040 Forwarding tcp://0.tcp.xx.ngrok.io:xxxxx -> localhost:5432 -
上記のような画面が出たら、トンネリングは成功です。データベースへ外部から接続できるか確認します。
psql -h 0.tcp.xx.ngrok.io -p xxxxx -d postgres -U stepzen
この際、指定するポート番号は5432番ではなく、ngrokによってフォワードされたポート番号を指定する必要がある点に注意してください。ここまでで準備は完了です。
API Connect for GraphQLへの接続
-
設定を実施するためStepzen CLIというツールを導入します。
sudo apt install npm npm -i g stepzen stepzen --version -
stepzen CLIでSaaS環境へログインします。環境のURLは、トップページのGUIから確認できます。
stepzen login xxxxx.ibm.stepzen.net -i xxxxxx -k <MCSP API KEY>
-
ログインできたら、ローカルの任意の場所に作業ディレクトリを作成します。
mkdir ~/stepzen && cd stepzen -
作業フォルダを初期化します。
stepzen init --endpoint=api/postgrestest -
作業フォルダ内で
importコマンドを実施することで、自動でDBに接続しGraphQLスキーマを生成することができます。stepzen import postgresql \ "postgresql://<DBユーザ名>:<パスワード>@0.tcp.xx.ngrok.io:xxxxx/postgres"これで、作業フォルダに以下のようなファイルが生成されます。
stepzen/ ├─ config.yaml ├─ index.graphql ├─ postgresql/ │ └─ index.graphql ├─ stepzen.config.json -
ローカルで生成した情報を、SaaSへデプロイします。
stepzen deploy -
SaaSの画面を開き、トップページ左側のEndpointsから、デプロイしたエンドポイントを選択し、Explorerを開きます。エンドポイントのURLは、
https://xxxxxx.ibm.stepzen.net/api/postgrestest/graphqlのような形で払い出されます。このURLの末尾graphqlをmcpに変更したものが、MCPサーバのエンドポイントになります。これで、MCPサーバの準備が完了しました。

MCP Inspectorによる確認
-
MCP Inspectorを導入・実行します。実行すると、自動でweb UIが起動します。
npm install -g @modelcontextprotocol/inspector mcp-inspector -
web UIの左側のペインに各項目を選択・入力し、"Connect"を押下します。
-
自動で接続が始まり、Toolの一覧が表示されます。Toolのdescriptionには、
queryにどのようにクエリを生成しなければならないかが記載されており、生成AIはこれを読み取ってユーザの自然言語での問い合わせに応じたクエリを生成します。今回はテストなので、手動でqueryを入力します。API Connect for GraphQLのExplorer画面では、GUIベースでGraphQLクエリを生成できます。

任意のクエリを生成して、MCP Inspectorの
queryに入力します。 -
Run Toolを押下すると、Tool/Callが実行され、ペイン下部に結果が表示されます。これで、DBの内容をMCPサーバを通じて確認することができました。実際は、この内容が生成AIによって解釈され、自然言語で表示されることになります。

終わりに
API Connect for GraphQLを利用して、データベースをMCPとして公開する方法についてご紹介しました。ぜひ試してみてください。
また、IBM TechXchange Integration Group Japanで製品の最新情報を発信しています。あわせてご覧ください。



