tapd-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,355 @@
1
+ # TAPD MCP Server
2
+
3
+ MCP (Model Context Protocol) server for TAPD (Tencent Agile Product Development) - manage stories, tasks, bugs, iterations, comments, and releases through AI assistants.
4
+
5
+ [![npm version](https://badge.fury.io/js/tapd-mcp.svg)](https://www.npmjs.com/package/tapd-mcp)
6
+
7
+ ## Features
8
+
9
+ - **Stories/Requirements**: Get, list, create, update stories
10
+ - **Tasks**: Get, list, create, update tasks (including status changes)
11
+ - **Bugs**: Get, list, create, update bugs
12
+ - **Iterations**: Get, list, create, update iterations/sprints
13
+ - **Comments**: List and add comments to stories/tasks/bugs
14
+ - **Releases**: List, create, update releases
15
+ - **Code Relations**: Get commits associated with stories
16
+ - **URL Parsing**: Parse TAPD URLs to extract workspace/resource info
17
+
18
+ ## Quick Start
19
+
20
+ ### Using npx (Recommended)
21
+
22
+ No installation required - just configure your AI tool to use:
23
+
24
+ ```bash
25
+ npx tapd-mcp
26
+ ```
27
+
28
+ ### Global Installation
29
+
30
+ ```bash
31
+ npm install -g tapd-mcp
32
+ tapd-mcp
33
+ ```
34
+
35
+ ### Local Installation
36
+
37
+ ```bash
38
+ npm install tapd-mcp
39
+ npx tapd-mcp
40
+ ```
41
+
42
+ ## Configuration
43
+
44
+ ### Environment Variables
45
+
46
+ | Variable | Required | Description |
47
+ |----------|----------|-------------|
48
+ | `TAPD_API_TOKEN` | Yes | Your TAPD API token |
49
+ | `TAPD_WORKSPACE_ID` | No | Default workspace ID |
50
+ | `TAPD_CURRENT_USER` | No | Your TAPD user id (e.g. `xiaopeng_lei`). Used by `tapd_get_current_user` so AI assistants can identify "you". |
51
+
52
+ ### Get Your API Token
53
+
54
+ 1. Visit [TAPD API Token Management](https://www.tapd.cn/company/my_tokens)
55
+ 2. Log in to TAPD
56
+ 3. Create a new API token
57
+ 4. Copy the token
58
+
59
+ ## AI Tool Configuration
60
+
61
+ ### Claude Code / Claude Desktop
62
+
63
+ Add to your MCP settings file:
64
+ - Claude Code: `~/.claude/settings.json` or project `.claude/settings.json`
65
+ - Claude Desktop: `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows)
66
+
67
+ ```json
68
+ {
69
+ "mcpServers": {
70
+ "tapd": {
71
+ "command": "npx",
72
+ "args": ["-y", "tapd-mcp"],
73
+ "env": {
74
+ "TAPD_API_TOKEN": "your_api_token_here",
75
+ "TAPD_WORKSPACE_ID": "your_default_workspace_id"
76
+ }
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ ### Cursor
83
+
84
+ Add to your Cursor settings (`.cursor/mcp.json` in your project or global settings):
85
+
86
+ ```json
87
+ {
88
+ "mcpServers": {
89
+ "tapd": {
90
+ "command": "npx",
91
+ "args": ["-y", "tapd-mcp"],
92
+ "env": {
93
+ "TAPD_API_TOKEN": "your_api_token_here",
94
+ "TAPD_WORKSPACE_ID": "your_default_workspace_id"
95
+ }
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ ### Windsurf
102
+
103
+ Add to your Windsurf MCP configuration (`~/.windsurf/mcp.json`):
104
+
105
+ ```json
106
+ {
107
+ "mcpServers": {
108
+ "tapd": {
109
+ "command": "npx",
110
+ "args": ["-y", "tapd-mcp"],
111
+ "env": {
112
+ "TAPD_API_TOKEN": "your_api_token_here",
113
+ "TAPD_WORKSPACE_ID": "your_default_workspace_id"
114
+ }
115
+ }
116
+ }
117
+ }
118
+ ```
119
+
120
+ ### Cline (VS Code Extension)
121
+
122
+ Add to your Cline MCP settings:
123
+
124
+ ```json
125
+ {
126
+ "mcpServers": {
127
+ "tapd": {
128
+ "command": "npx",
129
+ "args": ["-y", "tapd-mcp"],
130
+ "env": {
131
+ "TAPD_API_TOKEN": "your_api_token_here",
132
+ "TAPD_WORKSPACE_ID": "your_default_workspace_id"
133
+ }
134
+ }
135
+ }
136
+ }
137
+ ```
138
+
139
+ ### Continue (VS Code / JetBrains Extension)
140
+
141
+ Add to your Continue config (`~/.continue/config.json`):
142
+
143
+ ```json
144
+ {
145
+ "experimental": {
146
+ "modelContextProtocolServers": [
147
+ {
148
+ "transport": {
149
+ "type": "stdio",
150
+ "command": "npx",
151
+ "args": ["-y", "tapd-mcp"]
152
+ },
153
+ "env": {
154
+ "TAPD_API_TOKEN": "your_api_token_here",
155
+ "TAPD_WORKSPACE_ID": "your_default_workspace_id"
156
+ }
157
+ }
158
+ ]
159
+ }
160
+ }
161
+ ```
162
+
163
+ ### Zed Editor
164
+
165
+ Add to your Zed settings (`~/.config/zed/settings.json`):
166
+
167
+ ```json
168
+ {
169
+ "context_servers": {
170
+ "tapd": {
171
+ "command": {
172
+ "path": "npx",
173
+ "args": ["-y", "tapd-mcp"]
174
+ },
175
+ "env": {
176
+ "TAPD_API_TOKEN": "your_api_token_here",
177
+ "TAPD_WORKSPACE_ID": "your_default_workspace_id"
178
+ }
179
+ }
180
+ }
181
+ }
182
+ ```
183
+
184
+ ### Using with Node.js directly (Alternative)
185
+
186
+ If you prefer not to use npx, you can install globally and use the binary path:
187
+
188
+ ```json
189
+ {
190
+ "mcpServers": {
191
+ "tapd": {
192
+ "command": "tapd-mcp",
193
+ "env": {
194
+ "TAPD_API_TOKEN": "your_api_token_here",
195
+ "TAPD_WORKSPACE_ID": "your_default_workspace_id"
196
+ }
197
+ }
198
+ }
199
+ }
200
+ ```
201
+
202
+ ## Available Tools
203
+
204
+ ### Story Tools
205
+
206
+ | Tool | Description |
207
+ |------|-------------|
208
+ | `tapd_get_story` | Get story details by ID or URL |
209
+ | `tapd_list_stories` | List stories with filters |
210
+ | `tapd_create_story` | Create a new story |
211
+ | `tapd_update_story` | Update an existing story |
212
+
213
+ ### Task Tools
214
+
215
+ | Tool | Description |
216
+ |------|-------------|
217
+ | `tapd_get_task` | Get task details |
218
+ | `tapd_list_tasks` | List tasks (can filter by story) |
219
+ | `tapd_create_task` | Create a task under a story |
220
+ | `tapd_update_task` | Update task (including status) |
221
+
222
+ ### Bug Tools
223
+
224
+ | Tool | Description |
225
+ |------|-------------|
226
+ | `tapd_get_bug` | Get bug details |
227
+ | `tapd_list_bugs` | List bugs with filters |
228
+ | `tapd_create_bug` | Create a new bug |
229
+ | `tapd_update_bug` | Update a bug |
230
+
231
+ ### Iteration Tools
232
+
233
+ | Tool | Description |
234
+ |------|-------------|
235
+ | `tapd_get_iteration` | Get iteration details |
236
+ | `tapd_list_iterations` | List iterations |
237
+ | `tapd_create_iteration` | Create a new iteration |
238
+ | `tapd_update_iteration` | Update an iteration |
239
+
240
+ ### Comment Tools
241
+
242
+ | Tool | Description |
243
+ |------|-------------|
244
+ | `tapd_list_comments` | List comments on a story/task/bug |
245
+ | `tapd_add_comment` | Add a comment |
246
+
247
+ ### Release Tools
248
+
249
+ | Tool | Description |
250
+ |------|-------------|
251
+ | `tapd_list_releases` | List releases |
252
+ | `tapd_create_release` | Create a new release |
253
+ | `tapd_update_release` | Update a release |
254
+
255
+ ### Other Tools
256
+
257
+ | Tool | Description |
258
+ |------|-------------|
259
+ | `tapd_get_story_commits` | Get code commits linked to a story |
260
+ | `tapd_parse_url` | Parse a TAPD URL |
261
+ | `tapd_get_current_user` | Get the current user (the "me" identity behind the API token); requires `TAPD_CURRENT_USER` env var |
262
+
263
+ ## Examples
264
+
265
+ ### Get a story by URL
266
+
267
+ ```
268
+ Use tapd_get_story with url: "https://www.tapd.cn/tapd_fe/12345/story/detail/112345678901234567"
269
+ ```
270
+
271
+ ### List stories in an iteration
272
+
273
+ ```
274
+ Use tapd_list_stories with workspace_id: "12345", iteration_id: "112345678901234567"
275
+ ```
276
+
277
+ ### Create a task under a story
278
+
279
+ ```
280
+ Use tapd_create_task with:
281
+ workspace_id: "12345"
282
+ name: "Implement login API"
283
+ story_id: "112345678901234567"
284
+ owner: "developer_name"
285
+ effort: "8"
286
+ ```
287
+
288
+ ### Update task status
289
+
290
+ ```
291
+ Use tapd_update_task with:
292
+ workspace_id: "12345"
293
+ task_id: "112345678901234568"
294
+ status: "done"
295
+ progress: "100"
296
+ ```
297
+
298
+ ### Add a comment to a story
299
+
300
+ ```
301
+ Use tapd_add_comment with:
302
+ workspace_id: "12345"
303
+ entry_type: "stories"
304
+ entry_id: "112345678901234567"
305
+ description: "Code review completed, ready for testing"
306
+ ```
307
+
308
+ ## Status Values
309
+
310
+ ### Story Status
311
+ - `planning` - 待规划
312
+ - `developing` - 开发中
313
+ - `testing` - 测试中
314
+ - `resolved` - 已完成
315
+ - `closed` - 已关闭
316
+ - `rejected` - 已拒绝
317
+
318
+ ### Task Status
319
+ - `open` - 未开始
320
+ - `progressing` - 进行中
321
+ - `done` - 已完成
322
+
323
+ ### Bug Status
324
+ - `new` - 新建
325
+ - `in_progress` - 接受/处理
326
+ - `resolved` - 已解决
327
+ - `verified` - 已验证
328
+ - `closed` - 已关闭
329
+ - `rejected` - 已拒绝
330
+ - `reopened` - 重新打开
331
+
332
+ ## Development
333
+
334
+ ```bash
335
+ # Clone the repository
336
+ git clone https://github.com/openpeng/tapd-mcp.git
337
+ cd tapd-mcp
338
+
339
+ # Install dependencies
340
+ npm install
341
+
342
+ # Build
343
+ npm run build
344
+
345
+ # Run locally
346
+ TAPD_API_TOKEN=your_token node dist/index.js
347
+ ```
348
+
349
+ ## API Reference
350
+
351
+ This MCP server uses the [TAPD Open Platform API](https://open.tapd.cn/).
352
+
353
+ ## License
354
+
355
+ MIT
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * TAPD MCP Server - Model Context Protocol server for TAPD operations
4
+ *
5
+ * Supports: Stories, Tasks, Bugs, Iterations, Comments, Releases
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;GAIG"}