{"name":"io.github.sun-jingtao/tapd-mcp-server","slug":"sun-jingtao-tapd-mcp-server","title":"TAPD MCP Server","description":"在 Cursor/Copilot 中查询、分析和回填 TAPD bug / 需求","url":"https://mcp.market/server/sun-jingtao-tapd-mcp-server","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":24,"stars":0,"forks":0,"downloads_week":195,"last_push_at":"2026-07-14T02:30:18.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/sun-jingtao/tapd-mcp-server","website":"https://github.com/sun-jingtao/tapd-mcp-server#readme","version":"1.0.8","remotes":[],"packages":[{"registryType":"npm","identifier":"tapd-mcp-server","version":"1.0.8","transport":{"type":"stdio"},"environmentVariables":[{"description":"TAPD 个人访问令牌","isRequired":true,"isSecret":true,"name":"TAPD_ACCESS_TOKEN"},{"description":"是否允许 tapd_call_api 通用透传工具发起 POST 写操作，设为 true 开启；默认关闭，仅拦截透传写入，不影响专用写工具","name":"TAPD_ALLOW_RAW_WRITE"}]}],"tools":[{"name":"tapd_append_bug_description_image","description":"一步完成：上传图片 → 读取缺陷当前描述 → 把图片追加到描述末尾后整体回写。先读后写避免覆盖原有正文。仅支持 png/gif/jpg/jpeg/bmp、单张 ≤5MB。图片上传成功但描述写入失败时会明确提示（此时图片已上传，可改用 tapd_writeback 手动写回）。","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_call_api","description":"通用透传工具：直接调用 TAPD OpenAPI（https://api.tapd.cn）的任意 REST 接口，用于专用工具未覆盖的场景（任务、工时、测试计划、模块/版本配置、Wiki、看板等）。","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_create_bug","description":"在 TAPD 中创建一个已确认的新 bug，可选关联到指定需求，支持设置处理人、优先级、严重程度、模块、版本、迭代、排期、各类人员（测试/开发/参与人等）、工时、模板、自定义字段等。创建前建议先用 tapd_search_users 确认处理人的 nick；不传处理人则默认指派给当前登录用户。","write_action":true,"price_micros":0,"input_schema":null},{"name":"tapd_create_story","description":"在 TAPD 中创建一个已确认的新需求，支持设置处理人、优先级、迭代、父需求、标签、排期、工时、自定义字段等。创建前建议先用 tapd_search_users 确认处理人的 nick；不传处理人则默认指派给当前登录用户。","write_action":true,"price_micros":0,"input_schema":null},{"name":"tapd_get_bugs","description":"批量获取多个 TAPD bug 的完整内容，包括描述、复现步骤、评论、附件、图片和视频等详细信息。状态会附带项目工作流中文名（如「已解决（resolved）」）","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_get_stories","description":"批量获取多个 TAPD 需求的完整内容，包括描述、评论、附件、图片和视频等详细信息。状态会附带项目工作流中文名（如「已实现（resolved）」）","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_list_bug_changes","description":"查询 TAPD bug 变更历史。bug_id、created 与 id 至少提供一个；可按变更人、变更字段过滤并自定义排序，include_add_bug=true 时返回创建缺陷的记录。状态变更会附带项目工作流中文名（如「接受/处理（in_progress） => 已解决（resolved）」）。","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_list_bugs","description":"查询 TAPD bug 列表，默认查询当前登录用户负责的缺陷；传入 current_owner 可查询指定处理人名下的缺陷。传入 id 或 story_id 时不限处理人（story_id 返回该需求全部处理人名下的关联缺陷），可查到已转给他人的缺陷；显式传入 current_owner 时再按该处理人取交集。传入 workspace_id 时只查该项目；不传 workspace_id 时会聚合处理人参与的所有项目的缺陷（按 story_id 过滤时仍需具体项目）。支持按字段过滤：缺陷 ID、关联需求、标题、描述、状态、报告人、处理人、创建时间，以及优先级、严重程度、中文状态、标签、迭代、模块、版本/基线、发布计划、特性、缺陷类型/根源/解决方法/重现规律、各类人员（测试/开发/参与/抄送/修复/验证/审核/关闭人等）、环境（操作系统/平台）、测试方式/阶段/类型、排期/解决/关闭/修改/","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_list_iterations","description":"查询 TAPD 项目迭代列表，支持按迭代 ID、名称、状态过滤，以及描述、起止时间、迭代类别、计划应用、创建人、创建/修改/完成时间、锁定人、自定义字段等，并可自定义排序（order）与翻页；用于创建或更新需求时选择 iteration_id","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_list_stories","description":"查询 TAPD 需求列表，默认查询当前登录用户负责的需求；传入 owner 可查询指定处理人名下的需求。传入 id 精确查询时不限处理人，可查到已转给他人的需求。传入 workspace_id 时只查该项目；不传 workspace_id 时会聚合处理人参与的所有项目的需求。支持按字段过滤：需求 ID、名称、描述、状态、创建人、处理人、创建时间，以及优先级、标签、版本、模块、迭代、分类、排期/修改/完成时间、父子需求、特性、技术风险、需求类别、发布计划、规模、测试重点、抄送/开发人、来源/类型、工时、自定义字段等，并可自定义排序（order）。返回的状态会附带项目工作流中文名（如「已实现（resolved）」）。【展示约定】向用户呈现结果时，请直接原样输出本工具返回的 Markdown 表格，完整保留「序号」「id」在内的所有列（其中「需求」列已是内嵌超链接的 Markdown 写法，请勿","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_list_story_changes","description":"查询 TAPD 需求变更历史和字段级变更详情。story_id、created 与 id 至少提供一个；可按变更人、变更字段、变更类型过滤并自定义排序；include_details=true 时返回 field_changes 变更详情。","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_list_story_test_cases","description":"查询指定 TAPD 需求直接关联的所有测试用例，支持按用例名称和状态在本地过滤","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_list_workspaces","description":"查询指定用户参与的所有 TAPD 项目（workspace），默认查询当前登录用户。默认过滤掉 category=organization 的公司/组织条目，只返回可用于查询缺陷和需求的具体项目。当用户名下存在多个 workspace_id 时，可先用此工具拿到全部项目 ID；tapd_list_bugs / tapd_list_stories 在不传 workspace_id 时即会跨这些项目聚合查询。","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_search_users","description":"按姓名、TAPD nick 或邮箱搜索项目成员。需要更新 bug 处理人前，应先用该工具确认目标处理人的 nick。","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_upload_bug_attachment","description":"把文件上传到指定缺陷的附件区（支持 png/jpg/mp4 等任意类型，单文件 ≤250MB）。文件内容用 base64 传入（Agent 通常无本地路径）。录屏、视频等应走此工具而非内嵌描述。上传后可用 tapd_get_bugs 在附件区核对。","write_action":true,"price_micros":0,"input_schema":null},{"name":"tapd_upload_bug_image","description":"上传图片到 TAPD 并返回 html_code（<img> 片段），用于嵌入缺陷描述。仅支持 png/gif/jpg/jpeg/bmp、单张 ≤5MB。本工具只上传图片、不修改描述：拿到 html_code 后需自行用 tapd_get_bugs 取原描述、拼接后再调 tapd_writeback 的 description（或直接用 tapd_append_bug_description_image 一步完成）。","write_action":true,"price_micros":0,"input_schema":null},{"name":"tapd_writeback","description":"对 TAPD bug 执行一个或多个已确认操作：回填评论、更新标题、更新描述正文、更新状态、更新处理人，以及更新优先级、严重程度、模块、版本、迭代、排期、各类人员、工时、标签等标准字段和自定义字段。各功能相互独立且可自由组合，至少提供 comment、title、description、target_status、target_owners、标准字段或 custom_fields 之一。注意：各动作分多次请求提交、非事务，可能出现部分成功（结果会逐项标明成功/失败）。","write_action":false,"price_micros":0,"input_schema":null},{"name":"tapd_writeback_story","description":"对 TAPD 需求执行一个或多个已确认操作：回填评论、更新描述正文、更新状态、更新处理人，以及更新标题、优先级、迭代、版本、工时、标签等标准字段和自定义字段。各功能相互独立且可自由组合，至少提供 comment、description、target_status、target_owners、标准字段或 custom_fields 之一。注意：各动作分多次请求提交、非事务，可能出现部分成功（结果会逐项标明成功/失败）。","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-25T21:46:57.313Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T21:46:57.280Z","components":{"code":{"score":25,"max":25,"notes":["44 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 74 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"tapd-mcp-server","version":"1.0.8","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-07-14T02:30:11.012Z","repositoryUrl":"git+https://github.com/sun-jingtao/tapd-mcp-server.git","weeklyDownloads":195}],"repo":{"found":true,"owner":"sun-jingtao","repo":"tapd-mcp-server","archived":false,"pushedAt":"2026-07-14T02:30:18Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/51395613?v=4","ownerCreatedAt":"2019-06-05T05:35:37Z","license":"MIT"},"icon":{"url":"https://unpkg.com/tapd-mcp-server@1.0.8/icon.png","source":"registry","width":512,"height":512},"presence":{"stars":0,"forks":0,"downloadsWeek":195,"license":"MIT","lastPushAt":"2026-07-14T02:30:18.000Z","score":24}}}},"grade_history":[],"reviews":[]}