Skip to main content
Glama
im47cn

Feishu Project MCP Server

by im47cn
architecture.md7.32 kB
# 智能研发流程管理系统 - 架构设计 ## 1. 系统概述 ### 1.1 目的 智能研发流程管理系统旨在实现端到端的需求管理与开发流程自动化,通过与飞书项目系统和代码仓库的集成,提高研发效率和质量。 ### 1.2 范围 系统作为MCP (Model Context Protocol)服务运行,集成飞书项目API和代码仓库MCP,实现从需求分析到代码提交的全流程自动化。系统不仅处理需求,还处理负责人是自己的缺陷。 ### 1.3 架构目标 - 实现需求/缺陷的自动分析和完整性评估 - 自动生成技术方案和架构设计 - 自动实现代码并提交到代码仓库 - 支持断点续传和状态保存 - 提供可靠的日志记录和错误处理 ## 2. 架构设计 ### 2.1 架构模式 系统采用管道过滤器架构模式,将处理流程分解为一系列独立的处理步骤,数据在各步骤间流动。这种架构模式适合有明确处理流程的数据转换系统,符合本系统的需求。 ### 2.2 系统组件 #### 2.2.1 MCP服务核心 (MCPServiceCore) - **职责**: 提供MCP服务基础设施,注册和处理工具调用 - **实现**: - 使用`@modelcontextprotocol/sdk`库 - 通过stdio与LLM通信 - 注册系统所需的工具 - 定义LLM调用工具的条件和结果传递方式 - **关键功能**: - 初始化MCP服务 - 注册工具 - 处理LLM请求 - 发送响应到LLM #### 2.2.2 飞书项目集成器 (FeishuIntegrator) - **职责**: 与飞书项目API交互,获取和更新需求及缺陷 - **关键功能**: - 获取项目列表 - 获取需求列表 - 获取缺陷列表 - 获取需求/缺陷详情 - 更新需求/缺陷状态 - 添加评论 - 获取评论列表 - 上传和下载附件 #### 2.2.3 任务管理器 (TaskManager) - **职责**: 管理任务执行和状态 - **关键功能**: - 创建任务 - 更新任务状态 - 保存和加载任务状态 - 处理任务中断和恢复 #### 2.2.4 日志记录器 (Logger) - **职责**: 记录系统日志和性能指标 - **关键功能**: - 记录不同级别的日志 - 记录性能指标 - 按天切分日志文件 ### 2.3 MCP工具设计 #### 2.3.1 飞书项目工具 - `feishu_get_projects`: 获取飞书项目列表 - `feishu_get_requirements`: 获取项目需求列表 - `feishu_get_bugs`: 获取项目缺陷列表 - `feishu_get_item_details`: 获取需求/缺陷详情 - `feishu_update_item_status`: 更新需求/缺陷状态 - `feishu_add_comment`: 添加评论 - `feishu_get_comments`: 获取评论列表 - `feishu_upload_attachment`: 上传附件 - `feishu_download_attachment`: 下载附件 #### 2.3.2 任务管理工具 - `task_create`: 创建任务 - `task_update_status`: 更新任务状态 - `task_get_status`: 获取任务状态 - `task_save`: 保存任务状态 - `task_load`: 加载任务状态 #### 2.3.3 模式切换工具 - `switch_to_architect`: 切换到架构模式 - `switch_to_code`: 切换到代码模式 - `get_analysis_result`: 获取分析结果(LLM在完成分析后调用) - `get_implementation_result`: 获取实现结果(LLM在完成实现后调用) #### 2.3.4 日志工具 - `log_message`: 记录日志 - `log_metric`: 记录指标 ### 2.4 数据流设计 #### 2.4.1 需求/缺陷获取流程 ``` 飞书项目API -> FeishuIntegrator -> LLM ``` #### 2.4.2 需求/缺陷分析流程 ``` LLM(Architect mode) -> TaskManager ``` #### 2.4.3 需求/缺陷完善流程 ``` TaskManager -> FeishuIntegrator -> 飞书项目API ``` #### 2.4.4 技术方案生成流程 ``` LLM(Architect mode) -> TaskManager ``` #### 2.4.5 代码实现流程 ``` LLM(Code mode) -> Git/Github/Gitlab MCP ``` #### 2.4.6 状态更新流程 ``` TaskManager -> FeishuIntegrator -> 飞书项目API ``` ### 2.5 状态管理设计 #### 2.5.1 需求/缺陷状态 - `PENDING`: 待分析 - `ANALYZING`: 分析中 - `INCOMPLETE`: 不完整,需要澄清 - `COMPLETE`: 完整,可以实现 - `IMPLEMENTING`: 实现中 - `IMPLEMENTED`: 已实现 - `FAILED`: 失败 #### 2.5.2 任务状态 - `CREATED`: 已创建 - `RUNNING`: 运行中 - `PAUSED`: 已暂停 - `COMPLETED`: 已完成 - `FAILED`: 失败 #### 2.5.3 状态存储 - 使用本地文件存储任务状态 - 保存在项目文档目录中 - 支持断点续传和恢复机制 ### 2.6 错误处理策略 #### 2.6.1 重试机制 - LLM分析错误时,等待5秒后重试 - 最多重试3次,超过后寻求用户介入 #### 2.6.2 错误记录 - 所有错误将被详细记录到日志文件 - 按不同级别记录日志 - 按天切分日志文件 ## 3. 系统交互流程 ### 3.1 需求/缺陷获取流程 - 系统提供`feishu_get_requirements`和`feishu_get_bugs`工具 - LLM自动调用这些工具获取新需求和缺陷 - 系统返回需求/缺陷列表 ### 3.2 需求/缺陷分析流程 - 系统告知LLM"请切换到架构模式开始需求分析" - LLM切换到架构模式并分析需求/缺陷 - 系统告知LLM在完成分析后调用`get_analysis_result`工具 - LLM完成分析后调用`get_analysis_result`工具返回结果 - 系统接收分析结果并更新任务状态 ### 3.3 需求/缺陷完善流程 - 如果分析结果表明需求/缺陷不完整 - 系统通过`feishu_add_comment`工具添加澄清问题 - 系统通过`feishu_update_item_status`工具更新状态 ### 3.4 技术方案生成流程 - 如果分析结果表明需求/缺陷完整 - 系统继续使用架构模式生成技术方案 - LLM生成技术方案并通过`get_analysis_result`工具返回结果 ### 3.5 代码实现流程 - 系统告知LLM"请切换到代码模式开始实现" - LLM切换到代码模式并实现代码 - 系统告知LLM在完成实现后调用`get_implementation_result`工具 - LLM使用git/github/gitlab MCP工具提交代码 - LLM完成实现后调用`get_implementation_result`工具返回结果 - 系统接收实现结果并更新任务状态 ### 3.6 状态更新流程 - 系统通过`feishu_update_item_status`工具更新需求/缺陷状态 - 系统通过`feishu_add_comment`工具添加实现总结和PR链接 ## 4. 部署架构 ### 4.1 运行环境 - 使用Node.js运行时 - 通过npx命令启动 - 每15分钟检查一次飞书项目中的新需求和缺陷 ### 4.2 配置管理 - 所有配置通过npx参数指定 - 包括飞书API认证信息、项目ID、检查频率等 ### 4.3 日志管理 - 区分不同级别的日志 - 采用按天切分文件的方式 - 记录系统运行状态和性能指标 ## 5. 安全考虑 ### 5.1 认证信息管理 - 飞书API认证信息通过npx参数传入 - 不在日志中记录敏感信息 ### 5.2 数据保护 - 本地存储的任务状态不包含敏感信息 - 系统只处理授权用户可访问的需求和缺陷 ## 6. 性能考虑 ### 6.1 资源使用 - 系统作为本地服务运行,资源消耗较低 - 定期检查飞书项目,避免频繁API调用 ### 6.2 响应时间 - 系统处理请求的响应时间取决于LLM的处理速度 - 对于长时间运行的任务,实现断点续传机制 ## 7. 可扩展性 ### 7.1 新功能扩展 - 通过注册新的MCP工具扩展系统功能 - 支持集成其他项目管理系统和代码仓库 ### 7.2 多用户支持 - 系统支持多用户协作 - 不同用户可连接到不同的飞书项目和代码仓库

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/im47cn/feishu-project-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server