【Code With SOLO】用 SOLO 搭建员工请假系统 MCP 服务器

【Code With SOLO】用 SOLO 搭建员工请假系统 MCP 服务器

—— 产品经理的 AI 编程实践,让 AI 对话即可管理请假流程

参赛标签:Code With SOLO

发布日期:2026 年 4 月

一、摘要

作为一名产品经理,我借助 TRAE SOLO 从零开始搭建了一个基于 MCP(Model Context Protocol)协议的员工请假系统服务器。该服务器连接 MySQL 数据库,实现了请假登记、记录查询、审批操作三大核心功能,让 AI 助手能够通过自然语言直接操作企业请假流程。整个项目从需求分析、数据库设计、代码开发到调试部署,全程由 SOLO 辅助完成,充分展现了 AI 编程在非纯研发场景下的实战价值。

二、背景

我是一名产品经理,日常工作中需要处理大量的员工请假审批事务。在传统流程中,员工需要通过 OA 系统或邮件提交请假申请,管理者需要登录后台逐条审批,整个过程繁琐且耗时。我一直在思考:能不能让 AI 助手直接帮我管理这些事务?比如直接对着 AI 说“帮我查一下今天有哪些待审批的请假”“审批通过张三的年假申请”,就能完成操作。

带着这个想法,我接触到了 TRAE SOLO 和 MCP(Model Context Protocol)协议。MCP 是 Anthropic 推出的一套标准化协议,让 AI 大模型能够通过工具调用的方式与外部服务进行交互。我决定尝试用 TRAE SOLO 来搭建这个请假系统的 MCP 服务器。

三、实践过程

3.1 任务拆解与规划

我首先向 SOLO 描述了我的需求:“开发一个 MCP 服务器,接入员工系统数据库,来登记请假信息,数据库为 MySQL”。SOLO 帮我将任务拆解为以下步骤:

1. 设计数据库表结构(部门表、员工表、请假类型表、请假申请表)

2. 搭建 Python 项目结构(FastMCP + aiomysql + Pydantic)

3. 实现数据库连接层(异步连接池管理)

4. 实现 MCP 工具(请假登记、查询、审批、员工查询、类型查询)

5. 代码审查与语法验证

3.2 技术选型与架构设计

SOLO 帮我确定了技术方案:

• 语言:Python(FastMCP 框架,对数据库操作生态非常成熟)

• 传输方式:stdio(本地运行,配置简单)

• 数据库:MySQL + aiomysql(异步连接池,高性能)

• 输入验证:Pydantic v2(类型安全、自动校验)

整个项目结构非常清晰:

leave_mcp/

├── server.py # MCP 服务器主文件(5 个工具)

├── db.py # 数据库连接层

├── init_db.sql # 数据库初始化脚本

├── requirements.txt

├── .env.example # 环境变量模板

└── README.md # 使用说明

3.3 数据库设计

SOLO 帮我设计了 4 张数据表,覆盖了完整的请假业务流程:

表名

用途

关键字段

departments

部门信息

部门名称、编码

employees

员工信息

工号、姓名、部门、职位、状态

leave_types

请假类型

年假/病假/事假/婚假等 7 种类型

leave_requests

请假申请

起止日期、天数、原因、审批状态

3.4 实现 5 个 MCP 工具

SOLO 帮我实现了 5 个功能完善的 MCP 工具:

工具名

功能

关键特性

leave_submit

提交请假申请

自动计算天数、日期冲突检测、员工/类型校验

leave_query

查询请假记录

多条件筛选、分页、Markdown/JSON 输出

leave_approve

审批请假申请

状态校验、审批备注、通过/拒绝

leave_search_employees

查询员工信息

工号精确/姓名模糊/部门筛选

leave_list_types

查询请假类型

列出所有类型及天数限制

3.5 关键 Prompt 与操作过程

第一步:向 SOLO 描述需求

“我需要开发一个 MCP,接入员工系统数据库,来登记请假信息,数据库为 MySQL”

SOLO 自动调用了 mcp-builder 技能,帮我完成了技术选型、任务拆解和项目规划。

