Skip to main content
Glama

TAPD Data Fetcher

TAPD平台MCP服务器开发指南.md8.44 kB
# TAPD 平台 MCP 服务器开发指南 本项目使用 MCP 作为开发框架,主要用于获取 TAPD 平台的需求和缺陷数据,并使用 AI 进行需求和缺陷的识别和决策。 ## 项目意义 * 引入 AI 驱动(例如 MCP Tool)实现快速缺陷的统计以及缺陷分析。测试管理人员可以通过与大模型对话的方式获取经过分析后的数据。 * 通过构建 Agent 的方式,实现自动生成质量分析报告的能力。项目成员可以通过报告来了解到业务的整体质量变化。 * 通过引入 AI 驱动的自动化测试分析,可实时监控测试数据、智能识别异常趋势,并基于历史数据预测风险,从而降低人工成本、提升评估准确性,实现更高效的测试管理。 ## 开发标准 * 项目使用 Python 语言开发,依赖于 MCP 的 CLI 工具和其他相关库。虚拟环境与包管理器则是由 uv 提供的。 * 若需要添加或更新依赖,可以使用 `uv add` 或 `uv sync` 命令。 * 所有 Python 程序在执行时都应当使用 `uv run <file>` 命令来运行程序,以确保使用正确的虚拟环境和依赖。运行程序前终端应当位于项目根目录,之后使用例如 `uv run mcp_tools\example_tool.py` 的命令格式。 * 除了专门从 API 获取数据的脚本外,所有的程序都应当优先使用本地数据文件进行分析。若需要最新的 API 数据,请调用 `tapd_data_fetcher.py` 脚本来获取最新数据。 * 工具在精不在多。如果有两套相似的工具,最好合并为一套或者只保留完整版;`tapd_data_fetcher.py` 中只注册最核心最重要的工具。 ### 目录标准 ```text MCPAgentRE\ ├─config\                   # 配置文件目录 ├─knowledge_documents\ # 知识文档 ├─mcp_tools\ # MCP 工具目录 ├─local_data\ # 本地数据目录 │ ├─vector_data\ # 向量数据库目录 │ ├─time_trend\ # 时间趋势数据目录 │ └─logs\ # 日志文件目录 ├─test\ # 测试目录 ├─models\ # 模型目录 ├─.gitignore # Git 提交时遵守的过滤规则 ├─.python-version # 记录 Python 版本(3.10) ├─api.txt # 包含 API 密钥信息 ├─pyproject.toml # 现代的 Python 依赖管理文件 ├─README.md # 项目说明文档,所有功能与使用步骤都在这里 ├─tapd_data_fetcher.py # 包含从 TAPD API 获取需求和缺陷数据的逻辑 ├─tapd_mcp_server.py # MCP 服务器启动脚本,包含各类 MCP 工具 └─uv.lock # UV 包管理器使用的锁定文件 ``` * 若要添加 MCP 工具,请存储于 `mcp_tools` 文件夹中,并在 `tapd_mcp_server.py` 中注册。注册方法请见 `README.md` 文件的“扩展MCP服务器功能”部分,之后你可以自行测试此 MCP 工具。 * 所有来自 TAPD 平台的数据都应存储在 `local_data` 文件夹中,包括后续创建的数据库文件等。向量数据库文件则存储于 `local_data\vector_data` 文件夹中。 * 所有配置文件都应当创建在 `config` 文件夹中。所有处理配置文件的程序都应当检查配置文件是否存在,若不存在则应创建空配置文件。 * 所有测试类的文件都应存储在 `test` 文件夹中,测试文件名应以 `test_` 开头。 * 所有新文档都应存储在 `knowledge_documents` 文件夹中,若为项目添加了新功能,请在 `knowledge_documents` 文件夹中创建或更新对应的使用手册文档,之后使用简洁的语言更新在 `README.md` 文档中。 * 所有模型文件都应存储在 `models` 文件夹中,若需要为项目添加新模型,请指定下载在 `models` 文件夹中。 * 根目录下尽量不要留任何新脚本或数据,请根据用途放置于对应的目录下,根目录只保留和整个项目都很大关系的东西。 * 若需要拆分高频通用功能至 `mcp_tools\common_utils.py` 中,需要确保每个类函数都有对应的工具类(优先放入已有类,若无匹配类则创建新类),并更新全局实例管理相关代码,请保持新代码与已有代码整体结构一致。之后需要更新根目录下的 `TAPD平台MCP服务器开发指南.md` 文档中的相关说明。 ### 统一接口脚本 * 位于 `mcp_tools\common_utils.py` * 提供统一的工具接口,简化 MCP 工具的注册和调用 * 包含的工具如下: #### MCPToolsConfig 类 * **`__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()`** - 获取模型缓存目录路径 #### ModelManager 类 * **`__init__(config)`** - 初始化模型管理器,依赖MCPToolsConfig实例 * **`get_project_model_path(model_name)`** - 检测本地是否存在指定模型,返回模型路径或None * **`get_model(model_name)`** - 获取SentenceTransformer模型实例,优先使用本地模型,支持自动下载和缓存 * **`clear_cache()`** - 清除全局模型缓存,释放内存资源 #### TextProcessor 类 * **`extract_text_from_item(item, item_type)`** - 从TAPD数据项(需求/缺陷)中提取关键文本信息,支持不同类型的字段提取策略 #### FileManager 类 * **`__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] #### TransmissionManager 类 * **`__init__(file_manager)`** - 初始化传输管理器,依赖FileManager实例 * **`update_stats(success, retries)`** - 更新传输统计信息,记录成功/失败次数和重试次数 * **`finalize_report()`** - 生成最终传输报告,保存统计数据到JSON文件 #### TokenCounter 类 * **`__init__(config)`** - 初始化Token计数器,依赖MCPToolsConfig实例,自动尝试加载DeepSeek tokenizer * **`count_tokens(text)`** - 计算文本的token数量,优先使用transformers库精确计算,失败时使用改进的预估模式 * **`_try_load_tokenizer()`** - 尝试加载本地DeepSeek tokenizer,支持精确token计数 #### BatchingUtils 工具类 * **`split_by_token_budget(items, estimate_tokens_fn, token_threshold, start_index=0)`** - 基于token阈值的贪心分批,返回(本批列表, 下一起点, 估算tokens) #### MarkdownUtils 工具类 * **`parse_markdown_tables(md_text)`** - 纯解析Markdown表格为通用结构[{headers, rows}],不含业务映射 #### APIManager 类 * **`__init__()`** - 初始化API管理器,从环境变量读取DeepSeek API配置 * **`get_headers()`** - 构建API请求头,验证API密钥是否已设置 * **`call_llm(prompt, session, model, endpoint, max_tokens)`** - 调用在线LLM API,支持DeepSeek-Reasoner的reasoning_content字段 #### 全局实例管理函数 * **`get_config()`** - 获取全局MCPToolsConfig实例(单例模式) * **`get_model_manager()`** - 获取全局ModelManager实例(单例模式) * **`get_file_manager()`** - 获取全局FileManager实例(单例模式) * **`get_api_manager()`** - 获取全局APIManager实例(单例模式) * **`get_transmission_manager()`** - 获取全局TransmissionManager实例(单例模式) * **`get_token_counter()`** - 获取全局TokenCounter实例(单例模式) ## 最终验收要求及评价指标 * 缺陷数据、需求数据拉取正确率 100% * 涉及到数据的计算准确率达 100% * MCP\Agent(质量报告生成相关)的调用稳定性大于 99% ## 特别注意 **所有的思考与回答都需要经过一步步严谨细致的思考,请确保你输出的内容准确无误。**

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/OneCuriousLearner/MCPAgentRE'

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