MCP-RAG Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Integrates a knowledge base into the MCP server to provide context for RAG (Retrieval-Augmented Generation) applications

mcp-rag

MCP を介して RAG アプリケーションを open-webui に接続する

1. ベアボーンMCP PoC / Hello World

pip install mcp[cli]
  • SSEスニペットに関するドキュメントを調べる
  • uvicornを使用してサーバーを実行する
  • 動作しません -> MCP ウェブサイトとは異なるSseServerTranpsortクラスのドキュメントを参照してください
  • starlette_appのルート -> マウントを変更すると動作します
  • starletteは307の一時的なリダイレクトを返すが、curlでテストすると、末尾のスラッシュがないことが原因であることがわかった。
  • githubリポジトリで調べたところ、ルートはサーバコードの末尾にスラッシュで終わっており、特にsse = SseServerTransport("/messages/")の部分はクライアントに何を呼び出すかを伝えていると思われます。
  • プロンプトをいくつか追加してクライアント側で確認する

記事

  • open-webuiで使用するRAGプロトタイプの実験を行っていたので、モデルコンテキストプロトコルを試してみたいと思っています。MCPはLSPに似ています。サーバーとクライアントが同じマシン上に存在しないため、SSEトランスポートを使用する必要があります。
  • MCPの公式ドキュメントにはいくつかのスニペットが付属していますが、mcp Pythonライブラリが提供するドキュメント文字列に従って、少し調整する必要がありました。動作させるまでに少し時間がかかり、最初はサーバーが間違ったエンドポイントを送信していたため、307 Temporary Redirectエラーが発生していました。
  • テストしてみましょう!サーバーとやり取りできる小さなREPLを構築しましょう

ゴール

  1. MCPとは何かを理解する
  2. シンプルなサーバーとクライアントを実装する
  3. 関数呼び出し/ツールの使用を試してみる

2. 基本的な知識ベースを実装する

  • MCP サーバーに貼り付けて、クライアントを介して呼び出してコンテキストを取得できるシンプルな KnowledgeBase を構築したいと考えています。

3. MCPクライアント + Open-WebUI

-
security - not tested
F
license - not found
-
quality - not tested

モデル コンテキスト プロトコル (MCP) を使用して RAG アプリケーションを open-webui に接続し、Server-Sent Events (SSE) を通じてリモート環境でのコンテキスト取得とツール使用のためのサーバーとクライアント間の通信を可能にします。

  1. 1. Bare bones MCP PoC / Hello World
    1. Writeup
    2. Goal
  2. 2. Implement a basic KnowlegdeBase
    1. 3. MCP Client + Open-WebUI
      ID: cni0rqrp11