Interactive LeetCode MCP 服务器
使用说明(Markdown 格式)
- 项目简介
- 该项目实现了一个可运行的 MCP 服务器,面向 LeetCode 学习与练习场景。它通过工具、资源和提示的注册,向 LLM 客户端提供统一的上下文、数据访问、外部功能调用以及可定制的对话模板,支持多种传输协议。
- 主要功能点
- MCP 协议核心能力:实现服务器端的工具、资源、提示等注册与 JSON-RPC 交互,便于 LLM 客户端通过统一接口调用。
- 资源管理:提供与 LeetCode 相关的 Problem、Solution 等资源的注册、读取与列表等能力。
- 工具注册与执行:包含用户、问题、提交、比赛、解决方案等多类工具,支持参数校验、调用后返回结构化内容。
- 提示系统:学习模式提示、认证提示等,允许通过 MCP Prompts 交互来驱动 AI 行为。
- LeetCode API 抽象:通过 LeetCode 全局服务封装对 LeetCode API 的调用,配合本地凭证存储实现认证管理。
- 集成测试覆盖:包含多组集成测试与工具、资源、提示等的端到端验证。
- 多传输支持(设计目标):当前实现以标准输入/输出等形式运行,后续可扩展为 Stdio、SSE、WebSocket 等传输。
- 安装与运行步骤
- 环境要求:Node.js v20.x 及以上。
- 安装依赖并构建(常见做法,具体可按实际部署选择):安装依赖并构建后在服务器端运行生成的入口。
- 运行方式(示例说明,不提供具体代码块):
- 全局安装方式(如通过 npm)后执行服务器命令来启动 MCP 服务。
- 本地构建后使用 Node 运行生成的入口(build/index.js),搭配标准输入输出传输。
- 运行后,服务器将注册所有工具、资源与 prompts,并通过指定传输通道与客户端建立连接。
- 服务器配置(MCP 客户端使用的启动配置示例说明) 请以 JSON 格式提供以下信息给客户端配置使用,示例字段如下(仅做说明,具体按实际路径与环境调整): { "serverName": "LeetCode MCP Server", "command": "node", "args": ["/path/to/this/project/build/index.js"] } 说明:
- serverName: 服务器名称,便于客户端识别。
- command: 启动服务器的命令,常见为 node。
- args: 启动命令的参数,指向服务器的入口文件(如构建产物的 build/index.js)。 注释:客户端在连接时通常只需要知道服务器的启动命令与参数即可建立与服务器的 MCP 会话;服务器端实现负责具体的工具、资源、Prompts 的注册与能力声明。
- 基本使用方法
- 第一步:启动服务器
- 使用指定命令启动服务器进程,确保服务器正常输出启动信息。
- 第二步:与客户端建立连接
- 客户端通过 MCP 协议及传输通道(如 Stdio、InMemory 等)连接到该服务器。
- 第三步:探索与调用
- 客户端可通过列出工具、读取资源、获取提示等接口,查看服务器提供的能力。
- 使用 tool 调用来执行具体任务,如获取每日挑战、获取题目信息、提交解题代码等。
- 第四步:学习与工作流
- 结合 leetcode_workspace_setup、leetcode_learning_mode、leetcode_problem_workflow 等提示与工作流,按学习场景与问题进行交互。
- 第五步:认证与凭证
- 通过 start_leetcode_auth、save_leetcode_credentials、check_auth_status 等工具完成并维护 LeetCode 的认证状态。
- 其他
- 服务器兼容性与扩展性:设计上支持多种工具、资源与 prompts 的扩展;便于按需增加新功能。
- 安全与凭证:内置凭证存储(本地化文件存储)与凭证更新机制,提供认证相关工具的实现与测试覆盖。
关键词 LeetCode, 学习模式, 工具注册, 资源管理, JSON-RPC
分类 6