MCP_Agent:RE
About
Fetches requirements and defect data from the TAPD platform to provide data support for AI clients.
Details
- Author
- onecuriouslearner
- Categories
- Developer Tools
Jump to
Setup
Install MCP_Agent:RE in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/onecuriouslearner/MCPAgentRE
Follow the installation instructions in the repository README, then restart your MCP client.
- 此项目于2025年6月10日由punkpeye (Frank Fiegel)收录于TAPD Data Fetcher | Glama
- 本项目 GitHub 地址https://github.com/OneCuriousLearner/MCPAgentRE
- 本项目在 Gitee 上同步更新,镜像地址为https://gitee.com/ChiTsuHa-Tau5_C/MCPAgentRE
MCP_Agent:RE是一个用于从 TAPD 平台获取需求和缺陷数据并生成质量分析报告的 Python 项目,旨在为 AI 客户端提供数据支持。
- MCP 工具统一放置于tapd_mcp_server.py中。
- 本项目提供了丰富的 MCP 工具集,支持 TAPD 数据的获取、处理、分析和智能摘要功能:
- get_tapd_data(clean_empty_fields)- 从 TAPD API 获取需求和缺陷数据并保存到本地文件,返回数量统计【推荐】
- 适用于首次获取数据或定期更新本地数据
- 包含需求和缺陷数据的完整集成
- preprocess_tapd_description(data_file_path, output_file_path, use_api, process_documents, process_images)- 清理 TAPD 数据中description字段的 HTML 样式,提取文字、链接、图片内容并通过 LLM API 优化表达(需要配置 LLM API 密钥),大幅压缩数据长度同时保留关键信息【仍在开发中...】
- 遇到了腾讯文档 API 导出限制问题,API 每日仅限导出 9 篇文档
- 遇到了 TAPD 数据详情中图片、视频无法导出的问题,仍未在文档中找到相关描述
- 目前仅支持文本内容的提取和处理
- precise_search_tapd_data(search_value, search_field, data_type, exact_match, case_sensitive)- TAPD 数据精确搜索工具,支持对需求和缺陷进行精确字段匹配搜索
- 支持按任意字段精确或模糊搜索
- 可指定搜索需求、缺陷或两者
- 支持大小写敏感选项
- 提供匹配信息和统计摘要
- 支持高中低优先级预设过滤器
- 支持具体优先级标签搜索
- 默认查找高优先级数据(priority >= 3 或 urgent/high)
- 包含数量、优先级、状态、创建者分布
- 支持需求和缺陷的独立统计
- 提供最近项目和完成情况统计
- analyze_time_trends(data_type, chart_type, time_field, since, until, data_file_path)- 分析时间趋势,支持需求和缺陷数据,可自定义时间字段、时间范围和图表类型
- data_type : 数据类型,可选值为 "story" 和 "bug"
- chart_type : 图表类型,可选值为 "count" 和 "line"
- time_field : 时间字段,可选值为 "created" 和 "updated"
- since : 时间范围,格式为 "YYYY-MM-DD",可选
- until : 时间范围,格式为 "YYYY-MM-DD",可选
- data_file_path : 数据文件路径,可选,默认值为 "local_data/msg_from_fetcher.json"
- vectorize_data(data_file_path, chunk_size, preserve_existing)- 向量化工具,支持自定义数据源的向量化,将数据转换为向量格式,用于后续的语义搜索和分析
- get_vector_info()- 获取简化版向量数据库状态和统计信息
- search_data(query, top_k)- 基于语义相似度的智能搜索,支持自然语言查询,返回与查询最相关的结果
- generate_fake_tapd_data(n_story_A, n_story_B, n_bug_A, n_bug_B, output_path)- 生成模拟 TAPD 数据,用于测试和演示(若不指明地址,使用后可能会覆盖本地数据,若需要来自 TAPD API 的正确数据,请再次调用数据获取工具)
- generate_tapd_overview(since, until, max_total_tokens, use_local_data)- 使用 LLM 简要生成项目概览报告与摘要,用于了解项目概况(需要配置 LLM API 密钥)
- analyze_word_frequency(min_frequency, use_extended_fields, data_file_path)- 分析 TAPD 数据的词频分布,生成关键词词云统计,为搜索功能提供精准关键词建议
- example_tool(param1, param2)- 示例工具,展示 MCP 工具注册方式
这些工具支持从数据获取到智能分析的完整工作流,为 AI 驱动的测试管理提供强大支持。
- test_case_rules_customer.py- 测试用例评估规则配置脚本,用于配置测试用例的评估标准和优先级
- test_case_require_list_knowledge_base.py- 测试用例需求知识库生成脚本,可从 TAPD 数据中提取需求信息并生成知识库,或手动修改需求信息
- test_case_evaluator.py- 测试用例 AI 评估器脚本,用于根据配置的规则评估测试用例质量,并生成评估报告至本地文件
- 位于common_utils.py
- 提供统一的工具接口,简化 MCP 工具的注册和调用
- 包含的工具如下:
- __init__()- 初始化配置管理器,自动创建项目所需的目录结构(local_data、models、vector_data)
- _get_project_root()- 获取项目根目录的绝对路径
- get_data_file_path(relative_path)- 获取数据文件的绝对路径,支持相对路径自动转换
- get_vector_db_path(name)- 获取向量数据库文件路径,默认为"data_vector"
- get_model_cache_path()- 获取模型缓存目录路径
- __init__(config)- 初始化模型管理器,依赖 MCPToolsConfig 实例
- get_project_model_path(model_name)- 检测本地是否存在指定模型,返回模型路径或 None
- get_model(model_name)- 获取 SentenceTransformer 模型实例,优先使用本地模型,支持自动下载和缓存
- clear_cache()- 清除全局模型缓存,释放内存资源
- extract_text_from_item(item, item_type)- 从 TAPD 数据项(需求/缺陷)中提取关键文本信息,支持不同类型的字段提取策略
- __init__(config)- 初始化文件管理器,依赖 MCPToolsConfig 实例
- load_tapd_data(file_path)- 加载 TAPD JSON 数据文件,支持绝对路径和相对路径
- load_json_data(file_path)- 加载 JSON 数据文件,支持错误处理,文件不存在时返回空字典
- save_json_data(data, file_path)- 保存数据为 JSON 格式,自动创建目录结构
- read_excel_with_mapping(excel_file_path, column_mapping, na_to_empty=True)- 通用 Excel 读取与列映射,返回 list[dict]
- __init__(file_manager)- 初始化传输管理器,依赖 FileManager 实例
- update_stats(success, retries)- 更新传输统计信息,记录成功/失败次数和重试次数
- finalize_report()- 生成最终传输报告,保存统计数据到 JSON 文件
- __init__(config)- 初始化 Token 计数器,依赖 MCPToolsConfig 实例,自动尝试加载 DeepSeek tokenizer
- count_tokens(text)- 计算文本的 token 数量,优先使用 transformers 库精确计算,失败时使用改进的预估模式
- _try_load_tokenizer()- 尝试加载本地 DeepSeek tokenizer,支持精确 token 计数
- split_by_token_budget(items, estimate_tokens_fn, token_threshold, start_index=0)- 基于 token 阈值的贪心分批,返回(本批列表, 下一起点, 估算 tokens)
- parse_markdown_tables(md_text)- 纯解析 Markdown 表格为通用结构[{headers, rows}],不含业务映射
- __init__()- 初始化 API 管理器,支持 DeepSeek 和 SiliconFlow 双 API 配置
- get_headers(endpoint)- 智能构建 API 请求头,根据 endpoint 自动选择对应的 API 密钥
- call_llm(prompt, session, model, endpoint, max_tokens)- 兼容多 API 的 LLM 调用接口
- 支持DeepSeek API(默认):deepseek-chat、deepseek-reasoner模型
- 支持SiliconFlow API:deepseek-ai/DeepSeek-V3.1等模型
- 自动检测API类型并适配不同的请求格式和错误处理
- get_config()- 获取全局 MCPToolsConfig 实例(单例模式)
- get_model_manager()- 获取全局 ModelManager 实例(单例模式)
- get_file_manager()- 获取全局 FileManager 实例(单例模式)
- get_api_manager()- 获取全局 APIManager 实例(单例模式)
- get_transmission_manager()- 获取全局 TransmissionManager 实例(单例模式)
- get_token_counter()- 获取全局 TokenCounter 实例(单例模式)
MCPAgentRE\ ├─config\ # 配置文件目录 ├─knowledge_documents\ # 知识文档(Git 提交时默认忽略目录下的文件,若要提交请手动在 .gitignore 中取消忽略) ├─documents_data\ # 文档数据目录(暂时,最终将替换至 local_data) │ ├─docx_data\ # 存储 .docx 文档的目录 │ ├─excel_data\ # 存储 Excel 表格的目录 │ └─pictures_data\ # 存储图片的目录 ├─local_data\ # 本地数据目录,用于存储从 TAPD 获取的数据、数据库等(Git 提交时会被忽略) │ ├─msg_from_fetcher.json # 从 TAPD 获取的需求和缺陷数据 │ ├─fake_tapd.json # 假数据生成器生成的模拟 TAPD 数据 │ ├─logs\ # 日志文件目录 │ └─vector_data\ # 向量数据库文件目录 │ ├─data_vector.index # 向量数据库索引文件 │ ├─data_vector.metadata.pkl # 向量数据库元数据文件 │ └─data_vector.config.json # 向量数据库配置文件 ├─mcp_tools\ # MCP 工具目录 │ ├─data_vectorizer.py # 向量化工具,支持自定义数据源的向量化 │ ├─context_optimizer.py # 上下文优化器,支持智能摘要生成 │ ├─docx_summarizer.py # 文档摘要生成器,提取 .docx 文档内容 │ ├─fake_tapd_gen.py # TAPD 假数据生成器,用于测试和演示 │ ├─word_frequency_analyzer.py # 词频分析工具,生成关键词词云统计 │ ├─data_preprocessor.py # 数据预处理工具,清理和优化 TAPD 数据 │ ├─common_utils.py # 统一的公共工具模块 │ └─example_tool.py # 示例工具 ├─models\ # 模型目录 ├─test\ # 测试目录 │ ├─test_data_vectorizer.py # 完整测试 data_vectorizer 向量化脚本功能 │ ├─test_word_frequency.py # 词频分析工具测试 │ └─vector_quick_start.py # 向量化功能快速启动脚本 ├─.gitignore # Git 提交时遵守的过滤规则 ├─.python-version # 记录 Python 版本(3.10) ├─提示词-TAPD平台MCP分析助手.md ├─TAPD平台MCP服务器开发指南.md ├─api.txt # 包含 API 密钥信息,需要自行创建(Git 提交时会被忽略) ├─main.py # 项目入口文件,无实际作用 ├─pyproject.toml # 现代的 Python 依赖管理文件 ├─README.md # 项目说明文档,也就是本文档 ├─tapd_data_fetcher.py # 包含从 TAPD API 获取需求和缺陷数据的逻辑 ├─tapd_mcp_server.py # MCP 服务器启动脚本,用于提供所有 MCP 工具 └─uv.lock # UV 包管理器使用的锁定文件
以下是将项目移植到其他 Windows 电脑的详细步骤(尚未测试 Mac 与 Linux):
关于如何在 UV 中切换 Python 版本,请参考UV - 管理Python 版本、环境、第三方包 - 知乎
- 将原项目目录D:\MiniProject\MCPAgentRE完整复制到目标电脑(建议路径无中文/空格,如D:\MCPAgentRE)
- 该命令会根据pyproject.toml安装所有依赖(包括 MCP SDK、aiohttp 等)
-
在项目根目录下创建api.txt文件,复制下列文本,并替换配置为目标TAPD项目的真实值:
API_USER = '替换为你的TAPD API用户名' API_PASSWORD = '替换为你的TAPD API密码' WORKSPACE_ID = '替换为你的TAPD项目ID'
- 注意:TAPD API 用户名和密码需要从 TAPD 平台获取,具体操作请参阅[开放平台文档
- WORKSPACE_ID:TAPD 项目 ID,可通过 TAPD 平台获取
- 提交 Git 时会根据.gitignore忽略api.txt文件,确保敏感信息不被泄露
…
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





