Skip to main content
Glama

get_tapd_bugs

Fetch and format defect data from TAPD platform for specified projects, returning a structured JSON string for streamlined project management analysis.

Instructions

获取TAPD平台指定项目的缺陷数据(支持分页)

Returns:
    str: 格式化后的缺陷数据JSON字符串

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • MCP tool handler and registration for 'get_tapd_bugs'. Wraps the helper get_bug_msg to fetch TAPD bugs and serialize to JSON string.
    @mcp.tool()
    async def get_tapd_bugs(clean_empty_fields: bool = True) -> str:
        """获取TAPD平台指定项目的缺陷数据(支持分页)
        
        功能描述:
            - 从TAPD API获取指定项目的所有缺陷数据
            - 支持按状态、优先级等条件过滤
            - 自动处理API认证和错误
            - 数据不保存至本地,建议仅在数据量较小时使用
            
        返回数据格式:
            - 每个缺陷包含ID、标题、严重程度、状态、解决方案等字段
            - 数据已按JSON格式序列化,确保AI客户端可直接解析
            
        Returns:
            str: 格式化后的缺陷数据JSON字符串,包含中文内容
        """
        try:
            bugs = await get_bug_msg(clean_empty_fields=clean_empty_fields)
            return json.dumps(bugs, ensure_ascii=False, indent=2)
        except Exception as e:
            return f"获取缺陷数据失败:{str(e)}"
  • Supporting utility function that implements the core logic of fetching bugs from TAPD API via paginated requests using aiohttp, with authentication and optional cleaning of empty fields.
    async def get_bug_msg(clean_empty_fields: bool = True):
        url = 'https://api.tapd.cn/bugs'  # TAPD缺陷API地址
        bugs_list = []  # 存储所有缺陷数据的列表
        page = 1  # 初始页码
        while True:
            params = {
                'workspace_id': WORKSPACE_ID,
                # 若需要获取所有字段,请注释下面的fields参数
                # 'fields': 'id,title,description,priority,severity,module,status,reporter,created,bugtype,resolved,closed,modified,lastmodify,auditer,de,fixer,version_test,version_report,version_close,version_fix,baseline_find,baseline_join,baseline_close,baseline_test,sourcephase,te,current_owner,iteration_id,resolution,source,originphase,confirmer,milestone,participator,closer,platform,os,testtype,testphase,frequency,cc,regression_number,flows,feature,testmode,estimate,issue_id,created_from,release_id,verify_time,reject_time,reopen_time,audit_time,suspend_time,due,begin,deadline,in_progress_time,assigned_time,template_id,story_id,label,size,effort,effort_completed,exceed,remain,secret_root_id,priority_label,workspace_id',
                'page': page
            }
            async with aiohttp.ClientSession() as session:
                async with session.get(url, auth=aiohttp.BasicAuth(API_USER, API_PASSWORD), params=params) as response:
                    if response.status != 200:
                        print(f'获取缺陷第{page}页失败: {await response.text()}')
                        break
                    result = await response.json()
                    if result.get('status') != 1:
                        print(f'获取缺陷第{page}页失败: {result.get("info")}')
                        break
                    current_page_data = result.get('data', [])
                    if not current_page_data:  # 无更多数据时结束循环
                        break
                    for bug in current_page_data:  # 遍历当前页的每条缺陷数据,提取Bug字段
                        bug_data = bug.get('Bug', {})
                        if not bug_data.get('title'):  # 检查缺陷title是否为空
                            print(f'发现缺陷数据title为空(第{page}页),结束获取')
                            return bugs_list  # 遇到空值立即终止并返回已有数据
                        # 根据参数决定是否清洗空数据字段(None/空字符串)
                        if clean_empty_fields:
                            processed_bug = {k: v for k, v in bug_data.items() if v not in (None, "")}
                        else:
                            processed_bug = bug_data
                        bugs_list.append(processed_bug)
            page += 1  # 页码递增
        print(f'缺陷数据获取完成,共获取{len(bugs_list)}条')
        return bugs_list
Install Server

Other Tools

Related Tools

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

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