第二步:确认技术方案

SOLO 通过提问确认了关键决策:开发语言(Python)、数据库表结构(需要设计)、功能范围(登记+查询+审批)、传输方式(stdio)。

第三步:自动生成代码

SOLO 自动生成了完整的项目代码,包括 SQL 建表脚本、数据库连接层、MCP 服务器主文件、环境配置模板和 README 文档。

第四步:本地调试与问题修复

在调试过程中遇到了几个问题,每次都是把错误信息贴给 SOLO,它都能快速定位并修复:

• SQL 重复执行报错(Duplicate key name)→ 添加 DROP TABLE IF EXISTS 支持幂等执行

• lifespan 参数缺失(takes 0 arguments)→ 添加 app 参数

• aiomysql 连接池参数错误(pool_size)→ 改为 minsize/maxsize

• 密码读取失败(.env 路径问题)→ 基于文件目录加载 .env

• 密码编码问题(latin-1 codec)→ 添加编码安全处理

3.6 在 TRAE 中配置 MCP

最后在 TRAE IDE 的 MCP 配置页面手动添加服务器,粘贴 JSON 配置即可完成集成:

{

“mcpServers”: {

"leave_mcp": {

  "command": "python3",

  "args": \["/path/to/leave_mcp/server.py"\],

  "env": {

    "DB_HOST": "localhost",

    "DB_PASSWORD": "your_password",

    "DB_NAME": "employee_leave_system"

  }

}

}

}

四、成果展示

项目完成后,可以直接在 TRAE 中用自然语言操作请假系统:

场景 1:提交请假

用户:“帮我给 EMP001 提交一个年假申请,5月 1 日到 5 月 3 日,原因是回老家”

→ 系统自动计算 3 天,校验员工和类型,返回申请编号

场景 2:查询请假

用户:“查询所有待审批的请假申请”

→ 返回结构化的请假记录列表,包含申请人、时间、原因等信息

场景 3:审批请假

用户:“审批通过请假申请 #1,审批人是 EMP003,备注:同意”

→ 自动校验状态并完成审批,返回审批结果

项目代码已完整交付,包含以下文件:

• server.py —— MCP 服务器主文件(5 个工具,约 780 行)

• db.py —— 数据库连接层(异步连接池 + 通用操作)

• init_db.sql —— 数据库初始化脚本(4 张表 + 示例数据)

• README.md —— 完整使用说明

五、效果与总结

5.1 提效效果

作为一名产品经理,我没有专业的 Python 开发经验,但借助 TRAE SOLO,从需求描述到项目交付,整个过程只需要:

• 需求沟通 + 代码生成:约 10 分钟

• 调试修复:约 15 分钟(5 次问题排查)

• 总计:约 25 分钟完成一个完整的 MCP 服务器

如果按照传统方式,需要熟悉 MCP 协议、Python 异步编程、MySQL 数据库设计等多个技术栈,预计需要 1-2 天的开发时间。

5.2 SOLO 在我流程中做了什么

• 智能任务拆解:将模糊的需求描述转化为清晰的实施计划

• 技术选型建议:通过提问帮我确定最优技术方案

• 全栈代码生成:从 SQL 建表到 MCP 服务器全部自动生成

• 快速问题诊断:每次贴错误日志,都能精准定位并修复

• 完整文档输出:自动生成 README 和使用说明

5.3 可复用的方法

这次实践让我总结出一套非程序员使用 AI 编程的方法论:

6. 清晰描述需求:用自然语言说明“我要做什么”,不需要写技术方案

7. 配合回答问题:SOLO 提问时认真回答,帮助它做出更好的技术决策

8. 迭代调试:遇到错误不要急,把错误信息贴给 SOLO,它会自动修复

9. 验证结果:每次修复后都重新运行验证,确保问题真正解决

这套方法不仅适用于 MCP 开发,也可以应用到各种 AI 辅助编程场景中。对于产品经理来说,AI 编程工具让我能够将自己的产品思维直接转化为可运行的系统,大大缩短了从想法到落地的距离。

六、过程截图