带有 FAISS 的 MCP 服务器用于 RAG
该项目提供了机器对话协议 (MCP) 服务器的概念验证实现,该服务器允许 AI 代理查询矢量数据库并检索检索增强生成 (RAG) 的相关文档。
特征
- 带有 MCP 端点的 FastAPI 服务器
- FAISS矢量数据库集成
- 文档分块和嵌入
- GitHub Move 文件提取和处理
- LLM 集成以实现完整的 RAG 工作流程
- 简单客户端示例
- 示例文件
安装
使用 pipx(推荐)
pipx是一个帮助您在隔离环境中安装和运行 Python 应用程序的工具。
- 首先,如果你没有 pipx,请安装它:
- 直接从项目目录安装 MCP 服务器包:
- (可选)配置环境变量:
- 将
.env.example
复制到.env
- 添加你的 GitHub 令牌以获得更高的速率限制:
GITHUB_TOKEN=your_token_here
- 添加您的 OpenAI 或其他 LLM API 密钥以进行 RAG 集成:
OPENAI_API_KEY=your_key_here
- 将
手动安装
如果您不想使用 pipx:
- 克隆存储库
- 安装依赖项:
与 pipx 一起使用
使用 pipx 安装后,您将可以访问以下命令:
从 GitHub 下载移动文件
改进的 GitHub 搜索和索引(推荐)
mcp-search-index
命令提供了增强的 GitHub 存储库搜索功能:
- 首先搜索存储库,然后递归提取移动文件
- 支持多个搜索关键字(逗号分隔)
- 智能过滤包含“use sui”引用的移动文件
- 下载后总是重建矢量数据库
索引移动文件
查询矢量数据库
使用 RAG 与 LLM 集成
运行服务器
手动使用(不使用 pipx)
启动服务器
服务器将在http://localhost:8000上启动
从 GitHub 下载移动文件
要从 GitHub 下载 Move 文件并填充您的矢量数据库:
您也可以直接使用 Python 脚本:
索引文档
在查询之前,您需要索引您的文档。您可以将文本文件 (.txt)、Markdown 文件 (.md) 或 Move 文件 (.move) 放在docs
目录中。
要索引文档,您可以:
- 使用带有
--index
标志的运行脚本:
- 直接使用索引脚本:
查询文档
您可以使用本地查询脚本:
使用 RAG 与 LLM 集成
MCP API 端点
MCP API 端点位于/mcp/action
。您可以使用它执行不同的操作:
retrieve_documents
:检索查询的相关文档index_documents
:目录中的索引文档
例子:
完整的 RAG 管道
完整的 RAG(检索增强生成)流程的工作原理如下:
- 搜索查询:用户提交问题
- 检索:系统在矢量数据库中搜索相关文档
- 上下文形成:检索到的文档被格式化为提示
- LLM 生成:提示与检索到的上下文一起发送到 LLM
- 增强响应:LLM 根据检索到的信息提供答案
此工作流程在rag_integration.py
模块中完全实现,可以通过命令行使用,也可以作为您自己的应用程序中的库使用。
GitHub 移动文件提取
系统可以根据搜索查询从 GitHub 中提取 Move 文件。它实现了两种方法:
- GitHub API (首选):需要 GitHub 令牌才能获得更高的速率限制
- Web Scraping fallback :当 API 方法失败或未提供令牌时使用
要配置您的 GitHub 令牌,请在.env
文件中或作为环境变量进行设置:
项目结构
扩展项目
扩展此概念验证:
- 添加身份验证和安全功能
- 实施更复杂的文档处理
- 添加对更多文档类型的支持
- 与其他 LLM 提供商整合
- 添加监控和日志记录
- 改进 Move 语言解析以实现更结构化的数据提取
执照
麻省理工学院
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
机器对话协议服务器,使 AI 代理能够通过查询包含 Sui Move 语言文档的 FAISS 矢量数据库来执行检索增强生成。
Related MCP Servers
- AsecurityFlicenseAqualityThis server provides access to the Perplexity AI API, enabling interaction through chatting, searching, and documentation retrieval within MCP-based systems.Last updated -52JavaScript
- -securityAlicense-qualityA server that enables querying the dbt Semantic Layer through natural language conversations with Claude Desktop and other AI assistants, allowing users to discover metrics, create queries, analyze data, and visualize results.Last updated -7TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables AI agents to query Erick Wendel's talks, blog posts, and videos across different platforms using natural language.Last updated -55TypeScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI agents to generate, fetch, and manage UI components through natural language interactions.Last updated -3194TypeScript