使用说明

项目简介

Codeforces-MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端应用,专注于为大型语言模型 (LLM) 提供 Codeforces 平台的相关信息。它通过实现 MCP 协议,允许 LLM 客户端以标准化的方式调用工具来获取 Codeforces 用户的 рейтинг、用户信息等数据,从而增强 LLM 在处理与 Codeforces 竞赛和用户信息查询相关的任务时的能力。

主要功能点

  • 提供 Codeforces 用户信息查询工具: 通过 'get_user_info' 工具,可以查询 Codeforces 用户的基本信息,包括用户名、姓名、 рейтинг、段位、组织和贡献度等。
  • 提供 Codeforces 用户 рейтинг 查询工具: 通过 'get_user_rating' 工具,可以查询 Codeforces 用户的 рейтинг 历史记录,方便 LLM 分析用户 рейтинг 变化趋势。
  • 基于 FastMCP 框架: 使用 'fastmcp' 库简化 MCP 服务器的开发,快速搭建可运行的 MCP 服务。
  • 标准 Stdio 传输: 默认使用标准输入输出 (stdio) 作为 MCP 服务器与客户端之间的通信协议,易于集成和部署。

安装步骤

  1. 确保已安装 Python 3.7 或更高版本。
  2. 安装必要的 Python 库: 打开终端或命令提示符,执行以下命令安装 'fastmcp' 和 'httpx' 库:
    pip install fastmcp httpx

服务器配置

对于 MCP 客户端,需要配置以下信息以连接到 Codeforces-MCP 服务器。配置信息为 JSON 格式,示例如下:

{
  "server_name": "codeforces-mcp",  // MCP 服务器名称,可自定义
  "command": "python",             // 启动服务器的命令,这里使用 python 解释器
  "args": ["server.py"],          // 启动服务器命令的参数,指定 server.py 文件
  "transport": "stdio"            // 使用 stdio 传输协议
}

配置信息参数说明:

  • 'server_name': 服务器的名称,客户端用以标识不同的 MCP 服务器。
  • 'command': 运行服务器端程序的命令。由于 'server.py' 是 Python 脚本,所以这里使用 'python' 命令。
  • 'args': 传递给 'command' 的参数列表。这里指定运行 'server.py' 文件。
  • 'transport': 指定 MCP 服务器使用的传输协议,这里为 'stdio',表示标准输入输出。

注意: 请确保 MCP 客户端能够找到 'server.py' 文件。如果 'server.py' 不在客户端的当前工作目录,'args' 需要配置 'server.py' 的完整路径或相对路径。

基本使用方法

  1. 启动 MCP 服务器: 在终端或命令提示符中,进入 'server.py' 文件所在的目录,并确保已安装所需库,然后直接运行 'server.py' 文件,服务器将通过 stdio 启动并等待客户端连接和请求。

    python server.py

    注意: 由于配置中使用的是 'stdio' 传输协议,服务器启动后不会有明显的界面,它会在后台等待 MCP 客户端通过标准输入发送 JSON-RPC 请求。

  2. 配置和启动 MCP 客户端: 根据 MCP 客户端的使用说明,配置服务器连接信息,将上面提供的 JSON 配置信息填入客户端的服务器配置中。启动 MCP 客户端后,客户端会尝试连接到 Codeforces-MCP 服务器。

  3. 通过 MCP 客户端调用工具: 在 MCP 客户端中,可以使用类似以下的 JSON-RPC 请求来调用 Codeforces-MCP 服务器提供的工具。

    示例请求 (调用 'get_user_info' 工具):

    {
      "jsonrpc": "2.0",
      "method": "call_tool",
      "params": {
        "tool_name": "get_user_info",
        "tool_args": {
          "handle": "tourist"  // Codeforces 用户名
        }
      },
      "id": 1
    }

    示例请求 (调用 'get_user_rating' 工具):

    {
      "jsonrpc": "2.0",
      "method": "call_tool",
      "params": {
        "tool_name": "get_user_rating",
        "tool_args": {
          "handle": "tourist"  // Codeforces 用户名
        }
      },
      "id": 2
    }

    MCP 客户端发送以上 JSON-RPC 请求后,Codeforces-MCP 服务器会处理请求,调用相应的工具,并将结果通过 JSON-RPC 响应返回给客户端。客户端根据响应内容进行后续处理,例如展示给用户或用于 LLM 的上下文信息。

信息

分类

网页与API