@teamso/teamso-mcp 0.0.0-stage → 1.2.1
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/CHANGELOG.md +136 -0
- package/LICENSE +21 -0
- package/README.md +506 -2
- package/dist/client.d.ts +215 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +797 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +12 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +58 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/server.d.ts +28 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +58 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/account.d.ts +4 -0
- package/dist/tools/account.d.ts.map +1 -0
- package/dist/tools/account.js +34 -0
- package/dist/tools/account.js.map +1 -0
- package/dist/tools/api.d.ts +13 -0
- package/dist/tools/api.d.ts.map +1 -0
- package/dist/tools/api.js +982 -0
- package/dist/tools/api.js.map +1 -0
- package/dist/tools/approvals.d.ts +5 -0
- package/dist/tools/approvals.d.ts.map +1 -0
- package/dist/tools/approvals.js +120 -0
- package/dist/tools/approvals.js.map +1 -0
- package/dist/tools/communication.d.ts +4 -0
- package/dist/tools/communication.d.ts.map +1 -0
- package/dist/tools/communication.js +39 -0
- package/dist/tools/communication.js.map +1 -0
- package/dist/tools/employees.d.ts +5 -0
- package/dist/tools/employees.d.ts.map +1 -0
- package/dist/tools/employees.js +113 -0
- package/dist/tools/employees.js.map +1 -0
- package/dist/tools/help.d.ts +6 -0
- package/dist/tools/help.d.ts.map +1 -0
- package/dist/tools/help.js +171 -0
- package/dist/tools/help.js.map +1 -0
- package/dist/tools/index.d.ts +86 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +118 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/leave-support.d.ts +60 -0
- package/dist/tools/leave-support.d.ts.map +1 -0
- package/dist/tools/leave-support.js +185 -0
- package/dist/tools/leave-support.js.map +1 -0
- package/dist/tools/leave.d.ts +14 -0
- package/dist/tools/leave.d.ts.map +1 -0
- package/dist/tools/leave.js +388 -0
- package/dist/tools/leave.js.map +1 -0
- package/dist/tools/payroll.d.ts +5 -0
- package/dist/tools/payroll.d.ts.map +1 -0
- package/dist/tools/payroll.js +101 -0
- package/dist/tools/payroll.js.map +1 -0
- package/dist/tools/performance.d.ts +13 -0
- package/dist/tools/performance.d.ts.map +1 -0
- package/dist/tools/performance.js +592 -0
- package/dist/tools/performance.js.map +1 -0
- package/dist/tools/schemas.d.ts +2079 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +460 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/shared.d.ts +20 -0
- package/dist/tools/shared.d.ts.map +1 -0
- package/dist/tools/shared.js +64 -0
- package/dist/tools/shared.js.map +1 -0
- package/dist/types.d.ts +545 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/api-endpoints.d.ts +130 -0
- package/dist/utils/api-endpoints.d.ts.map +1 -0
- package/dist/utils/api-endpoints.js +459 -0
- package/dist/utils/api-endpoints.js.map +1 -0
- package/dist/utils/dates.d.ts +27 -0
- package/dist/utils/dates.d.ts.map +1 -0
- package/dist/utils/dates.js +102 -0
- package/dist/utils/dates.js.map +1 -0
- package/dist/utils/format.d.ts +8 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +26 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/help-search.d.ts +25 -0
- package/dist/utils/help-search.d.ts.map +1 -0
- package/dist/utils/help-search.js +93 -0
- package/dist/utils/help-search.js.map +1 -0
- package/dist/utils/json-schema-dialect.d.ts +12 -0
- package/dist/utils/json-schema-dialect.d.ts.map +1 -0
- package/dist/utils/json-schema-dialect.js +146 -0
- package/dist/utils/json-schema-dialect.js.map +1 -0
- package/dist/utils/results.d.ts +27 -0
- package/dist/utils/results.d.ts.map +1 -0
- package/dist/utils/results.js +88 -0
- package/dist/utils/results.js.map +1 -0
- package/dist/utils/structured.d.ts +89 -0
- package/dist/utils/structured.d.ts.map +1 -0
- package/dist/utils/structured.js +307 -0
- package/dist/utils/structured.js.map +1 -0
- package/dist/utils/text.d.ts +12 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +46 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +86 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/tools/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { type TeamsoClient } from '../client.js';
|
|
3
|
+
export declare function registerListPendingApprovals(server: McpServer, client: TeamsoClient): void;
|
|
4
|
+
export declare function registerApproveOrRejectLeave(server: McpServer, client: TeamsoClient): void;
|
|
5
|
+
//# sourceMappingURL=approvals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/tools/approvals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAkC/D,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAiD1F;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAmE1F"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { pathSafeText } from '../client.js';
|
|
3
|
+
import { formatDateRange, markdownTable } from '../utils/format.js';
|
|
4
|
+
import { apiErrorResult, errorResult, toolResult } from '../utils/results.js';
|
|
5
|
+
import { LEAVE_STATUSES, closedPayrollPeriodsOf, leaveStatusName, toPendingApproval, } from '../utils/structured.js';
|
|
6
|
+
import { scanLeaves } from './leave-support.js';
|
|
7
|
+
import { leaveDecisionOutputSchema, pendingApprovalsOutputSchema } from './schemas.js';
|
|
8
|
+
import { DESTRUCTIVE_WRITE, READ_ONLY, idSchema } from './shared.js';
|
|
9
|
+
const MAX_PENDING = 200;
|
|
10
|
+
const LEAVE_LIST_FORBIDDEN = 'Reading leave approvals needs the `LEAVE_ADD`, `LEAVE_ADD_ALL` or `LEAVE_READ_ALL` permission.';
|
|
11
|
+
/** Leaves still in the approval chain that the caller may decide right now. */
|
|
12
|
+
async function findApprovableLeaves(client, predicate, limit, signal) {
|
|
13
|
+
return scanLeaves(client, { searchKey: 'state', searchValue: String(LEAVE_STATUSES.pending_approval) }, leave => leave.state === LEAVE_STATUSES.pending_approval && leave.canApprove === true && predicate(leave), { limit }, signal);
|
|
14
|
+
}
|
|
15
|
+
export function registerListPendingApprovals(server, client) {
|
|
16
|
+
server.registerTool('list_pending_approvals', {
|
|
17
|
+
title: 'List leave requests waiting for my approval',
|
|
18
|
+
description: 'List the leave requests that are waiting for the caller\'s decision as the current '
|
|
19
|
+
+ 'approver. Decide each one with `approve_or_reject_leave` after the user confirms.',
|
|
20
|
+
inputSchema: {},
|
|
21
|
+
outputSchema: pendingApprovalsOutputSchema,
|
|
22
|
+
annotations: READ_ONLY,
|
|
23
|
+
}, async (_args, extra) => {
|
|
24
|
+
try {
|
|
25
|
+
const { leaves, truncated } = await findApprovableLeaves(client, () => true, MAX_PENDING, extra.signal);
|
|
26
|
+
const approvals = leaves.map(toPendingApproval);
|
|
27
|
+
if (approvals.length === 0) {
|
|
28
|
+
return toolResult('No leave requests are waiting for your approval.', {
|
|
29
|
+
approvals,
|
|
30
|
+
total: 0,
|
|
31
|
+
truncated,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const table = markdownTable(['Leave id', 'Employee', 'Type', 'Dates', 'Days', 'Note'], approvals.map(approval => [
|
|
35
|
+
`\`${approval.leaveId}\``,
|
|
36
|
+
approval.requester?.fullName,
|
|
37
|
+
approval.leaveTypeName,
|
|
38
|
+
formatDateRange(approval.start, approval.end),
|
|
39
|
+
approval.workingDays,
|
|
40
|
+
approval.description,
|
|
41
|
+
]));
|
|
42
|
+
return toolResult(`## Waiting for your approval (${approvals.length})\n\n${table}`, {
|
|
43
|
+
approvals,
|
|
44
|
+
total: approvals.length,
|
|
45
|
+
truncated,
|
|
46
|
+
nextAction: {
|
|
47
|
+
tool: 'approve_or_reject_leave',
|
|
48
|
+
arguments: { leave_id: approvals[0].leaveId },
|
|
49
|
+
reason: 'Ask the user to approve or reject each request, then pass `approve` '
|
|
50
|
+
+ '(and a `reason` when rejecting). Never decide without the user.',
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
return apiErrorResult(error, { forbidden: LEAVE_LIST_FORBIDDEN });
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export function registerApproveOrRejectLeave(server, client) {
|
|
60
|
+
server.registerTool('approve_or_reject_leave', {
|
|
61
|
+
title: 'Approve or reject a leave request',
|
|
62
|
+
description: 'Record the caller\'s decision on a leave request waiting for their approval. The '
|
|
63
|
+
+ 'request must appear in `list_pending_approvals`. Rejecting needs a `reason`, which the '
|
|
64
|
+
+ 'employee sees. The decision cannot be undone, so confirm it with the user first.',
|
|
65
|
+
inputSchema: {
|
|
66
|
+
leave_id: idSchema('Leave request id from `list_pending_approvals`.'),
|
|
67
|
+
approve: z.boolean().describe('`true` to approve, `false` to reject.'),
|
|
68
|
+
reason: z.string().trim().max(500).optional()
|
|
69
|
+
.describe('Required when rejecting: the reason shown to the employee.'),
|
|
70
|
+
},
|
|
71
|
+
outputSchema: leaveDecisionOutputSchema,
|
|
72
|
+
annotations: DESTRUCTIVE_WRITE,
|
|
73
|
+
}, async ({ leave_id, approve, reason }, extra) => {
|
|
74
|
+
try {
|
|
75
|
+
// The reason travels as a URL path segment; characters the API cannot
|
|
76
|
+
// accept there (slashes, semicolons, percent signs) are dropped, so
|
|
77
|
+
// check what is left.
|
|
78
|
+
if (!approve && !pathSafeText(reason ?? '')) {
|
|
79
|
+
return errorResult('Rejecting a leave request needs a `reason` in words. Ask the user why it is rejected.');
|
|
80
|
+
}
|
|
81
|
+
// The API does not check that the caller is the current approver, so check it here.
|
|
82
|
+
const { leaves } = await findApprovableLeaves(client, leave => leave.id === leave_id, 1, extra.signal);
|
|
83
|
+
if (!leaves[0]) {
|
|
84
|
+
return errorResult(`Leave request \`${leave_id}\` is not waiting for your decision: it was already `
|
|
85
|
+
+ 'decided, is at another approver\'s step, or is not visible to you. '
|
|
86
|
+
+ 'Call `list_pending_approvals` for the requests you can decide.');
|
|
87
|
+
}
|
|
88
|
+
const response = await client.respondToLeave(leave_id, approve, reason, extra.signal);
|
|
89
|
+
const updated = isRecord(response.result) ? response.result : {};
|
|
90
|
+
const statusCode = typeof updated.status === 'number' ? updated.status : undefined;
|
|
91
|
+
const status = statusCode === undefined ? (approve ? 'approved' : 'rejected') : leaveStatusName(statusCode);
|
|
92
|
+
const decision = approve ? 'approved' : 'rejected';
|
|
93
|
+
const message = approve && statusCode === LEAVE_STATUSES.pending_approval
|
|
94
|
+
? 'Your approval was recorded; the request moves on to the next approver.'
|
|
95
|
+
: `The leave request was ${decision}.`;
|
|
96
|
+
return toolResult(`## Leave request ${decision}\n\n${message}`, {
|
|
97
|
+
leaveId: leave_id,
|
|
98
|
+
decision,
|
|
99
|
+
status,
|
|
100
|
+
...(statusCode !== undefined ? { statusCode } : {}),
|
|
101
|
+
...(reason ? { reason } : {}),
|
|
102
|
+
closedPayrollPeriods: closedPayrollPeriodsOf(updated),
|
|
103
|
+
message,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
return apiErrorResult(error, {
|
|
108
|
+
byCode: {
|
|
109
|
+
ANSWER_ERROR: 'This leave request is no longer waiting for an approval decision.',
|
|
110
|
+
},
|
|
111
|
+
forbidden: LEAVE_LIST_FORBIDDEN,
|
|
112
|
+
notFound: 'Teamso could not find that leave request.',
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
function isRecord(value) {
|
|
118
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=approvals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/tools/approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"communication.d.ts","sourceRoot":"","sources":["../../src/tools/communication.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AASjD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAiCvF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { apiErrorResult, toolResult } from '../utils/results.js';
|
|
3
|
+
import { toAnnouncement } from '../utils/structured.js';
|
|
4
|
+
import { truncate } from '../utils/text.js';
|
|
5
|
+
import { announcementsOutputSchema } from './schemas.js';
|
|
6
|
+
import { READ_ONLY } from './shared.js';
|
|
7
|
+
const PREVIEW_LENGTH = 400;
|
|
8
|
+
export function registerListAnnouncements(server, client) {
|
|
9
|
+
server.registerTool('list_announcements', {
|
|
10
|
+
title: 'List company announcements',
|
|
11
|
+
description: 'List the latest company and shuttle announcements visible to the caller, newest first.',
|
|
12
|
+
inputSchema: {
|
|
13
|
+
limit: z.number().int().min(1).max(50).default(10).describe('Maximum announcements (1-50, default 10).'),
|
|
14
|
+
},
|
|
15
|
+
outputSchema: announcementsOutputSchema,
|
|
16
|
+
annotations: READ_ONLY,
|
|
17
|
+
}, async ({ limit }, extra) => {
|
|
18
|
+
try {
|
|
19
|
+
const feed = await client.getAnnouncements(extra.signal);
|
|
20
|
+
const all = feed?.announcementListResponseDto ?? [];
|
|
21
|
+
const announcements = all.slice(0, limit).map(toAnnouncement);
|
|
22
|
+
if (announcements.length === 0) {
|
|
23
|
+
return toolResult('There are no announcements.', { announcements, total: 0 });
|
|
24
|
+
}
|
|
25
|
+
const text = announcements
|
|
26
|
+
.map(announcement => [
|
|
27
|
+
`### ${announcement.date ?? 'Undated'}${announcement.sharedBy ? ` — ${announcement.sharedBy}` : ''}`,
|
|
28
|
+
'',
|
|
29
|
+
truncate(announcement.text, PREVIEW_LENGTH) || '_(no text)_',
|
|
30
|
+
].join('\n'))
|
|
31
|
+
.join('\n\n');
|
|
32
|
+
return toolResult(`## Announcements\n\n${text}`, { announcements, total: all.length });
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return apiErrorResult(error);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=communication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"communication.js","sourceRoot":"","sources":["../../src/tools/communication.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAoB;IAC/E,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,wFAAwF;QACrG,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SACzG;QACD,YAAY,EAAE,yBAAyB;QACvC,WAAW,EAAE,SAAS;KACvB,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,EAAE,2BAA2B,IAAI,EAAE,CAAC;YACpD,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,UAAU,CAAC,6BAA6B,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,IAAI,GAAG,aAAa;iBACvB,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnB,OAAO,YAAY,CAAC,IAAI,IAAI,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpG,EAAE;gBACF,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,aAAa;aAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACZ,IAAI,CAAC,MAAM,CAAC,CAAC;YAChB,OAAO,UAAU,CAAC,uBAAuB,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { type TeamsoClient } from '../client.js';
|
|
3
|
+
export declare function registerSearchEmployees(server: McpServer, client: TeamsoClient): void;
|
|
4
|
+
export declare function registerGetEmployeeProfile(server: McpServer, client: TeamsoClient): void;
|
|
5
|
+
//# sourceMappingURL=employees.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employees.d.ts","sourceRoot":"","sources":["../../src/tools/employees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAajE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAkFrF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAoCxF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { TeamsoApiError } from '../client.js';
|
|
3
|
+
import { markdownTable } from '../utils/format.js';
|
|
4
|
+
import { apiErrorResult, toolResult } from '../utils/results.js';
|
|
5
|
+
import { toEmployeeFromAuthorized, toEmployeeFromList, toEmployeeProfile, } from '../utils/structured.js';
|
|
6
|
+
import { matchesAllWords } from '../utils/text.js';
|
|
7
|
+
import { employeeProfileOutputSchema, employeeSearchOutputSchema } from './schemas.js';
|
|
8
|
+
import { READ_ONLY, idSchema } from './shared.js';
|
|
9
|
+
export function registerSearchEmployees(server, client) {
|
|
10
|
+
server.registerTool('search_employees', {
|
|
11
|
+
title: 'Search employees',
|
|
12
|
+
description: 'Find active colleagues by name or email (Turkish characters optional: "ozturk" '
|
|
13
|
+
+ 'finds "Öztürk"). Uses the company directory when the caller may read it (`PEOPLE_READ`), '
|
|
14
|
+
+ 'otherwise the employees the caller is responsible for. Use the `id` with '
|
|
15
|
+
+ '`get_employee_profile` or as `user_id` in the performance tools.',
|
|
16
|
+
inputSchema: {
|
|
17
|
+
query: z.string().trim().min(2).max(100).describe('Name, surname or email to look for.'),
|
|
18
|
+
limit: z.number().int().min(1).max(50).default(10).describe('Maximum results (1-50, default 10).'),
|
|
19
|
+
},
|
|
20
|
+
outputSchema: employeeSearchOutputSchema,
|
|
21
|
+
annotations: READ_ONLY,
|
|
22
|
+
}, async ({ query, limit }, extra) => {
|
|
23
|
+
try {
|
|
24
|
+
let source = 'directory';
|
|
25
|
+
let employees;
|
|
26
|
+
let total;
|
|
27
|
+
try {
|
|
28
|
+
const page = await client.searchUsers({ query, size: limit }, extra.signal);
|
|
29
|
+
employees = (page?.items ?? []).map(toEmployeeFromList);
|
|
30
|
+
total = page?.pagination?.totalRecords ?? employees.length;
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// Without `PEOPLE_READ` the directory answers 403; an IP-allowlist 403
|
|
34
|
+
// would fail the fallback the same way, so report it directly.
|
|
35
|
+
if (!(error instanceof TeamsoApiError) || error.status !== 403
|
|
36
|
+
|| error.messageCode === 'IP_NOT_ALLOWED')
|
|
37
|
+
throw error;
|
|
38
|
+
source = 'authorized_employees';
|
|
39
|
+
const matches = (await client.listAuthorizedEmployees(extra.signal))
|
|
40
|
+
.filter(employee => employee.active !== false)
|
|
41
|
+
.filter(employee => matchesAllWords(query, employee.fullName, employee.name, employee.surname, employee.email, employee.personnelId));
|
|
42
|
+
total = matches.length;
|
|
43
|
+
employees = matches.slice(0, limit).map(toEmployeeFromAuthorized);
|
|
44
|
+
}
|
|
45
|
+
if (employees.length === 0) {
|
|
46
|
+
return toolResult(`No active employee matched "${query}".`, { query, source, employees, total: 0 });
|
|
47
|
+
}
|
|
48
|
+
const table = markdownTable(['Name', 'Id', 'Email', 'Department', 'Position'], employees.map(employee => [
|
|
49
|
+
employee.fullName,
|
|
50
|
+
`\`${employee.id}\``,
|
|
51
|
+
employee.email,
|
|
52
|
+
employee.department,
|
|
53
|
+
employee.position,
|
|
54
|
+
]));
|
|
55
|
+
const more = total > employees.length ? `\n\nShowing ${employees.length} of ${total}; refine the query for more.` : '';
|
|
56
|
+
return toolResult(`## Employees matching "${query}"\n\n${table}${more}`, {
|
|
57
|
+
query,
|
|
58
|
+
source,
|
|
59
|
+
employees,
|
|
60
|
+
total,
|
|
61
|
+
...(employees.length === 1
|
|
62
|
+
? {
|
|
63
|
+
nextAction: {
|
|
64
|
+
tool: 'get_employee_profile',
|
|
65
|
+
arguments: { user_id: employees[0].id },
|
|
66
|
+
reason: 'Exactly one match; open the profile for details.',
|
|
67
|
+
},
|
|
68
|
+
}
|
|
69
|
+
: {}),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
return apiErrorResult(error, {
|
|
74
|
+
forbidden: 'Searching employees needs the `PEOPLE_READ` permission or employees you are responsible for.',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
export function registerGetEmployeeProfile(server, client) {
|
|
80
|
+
server.registerTool('get_employee_profile', {
|
|
81
|
+
title: 'Get an employee profile',
|
|
82
|
+
description: 'Return a colleague\'s work profile: branch, department, position, manager, work '
|
|
83
|
+
+ 'location and contact details (the phone number is masked unless the caller may read it).',
|
|
84
|
+
inputSchema: {
|
|
85
|
+
user_id: idSchema('Employee id from `search_employees`.'),
|
|
86
|
+
},
|
|
87
|
+
outputSchema: employeeProfileOutputSchema,
|
|
88
|
+
annotations: READ_ONLY,
|
|
89
|
+
}, async ({ user_id }, extra) => {
|
|
90
|
+
try {
|
|
91
|
+
const employee = toEmployeeProfile(await client.getUserSummary(user_id, extra.signal));
|
|
92
|
+
const lines = [
|
|
93
|
+
`## ${employee.fullName}`,
|
|
94
|
+
'',
|
|
95
|
+
`- **Position:** ${employee.position ?? '—'}`,
|
|
96
|
+
`- **Department:** ${employee.department ?? '—'}`,
|
|
97
|
+
`- **Branch:** ${employee.branch ?? '—'}`,
|
|
98
|
+
`- **Manager:** ${employee.manager?.fullName ?? '—'}`,
|
|
99
|
+
`- **Email:** ${employee.email ?? '—'}`,
|
|
100
|
+
`- **Phone:** ${employee.phone ?? '—'}`,
|
|
101
|
+
`- **Work location:** ${employee.workplace ?? employee.workLocation ?? '—'}`,
|
|
102
|
+
];
|
|
103
|
+
return toolResult(lines.join('\n'), { employee });
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
return apiErrorResult(error, {
|
|
107
|
+
forbidden: 'Viewing employee profiles needs a company user or company admin account.',
|
|
108
|
+
notFound: `No employee \`${user_id}\` exists in your company. Find the id with \`search_employees\`.`,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=employees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employees.js","sourceRoot":"","sources":["../../src/tools/employees.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { TeamsoClient } from '../client.js';
|
|
3
|
+
export declare function registerSearchHelpArticles(server: McpServer, client: TeamsoClient): void;
|
|
4
|
+
export declare function registerGetHelpArticle(server: McpServer, client: TeamsoClient): void;
|
|
5
|
+
export declare function registerListHelpModules(server: McpServer, client: TeamsoClient): void;
|
|
6
|
+
//# sourceMappingURL=help.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/tools/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAwBjD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAyDxF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAsCpF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAuCrF"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { codeList } from '../utils/format.js';
|
|
3
|
+
import { searchHelpArticles } from '../utils/help-search.js';
|
|
4
|
+
import { errorResult, toolResult } from '../utils/results.js';
|
|
5
|
+
import { HELP_RESOURCE_PREFIX, absoluteHelpUrl, toHelpArticleSummary, } from '../utils/structured.js';
|
|
6
|
+
import { helpArticleOutputSchema, helpModulesOutputSchema, helpSearchOutputSchema, } from './schemas.js';
|
|
7
|
+
import { READ_ONLY } from './shared.js';
|
|
8
|
+
const DEFAULT_LIMIT = 5;
|
|
9
|
+
const MAX_LIMIT = 20;
|
|
10
|
+
const UNAVAILABLE = 'The Teamso help articles could not be loaded right now. Try again in a minute.';
|
|
11
|
+
const langSchema = z.enum(['tr', 'en']).default('tr')
|
|
12
|
+
.describe('Article language: `tr` (default) or `en`.');
|
|
13
|
+
export function registerSearchHelpArticles(server, client) {
|
|
14
|
+
server.registerTool('search_help_articles', {
|
|
15
|
+
title: 'Search Teamso help articles',
|
|
16
|
+
description: 'Search the Teamso user guides (help center: leave, performance, payroll, time '
|
|
17
|
+
+ 'tracking and every other module). Call this first when the user asks how to do '
|
|
18
|
+
+ 'something in Teamso, then read the best match with `get_help_article` and explain '
|
|
19
|
+
+ 'the steps, citing its `url`.',
|
|
20
|
+
inputSchema: {
|
|
21
|
+
query: z.string().trim().min(1).max(300)
|
|
22
|
+
.describe('Question or keywords, e.g. "performans hedefi nasıl girilir" or "approve a leave request".'),
|
|
23
|
+
lang: langSchema,
|
|
24
|
+
module: z.string().trim().min(1).max(60).optional()
|
|
25
|
+
.describe('Only this module folder, e.g. `performance`, `leave`, `payroll` (see `list_help_modules`).'),
|
|
26
|
+
role: z.enum(['ADMIN', 'MANAGER', 'EMPLOYEE']).optional()
|
|
27
|
+
.describe('Only articles written for this role.'),
|
|
28
|
+
limit: z.number().int().min(1).max(MAX_LIMIT).default(DEFAULT_LIMIT)
|
|
29
|
+
.describe(`Maximum results (1-${MAX_LIMIT}, default ${DEFAULT_LIMIT}).`),
|
|
30
|
+
},
|
|
31
|
+
outputSchema: helpSearchOutputSchema,
|
|
32
|
+
annotations: READ_ONLY,
|
|
33
|
+
}, async ({ query, lang, module, role, limit }) => {
|
|
34
|
+
const bundle = await loadBundle(client, lang);
|
|
35
|
+
if (!bundle)
|
|
36
|
+
return errorResult(UNAVAILABLE);
|
|
37
|
+
const origin = siteOrigin(client);
|
|
38
|
+
const hits = searchHelpArticles(bundle.articles, query, { module, role, limit });
|
|
39
|
+
const results = hits.map(hit => ({
|
|
40
|
+
...toHelpArticleSummary(hit.article, lang, origin),
|
|
41
|
+
score: hit.score,
|
|
42
|
+
}));
|
|
43
|
+
if (results.length === 0) {
|
|
44
|
+
return toolResult(`No help article matched "${query}". Try other words, or browse with \`list_help_modules\`.`, { lang, query, results });
|
|
45
|
+
}
|
|
46
|
+
const lines = results.map(result => `- **${result.title}** (\`${result.id}\`): ${result.summary} ${result.url}`);
|
|
47
|
+
return toolResult(`## Help articles for "${query}"\n\n${lines.join('\n')}\n\nRead one with \`get_help_article\`.`, {
|
|
48
|
+
lang,
|
|
49
|
+
query,
|
|
50
|
+
results,
|
|
51
|
+
nextAction: {
|
|
52
|
+
tool: 'get_help_article',
|
|
53
|
+
arguments: { id: results[0].id, lang },
|
|
54
|
+
reason: 'Read the best match before answering, and cite its url.',
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export function registerGetHelpArticle(server, client) {
|
|
60
|
+
server.registerTool('get_help_article', {
|
|
61
|
+
title: 'Read a Teamso help article',
|
|
62
|
+
description: 'Return one Teamso help article as Markdown: steps, common problems and related '
|
|
63
|
+
+ 'articles. Get the `id` from `search_help_articles` or `list_help_modules`.',
|
|
64
|
+
inputSchema: {
|
|
65
|
+
id: z.string().trim().min(3).max(120)
|
|
66
|
+
.describe('Article id `<module>.<article>`, e.g. `performance.goal-entry-employee`.'),
|
|
67
|
+
lang: langSchema,
|
|
68
|
+
},
|
|
69
|
+
outputSchema: helpArticleOutputSchema,
|
|
70
|
+
annotations: READ_ONLY,
|
|
71
|
+
}, async ({ id, lang }) => {
|
|
72
|
+
const bundle = await loadBundle(client, lang);
|
|
73
|
+
if (!bundle)
|
|
74
|
+
return errorResult(UNAVAILABLE);
|
|
75
|
+
const article = bundle.articles.find(candidate => candidate.id === id);
|
|
76
|
+
if (!article) {
|
|
77
|
+
return errorResult(`No help article \`${id}\` exists in \`${lang}\`. `
|
|
78
|
+
+ 'Find the id with `search_help_articles` or `list_help_modules`.');
|
|
79
|
+
}
|
|
80
|
+
const origin = siteOrigin(client);
|
|
81
|
+
const summary = toHelpArticleSummary(article, lang, origin);
|
|
82
|
+
return toolResult(articleMarkdown(article, lang, origin), {
|
|
83
|
+
lang,
|
|
84
|
+
article: {
|
|
85
|
+
...summary,
|
|
86
|
+
...(article.verified ? { verified: article.verified } : {}),
|
|
87
|
+
routes: article.routes ?? [],
|
|
88
|
+
related: article.related ?? [],
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
export function registerListHelpModules(server, client) {
|
|
94
|
+
server.registerTool('list_help_modules', {
|
|
95
|
+
title: 'List Teamso help modules',
|
|
96
|
+
description: 'List the Teamso modules that have user guides, with each module\'s article '
|
|
97
|
+
+ 'titles and ids. Use it to browse when a search finds nothing.',
|
|
98
|
+
inputSchema: {
|
|
99
|
+
lang: langSchema,
|
|
100
|
+
},
|
|
101
|
+
outputSchema: helpModulesOutputSchema,
|
|
102
|
+
annotations: READ_ONLY,
|
|
103
|
+
}, async ({ lang }) => {
|
|
104
|
+
const bundle = await loadBundle(client, lang);
|
|
105
|
+
if (!bundle)
|
|
106
|
+
return errorResult(UNAVAILABLE);
|
|
107
|
+
const byId = new Map(bundle.articles.map(article => [article.id, article]));
|
|
108
|
+
const modules = bundle.modules
|
|
109
|
+
.map(module => ({
|
|
110
|
+
dir: module.dir,
|
|
111
|
+
title: module.title,
|
|
112
|
+
...(module.description ? { description: module.description } : {}),
|
|
113
|
+
articles: (module.articles ?? [])
|
|
114
|
+
.map(articleId => byId.get(articleId))
|
|
115
|
+
.filter((article) => Boolean(article))
|
|
116
|
+
.map(article => ({ id: article.id, title: article.title })),
|
|
117
|
+
}))
|
|
118
|
+
.filter(module => module.articles.length > 0);
|
|
119
|
+
const text = modules
|
|
120
|
+
.map(module => [
|
|
121
|
+
`## ${module.title} (\`${module.dir}\`)`,
|
|
122
|
+
...module.articles.map(article => `- ${article.title} (\`${article.id}\`)`),
|
|
123
|
+
].join('\n'))
|
|
124
|
+
.join('\n\n');
|
|
125
|
+
return toolResult(text || 'No help modules are published yet.', { lang, modules });
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
async function loadBundle(client, lang) {
|
|
129
|
+
try {
|
|
130
|
+
return await client.getHelpBundle(lang);
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/** Public origin for links and images: never the (possibly internal) bundle download address. */
|
|
137
|
+
function siteOrigin(client) {
|
|
138
|
+
try {
|
|
139
|
+
return new URL(client.helpPublicUrl).origin;
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return client.helpPublicUrl;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/** Full article text with absolute image links and `teamso://how-to/` article links. */
|
|
146
|
+
function articleMarkdown(article, lang, origin) {
|
|
147
|
+
const articleLang = article.lang ?? lang;
|
|
148
|
+
const body = (article.body ?? '')
|
|
149
|
+
.replace(/\]\((\/how-to\/[^)\s]+)\)/g, `](${origin}$1)`)
|
|
150
|
+
.replace(/\]\(how-to:([a-z0-9.-]+)\)/g, `](${HELP_RESOURCE_PREFIX}${articleLang}/$1)`)
|
|
151
|
+
.trim();
|
|
152
|
+
const lines = [
|
|
153
|
+
`# ${article.title}`,
|
|
154
|
+
'',
|
|
155
|
+
article.summary ?? '',
|
|
156
|
+
'',
|
|
157
|
+
`- Id: \`${article.id}\``,
|
|
158
|
+
`- Roles: ${(article.roles ?? []).join(', ') || '—'}`,
|
|
159
|
+
];
|
|
160
|
+
if (article.routes?.length)
|
|
161
|
+
lines.push(`- Screens: ${article.routes.join(', ')}`);
|
|
162
|
+
lines.push(`- Source: ${absoluteHelpUrl(article, origin)}`);
|
|
163
|
+
if (article.verified)
|
|
164
|
+
lines.push(`- Last verified: ${article.verified}`);
|
|
165
|
+
lines.push('', body);
|
|
166
|
+
if (article.related?.length) {
|
|
167
|
+
lines.push('', '## Related article ids', '', codeList(article.related));
|
|
168
|
+
}
|
|
169
|
+
return lines.join('\n');
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/tools/help.ts"],"names":[],"mappings":"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"}
|