项目简介

这是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在将指定目录下的Markdown文件作为资源,并通过MCP协议向连接的LLM客户端(如智能体Agent)提供这些知识资源的访问和检索能力。它使用 'fastmcp' 框架构建,并通过Stdio传输协议与客户端通信。

主要功能点

  • 知识库文档暴露: 将服务器指定路径下的Markdown文件注册为MCP资源,使其可被LLM客户端发现和访问。
  • 资源列表查询: 提供MCP工具供LLM客户端调用,以获取所有注册知识资源的名称、URI和大小列表。
  • 资源内容读取: 提供MCP工具供LLM客户端调用,以根据URI获取特定知识资源的详细内容。
  • 标准MCP协议: 遵循MCP规范,通过JSON-RPC进行通信。
  • Stdio传输支持: 使用标准输入/输出流作为传输通道,方便进程间通信。

安装步骤

  1. 环境准备: 确保您的系统安装了 Python 3.8 或更高版本。
  2. 克隆仓库: 将此仓库克隆到本地。
  3. 安装依赖: 进入仓库目录,安装所需的Python库。此服务器主要依赖 'fastmcp' 和 'aiofiles'。
    pip install fastmcp aiofiles
    (注意:'llama-cpp-python' 等库是示例 Agent 所需,服务器本身不强制要求。)
  4. 配置知识库路径: 在仓库根目录下创建一个名为 'config.json' 的文件,指定您的知识库Markdown文件所在的根目录。
    {
      "VAULT_PATH": "/path/to/your/knowledge/base/directory"
    }
    请将 '/path/to/your/knowledge/base/directory' 替换为您实际存放Markdown文件的路径。服务器会递归扫描此目录下的所有 '.md' 文件。
  5. 放置Markdown文件: 将您的Markdown知识文档放入 'config.json' 中指定的 'VAULT_PATH' 目录下。建议使用分层结构,例如 '/path/to/your/knowledge/base/directory/category/topic/filename.md'。

服务器配置

此MCP服务器通常作为子进程由MCP客户端(如AI Agent应用)启动并通过Stdio进行通信。客户端需要知道如何启动这个服务器进程。以下是客户端连接时所需配置的示例 JSON 结构:

{
  "name": "knowledge-vault",
  "transport": "stdio",
  "command": "python",
  "args": ["./run_server.py"]
}
  • 'name': 服务器注册的名称,客户端应使用此名称进行连接。此处为 "knowledge-vault"。
  • 'transport': 客户端与服务器通信使用的传输协议。此处为 "stdio"。
  • 'command': 启动服务器进程的命令行程序。此处为 "python"。
  • 'args': 传递给 'command' 的参数列表。此处为服务器的启动脚本路径 './run_server.py'。请根据实际部署位置调整此路径。

基本使用方法

  1. 启动服务器: 在仓库根目录下运行服务器启动脚本。
    python run_server.py
    服务器启动后会扫描 'VAULT_PATH' 并等待客户端连接(Stdio模式下通常会阻塞)。
  2. 启动客户端: 运行配置好连接参数的MCP客户端应用程序。示例仓库中的 'run_agent.py' 就是一个可以连接到此服务器的客户端Agent。运行 'python run_agent.py' 即可启动示例Agent,它会自动启动服务器并进行交互。

客户端(如LLM Agent)启动后,可以通过MCP协议调用服务器暴露的工具:

  • 'list_knowledges': 用于获取所有知识资源的列表。
  • 'get_knowledge_by_uri': 根据资源的URI获取其内容。

示例Agent通过LLM将用户问题转化为对这些工具的调用,从而实现知识库问答。

信息

分类

AI与计算