Token导航 LogoToken导航TokenDH.com
MCP RAG Server logo
数据服务stdio官方级别未说明来源级核验

MCP RAG Server

MCP Server

一个基于FAISS向量数据库的MCP服务器,用于检索增强生成(RAG),支持GitHub Move文件提取和LLM集成。

工具数

0

提示词数

0

GitHub Stars

7

资源数

0
向量数据库检索增强生成Python

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ProbonoBonobo

提供方

ProbonoBonobo

最后核验

2026/5/17 20:59

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m pip install --user pipx

详细介绍

用于RAG的带FAISS的MCP服务器

该项目提供了一种机器对话协议(MCP)服务器的概念验证实现,该服务器允许AI代理查询向量数据库并检索相关文档,以用于检索增强生成(RAG)。

特性

  • 带MCP端点的FastAPI服务器
  • FAISS矢量数据库集成
  • 文档分块和嵌入
  • GitHub Move文件提取和处理
  • LLM集成,实现完整的RAG工作流程
  • 简单客户端示例
  • 样本文件

安装

使用pipx(推荐)

pipx 是一个帮助您在隔离环境中安装和运行Python应用程序的工具。

  1. 首先,如果你没有pipx,请安装它:
# On macOS
brew install pipx
pipx ensurepath

# On Ubuntu/Debian
sudo apt update
sudo apt install python3-pip python3-venv
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# On Windows with pip
pip install pipx
pipx ensurepath
  1. 直接从项目目录安装MCP Server包:
# Navigate to the directory containing the mcp_server folder
cd /path/to/mcp-server-project

# Install in editable mode
pipx install -e .
  1. (可选)配置环境变量:

- 复制 .env.example.env - 添加您的GitHub令牌以获得更高的速率限制: GITHUB_TOKEN=your_token_here - 为RAG集成添加您的OpenAI或其他LLM API密钥: OPENAI_API_KEY=your_key_here

手动安装

如果你不想使用pipx:

  1. 克隆存储库
  2. 安装依赖项:
cd mcp_server
pip install -r requirements.txt

使用pipx

使用pipx安装后,您将可以访问以下命令:

从GitHub下载Move文件

# Download Move files with default settings
mcp-download --query "use sui" --output-dir docs/move_files

# Download with more options
mcp-download --query "module sui::coin" --max-results 50 --new-index --verbose

改进GitHub搜索和索引(推荐)

# Search GitHub and index files with default settings
mcp-search-index --keywords "sui move"

# Search multiple keywords and customize options
mcp-search-index --keywords "sui move,move framework" --max-repos 30 --output-results --verbose

# Save search results and use a custom index location
mcp-search-index --keywords "sui coin,sui::transfer" --index-file custom/path/index.bin --output-results

mcp-search-index 命令提供了增强的GitHub存储库搜索功能:

  • 首先搜索存储库,然后递归提取Move文件
  • 支持多个搜索关键字(逗号分隔)
  • 智能过滤包含“use sui”引用的Move文件
  • 下载后始终重建矢量数据库

索引移动文件

# Index files in the default location
mcp-index

# Index with custom options
mcp-index --docs-dir path/to/files --index-file path/to/index.bin --verbose

查询矢量数据库

# Basic query
mcp-query "What is a module in Sui Move?"

# Advanced query with options
mcp-query "How do I define a struct in Sui Move?" -k 3 -f

将RAG与LLM集成使用

# Basic RAG query (will use simulated LLM if no API key is provided)
mcp-rag "What is a module in Sui Move?"

# Using with a specific LLM API
mcp-rag "How do I define a struct in Sui Move?" --api-key your_api_key --top-k 3

# Output as JSON for further processing
mcp-rag "What are the benefits of sui::coin?" --output-json > rag_response.json

运行服务器

# Start the server with default settings
mcp-server

# Start with custom settings
mcp-server --host 127.0.0.1 --port 8080 --index-file custom/path/index.bin

手动使用(无pipx)

