teamflect-mcp-server 1.0.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/.env.example +9 -0
- package/README.md +177 -0
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +9 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/services/apiClient.d.ts +29 -0
- package/dist/services/apiClient.d.ts.map +1 -0
- package/dist/services/apiClient.js +92 -0
- package/dist/services/apiClient.js.map +1 -0
- package/dist/services/errorHandler.d.ts +5 -0
- package/dist/services/errorHandler.d.ts.map +1 -0
- package/dist/services/errorHandler.js +93 -0
- package/dist/services/errorHandler.js.map +1 -0
- package/dist/tools/feedbacks.d.ts +7 -0
- package/dist/tools/feedbacks.d.ts.map +1 -0
- package/dist/tools/feedbacks.js +372 -0
- package/dist/tools/feedbacks.js.map +1 -0
- package/dist/tools/goals.d.ts +7 -0
- package/dist/tools/goals.d.ts.map +1 -0
- package/dist/tools/goals.js +466 -0
- package/dist/tools/goals.js.map +1 -0
- package/dist/tools/recognitions.d.ts +7 -0
- package/dist/tools/recognitions.d.ts.map +1 -0
- package/dist/tools/recognitions.js +314 -0
- package/dist/tools/recognitions.js.map +1 -0
- package/dist/tools/reviews.d.ts +7 -0
- package/dist/tools/reviews.d.ts.map +1 -0
- package/dist/tools/reviews.js +224 -0
- package/dist/tools/reviews.js.map +1 -0
- package/dist/tools/tasks.d.ts +7 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +262 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/users.d.ts +7 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +417 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/types.d.ts +284 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { handleApiError } from "../services/errorHandler.js";
|
|
3
|
+
import { ResponseFormat } from "../types.js";
|
|
4
|
+
import { DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE, CHARACTER_LIMIT } from "../constants.js";
|
|
5
|
+
/**
|
|
6
|
+
* Register task-related tools
|
|
7
|
+
*/
|
|
8
|
+
export function registerTaskTools(server, apiClient) {
|
|
9
|
+
// Get Tasks Schema
|
|
10
|
+
const GetTasksInputSchema = z.object({
|
|
11
|
+
assignedToEmail: z.string().email().optional().describe("Filter by assigned user email address"),
|
|
12
|
+
status: z.string().optional().describe("Filter by task status"),
|
|
13
|
+
relatedGoal: z.string().optional().describe("Filter by related goal ID"),
|
|
14
|
+
startDate: z.string().optional().describe("Filter by creation start date (ISO format)"),
|
|
15
|
+
endDate: z.string().optional().describe("Filter by creation end date (ISO format)"),
|
|
16
|
+
limit: z.number().int().min(1).max(MAX_PAGE_SIZE).default(DEFAULT_PAGE_SIZE)
|
|
17
|
+
.describe("Maximum number of tasks to return"),
|
|
18
|
+
offset: z.number().int().min(0).default(0)
|
|
19
|
+
.describe("Number of tasks to skip for pagination"),
|
|
20
|
+
response_format: z.nativeEnum(ResponseFormat).default(ResponseFormat.MARKDOWN)
|
|
21
|
+
.describe("Output format: 'markdown' for human-readable or 'json' for machine-readable"),
|
|
22
|
+
}).strict();
|
|
23
|
+
server.registerTool("teamflect_get_tasks", {
|
|
24
|
+
title: "Get Tasks",
|
|
25
|
+
description: `Retrieve a list of tasks from Teamflect based on filters.
|
|
26
|
+
|
|
27
|
+
This tool searches for tasks matching the specified criteria. You can filter by assigned user, status, related goal, and date ranges. Results are paginated.
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
- assignedToEmail (string, optional): Filter by assigned user email address
|
|
31
|
+
- status (string, optional): Filter by task status
|
|
32
|
+
- relatedGoal (string, optional): Filter by related goal ID
|
|
33
|
+
- startDate (string, optional): Filter by creation start date in ISO format (YYYY-MM-DD)
|
|
34
|
+
- endDate (string, optional): Filter by creation end date in ISO format (YYYY-MM-DD)
|
|
35
|
+
- limit (number, optional): Maximum results to return, between 1-300 (default: 20)
|
|
36
|
+
- offset (number, optional): Number of results to skip for pagination (default: 0)
|
|
37
|
+
- response_format ('markdown' | 'json', optional): Output format (default: 'markdown')
|
|
38
|
+
|
|
39
|
+
Returns:
|
|
40
|
+
For JSON format: Structured data with schema:
|
|
41
|
+
{
|
|
42
|
+
"total": number,
|
|
43
|
+
"count": number,
|
|
44
|
+
"offset": number,
|
|
45
|
+
"tasks": [
|
|
46
|
+
{
|
|
47
|
+
"id": string,
|
|
48
|
+
"title": string,
|
|
49
|
+
"descriptionText": string,
|
|
50
|
+
"createdAt": string,
|
|
51
|
+
"dueDate": string,
|
|
52
|
+
"assignedBy": {"displayName": string, "department": string, "jobTitle": string},
|
|
53
|
+
"assignedTo": [{"displayName": string, "mail": string}],
|
|
54
|
+
"relatedGoal": string,
|
|
55
|
+
"labels": [{"title": string}],
|
|
56
|
+
"status": string
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"has_more": boolean,
|
|
60
|
+
"next_offset": number
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
Examples:
|
|
64
|
+
- Use when: "Get all tasks assigned to john@example.com" -> params with assignedToEmail="john@example.com"
|
|
65
|
+
- Use when: "List tasks for goal XYZ" -> params with relatedGoal="XYZ"
|
|
66
|
+
|
|
67
|
+
Error Handling:
|
|
68
|
+
- Returns "Error: Authentication failed" if API key is invalid
|
|
69
|
+
- Returns "Error: Rate limit exceeded" if too many requests`,
|
|
70
|
+
inputSchema: GetTasksInputSchema,
|
|
71
|
+
annotations: {
|
|
72
|
+
readOnlyHint: true,
|
|
73
|
+
destructiveHint: false,
|
|
74
|
+
idempotentHint: true,
|
|
75
|
+
openWorldHint: true,
|
|
76
|
+
},
|
|
77
|
+
}, async (params) => {
|
|
78
|
+
try {
|
|
79
|
+
const queryParams = {
|
|
80
|
+
limit: params.limit,
|
|
81
|
+
};
|
|
82
|
+
if (params.assignedToEmail)
|
|
83
|
+
queryParams.assignedToEmail = params.assignedToEmail;
|
|
84
|
+
if (params.status)
|
|
85
|
+
queryParams.status = params.status;
|
|
86
|
+
if (params.relatedGoal)
|
|
87
|
+
queryParams.relatedGoal = params.relatedGoal;
|
|
88
|
+
if (params.startDate)
|
|
89
|
+
queryParams.startDate = params.startDate;
|
|
90
|
+
if (params.endDate)
|
|
91
|
+
queryParams.endDate = params.endDate;
|
|
92
|
+
const response = await apiClient.get("/task", queryParams);
|
|
93
|
+
const tasks = response.tasks || [];
|
|
94
|
+
const total = response.total ?? tasks.length;
|
|
95
|
+
const hasMore = total > params.offset + tasks.length;
|
|
96
|
+
const nextOffset = hasMore ? params.offset + tasks.length : undefined;
|
|
97
|
+
const output = {
|
|
98
|
+
total,
|
|
99
|
+
count: tasks.length,
|
|
100
|
+
offset: params.offset,
|
|
101
|
+
tasks: tasks.map((task) => ({
|
|
102
|
+
id: task.id,
|
|
103
|
+
title: task.title,
|
|
104
|
+
descriptionText: task.descriptionText || "",
|
|
105
|
+
createdAt: task.createdAt || "",
|
|
106
|
+
dueDate: task.dueDate || "",
|
|
107
|
+
assignedBy: task.assignedBy || null,
|
|
108
|
+
assignedTo: task.assignedTo || [],
|
|
109
|
+
relatedGoal: task.relatedGoal || "",
|
|
110
|
+
labels: task.labels || [],
|
|
111
|
+
status: task.status || "",
|
|
112
|
+
})),
|
|
113
|
+
has_more: hasMore,
|
|
114
|
+
...(nextOffset !== undefined ? { next_offset: nextOffset } : {}),
|
|
115
|
+
};
|
|
116
|
+
let textContent;
|
|
117
|
+
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
118
|
+
const lines = [`# Tasks (${total} total)`, ""];
|
|
119
|
+
if (tasks.length === 0) {
|
|
120
|
+
lines.push("No tasks found matching the criteria.");
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
lines.push(`Showing ${tasks.length} of ${total} tasks\n`);
|
|
124
|
+
tasks.forEach((task) => {
|
|
125
|
+
lines.push(`## ${task.title} (${task.id})`);
|
|
126
|
+
if (task.descriptionText) {
|
|
127
|
+
lines.push(`- **Description**: ${task.descriptionText}`);
|
|
128
|
+
}
|
|
129
|
+
if (task.status) {
|
|
130
|
+
lines.push(`- **Status**: ${task.status}`);
|
|
131
|
+
}
|
|
132
|
+
if (task.dueDate) {
|
|
133
|
+
lines.push(`- **Due Date**: ${task.dueDate}`);
|
|
134
|
+
}
|
|
135
|
+
if (task.createdAt) {
|
|
136
|
+
lines.push(`- **Created At**: ${task.createdAt}`);
|
|
137
|
+
}
|
|
138
|
+
if (task.assignedBy) {
|
|
139
|
+
lines.push(`- **Assigned By**: ${task.assignedBy.displayName}${task.assignedBy.jobTitle ? ` (${task.assignedBy.jobTitle})` : ""}`);
|
|
140
|
+
}
|
|
141
|
+
if (task.assignedTo && task.assignedTo.length > 0) {
|
|
142
|
+
lines.push(`- **Assigned To**: ${task.assignedTo.map((a) => `${a.displayName} (${a.mail})`).join(", ")}`);
|
|
143
|
+
}
|
|
144
|
+
if (task.relatedGoal) {
|
|
145
|
+
lines.push(`- **Related Goal**: ${task.relatedGoal}`);
|
|
146
|
+
}
|
|
147
|
+
if (task.labels && task.labels.length > 0) {
|
|
148
|
+
lines.push(`- **Labels**: ${task.labels.map((l) => l.title).join(", ")}`);
|
|
149
|
+
}
|
|
150
|
+
lines.push("");
|
|
151
|
+
});
|
|
152
|
+
if (hasMore) {
|
|
153
|
+
lines.push(`\n*Use offset=${nextOffset} to get more results*`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
textContent = lines.join("\n");
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
textContent = JSON.stringify(output, null, 2);
|
|
160
|
+
}
|
|
161
|
+
// Check character limit
|
|
162
|
+
if (textContent.length > CHARACTER_LIMIT) {
|
|
163
|
+
const truncated = output.tasks.slice(0, Math.floor(output.tasks.length / 2));
|
|
164
|
+
const truncatedOutput = { ...output, tasks: truncated, truncated: true };
|
|
165
|
+
textContent = params.response_format === ResponseFormat.MARKDOWN
|
|
166
|
+
? `# Tasks (Truncated)\n\nResponse truncated from ${output.tasks.length} to ${truncated.length} tasks. Use filters or pagination to see more results.\n\n${JSON.stringify(truncatedOutput, null, 2)}`
|
|
167
|
+
: JSON.stringify(truncatedOutput, null, 2);
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
content: [{ type: "text", text: textContent }],
|
|
171
|
+
structuredContent: output,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
return {
|
|
176
|
+
content: [{
|
|
177
|
+
type: "text",
|
|
178
|
+
text: handleApiError(error),
|
|
179
|
+
}],
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
// Get Task Schema
|
|
184
|
+
const GetTaskInputSchema = z.object({
|
|
185
|
+
taskId: z.string().min(1).describe("The ID of the task to retrieve"),
|
|
186
|
+
response_format: z.nativeEnum(ResponseFormat).default(ResponseFormat.MARKDOWN)
|
|
187
|
+
.describe("Output format: 'markdown' for human-readable or 'json' for machine-readable"),
|
|
188
|
+
}).strict();
|
|
189
|
+
server.registerTool("teamflect_get_task", {
|
|
190
|
+
title: "Get Task by ID",
|
|
191
|
+
description: `Retrieve a single task by its ID from Teamflect.
|
|
192
|
+
|
|
193
|
+
This tool fetches detailed information about a specific task including its assignees, related goal, and labels.
|
|
194
|
+
|
|
195
|
+
Args:
|
|
196
|
+
- taskId (string, required): The unique identifier of the task
|
|
197
|
+
- response_format ('markdown' | 'json', optional): Output format (default: 'markdown')
|
|
198
|
+
|
|
199
|
+
Returns:
|
|
200
|
+
Complete task details including all fields and relationships.
|
|
201
|
+
|
|
202
|
+
Error Handling:
|
|
203
|
+
- Returns "Error: Resource not found" if taskId doesn't exist
|
|
204
|
+
- Returns "Error: Authentication failed" if API key is invalid`,
|
|
205
|
+
inputSchema: GetTaskInputSchema,
|
|
206
|
+
annotations: {
|
|
207
|
+
readOnlyHint: true,
|
|
208
|
+
destructiveHint: false,
|
|
209
|
+
idempotentHint: true,
|
|
210
|
+
openWorldHint: true,
|
|
211
|
+
},
|
|
212
|
+
}, async (params) => {
|
|
213
|
+
try {
|
|
214
|
+
const task = await apiClient.get(`/task/${params.taskId}`);
|
|
215
|
+
let textContent;
|
|
216
|
+
if (params.response_format === ResponseFormat.MARKDOWN) {
|
|
217
|
+
const lines = [`# ${task.title}`, "", `**Task ID**: ${task.id}`, ""];
|
|
218
|
+
if (task.descriptionText) {
|
|
219
|
+
lines.push(`- **Description**: ${task.descriptionText}`);
|
|
220
|
+
}
|
|
221
|
+
if (task.status) {
|
|
222
|
+
lines.push(`- **Status**: ${task.status}`);
|
|
223
|
+
}
|
|
224
|
+
if (task.dueDate) {
|
|
225
|
+
lines.push(`- **Due Date**: ${task.dueDate}`);
|
|
226
|
+
}
|
|
227
|
+
if (task.createdAt) {
|
|
228
|
+
lines.push(`- **Created At**: ${task.createdAt}`);
|
|
229
|
+
}
|
|
230
|
+
if (task.assignedBy) {
|
|
231
|
+
lines.push(`- **Assigned By**: ${task.assignedBy.displayName}${task.assignedBy.jobTitle ? ` (${task.assignedBy.jobTitle})` : ""}${task.assignedBy.department ? ` - ${task.assignedBy.department}` : ""}`);
|
|
232
|
+
}
|
|
233
|
+
if (task.assignedTo && task.assignedTo.length > 0) {
|
|
234
|
+
lines.push(`- **Assigned To**: ${task.assignedTo.map((a) => `${a.displayName} (${a.mail})`).join(", ")}`);
|
|
235
|
+
}
|
|
236
|
+
if (task.relatedGoal) {
|
|
237
|
+
lines.push(`- **Related Goal**: ${task.relatedGoal}`);
|
|
238
|
+
}
|
|
239
|
+
if (task.labels && task.labels.length > 0) {
|
|
240
|
+
lines.push(`- **Labels**: ${task.labels.map((l) => l.title).join(", ")}`);
|
|
241
|
+
}
|
|
242
|
+
textContent = lines.join("\n");
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
textContent = JSON.stringify(task, null, 2);
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
content: [{ type: "text", text: textContent }],
|
|
249
|
+
structuredContent: task,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
return {
|
|
254
|
+
content: [{
|
|
255
|
+
type: "text",
|
|
256
|
+
text: handleApiError(error),
|
|
257
|
+
}],
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tools/tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { TeamflectApiClient } from "../services/apiClient.js";
|
|
3
|
+
/**
|
|
4
|
+
* Register user-related tools
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerUserTools(server: McpServer, apiClient: TeamflectApiClient): void;
|
|
7
|
+
//# sourceMappingURL=users.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAqbxF"}
|