使用说明
项目简介
本项目 '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 环境。
-
克隆仓库:
git clone https://github.com/SJTU-Geek/sjtu-mcp-server cd sjtu-mcp-server -
安装 .NET SDK (如果尚未安装): 请根据您的操作系统,访问 .NET 官网 下载并安装 .NET SDK。
-
安装 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"
基本使用方法
-
启动服务器: 根据上述安装步骤和服务器配置,启动 'SJTU MCP Server'。
-
配置 MCP 客户端: 在支持 MCP 协议的客户端(例如 Cherry Studio)中,添加新的 MCP 服务器连接,并填入上述 JSON 格式的服务器配置信息。
-
使用客户端功能: 客户端连接成功后,您应该能够:
- 查看服务器声明的工具列表。
- 调用服务器提供的工具,例如示例中的 'add' 和 'test' 工具,以及通过脚本扩展的校园服务工具。
- (如果客户端支持) 管理和使用 Prompt 模板。
- (如果客户端支持) 访问服务器托管的资源。
具体操作方法请参考您使用的 MCP 客户端的文档。
信息
分类
开发者工具