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 运行服务器
  • 不起作用 -> 查找SseServerTranpsort类中的文档,该文档与 MCP 网站不同
  • 更改路线 -> 安装 starlette_app,然后就可以工作了
  • starlette 给出 307 临时重定向,用 curl 测试后发现,这是由于缺少尾部斜杠造成的
  • 在 github repo 上查找,那里的路由以服务器代码的尾部斜杠结尾,特别是sse = SseServerTransport("/messages/")部分,我猜它告诉客户端要调用什么
  • 添加一些提示并在客户端检查

写作

  • 我想尝试一下模型上下文协议 (MCP),因为我一直在尝试使用 RAG 原型来与 open-webui 配合使用。MCP 看起来与 LSP 类似。由于服务器和客户端不在同一台机器上,所以我们必须使用 SSE 传输。
  • MCP 官方文档中附带了一些代码片段,我不得不根据 mcp python 库提供的文档字符串对它们进行了一些修改。我花了一段时间才让一切正常,最初处理了 307 临时重定向错误,因为服务器发送了错误的端点。
  • 测试一下!构建一个可以与服务器交互的小型 REPL

目标

  1. 了解 MCP 是什么
  2. 实现简单的服务器和客户端
  3. 尝试函数调用/工具使用

2. 实现基本的知识库

  • 我想建立一个简单的知识库,我们可以将其粘贴到 MCP 服务器中并通过客户端调用来检索一些上下文。

3. MCP 客户端 + Open-WebUI

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

使用模型上下文协议 (MCP) 将 RAG 应用程序连接到 open-webui,通过服务器发送事件 (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