Claude Code Lab-3(下):三能力 MCP Server

describe_schema + read_wiki + append_report_section,draft 人审后合并。

  1. schema 查询 --- 样例库表结构
  2. Wiki 读 --- 业务枚举与流程说明
  3. 报告片段 --- 按模板追加章节(仍人审后合并)

能力一:describe_schema

python 复制代码
@server.tool()
def describe_schema(table: str | None = None) -> str:
    """Return CREATE TABLE or list of tables for demo DB."""

用途: 写报告「数据模型」章时,不必 @ 整个 schema/,tool 返回当前结构。

Prompt:

text 复制代码
用 MCP tool describe_schema 列出 orders 相关表,把结果写入 docs/research-report.md §数据模型。
只读,不要执行 DML。

能力二:read_wiki

python 复制代码
@server.tool()
def read_wiki(page: str) -> str:
    """Read markdown from resources/wiki/{page}.md"""

用途: 对齐业务语义(status 枚举、退款规则)。

与 Resource URI 的关系: 可以 tool 包一层 resource,培训统一用 tool 方便 Claude 发现。


能力三:append_report_section

python 复制代码
@server.tool()
def append_report_section(section: str, markdown: str) -> str:
    """Append to docs/research-report.draft.md only, not final report."""

设计选择: 不直接写 research-report.md,写 draft 文件,人 diff 后合并------避免 Agent 一次写坏定稿。

模板约束: @prompts/report-section-template.md 规定每节标题与必填字段(path 引用、待确认)。


端到端工作流

text 复制代码
1. 人:@notes/lab3-scope.md 开 Agent
2. Agent:入口追踪(读码)→ 调 read_wiki 补业务含义
3. Agent:调 describe_schema 写数据模型
4. Agent:调 append_report_section 分节写入 draft
5. 人:review draft → 合并到 research-report.md → 生成 PNG

Command 可选: /lab3-report 预填上述步骤 2--4 的 Constraints。


测试与验收

bash 复制代码
pytest mcp-servers/training-wiki/tests/ -q

验收标准:

  • 三 tool 在 Claude Code MCP 列表可见
  • 恶意 path / 写 SQL 被拒绝
  • draft 合并后报告仍满足第 15 篇人审清单

踩坑

坑 1:append_report_section 直接覆盖整份报告

修正: 仅 append draft;section 名重复则报错。

坑 2:Wiki 与代码不一致,报告两边都信

修正: 报告表格加「来源:code | wiki」,冲突标待确认。

坑 3:MCP 配好但 Claude 不用 tool,仍瞎编

修正: CLAUDE.md 写「查表结构 必须 describe_schema」;培训 demo 先只开 MCP 不 @ schema 文件。


小结

  1. Lab-3 下 = schema + Wiki + draft 报告 三能力 MCP。
  2. 报告写 draft、人合并,MCP 不替代读码验证。
  3. M8 Agent 循环与 Lab-4 Review 接 Hook。

下一篇

第 18 篇《Agent 循环:感知 → 规划 → 行动 → 观察》

第 19 篇《Lab-4:Code Review Agent 到 pre-commit》


相关推荐
2601_9621819631 分钟前
Spring boot从0到1 - day01
java·spring boot·后端
码视野1 小时前
基于 Spring Boot + Vue3 的【智慧公厕微负压排风除臭与客流人感空间占用导引中台】设计与实现(含PRD/三端高保真源码/大屏)
前端·vue.js·人工智能·spring boot·后端
ERD Online1 小时前
Cursor 连上 MCP:读一张 ER 图,提交一版建议
数据库·后端·开源·cursor·mcp
思考着亮1 小时前
4.依赖注入_Depends用法_四大应用场景_Yield生成器原理.
后端
思考着亮1 小时前
3.全局中间件_洋葱模型执行机制_跨域CORS配置
后端
思考着亮2 小时前
5.数据库ORM_连接池_自动事务_增删改查高级语法与字典解包
后端
叫我:松哥2 小时前
基于flask仿小米商城管理系统,使用flask开的一个商场网站
数据库·后端·python·flask
Wang's Blog2 小时前
Vibe Coding一人即团队系列35: 基于Claude Code的Spring Boot项目初始化实践
java·spring boot·后端
2601_962065253 小时前
从零创建一个 Django 项目
后端·python·django
Elastic 中国社区官方博客3 小时前
从建议到修复的 4 个阶段:使用 Elastic Workflows 实现人在回路中的自动化
运维·数据库·人工智能·后端·elasticsearch·ai·自动化