MCP(Message Communication Protocol)服务器是一个基于 FastAPI 和 FAISS 的快速 API 服务,主要用于支持 RAG(检索增强生成)应用程序。本项目详细介绍了如何构建和使用该服务器,助力开发者快速搭建相关应用。
在项目根目录中运行以下命令安装所有必要的依赖:
pip install -r requirements.txt
复制 .env.example 文件并命名为 .env,然后根据需要修改配置:
GITHUB_TOKEN=your_github_token_here
OPENAI_API_KEY=your_openai_api_key_here
在项目根目录中运行以下命令安装所有必要的依赖:
pip install -r requirements.txt
复制 .env.example 文件并命名为 .env,然后根据需要修改配置:
GITHUB_TOKEN=your_github_token_here
OPENAI_API_KEY=your_openai_api_key_here
mcp_api.py)提供以下主要接口:
/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}}'
index_move_files.py)将文档转换为文本并存储到 FAISS 索引中:
python index_move_files.py --docs-dir docs/move_files --index-file data/faiss_index.bin
local_query.py)直接从索引中检索相关文档:
python local_query.py "What is RAG?"
完整的 RAG 工作流程如下:
该流程在 rag_integration.py 中有完整实现。
mcp_server/
├── __init__.py # 包初始化文件
├── main.py # 主服务器文件
├── mcp_api.py # MCP API 实现文件
├── index_move_files.py # 文件索引工具
├── local_query.py # 本地查询工具
├── download_move_files.py # GitHub Move 文件提取器
├── rag_integration.py # LLM 集成模块
├── pyproject.toml # 包配置文件
├── requirements.txt # 依赖管理文件
├── .env.example # 环境变量示例文件
├── README.md # 项目说明文档
├── data/ # 数据存储目录
├── docs/ # 示例文档目录
│ └── move_files/ # 下载的 Move 文件存放目录
├── models/ # 模型实现目录
│ └── vector_store.py # FAISS 矢量存储实现
└── utils/
├── document_processor.py # 文档处理工具
└── github_extractor.py # GitHub 文件提取工具
mcp_api.py)提供以下主要接口:
/mcp/action: 支持 retrieve_documents 和 index_documents 两种操作类型。index_move_files.py)将文档转换为文本并存储到 FAISS 索引中:
python index_move_files.py --docs-dir docs/move_files --index-file data/faiss_index.bin
local_query.py)直接从索引中检索相关文档:
python local_query.py "What is RAG?"
完整的 RAG 工作流程如下:
该流程在 rag_integration.py 中有完整实现。
LICENSE