项目简介:

这是一个后端服务,让支持 MCP 协议的大语言模型能够访问和搜索 OI-Wiki 网站上的编程竞赛知识。它将 OI-Wiki 内容预处理并存入一个可搜索的数据库,当大模型需要相关信息时,通过调用此服务提供的工具来获取。

主要功能点:

  • 搜索 OI-Wiki 内容: 根据大模型的查询,在 OI-Wiki 知识库中查找相关的文章内容。
  • 智能匹配: 利用先进的文本分析技术,找到与查询语义最相关的 OI-Wiki 页面。
  • 作为大模型工具使用: 将搜索能力封装为一个大模型可以直接调用的工具。

安装步骤:

  1. 确保已安装 'uv' 包管理器。

  2. 选择一个目录存放 MCP 服务器代码,例如命名为 'mcp_servers'。

  3. 在该目录中打开终端,执行以下命令下载项目代码和 OI-Wiki 内容:

    cd <path of your mcp_servers directory>
    git clone --recurse-submodules https://github.com/ShwStone/mcp-oi-wiki.git
  4. (可选,用于更新知识库)如果你想使用自定义的 OI-Wiki 版本或更新内容:

    • 在 'mcp-oi-wiki' 目录下创建 'api.key' 文件,将你的 Siliconflow API 密钥粘贴进去。
    • 运行 'uv run script/request.py' 生成摘要请求文件。
    • 访问 Siliconflow 平台完成批量处理(使用 DeepSeek-V3 模型),下载结果文件 'result.jsonl' 到 'mcp-oi-wiki' 目录。
    • 运行 'uv run script/gendb.py' 生成新的知识库文件。

服务器配置:

本服务器通过标准输入/输出 (Stdio) 与 MCP 客户端通信。你需要编辑你的 MCP 客户端配置文件(通常是一个 JSON 文件),添加关于 'oi-wiki' 服务器的启动信息。以下是配置示例:

{
  // ... 你的其他客户端配置 ...
  "mcpServers": {
    "oi-wiki": { // 服务器在客户端中的唯一名称
      "command": "uv", // 用于启动服务器进程的命令
      "args": [ // 传递给启动命令的参数列表
        "--directory",
        "<path of your mcp_servers directory>/mcp-oi-wiki", // 设置工作目录到项目根目录
        "run",
        "python",
        "main.py" // 启动服务器主程序
      ]
    }
    // ... 其他 MCP 服务器配置 ...
  }
}

基本使用方法:

保存客户端配置文件并重新启动 MCP 客户端。客户端连接成功后,你的大模型就可以通过调用一个名为 'search' 的工具来查询 OI-Wiki 了。调用时,提供一个 'query' 参数(一个字符串),描述你想查找的算法、数据结构或相关概念。服务器会返回匹配到的 OI-Wiki 文章原文,大模型可以使用这些信息来回答你的问题或提供更详细的解释。

信息

分类

AI与计算