本地 FAISS MCP 服务器

使用说明内容(Markdown格式)

  • 项目简介

    • 这是一个使用 FAISS 的本地向量存储的 MCP 服务器实现,能够对接 MCP 客户端,通过 MCP 定义的工具、资源与提示模板提供上下文服务,便于实现 Retrieval-Augmented Generation(RAG)等场景的对话式信息检索与推理。
  • 主要功能点

    • 资源管理与向量检索:本地向量库存储文档嵌入向量,支持增量 ingest 与语义检索。
    • 工具与调用:暴露 ingest_document、query_rag_store 等工具,供 LLM 客户端调用。
    • 提示模板:提供 extract-answer 和 summarize-documents 等 MCP 提示,帮助 LLM 基于检索结果进行回答和摘要。
    • MCP 服务器实现:通过 MCP 的装饰器(list_tools、call_tool、list_prompts、get_prompt 等)提供标准化的 JSON-RPC 与流式通信能力。
    • 多模式交互:服务器基于 stdio(stdin/stdout)等方式与客户端通信,便于嵌入式部署和本地开发。
  • 安装步骤

    • 安装依赖并获取代码后,即可直接运行服务(请确保 Python 环境可用,且必要的模型权重可下载)。
    • 典型依赖包括 FAISS、sentence-transformers、pypdf、Pandoc(用于文档格式处理)等,请根据实际需求安装。
  • 服务器配置(MCP 客户端需要的参数信息,JSON 格式) 说明:以下配置用于 MCP 客户端在本地启动并连接到 MCP 服务器。serverName 表示服务器标识,command 为启动命令,args 为启动参数,具体含义如下所示。 { "serverName": "local-faiss-mcp", "command": "local-faiss-mcp", "args": [ "--index-dir", "./.vector_store" ] // 你也可以按需指定 embeddings 模型、是否启用 re-ranking 等配置,例如: // "--embed", "all-mpnet-base-v2", "--rerank", "BAAI/bge-reranker-base" }

  • 基本使用方法

    • 启动方式:在包含 MCP 客户端配置的环境中,通过 MCP 客户端启动并连接到该服务器。服务器会通过标准输入输出与客户端进行 JSON-RPC 交互。
    • 常用工具与流程:
      • ingest_document:将文档文本或文件通过自动检测路径的方式导入向量库,分段并生成嵌入。
      • query_rag_store:基于查询文本进行语义检索,返回相关文档分块及距离等信息,便于后续处理与回答生成。
      • prompts(extract-answer、summarize-documents):基于检索结果构建 LLM 的结构化输入,便于获得带引用的答案或摘要。
    • 使用注意:
      • 由于模型和向量库依赖较大,请确保本地环境具备足够的磁盘与算力资源。
      • 当切换嵌入模型或重新建立索引时,请保持模型维度的一致性,避免索引维度不匹配导致错误。

服务器信息