这次示例已经实际走通:连接本地课程资料服务,查看它提供的能力,再查询一节课的资料。 全部资料随项目提供,不需要私人文件、AI 账号或模型 API Key。
如果只想理解使用方法,可以先读下面的步骤与结果。命令复现放在后面,属于自选的进阶内容。
示例环境与验证范围
| 项目 | 本次条件 |
|---|---|
| 客户端应用 | AI Atlas 随项目提供的命令行教学客户端 scripts/verify_mcp.py |
| 通信组件 | 官方 MCP Python SDK 1.26.0 的 ClientSession |
| 服务程序 | scripts/mcp_course_server.py,提供虚构课程资料 |
| 操作系统 | 实际核验 macOS 15.6、arm64;其他系统未走通验证 |
| Python | 实际核验 3.12.14;本例建议使用 Python 3.12 |
| 连接方式 | 本机标准输入输出(stdio),不监听网络端口 |
| 协议 | 实际协商 2025-11-25;本指南不声称使用最新协议 |
| 费用与资料 | 安装依赖需联网;实验运行不调用付费模型或远程数据服务,读取项目自带的虚构资料 |
| 核验日期 | 2026-09-09 |
本例选用最小教学客户端,便于保留原始结果,避免依赖私人账号和变化的产品界面。它验证 MCP 通信与能力调用,没有验证任意桌面 AI 应用的设置界面,也没有测试模型生成教案的质量。
第一步:确认连接的是什么
服务名为 AgentLearn course materials(沿用本项目更名前的示例标识,便于与原始验证记录对应)。它只提供一份示例课的查询,不读取电脑上其他资料,不提供修改、删除或发送操作。
客户端先与服务建立通信,实际返回协议版本 2025-11-25,并声明支持工具、资源和提示模板。这是连接证据,还不是课程查询结果。
第二步:查看可用能力
本次实际发现:
| 类型 | 标识 | 能做什么 |
|---|---|---|
| 工具 | get_course_material | 按课程 ID 查询资料 |
| 资源 | course://catalog | 读取课程目录,找到可查询的 ID |
| 提示模板 | prepare_lesson | 取得一份带课程 ID 的备课要求 |
在有图形界面的 AI 应用里,这些能力可能出现在连接详情、工具列表或相关选择入口。具体按钮需按应用文档核对;本指南不会用未验证的界面路径替代实际证据。
第三步:查询并核对返回内容
选择课程 ID silk-road-01,调用 get_course_material。实际返回包括:
课程:silk-road-01
标题:丝绸之路:往来与交流
年级:初一
课时:40 分钟
资料:M01 路线、M02 交流、M03 课堂提问这是实际返回的摘要。完整工具结果与原始资料逐字段核对一致,教案环节合计为 40 分钟。查看 原始结果 JSON 与 可读摘要。
额外检查也已执行:不存在的课程 ID 返回错误;把路径字符串当课程 ID 也被拒绝;原始资料的内容哈希保持不变。资源目录与提示模板均实际取回。
模板获取成功只表示拿到了一段要求,不代表已经生成教案。普通 AI 应用还需要选择资料、交给模型处理,并检查最终结果。
可选复现:运行同一个实验
以下命令在项目根目录执行。venv 创建项目内的独立 Python 环境,pip 安装该实验依赖;这些是复现实验的工具,不是学习 MCP 概念的前提。
python3.12 -m venv .venv
.venv/bin/python -m pip install -r docs/evidence/mcp-environment-lock.txt
.venv/bin/python scripts/verify_mcp.py完整依赖快照保留在上面的锁定文件中,核心 SDK 依赖另见 requirements-mcp.txt。如果已建立项目环境并安装依赖,直接执行第三条即可。首次安装需要网络;后续运行只在本地读写本项目的示例与验证记录。
应该看到:
SDK: mcp 1.26.0
Protocol: 2025-11-25
Transport: stdio
Tools: get_course_material
Resources: course://catalog
Prompts: prepare_lesson
Course: silk-road-01
Title: 丝绸之路:往来与交流
Duration: 40 minutes
Source material IDs: M01, M02, M03
Result: passed
Model called: no; this experiment verifies MCP communication, not generated teaching quality.这段输出来自本次运行的实际记录。脚本会重新写入验证结果和服务日志;不会安装长期连接,也不会自动启动模型任务。
若要进一步观察实现,可以看 客户端程序 与 服务程序。这些文件是本实验代码,不是复制进任意产品设置页就能使用的通用配置。
卡住时,按结果判断
| 现象 | 先核对什么 | 怎样确认恢复 |
|---|---|---|
找不到 python3.12 | 当前机器是否已有该版本;安装环境不在基础课程范围内 | 解释器可以输出版本后,再创建环境 |
找不到 mcp 包 | 是否在项目 .venv 中安装并运行 | 用同一个 .venv/bin/python 执行安装和实验 |
| 服务无法启动 | 根目录是否正确、文件是否齐全、服务日志是否报错 | 初始化返回正确服务名与协议版本 |
| 已连接,却没有查询能力 | 连接的是否是本项目服务,是否发现所需工具 | 列表实际包含 get_course_material |
| 查询返回课程不存在 | ID 是否来自 course://catalog | 查询 silk-road-01 返回完整资料 |
| 调用成功,回答仍有问题 | 模型整理过程、上下文选取和要求是否符合目标 | 核对最终答案与资料;本实验不包含此阶段 |
这些排查步骤按调用层次组织。依赖或环境错误应按实际日志处理,不保证上表涵盖全部情况。
如何退出
实验正常结束时客户端关闭会话并终止本地服务。运行中可按 Ctrl+C 中止;没有添加任何常驻连接或外部授权。项目内的 .venv 和验证记录可保留用于复现。
服务只提供受限查询,但运行它的 Python 进程不是操作系统只读沙箱;不要把本例的能力边界推广到所有 MCP 服务。
想一想
如果换成自己选择的 AI 应用,应复核什么?
参考判断: 是否支持所需连接方式和协议;怎样配置该服务;提供哪些工具或资料;访问范围是什么;实际查询是否返回正确结果。不能只核对有没有“MCP”这个标签。
下一步与来源
参考 官方 Python SDK v1.26.0 与 协议 2025-11-25 生命周期。技术资料和本实验均于 2026-09-09 核验。实际运行记录证明本环境可用;跨产品配置、其他系统与真实读者理解仍未验证。