Model Context Protocol (MCP)に準拠したRAG(Retrieval-Augmented Generation)機能を持つMCPサーバを機能を絞って簡単なものを作ってみます。ローカルで運用するのではなく、別サーバーで運用できるようにします。
ここのところお気に入りのjules君と作業をします。
背景:
karaageさんのmcp-rag-serverが便利だったので、自分でシンプルなベクトル検索結果を返し、uploadも気楽に行えるMCPサーバを構築してみます。
機能:
・RAG機能(実際は、ベクトル検索結果を返すだけ)
・Upload機能(PDFとマークダウンファイル)
・削除機能(ファイル名で削除)
embeddingには軽さと日本語で対応のバランスを考えてruri-v3-30mを利用します。
結果:
upload機能はREST APIで実現。curlで流し込めます。MCPでと思ったのですが、クライアント側の対応も必要のため諦めました。
MCPは大変便利ですが、これから機能・セキュリティを考慮したプロトコルにupgradeされていくと思います。FastAPIによるmcpは、REST APIと併用できるので、使い勝手が良いです。
jules君。単に適当な仕様を指示して、一発で実装させるのではなく、試行錯誤をして、サンプルプログラムまで方向性が見えたところでコーディングさせました。結局、一番楽な方法でした。
詳しくはこちら。