使用说明

项目简介

本项目 'SJTU MCP Server' 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为大语言模型(LLM)应用提供结构化的上下文信息和功能扩展。它专注于校园服务场景,通过标准化的 MCP 接口,将大模型与校园信息系统深度整合,例如课表查询、图书馆预约、成绩分析等。用户可以通过自然语言指令,经由支持 MCP 协议的客户端(如 Cherry Studio),调用服务器提供的工具和服务,实现智能化的校园服务访问。

主要功能点

  • 资源管理 (Resources): 虽然仓库代码中没有显式资源管理的代码,但作为 MCP 服务器,它具备托管和管理资源的能力,可以通过脚本或静态工具的方式提供数据访问。
  • 工具注册与执行 (Tools): 支持注册和执行多种类型的工具,包括:
    • 静态工具: 通过 C# 代码实现的内置工具,例如示例中的 'AddTool' 和 'TestTool'。
    • 脚本工具: 支持 Python 和 JavaScript 脚本编写的工具,允许用户自定义功能,灵活扩展服务器能力。
  • Prompt 模板 (Prompts): 虽然代码中没有直接体现 Prompt 模板的管理,但 MCP 协议本身支持 Prompt 模板,该服务器作为 MCP 实现,理论上支持 Prompt 模板的定义和渲染,以便客户端进行定制化的 LLM 交互。
  • 多协议支持: 支持 SSE (Server-Sent Events) 和 Stdio (标准输入输出) 两种传输协议,方便不同场景下的客户端连接。
  • 会话管理: MCP 服务器负责会话管理,确保客户端请求的上下文连贯性。
  • 能力声明: 服务器能够向客户端声明自身提供的资源和工具,方便客户端发现和使用。
  • jAccount 认证: 支持通过 jAccount Cookie 进行身份认证,保障校园数据安全。
  • 可扩展性: 通过脚本工具机制, легко расширяется 功能,满足不断变化的校园服务需求。

安装步骤

由于这是一个 .NET 项目,您需要先安装 .NET SDK 环境。

  1. 克隆仓库:

    git clone https://github.com/SJTU-Geek/sjtu-mcp-server
    cd sjtu-mcp-server
  2. 安装 .NET SDK (如果尚未安装): 请根据您的操作系统,访问 .NET 官网 下载并安装 .NET SDK。

  3. 安装 Python 环境 (如果需要使用 Python 脚本工具):

    • 确保您的系统已安装 Python 3.10 或更高版本。
    • 如果使用 Python 脚本工具,您需要将 Python 的 DLL 文件路径(例如 'python310.dll')添加到系统的 PATH 环境变量中,或者在启动服务器时通过命令行参数 '--pydll' 指定。

服务器配置

MCP 客户端需要配置服务器的启动命令及其参数才能连接。以下是 'SJTU MCP Server' 的服务器配置信息示例(JSON 格式),您可以根据实际需求进行调整:

{
  "server name": "SJTU MCP Server",
  "command": "dotnet",
  "args": [
    "run",
    "--project",
    "SJTUGeek.MCP.Server"
  ],
  "transports": [
    {
      "type": "sse",
      "url": "http://localhost:5173/sse"
    }
  ],
  "capabilities": [
    "tools",
    "prompts",
    "resources"
  ]
}

参数注释:

  • '"server name"': MCP 服务器的名称,可以自定义。
  • '"command"': 启动服务器的命令,这里使用 'dotnet run' 来运行 .NET 项目。
  • '"args"': 传递给 'dotnet run' 命令的参数:
    • '"run"': .NET CLI 命令,用于运行项目。
    • '"--project"': 指定要运行的项目文件,这里是 'SJTUGeek.MCP.Server' 项目。
  • '"transports"': 服务器支持的传输协议列表。
    • '"type": "sse"': 指定使用 SSE 协议。
    • '"url": "http://localhost:5173/sse"': SSE 服务器的 URL,默认为 'http://localhost:5173/sse',可以通过 '--port' 和 '--host' 命令行参数修改。
  • '"capabilities"': 服务器声明自身支持的 MCP 功能,包括 'tools' (工具), 'prompts' (Prompt 模板), 'resources' (资源)。

可选命令行参数:

启动服务器时,您还可以使用以下命令行参数进行配置:

  • '--port <端口号>' 或 '-p <端口号>': 指定 SSE 服务监听的端口号,默认为 '5173'。
  • '--host <主机名或IP>' 或 '-h <主机名或IP>': 指定 SSE 服务监听的主机名或 IP 地址,默认为 'localhost'。
  • '--pydll <Python DLL路径>': 指定 Python 脚本运行环境的库文件路径,例如 'python310.dll'。不填写则禁用 Python 脚本工具。
  • '--jsengine V8': 指定 JavaScript 脚本运行环境为 V8。不填写则禁用 JavaScript 脚本工具。
  • '--sse': 显式指定使用 SSE 传输协议。(默认即为 SSE,可以省略)
  • '--cookie <jAccount Cookie字符串>' 或 '-C <jAccount Cookie字符串>': 指定用于 jAccount 认证的 JAAuthCookie 字符串。
  • '--tools <工具组名称1> <工具组名称2> ...': 指定启用的 MCP 工具组,例如 '--tools campus system'。不填写则默认启用所有工具组。

示例启动命令:

启用 Python 脚本支持,并指定 jAccount Cookie,监听 5175 端口:

dotnet run --project SJTUGeek.MCP.Server --pydll python310.dll --port 5175 --cookie "your_jaccount_cookie_string"

基本使用方法

  1. 启动服务器: 根据上述安装步骤和服务器配置,启动 'SJTU MCP Server'。

  2. 配置 MCP 客户端: 在支持 MCP 协议的客户端(例如 Cherry Studio)中,添加新的 MCP 服务器连接,并填入上述 JSON 格式的服务器配置信息。

  3. 使用客户端功能: 客户端连接成功后,您应该能够:

    • 查看服务器声明的工具列表。
    • 调用服务器提供的工具,例如示例中的 'add' 和 'test' 工具,以及通过脚本扩展的校园服务工具。
    • (如果客户端支持) 管理和使用 Prompt 模板。
    • (如果客户端支持) 访问服务器托管的资源。

具体操作方法请参考您使用的 MCP 客户端的文档。

信息

分类

开发者工具