@xihe-lab/tapd-mcp-server 1.4.4 → 2.0.0-rc.3
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/README.md +55 -28
- package/dist/{index.d.ts → bin/tapd-mcp-server.d.ts} +1 -1
- package/dist/bin/tapd-mcp-server.d.ts.map +1 -0
- package/dist/{index.js → bin/tapd-mcp-server.js} +3 -3
- package/dist/bin/tapd-mcp-server.js.map +1 -0
- package/dist/integration-test.js +1 -1
- package/dist/integration-test.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +18 -61
- package/dist/server.js.map +1 -1
- package/package.json +11 -19
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/tapd-client.d.ts +0 -86
- package/dist/tapd-client.d.ts.map +0 -1
- package/dist/tapd-client.js +0 -190
- package/dist/tapd-client.js.map +0 -1
- package/dist/tools/attachment.d.ts +0 -3
- package/dist/tools/attachment.d.ts.map +0 -1
- package/dist/tools/attachment.js +0 -104
- package/dist/tools/attachment.js.map +0 -1
- package/dist/tools/board.d.ts +0 -3
- package/dist/tools/board.d.ts.map +0 -1
- package/dist/tools/board.js +0 -98
- package/dist/tools/board.js.map +0 -1
- package/dist/tools/bug.d.ts +0 -3
- package/dist/tools/bug.d.ts.map +0 -1
- package/dist/tools/bug.js +0 -619
- package/dist/tools/bug.js.map +0 -1
- package/dist/tools/changes.d.ts +0 -3
- package/dist/tools/changes.d.ts.map +0 -1
- package/dist/tools/changes.js +0 -73
- package/dist/tools/changes.js.map +0 -1
- package/dist/tools/comment.d.ts +0 -3
- package/dist/tools/comment.d.ts.map +0 -1
- package/dist/tools/comment.js +0 -93
- package/dist/tools/comment.js.map +0 -1
- package/dist/tools/custom-fields.d.ts +0 -3
- package/dist/tools/custom-fields.d.ts.map +0 -1
- package/dist/tools/custom-fields.js +0 -105
- package/dist/tools/custom-fields.js.map +0 -1
- package/dist/tools/image.d.ts +0 -3
- package/dist/tools/image.d.ts.map +0 -1
- package/dist/tools/image.js +0 -23
- package/dist/tools/image.js.map +0 -1
- package/dist/tools/index.d.ts +0 -3
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -55
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/iteration.d.ts +0 -3
- package/dist/tools/iteration.d.ts.map +0 -1
- package/dist/tools/iteration.js +0 -190
- package/dist/tools/iteration.js.map +0 -1
- package/dist/tools/mini-comment.d.ts +0 -3
- package/dist/tools/mini-comment.d.ts.map +0 -1
- package/dist/tools/mini-comment.js +0 -74
- package/dist/tools/mini-comment.js.map +0 -1
- package/dist/tools/mini-item.d.ts +0 -3
- package/dist/tools/mini-item.d.ts.map +0 -1
- package/dist/tools/mini-item.js +0 -166
- package/dist/tools/mini-item.js.map +0 -1
- package/dist/tools/mini-workspace.d.ts +0 -3
- package/dist/tools/mini-workspace.d.ts.map +0 -1
- package/dist/tools/mini-workspace.js +0 -43
- package/dist/tools/mini-workspace.js.map +0 -1
- package/dist/tools/program.d.ts +0 -3
- package/dist/tools/program.d.ts.map +0 -1
- package/dist/tools/program.js +0 -27
- package/dist/tools/program.js.map +0 -1
- package/dist/tools/relations.d.ts +0 -3
- package/dist/tools/relations.d.ts.map +0 -1
- package/dist/tools/relations.js +0 -68
- package/dist/tools/relations.js.map +0 -1
- package/dist/tools/release.d.ts +0 -3
- package/dist/tools/release.d.ts.map +0 -1
- package/dist/tools/release.js +0 -250
- package/dist/tools/release.js.map +0 -1
- package/dist/tools/report.d.ts +0 -3
- package/dist/tools/report.d.ts.map +0 -1
- package/dist/tools/report.js +0 -38
- package/dist/tools/report.js.map +0 -1
- package/dist/tools/settings.d.ts +0 -3
- package/dist/tools/settings.d.ts.map +0 -1
- package/dist/tools/settings.js +0 -409
- package/dist/tools/settings.js.map +0 -1
- package/dist/tools/source.d.ts +0 -3
- package/dist/tools/source.d.ts.map +0 -1
- package/dist/tools/source.js +0 -69
- package/dist/tools/source.js.map +0 -1
- package/dist/tools/story.d.ts +0 -3
- package/dist/tools/story.d.ts.map +0 -1
- package/dist/tools/story.js +0 -680
- package/dist/tools/story.js.map +0 -1
- package/dist/tools/task.d.ts +0 -3
- package/dist/tools/task.d.ts.map +0 -1
- package/dist/tools/task.js +0 -267
- package/dist/tools/task.js.map +0 -1
- package/dist/tools/test.d.ts +0 -3
- package/dist/tools/test.d.ts.map +0 -1
- package/dist/tools/test.js +0 -564
- package/dist/tools/test.js.map +0 -1
- package/dist/tools/timesheet.d.ts +0 -3
- package/dist/tools/timesheet.d.ts.map +0 -1
- package/dist/tools/timesheet.js +0 -118
- package/dist/tools/timesheet.js.map +0 -1
- package/dist/tools/user.d.ts +0 -3
- package/dist/tools/user.d.ts.map +0 -1
- package/dist/tools/user.js +0 -57
- package/dist/tools/user.js.map +0 -1
- package/dist/tools/utility.d.ts +0 -3
- package/dist/tools/utility.d.ts.map +0 -1
- package/dist/tools/utility.js +0 -133
- package/dist/tools/utility.js.map +0 -1
- package/dist/tools/wiki.d.ts +0 -3
- package/dist/tools/wiki.d.ts.map +0 -1
- package/dist/tools/wiki.js +0 -227
- package/dist/tools/wiki.js.map +0 -1
- package/dist/tools/workflow.d.ts +0 -3
- package/dist/tools/workflow.d.ts.map +0 -1
- package/dist/tools/workflow.js +0 -116
- package/dist/tools/workflow.js.map +0 -1
- package/dist/tools/workspace.d.ts +0 -3
- package/dist/tools/workspace.d.ts.map +0 -1
- package/dist/tools/workspace.js +0 -137
- package/dist/tools/workspace.js.map +0 -1
- package/dist/types.d.ts +0 -17
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
package/dist/tapd-client.js
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TAPD API Client
|
|
3
|
-
*
|
|
4
|
-
* Supports dual authentication modes:
|
|
5
|
-
* - Basic Auth: using api_user + api_password
|
|
6
|
-
* - OAuth/Bearer Token: using access_token
|
|
7
|
-
*
|
|
8
|
-
* Uses custom HTTP client for all API calls.
|
|
9
|
-
*/
|
|
10
|
-
export class TapdClient {
|
|
11
|
-
authHeader;
|
|
12
|
-
baseUrl;
|
|
13
|
-
authType;
|
|
14
|
-
apiUser;
|
|
15
|
-
apiPassword;
|
|
16
|
-
constructor(authHeader, baseUrl, authType, apiUser, apiPassword) {
|
|
17
|
-
this.authHeader = authHeader;
|
|
18
|
-
this.baseUrl = baseUrl ?? process.env.TAPD_API_BASE_URL ?? 'https://api.tapd.cn';
|
|
19
|
-
this.authType = authType ?? 'basic';
|
|
20
|
-
this.apiUser = apiUser;
|
|
21
|
-
this.apiPassword = apiPassword;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Create client from OAuth access token
|
|
25
|
-
*/
|
|
26
|
-
static fromAccessToken(accessToken, baseUrl) {
|
|
27
|
-
return new TapdClient(`Bearer ${accessToken}`, baseUrl, 'oauth');
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Create client from Basic Auth credentials
|
|
31
|
-
*/
|
|
32
|
-
static fromBasicAuth(apiUser, apiPassword, baseUrl) {
|
|
33
|
-
const credentials = `${apiUser}:${apiPassword}`;
|
|
34
|
-
return new TapdClient(`Basic ${Buffer.from(credentials).toString('base64')}`, baseUrl, 'basic', apiUser, apiPassword);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Create client from environment variables
|
|
38
|
-
* Priority: TAPD_ACCESS_TOKEN > (TAPD_API_USER + TAPD_API_PASSWORD)
|
|
39
|
-
*/
|
|
40
|
-
static fromEnv() {
|
|
41
|
-
const apiUser = process.env.TAPD_API_USER;
|
|
42
|
-
const apiPassword = process.env.TAPD_API_PASSWORD;
|
|
43
|
-
const accessToken = process.env.TAPD_ACCESS_TOKEN;
|
|
44
|
-
const baseUrl = process.env.TAPD_API_BASE_URL;
|
|
45
|
-
if (accessToken) {
|
|
46
|
-
return TapdClient.fromAccessToken(accessToken, baseUrl);
|
|
47
|
-
}
|
|
48
|
-
if (apiUser && apiPassword) {
|
|
49
|
-
return TapdClient.fromBasicAuth(apiUser, apiPassword, baseUrl);
|
|
50
|
-
}
|
|
51
|
-
throw new Error('Authentication required. Set TAPD_ACCESS_TOKEN or (TAPD_API_USER + TAPD_API_PASSWORD) environment variables.');
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Get user nickname from environment variable TAPD_NICK_NAME
|
|
55
|
-
*/
|
|
56
|
-
static getNickName() {
|
|
57
|
-
return process.env.TAPD_NICK_NAME;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Get default workspace ID from environment variable TAPD_DEFAULT_WORKSPACE_ID
|
|
61
|
-
*/
|
|
62
|
-
static getDefaultWorkspaceId() {
|
|
63
|
-
const id = process.env.TAPD_DEFAULT_WORKSPACE_ID;
|
|
64
|
-
return id ? parseInt(id, 10) : undefined;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Get default STORY workitem type ID from environment variable
|
|
68
|
-
*/
|
|
69
|
-
static getDefaultStoryWorkitemTypeId() {
|
|
70
|
-
return process.env.TAPD_DEFAULT_STORY_WORKITEM_TYPE_ID;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Get default TASK workitem type ID from environment variable
|
|
74
|
-
*/
|
|
75
|
-
static getDefaultTaskWorkitemTypeId() {
|
|
76
|
-
return process.env.TAPD_DEFAULT_TASK_WORKITEM_TYPE_ID;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Convert short ID to long ID
|
|
80
|
-
*
|
|
81
|
-
* Rules:
|
|
82
|
-
* - Pure numeric ID with ≤9 digits is treated as short ID
|
|
83
|
-
* - For cloud environment (is_cloud=true), prefix is '11'
|
|
84
|
-
* - Pad short ID to 9 digits and concatenate with workspace_id
|
|
85
|
-
* - Non-short IDs are returned unchanged
|
|
86
|
-
*
|
|
87
|
-
* @param id - Story/bug/task ID (short or long format)
|
|
88
|
-
* @param workspaceId - Workspace ID for constructing long ID
|
|
89
|
-
* @param isCloud - Whether it's cloud environment (default: true)
|
|
90
|
-
*/
|
|
91
|
-
static toLongId(id, workspaceId, isCloud = true) {
|
|
92
|
-
const idStr = String(id).trim();
|
|
93
|
-
const workspaceIdStr = String(workspaceId);
|
|
94
|
-
// Check if it's a pure numeric short ID (≤9 digits)
|
|
95
|
-
if (/^\d+$/.test(idStr) && idStr.length <= 9) {
|
|
96
|
-
const prefix = isCloud ? '11' : '10';
|
|
97
|
-
const paddedId = idStr.padStart(9, '0');
|
|
98
|
-
return `${prefix}${workspaceIdStr}${paddedId}`;
|
|
99
|
-
}
|
|
100
|
-
return idStr;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Make HTTP request to TAPD API with retry support
|
|
104
|
-
*
|
|
105
|
-
* Retry policy:
|
|
106
|
-
* - Retry on 429/500/502/503 status codes
|
|
107
|
-
* - Max 3 retries with exponential backoff (1s, 2s, 4s)
|
|
108
|
-
* - POST requests do NOT retry (avoid duplicate creation)
|
|
109
|
-
*/
|
|
110
|
-
async request(method, path, params) {
|
|
111
|
-
const url = new URL(path, this.baseUrl);
|
|
112
|
-
const headers = {
|
|
113
|
-
'Authorization': this.authHeader,
|
|
114
|
-
};
|
|
115
|
-
let body;
|
|
116
|
-
if (method === 'GET' && params) {
|
|
117
|
-
const filteredParams = Object.entries(params).filter(([, value]) => value !== undefined);
|
|
118
|
-
for (const [key, value] of filteredParams) {
|
|
119
|
-
url.searchParams.append(key, String(value));
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
else if (method === 'POST' && params) {
|
|
123
|
-
headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
|
124
|
-
body = new URLSearchParams(Object.entries(params)
|
|
125
|
-
.filter(([, value]) => value !== undefined)
|
|
126
|
-
.map(([key, value]) => [key, String(value).replace(/\\n/g, '\n')])).toString();
|
|
127
|
-
}
|
|
128
|
-
// Retry configuration
|
|
129
|
-
const maxRetries = 3;
|
|
130
|
-
const retryableStatusCodes = [429, 500, 502, 503];
|
|
131
|
-
const shouldRetry = method === 'GET'; // Only retry GET requests
|
|
132
|
-
let lastError;
|
|
133
|
-
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
134
|
-
try {
|
|
135
|
-
const response = await fetch(url.toString(), {
|
|
136
|
-
method,
|
|
137
|
-
headers,
|
|
138
|
-
body,
|
|
139
|
-
});
|
|
140
|
-
if (!response.ok) {
|
|
141
|
-
const errorText = await response.text();
|
|
142
|
-
const error = new Error(`TAPD API error: ${response.status} ${response.statusText} - ${errorText.slice(0, 200)}`);
|
|
143
|
-
// Check if we should retry
|
|
144
|
-
if (shouldRetry && retryableStatusCodes.includes(response.status) && attempt < maxRetries) {
|
|
145
|
-
lastError = error;
|
|
146
|
-
const delayMs = Math.pow(2, attempt) * 1000; // 1s, 2s, 4s
|
|
147
|
-
await new Promise(resolve => setTimeout(resolve, delayMs));
|
|
148
|
-
continue;
|
|
149
|
-
}
|
|
150
|
-
throw error;
|
|
151
|
-
}
|
|
152
|
-
const contentType = response.headers.get('content-type');
|
|
153
|
-
if (!contentType?.includes('application/json')) {
|
|
154
|
-
const text = await response.text();
|
|
155
|
-
throw new Error(`TAPD API returned non-JSON response: ${text.slice(0, 100)}`);
|
|
156
|
-
}
|
|
157
|
-
const result = await response.json();
|
|
158
|
-
if (result.status !== 1) {
|
|
159
|
-
throw new Error(`TAPD API error: ${result.info ?? 'Unknown error'}`);
|
|
160
|
-
}
|
|
161
|
-
return result.data;
|
|
162
|
-
}
|
|
163
|
-
catch (error) {
|
|
164
|
-
// For non-retryable errors or final attempt, throw immediately
|
|
165
|
-
if (!shouldRetry || attempt >= maxRetries) {
|
|
166
|
-
throw error;
|
|
167
|
-
}
|
|
168
|
-
// For network errors, retry
|
|
169
|
-
lastError = error instanceof Error ? error : new Error(String(error));
|
|
170
|
-
const delayMs = Math.pow(2, attempt) * 1000;
|
|
171
|
-
await new Promise(resolve => setTimeout(resolve, delayMs));
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
// All retries exhausted
|
|
175
|
-
throw lastError ?? new Error('Request failed after all retries');
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* GET request to TAPD API
|
|
179
|
-
*/
|
|
180
|
-
async get(path, params) {
|
|
181
|
-
return this.request('GET', path, params);
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* POST request to TAPD API
|
|
185
|
-
*/
|
|
186
|
-
async post(path, params) {
|
|
187
|
-
return this.request('POST', path, params);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
//# sourceMappingURL=tapd-client.js.map
|
package/dist/tapd-client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tapd-client.js","sourceRoot":"","sources":["../src/tapd-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/tools/attachment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,eAAe,EAAE,OAAO,EAqGpC,CAAC"}
|
package/dist/tools/attachment.js
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { TapdClient } from '../tapd-client.js';
|
|
3
|
-
export const attachmentTools = [
|
|
4
|
-
// Standard TAPD API attachment tools
|
|
5
|
-
{
|
|
6
|
-
name: 'tapd_get_attachments',
|
|
7
|
-
description: 'Get attachment list from TAPD',
|
|
8
|
-
inputSchema: z.object({
|
|
9
|
-
workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
|
|
10
|
-
id: z.string().optional().describe('Attachment ID, supports multiple IDs;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
11
|
-
entity_id: z.string().optional().describe('Related entity ID (story/task/bug/wiki ID);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
12
|
-
entity_type: z.string().optional().describe('Entity type (story, task, bug, wiki)'),
|
|
13
|
-
filename: z.string().optional().describe('Filename'),
|
|
14
|
-
owner: z.string().optional().describe('Uploader'),
|
|
15
|
-
created: z.string().optional().describe('Creation time, supports time query'),
|
|
16
|
-
modified: z.string().optional().describe('Last modification time, supports time query'),
|
|
17
|
-
fields: z.string().optional().describe('Comma-separated list of fields to return'),
|
|
18
|
-
limit: z.number().optional().describe('Number of results to return, max 200'),
|
|
19
|
-
page: z.number().optional().describe('Page number, default 1'),
|
|
20
|
-
order: z.string().optional().describe('Sort order, e.g., "created desc"'),
|
|
21
|
-
}),
|
|
22
|
-
handler: async (client, params) => {
|
|
23
|
-
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
24
|
-
if (!workspaceId) {
|
|
25
|
-
throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
|
|
26
|
-
}
|
|
27
|
-
return client.get('/attachments', { ...params, workspace_id: workspaceId });
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: 'tapd_get_attachment',
|
|
32
|
-
description: 'Get a single attachment from TAPD',
|
|
33
|
-
inputSchema: z.object({
|
|
34
|
-
workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
|
|
35
|
-
id: z.string().describe('Attachment ID (required);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
36
|
-
fields: z.string().optional().describe('Comma-separated list of fields to return'),
|
|
37
|
-
}),
|
|
38
|
-
handler: async (client, params) => {
|
|
39
|
-
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
40
|
-
if (!workspaceId) {
|
|
41
|
-
throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
|
|
42
|
-
}
|
|
43
|
-
return client.get('/attachments/get_one', { ...params, workspace_id: workspaceId });
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
name: 'tapd_get_attachment_download_url',
|
|
48
|
-
description: 'Get download URL for a single attachment. Returns the Attachment object whose download_url field ' +
|
|
49
|
-
'is a signed file.tapd.cn URL (valid for a limited period). Works with ordinary read scope ' +
|
|
50
|
-
'(attachment#r) on OAuth; no extra permission needed.',
|
|
51
|
-
inputSchema: z.object({
|
|
52
|
-
workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
|
|
53
|
-
id: z.string().describe('Attachment ID (required);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
54
|
-
filename: z.string().optional().describe('Filename for download'),
|
|
55
|
-
}),
|
|
56
|
-
handler: async (client, params) => {
|
|
57
|
-
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
58
|
-
if (!workspaceId) {
|
|
59
|
-
throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
|
|
60
|
-
}
|
|
61
|
-
// 1.4.4 修复:原 /attachments/documents_down 端点需要额外权限(attachments::documents_down),
|
|
62
|
-
// 普通 OAuth token 一律 403;改走 /attachments/down(attachment#r 即可),返回体 Attachment.download_url
|
|
63
|
-
// 即签名下载地址。参数签名与工具名保持不变(向后兼容)。
|
|
64
|
-
return client.get('/attachments/down', { workspace_id: workspaceId, id: params.id });
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
// Mini (轻协作) API attachment tools
|
|
68
|
-
{
|
|
69
|
-
name: 'tapd_mini_get_attachments',
|
|
70
|
-
description: 'Get attachments from mini workspace',
|
|
71
|
-
inputSchema: z.object({
|
|
72
|
-
workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
|
|
73
|
-
id: z.string().optional().describe('Attachment ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
74
|
-
entry_id: z.string().optional().describe('Item ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
75
|
-
filename: z.string().optional().describe('Filename'),
|
|
76
|
-
owner: z.string().optional().describe('Uploader'),
|
|
77
|
-
limit: z.number().optional().describe('Return count, default 30, max 200'),
|
|
78
|
-
page: z.number().optional().describe('Page number, default 1'),
|
|
79
|
-
}),
|
|
80
|
-
handler: async (client, params) => {
|
|
81
|
-
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
82
|
-
if (!workspaceId) {
|
|
83
|
-
throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
|
|
84
|
-
}
|
|
85
|
-
return client.get('/attachments', { ...params, workspace_id: workspaceId });
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'tapd_mini_get_attachment_download_url',
|
|
90
|
-
description: 'Get download URL for a single mini workspace attachment (valid for 300s)',
|
|
91
|
-
inputSchema: z.object({
|
|
92
|
-
workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
|
|
93
|
-
id: z.string().describe('Attachment ID (required);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
94
|
-
}),
|
|
95
|
-
handler: async (client, params) => {
|
|
96
|
-
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
97
|
-
if (!workspaceId) {
|
|
98
|
-
throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
|
|
99
|
-
}
|
|
100
|
-
return client.get('/attachments/down', { ...params, workspace_id: workspaceId });
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
];
|
|
104
|
-
//# sourceMappingURL=attachment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/tools/attachment.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/board.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/tools/board.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,UAAU,EAAE,OAAO,EA8F/B,CAAC"}
|
package/dist/tools/board.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { TapdClient } from '../tapd-client.js';
|
|
3
|
-
export const boardTools = [
|
|
4
|
-
{
|
|
5
|
-
name: "tapd_add_board_card",
|
|
6
|
-
description: "新建看板工作项",
|
|
7
|
-
inputSchema: z.object({
|
|
8
|
-
workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
|
|
9
|
-
board_id: z.string().describe("看板ID (必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
10
|
-
column_id: z.string().describe("看板列ID (必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
11
|
-
name: z.string().describe("工作项标题 (必填)"),
|
|
12
|
-
description: z.string().optional().describe("详细描述"),
|
|
13
|
-
owner: z.string().optional().describe("负责人,默认当前用户"),
|
|
14
|
-
creator: z.string().optional().describe("创建人,默认当前用户"),
|
|
15
|
-
priority: z.string().optional().describe("优先级"),
|
|
16
|
-
category_id: z.string().optional().describe("分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
17
|
-
due: z.string().optional().describe("预计完成日期,格式: YYYY-MM-DD"),
|
|
18
|
-
}),
|
|
19
|
-
handler: async (client, params) => {
|
|
20
|
-
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
21
|
-
if (!workspaceId) {
|
|
22
|
-
throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
|
|
23
|
-
}
|
|
24
|
-
return client.post("/board_cards/add", { ...params, workspace_id: workspaceId });
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: "tapd_get_board_cards",
|
|
29
|
-
description: "获取看板工作项列表",
|
|
30
|
-
inputSchema: z.object({
|
|
31
|
-
workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
|
|
32
|
-
board_id: z.string().optional().describe("看板ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
33
|
-
column_id: z.string().optional().describe("看板列ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
34
|
-
id: z.string().optional().describe('工作项ID,支持多ID查询;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
35
|
-
name: z.string().optional().describe("工作项标题,支持模糊匹配"),
|
|
36
|
-
owner: z.string().optional().describe("负责人"),
|
|
37
|
-
creator: z.string().optional().describe("创建人"),
|
|
38
|
-
status: z.string().optional().describe("状态"),
|
|
39
|
-
priority: z.string().optional().describe("优先级"),
|
|
40
|
-
category_id: z.string().optional().describe("分类ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
41
|
-
created: z.string().optional().describe("创建时间,支持时间查询"),
|
|
42
|
-
modified: z.string().optional().describe("修改时间,支持时间查询"),
|
|
43
|
-
due: z.string().optional().describe("预计完成日期,支持时间查询"),
|
|
44
|
-
limit: z.number().optional().describe("返回数量限制,默认30,最大200"),
|
|
45
|
-
page: z.number().optional().describe("页码,默认1"),
|
|
46
|
-
order: z.string().optional().describe("排序规则,如 created desc"),
|
|
47
|
-
fields: z.string().optional().describe("指定返回字段,多个字段以逗号分隔"),
|
|
48
|
-
}),
|
|
49
|
-
handler: async (client, params) => {
|
|
50
|
-
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
51
|
-
if (!workspaceId) {
|
|
52
|
-
throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
|
|
53
|
-
}
|
|
54
|
-
return client.get("/board_cards", { ...params, workspace_id: workspaceId });
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
name: "tapd_update_board_card",
|
|
59
|
-
description: "更新看板工作项",
|
|
60
|
-
inputSchema: z.object({
|
|
61
|
-
id: z.string().describe('工作项ID (必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度'),
|
|
62
|
-
workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
|
|
63
|
-
board_id: z.string().optional().describe("看板ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
64
|
-
column_id: z.string().optional().describe("看板列ID(用于移动卡片);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
65
|
-
name: z.string().optional().describe("工作项标题"),
|
|
66
|
-
description: z.string().optional().describe("详细描述"),
|
|
67
|
-
owner: z.string().optional().describe("负责人"),
|
|
68
|
-
status: z.string().optional().describe("状态"),
|
|
69
|
-
priority: z.string().optional().describe("优先级"),
|
|
70
|
-
due: z.string().optional().describe("预计完成日期,格式: YYYY-MM-DD"),
|
|
71
|
-
}),
|
|
72
|
-
handler: async (client, params) => {
|
|
73
|
-
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
74
|
-
if (!workspaceId) {
|
|
75
|
-
throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
|
|
76
|
-
}
|
|
77
|
-
return client.post("/board_cards/update", { ...params, workspace_id: workspaceId });
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: "tapd_get_board_columns",
|
|
82
|
-
description: "获取看板板块",
|
|
83
|
-
inputSchema: z.object({
|
|
84
|
-
workspace_id: z.number().optional().describe('项目ID(可省略,使用默认配置)'),
|
|
85
|
-
board_id: z.string().describe("看板ID (必填);必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
86
|
-
id: z.string().optional().describe("看板列ID;必须以字符串(带引号)传递,禁止传数值,20 位 ID 超出 JS 安全整数范围会丢精度"),
|
|
87
|
-
fields: z.string().optional().describe("指定返回字段"),
|
|
88
|
-
}),
|
|
89
|
-
handler: async (client, params) => {
|
|
90
|
-
const workspaceId = params.workspace_id ?? TapdClient.getDefaultWorkspaceId();
|
|
91
|
-
if (!workspaceId) {
|
|
92
|
-
throw new Error('workspace_id is required (either provide it or set TAPD_DEFAULT_WORKSPACE_ID env)');
|
|
93
|
-
}
|
|
94
|
-
return client.get("/board_columns", { ...params, workspace_id: workspaceId });
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
];
|
|
98
|
-
//# sourceMappingURL=board.js.map
|
package/dist/tools/board.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/tools/board.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/bug.d.ts
DELETED
package/dist/tools/bug.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bug.d.ts","sourceRoot":"","sources":["../../src/tools/bug.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,eAAO,MAAM,QAAQ,EAAE,OAAO,EAumB7B,CAAC"}
|