启动服务器

cd mcp_server
python main.py

服务器将于启动http://localhost:8000

从GitHub下载Move文件

要从GitHub下载Move文件并填充矢量数据库,请执行以下操作:

# Download Move files with default query "use sui"
./run.sh --download-move

# Customize the search query
./run.sh --download-move --github-query "module sui::coin" --max-results 50

# Download, index, and start the server
./run.sh --download-move --index

你也可以直接使用Python脚本:

python download_move_files.py --query "use sui" --output-dir docs/move_files

索引文档

在查询之前,您需要为文档建立索引。您可以将文本文件(.txt)、Markdown文件(.md)或Move文件(.Move)放置在 docs 目录。

要为文档编制索引,您可以:

  1. 将运行脚本与 --index 标志:
./run.sh --index
  1. 直接使用索引脚本:
python index_move_files.py --docs-dir docs/move_files --index-file data/faiss_index.bin

查询文档

您可以使用本地查询脚本:

python local_query.py "What is RAG?"

# With more options
python local_query.py -k 3 -f "How to define a struct in Sui Move?"

将RAG与LLM集成使用

# Direct RAG query with an LLM
python rag_integration.py "What is a module in Sui Move?" --index-file data/faiss_index.bin

# With API key (if you have one)
OPENAI_API_KEY=your_key_here python rag_integration.py "How do coins work in Sui?"

MCP API终点

MCP API端点位于 /mcp/action。您可以使用它执行不同的操作:

  • retrieve_documents:检索查询的相关文档
  • index_documents:从目录中索引文档

例子:

curl -X POST "http://localhost:8000/mcp/action" -H "Content-Type: application/json" -d '{"action_type": "retrieve_documents", "payload": {"query": "What is RAG?", "top_k": 3}}'

完整的RAG管道

完整的RAG(检索增强生成)流程如下:

  1. 搜索查询:用户提交问题
  2. 检索:系统在矢量数据库中搜索相关文件
  3. 语境形成:检索到的文档将格式化为提示
  4. LLM生成:提示将与检索到的上下文一起发送到LLM
  5. 增强响应:LLM根据检索到的信息提供答案

此工作流程在 rag_integration.py 模块,既可以通过命令行使用,也可以作为自己应用程序中的库使用。

GitHub移动文件提取

该系统可以根据搜索查询从GitHub提取Move文件。它实现了两种方法:

  1. GitHub API (首选):需要GitHub令牌才能获得更高的速率限制
  2. Web抓取回退:当API方法失败或未提供令牌时使用

要配置您的GitHub令牌,请在 .env 文件或作为环境变量:

GITHUB_TOKEN=your_github_token_here

项目结构

mcp_server/
├── __init__.py             # Package initialization
├── main.py                # Main server file
├── mcp_api.py             # MCP API implementation
├── index_move_files.py    # File indexing utility
├── local_query.py         # Local query utility
├── download_move_files.py # GitHub Move file extractor
├── rag_integration.py     # LLM integration for RAG
├── pyproject.toml         # Package configuration
├── requirements.txt       # Dependencies
├── .env.example           # Example environment variables
├── README.md              # This file
├── data/                  # Storage for the FAISS index
├── docs/                  # Sample documents
│   └── move_files/        # Downloaded Move files
├── models/                # Model implementations
│   └── vector_store.py    # FAISS vector store implementation
└── utils/
    ├── document_processor.py  # Document processing utilities
    └── github_extractor.py    # GitHub file extraction utilities

扩展项目

要扩展此概念证明:

  1. 添加身份验证和安全功能
  2. 实施更复杂的文档处理
  3. 添加对更多文档类型的支持
  4. 与其他LLM提供商集成
  5. 添加监控和日志记录
  6. 改进Move语言解析,以实现更结构化的数据提取

许可证

麻省理工学院

目录标签

目录标签

向量数据库检索增强生成Python本地部署GitHub文件处理LLM集成FAISS

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-keylocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP