课程名称:从接手MCP开始的牛马生活。这是信科院智能助手的计算机课程项目,围绕一个实际问题展开:换一个AI会话以后,怎样找回项目里已经形成的决定、约束、计划与待解决问题?
学习者需要用Python完成一个可供AI客户端调用的MCP Server,再把它用于自己的工作流,通过测试、Issue和回归持续改进。本文介绍课程任务与交付要求,不将课程设计写成已经完成的学生成果。
最后要做出什么
目标工具用于记录、查询和更新项目记忆,并恢复跨会话上下文。MCP为AI应用与外部工具、资源等能力提供交互方式;本课程重点是把实际功能作为工具暴露给客户端,而不是只做一个展示界面。MCP官方架构说明。
目标作品需要有可读取的代码、可复现的运行步骤,以及对应功能的真实调用与测试材料。学生作品使用本地SQLite等存储,与本站网站自身的数据保存政策是不同范围,不能互相替代说明。
两个项目、五个阶段
| 项目 | 阶段 | 主要任务 |
|---|---|---|
| 做出你的第一个MCP Server | 让它先跑起来 | 环境准备、接入客户端、理解前作与需求 |
| 做出你的第一个MCP Server | 做出核心功能 | 记忆结构与存储、自然语言归类、工具接口、初版交付 |
| 把自己的工具当产品测试与迭代 | 真实使用测试 | 在真实工作流使用,设计并执行测试用例 |
| 把自己的工具当产品测试与迭代 | 提Issue与产品反馈 | 描述可复现的问题与具体使用障碍 |
| 把自己的工具当产品测试与迭代 | 修复与回归 | 定位、修改、补测试,完成最终交付与复盘 |
项目一:让工具真正可用
1. 环境准备与最小示例
安装课程要求的Python环境和官方MCP SDK,先运行最小工具,保留真实启动输出。SDK接口会随版本变化,具体写法应以当前官方文档与课程要求核对,不仅凭旧截图判断安装成功。
2. 接入自己的AI客户端
确认配置中的解释器、参数和程序路径与本机一致,让客户端发现工具,并完成一次调用。能够启动服务器与客户端成功调用是两件事,两者都需要对应证据。
3. 读懂前作和要解决的问题
阅读已有设计与类型说明,区分工具、资源与提示等能力,并用自己的话解释为什么需要跨会话项目记忆。复用已有设计时保留来源,明确自己新增或修改的部分。
4. 设计记忆结构与本地存储
实现内容、类型、状态和时间等字段,支持存储读写与合法状态迁移。连续执行初始化不应破坏已有数据;写入记录以后,应能通过查询检查实际结果。
5. 从一句话提取并分类记忆
区分想法、计划、决定、承诺、问题或约束等类型。对含糊表达保留“需要确认”的状态,不把不确定推断直接存成既定事实。
6. 暴露为MCP工具
课程要求至少四个工具,覆盖记录、查询、更新状态与恢复上下文。工具说明要让客户端和用户理解用途、输入及可能改变的数据,而不只是能够列出函数名。
7. 测试与交付初版
对分类、状态迁移和存储读写编写可重复运行的测试,补齐安装、配置、启动与测试说明,交付他人可以按文档运行的初版。
项目二:当自己的第一个真实用户
接下来完成五项任务:把工具放入真实工作流,设计测试并写报告,提交问题Issue,修复并增加回归测试,最后更新文档与复盘。
课程中的使用记录要求跨至少两个自然日,并包含具体记录和一次跨会话恢复。它用于帮助形成真实体验与复盘,不应伪造日期、编造记录,也不要求上传私人项目记忆;提交时使用无敏感信息的样例与必要证据即可。不同检查项是否阻断交付,以任务当前标准为准。
测试报告需要至少五条用例,覆盖正常路径、异常路径、跨会话和模糊语言。每条记录输入、预期、实际输出和结果;“正常”“没问题”不足以解释到底测了什么。也要说明本次没有覆盖的范围。
一次修复怎样形成闭环
例如,实际使用发现状态更新后查询结果不符合预期,可以按以下方式组织材料:
- 在Issue写清操作步骤、预期与实际输出。
- 定位造成差异的代码或数据条件。
- 提交与问题直接相关的修改。
- 增加能重现旧问题的回归测试。
- 运行相关及必要的其他测试,保留真实输出。
- 在提交和复盘中引用Issue,说明改动与验证范围。
这是一个流程示例,不声称已经在某位学生的作品中发生。
需要准备哪些交付材料
代码与依赖说明、客户端配置的非敏感部分、工具调用结果、测试与真实输出、README、测试报告和相关Issue。不同任务只提交其要求的材料;不需要为了显得完整而附上全部聊天或私人数据库。
系统会区分代码事实、学生说明、测试报告和有效CI结论;没有CI时,按任务提供完整本地测试输出,不伪造自动化检查。资料与代码发生冲突时,需要解释或补充,而不是选择看起来更有利的一份。
课程边界
完成课程代表按具体要求交付了相应作品,不等于工具经过全面安全审计,也不保证适用于多人生产环境。客户端兼容性、模型服务、权限与第三方费用需要按实际环境核对。