MCPを活用したAIと社内システム連携の可能性
財務・会計・人事・生産・販売など、社内で稼働するいろいろな業務システムがあると思います。それらをAIで操作できたら...と思ったことはありませんか?
最近話題のMCPを使うと実現できるかも、ということで調査してみました。
MCPとは?
MCPとは、ChatGPTやClaudeなどAIチャットツールと外部システムをつなぐプロトコル(規約)のことです。MCPに従ってプログラムを作るとAIチャットツールと外部システムを連携できるようになります。
すなわち、AIから社内システムのデータを操作できるようになります。
AIで社内システムのデータを扱うために必要なもの
AIから社内システムのデータを扱うためにいくつか必要なものがあります。それが、社内システムAPI・MCPクライアント・MCPサーバーの3つです。
社内システムのAPIを用意する
APIとは、システムのデータを他システムと連携できるようにするための窓口です。
システムのAPIを作るにはITエンジニアによる開発が必要になります。が、私たちが提供するVeletaという製品を使うと社内システムのAPIを自動生成できます。
WebAPI自動生成サービス Veleta
VeletaでAPIを生成する仕組みをざっくり説明すると、Mashuというデータカタログ製品で収集した社内システムのDBテーブル設計(スキーマ)情報をもとに、クラウド上でAPIのプログラムを自動生成します。生成したAPIプログラムを自社内のサーバーに配置して実行すれば、社内システムの窓口となって他システムと連携できるようになります。
メタデータ管理サービス Mashu
MCPクライアント、MCPサーバーを用意する
MCPクライアントはChatGPTやClaudeなどのAIに指示を出すためのツールです。今回の調査ではClaude Desktopを使いました。
MCPサーバーはMCPクライアントとシステムのAPIとの橋渡しをするサーバープログラムです。今回は社内システムと連携するMCPサーバーを用意する必要があったので自分で実装しています。
やってみた
今回は社内に販売業務のシステムと製造業務のシステムがあるというシナリオでMCPを検証してみようと思います。販売システムでは顧客、製造システムでは取引先のデータをそれぞれ管理しています。
APIを生成する
-
APIを生成するために、まずはMashuで販売システム・製造システムのDBテーブル設計情報を収集します。
Mashuでテーブル設計情報を取り込んだあとの画面。テーブルやカラムに設定されたコメントも取り込んで、データに意味づけすることができる。
-
Mashuで収集した情報をもとにVeletaでAPIを生成します。今回はデータ読み取り専用のAPIを生成するよう設定しました。
VeletaのAPI設定画面。APIの動作を設定画面から変更できる。
-
Veletaで生成したAPIを実行します。APIを実行すると後のステップで社内システムとClaude Desktopが連携できるようになります。
Veletaで生成したAPIをDockerで立ち上げたところ。生成したAPIはコンテナイメージ or ソースコードでダウンロードできる。
MCPサーバーを実装する
MCPサーバーでは、Claude Desktopからきたリクエストを先のステップで実行したAPIに送信するツール(Tools)を実装しました。
ツールには、どんな役割をもつツールなのか、引数にはどんな値が指定できるのか設定できます。ここではMashuで管理しているテーブルやカラムの説明をそのまま設定しました。
販売システムの顧客APIに対するツール定義
製造システムの取引先APIに対するツール定義
Claude DesktopにMCPサーバーの設定を追加する
Claude DesktopとMCPサーバーが通信できるようにJSON形式の設定ファイルを追加します。設定ファイルには環境変数を設定することもできます。
AIに指示をだしてみる
AIに対して取引先のデータを取得するようオーダーしました。実行結果をみると、販売システムと製造システムの違いをAIが判断して製造システムのDBからデータを取得しているようです。
Mashuのようなデータカタログ製品でデータに意味づけをしておくと今後AI製品をスムーズに導入できそうだと思いました。
今後の展望
MCPの登場によりAIと社内システムを連携する動きが加速していくと思っています。APIを生成するにとどまらずAIとの連携も視野にいれた機能をVeletaにも組み込んでいく予定です。
AIに指示をだしてタスクを処理し、人間はよりコアな業務に集中する。
近い将来、社内のいろいろな業務やシステムでそれが実現できるようになるのかもしれません。
Discussion