@t4dhg/mcp-factorial 2.0.0 → 3.1.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/README.md +93 -64
- package/dist/api.d.ts +321 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +899 -1
- package/dist/api.js.map +1 -1
- package/dist/audit.d.ts +86 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +119 -0
- package/dist/audit.js.map +1 -0
- package/dist/confirmation.d.ts +118 -0
- package/dist/confirmation.d.ts.map +1 -0
- package/dist/confirmation.js +153 -0
- package/dist/confirmation.js.map +1 -0
- package/dist/errors.d.ts +33 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +65 -0
- package/dist/errors.js.map +1 -1
- package/dist/http-client.d.ts +38 -1
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +111 -14
- package/dist/http-client.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2313 -55
- package/dist/index.js.map +1 -1
- package/dist/schemas.d.ts +1287 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +477 -0
- package/dist/schemas.js.map +1 -1
- package/dist/write-safety.d.ts +53 -0
- package/dist/write-safety.d.ts.map +1 -0
- package/dist/write-safety.js +239 -0
- package/dist/write-safety.js.map +1 -0
- package/llms.txt +115 -0
- package/package.json +24 -4
package/dist/errors.js
CHANGED
|
@@ -97,6 +97,32 @@ export class ValidationError extends HttpError {
|
|
|
97
97
|
this.name = 'ValidationError';
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Conflict error (409) - Resource already exists or state conflict
|
|
102
|
+
*/
|
|
103
|
+
export class ConflictError extends HttpError {
|
|
104
|
+
constructor(endpoint, message, context) {
|
|
105
|
+
super(409, endpoint, message, {
|
|
106
|
+
isRetryable: false,
|
|
107
|
+
context,
|
|
108
|
+
});
|
|
109
|
+
this.name = 'ConflictError';
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Unprocessable Entity error (422) - Validation failed on the server
|
|
114
|
+
*/
|
|
115
|
+
export class UnprocessableEntityError extends HttpError {
|
|
116
|
+
validationErrors;
|
|
117
|
+
constructor(endpoint, message, context) {
|
|
118
|
+
super(422, endpoint, message, {
|
|
119
|
+
isRetryable: false,
|
|
120
|
+
context,
|
|
121
|
+
});
|
|
122
|
+
this.name = 'UnprocessableEntityError';
|
|
123
|
+
this.validationErrors = context?.raw?.errors || {};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
100
126
|
/**
|
|
101
127
|
* Server error (5xx)
|
|
102
128
|
*/
|
|
@@ -183,4 +209,43 @@ export function getUserMessage(error) {
|
|
|
183
209
|
}
|
|
184
210
|
return 'An unexpected error occurred';
|
|
185
211
|
}
|
|
212
|
+
// ============================================================================
|
|
213
|
+
// Write Operation Errors
|
|
214
|
+
// ============================================================================
|
|
215
|
+
/**
|
|
216
|
+
* Operation cancelled by user (e.g., confirmation declined)
|
|
217
|
+
*/
|
|
218
|
+
export class OperationCancelledError extends FactorialError {
|
|
219
|
+
operation;
|
|
220
|
+
constructor(operation) {
|
|
221
|
+
super(`Operation "${operation}" was cancelled.`, { isRetryable: false });
|
|
222
|
+
this.name = 'OperationCancelledError';
|
|
223
|
+
this.operation = operation;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Confirmation token expired or invalid
|
|
228
|
+
*/
|
|
229
|
+
export class ConfirmationExpiredError extends FactorialError {
|
|
230
|
+
constructor() {
|
|
231
|
+
super('Confirmation token has expired or is invalid. Please try the operation again.', {
|
|
232
|
+
isRetryable: false,
|
|
233
|
+
});
|
|
234
|
+
this.name = 'ConfirmationExpiredError';
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Format validation errors from API response into a human-readable message
|
|
239
|
+
*/
|
|
240
|
+
export function formatValidationErrors(errorData) {
|
|
241
|
+
if (!errorData)
|
|
242
|
+
return 'Validation failed';
|
|
243
|
+
if (errorData.errors) {
|
|
244
|
+
const messages = Object.entries(errorData.errors)
|
|
245
|
+
.map(([field, errors]) => `${field}: ${errors.join(', ')}`)
|
|
246
|
+
.join('; ');
|
|
247
|
+
return `Validation failed: ${messages}`;
|
|
248
|
+
}
|
|
249
|
+
return errorData.message || 'Validation failed';
|
|
250
|
+
}
|
|
186
251
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/http-client.d.ts
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Implements exponential backoff retry for transient failures.
|
|
5
5
|
*/
|
|
6
|
+
/**
|
|
7
|
+
* HTTP methods supported by the client
|
|
8
|
+
*/
|
|
9
|
+
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
6
10
|
/**
|
|
7
11
|
* Request options for the HTTP client
|
|
8
12
|
*/
|
|
@@ -16,10 +20,22 @@ export interface RequestOptions {
|
|
|
16
20
|
/** Skip retry logic */
|
|
17
21
|
noRetry?: boolean;
|
|
18
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Extended options for write operations (POST, PUT, PATCH, DELETE)
|
|
25
|
+
*/
|
|
26
|
+
export interface WriteRequestOptions extends RequestOptions {
|
|
27
|
+
/** HTTP method */
|
|
28
|
+
method?: HttpMethod;
|
|
29
|
+
/** Request body (will be JSON serialized) */
|
|
30
|
+
body?: Record<string, unknown>;
|
|
31
|
+
/** Idempotency key for safe retries */
|
|
32
|
+
idempotencyKey?: string;
|
|
33
|
+
}
|
|
19
34
|
/**
|
|
20
35
|
* Make an HTTP request with retry logic
|
|
36
|
+
* Supports both read (GET) and write (POST, PUT, PATCH, DELETE) operations
|
|
21
37
|
*/
|
|
22
|
-
export declare function factorialRequest<T>(endpoint: string, options?:
|
|
38
|
+
export declare function factorialRequest<T>(endpoint: string, options?: WriteRequestOptions): Promise<T>;
|
|
23
39
|
/**
|
|
24
40
|
* Wrapper type for paginated API responses
|
|
25
41
|
*/
|
|
@@ -40,4 +56,25 @@ export declare function fetchOne<T>(endpoint: string, options?: RequestOptions):
|
|
|
40
56
|
* Make a request expecting a list response
|
|
41
57
|
*/
|
|
42
58
|
export declare function fetchList<T>(endpoint: string, options?: RequestOptions): Promise<T[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Create a resource (POST request expecting single item response)
|
|
61
|
+
*/
|
|
62
|
+
export declare function postOne<T>(endpoint: string, body: Record<string, unknown>, options?: Omit<WriteRequestOptions, 'method' | 'body'>): Promise<T>;
|
|
63
|
+
/**
|
|
64
|
+
* Update a resource (PUT request expecting single item response)
|
|
65
|
+
*/
|
|
66
|
+
export declare function putOne<T>(endpoint: string, body: Record<string, unknown>, options?: Omit<WriteRequestOptions, 'method' | 'body'>): Promise<T>;
|
|
67
|
+
/**
|
|
68
|
+
* Partially update a resource (PATCH request expecting single item response)
|
|
69
|
+
*/
|
|
70
|
+
export declare function patchOne<T>(endpoint: string, body: Record<string, unknown>, options?: Omit<WriteRequestOptions, 'method' | 'body'>): Promise<T>;
|
|
71
|
+
/**
|
|
72
|
+
* Delete a resource (DELETE request, typically returns 204 No Content)
|
|
73
|
+
*/
|
|
74
|
+
export declare function deleteOne(endpoint: string, options?: Omit<WriteRequestOptions, 'method' | 'body'>): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Perform a custom action on a resource (POST to action endpoint)
|
|
77
|
+
* Used for actions like approve, reject, archive, etc.
|
|
78
|
+
*/
|
|
79
|
+
export declare function postAction<T>(endpoint: string, body?: Record<string, unknown>, options?: Omit<WriteRequestOptions, 'method' | 'body'>): Promise<T>;
|
|
43
80
|
//# sourceMappingURL=http-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/http-client.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Implements exponential backoff retry for transient failures.
|
|
5
5
|
*/
|
|
6
6
|
import { getConfig, debug, getApiKey } from './config.js';
|
|
7
|
-
import { AuthenticationError, AuthorizationError, NotFoundError, RateLimitError, ServerError, TimeoutError, NetworkError, isRetryableError, } from './errors.js';
|
|
7
|
+
import { AuthenticationError, AuthorizationError, NotFoundError, RateLimitError, ServerError, TimeoutError, NetworkError, ValidationError, ConflictError, UnprocessableEntityError, isRetryableError, formatValidationErrors, } from './errors.js';
|
|
8
8
|
/**
|
|
9
9
|
* Sleep for a given number of milliseconds
|
|
10
10
|
*/
|
|
@@ -40,24 +40,48 @@ function buildUrl(endpoint, params) {
|
|
|
40
40
|
}
|
|
41
41
|
return url.toString();
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse error response body
|
|
45
|
+
*/
|
|
46
|
+
function parseErrorBody(errorText) {
|
|
47
|
+
try {
|
|
48
|
+
return JSON.parse(errorText);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
43
54
|
/**
|
|
44
55
|
* Handle HTTP response and throw appropriate errors
|
|
45
56
|
*/
|
|
46
|
-
async function handleResponse(response, endpoint) {
|
|
57
|
+
async function handleResponse(response, endpoint, method = 'GET') {
|
|
47
58
|
if (response.ok) {
|
|
59
|
+
// Handle 204 No Content (common for DELETE operations)
|
|
60
|
+
if (response.status === 204) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
48
63
|
const data = (await response.json());
|
|
49
|
-
debug('Response received', { endpoint, status: response.status });
|
|
64
|
+
debug('Response received', { endpoint, method, status: response.status });
|
|
50
65
|
return data;
|
|
51
66
|
}
|
|
52
67
|
const errorText = await response.text();
|
|
53
|
-
|
|
68
|
+
const errorData = parseErrorBody(errorText);
|
|
69
|
+
debug(`API error (${response.status})`, { endpoint, method, error: errorText });
|
|
54
70
|
switch (response.status) {
|
|
71
|
+
case 400:
|
|
72
|
+
throw new ValidationError(endpoint, formatValidationErrors(errorData), { raw: errorData });
|
|
55
73
|
case 401:
|
|
56
74
|
throw new AuthenticationError(endpoint);
|
|
57
75
|
case 403:
|
|
58
76
|
throw new AuthorizationError(endpoint);
|
|
59
77
|
case 404:
|
|
60
78
|
throw new NotFoundError(endpoint);
|
|
79
|
+
case 409:
|
|
80
|
+
throw new ConflictError(endpoint, errorData?.message || 'Resource conflict');
|
|
81
|
+
case 422:
|
|
82
|
+
throw new UnprocessableEntityError(endpoint, formatValidationErrors(errorData), {
|
|
83
|
+
raw: errorData,
|
|
84
|
+
});
|
|
61
85
|
case 429: {
|
|
62
86
|
const retryAfter = response.headers.get('Retry-After');
|
|
63
87
|
throw new RateLimitError(endpoint, retryAfter ? parseInt(retryAfter, 10) : undefined);
|
|
@@ -71,28 +95,43 @@ async function handleResponse(response, endpoint) {
|
|
|
71
95
|
}
|
|
72
96
|
/**
|
|
73
97
|
* Make an HTTP request with retry logic
|
|
98
|
+
* Supports both read (GET) and write (POST, PUT, PATCH, DELETE) operations
|
|
74
99
|
*/
|
|
75
100
|
export async function factorialRequest(endpoint, options = {}) {
|
|
76
101
|
const config = getConfig();
|
|
102
|
+
const method = options.method ?? 'GET';
|
|
77
103
|
const url = buildUrl(endpoint, options.params);
|
|
78
104
|
const timeout = options.timeout ?? config.timeout;
|
|
79
|
-
|
|
80
|
-
|
|
105
|
+
// Write operations should not retry by default (except with idempotency key)
|
|
106
|
+
const defaultMaxRetries = method === 'GET' ? config.maxRetries : options.idempotencyKey ? 2 : 1;
|
|
107
|
+
const maxRetries = options.noRetry ? 1 : (options.maxRetries ?? defaultMaxRetries);
|
|
108
|
+
debug(`${method} ${url}`);
|
|
81
109
|
let lastError;
|
|
82
110
|
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
83
111
|
const controller = new AbortController();
|
|
84
112
|
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
85
113
|
try {
|
|
114
|
+
// Build headers
|
|
115
|
+
const headers = {
|
|
116
|
+
'x-api-key': getApiKey(),
|
|
117
|
+
Accept: 'application/json',
|
|
118
|
+
};
|
|
119
|
+
// Add Content-Type for requests with body
|
|
120
|
+
if (options.body) {
|
|
121
|
+
headers['Content-Type'] = 'application/json';
|
|
122
|
+
}
|
|
123
|
+
// Add idempotency key header for write operations
|
|
124
|
+
if (options.idempotencyKey) {
|
|
125
|
+
headers['Idempotency-Key'] = options.idempotencyKey;
|
|
126
|
+
}
|
|
86
127
|
const response = await fetch(url, {
|
|
87
|
-
method
|
|
88
|
-
headers
|
|
89
|
-
|
|
90
|
-
Accept: 'application/json',
|
|
91
|
-
},
|
|
128
|
+
method,
|
|
129
|
+
headers,
|
|
130
|
+
body: options.body ? JSON.stringify(options.body) : undefined,
|
|
92
131
|
signal: controller.signal,
|
|
93
132
|
});
|
|
94
133
|
clearTimeout(timeoutId);
|
|
95
|
-
return await handleResponse(response, endpoint);
|
|
134
|
+
return await handleResponse(response, endpoint, method);
|
|
96
135
|
}
|
|
97
136
|
catch (error) {
|
|
98
137
|
clearTimeout(timeoutId);
|
|
@@ -106,8 +145,9 @@ export async function factorialRequest(endpoint, options = {}) {
|
|
|
106
145
|
else {
|
|
107
146
|
lastError = new NetworkError('An unexpected network error occurred');
|
|
108
147
|
}
|
|
109
|
-
//
|
|
110
|
-
const
|
|
148
|
+
// Only retry writes if idempotent and retryable
|
|
149
|
+
const canRetryWrite = method === 'GET' || options.idempotencyKey;
|
|
150
|
+
const shouldRetry = attempt < maxRetries && isRetryableError(lastError) && canRetryWrite;
|
|
111
151
|
if (shouldRetry) {
|
|
112
152
|
// Handle rate limit with Retry-After header
|
|
113
153
|
let delay;
|
|
@@ -143,4 +183,61 @@ export async function fetchList(endpoint, options) {
|
|
|
143
183
|
const response = await factorialRequest(endpoint, options);
|
|
144
184
|
return response.data || [];
|
|
145
185
|
}
|
|
186
|
+
// ============================================================================
|
|
187
|
+
// Write Operation Helpers
|
|
188
|
+
// ============================================================================
|
|
189
|
+
/**
|
|
190
|
+
* Create a resource (POST request expecting single item response)
|
|
191
|
+
*/
|
|
192
|
+
export async function postOne(endpoint, body, options) {
|
|
193
|
+
const response = await factorialRequest(endpoint, {
|
|
194
|
+
...options,
|
|
195
|
+
method: 'POST',
|
|
196
|
+
body,
|
|
197
|
+
});
|
|
198
|
+
return response.data;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Update a resource (PUT request expecting single item response)
|
|
202
|
+
*/
|
|
203
|
+
export async function putOne(endpoint, body, options) {
|
|
204
|
+
const response = await factorialRequest(endpoint, {
|
|
205
|
+
...options,
|
|
206
|
+
method: 'PUT',
|
|
207
|
+
body,
|
|
208
|
+
});
|
|
209
|
+
return response.data;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Partially update a resource (PATCH request expecting single item response)
|
|
213
|
+
*/
|
|
214
|
+
export async function patchOne(endpoint, body, options) {
|
|
215
|
+
const response = await factorialRequest(endpoint, {
|
|
216
|
+
...options,
|
|
217
|
+
method: 'PATCH',
|
|
218
|
+
body,
|
|
219
|
+
});
|
|
220
|
+
return response.data;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Delete a resource (DELETE request, typically returns 204 No Content)
|
|
224
|
+
*/
|
|
225
|
+
export async function deleteOne(endpoint, options) {
|
|
226
|
+
await factorialRequest(endpoint, {
|
|
227
|
+
...options,
|
|
228
|
+
method: 'DELETE',
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Perform a custom action on a resource (POST to action endpoint)
|
|
233
|
+
* Used for actions like approve, reject, archive, etc.
|
|
234
|
+
*/
|
|
235
|
+
export async function postAction(endpoint, body, options) {
|
|
236
|
+
const response = await factorialRequest(endpoint, {
|
|
237
|
+
...options,
|
|
238
|
+
method: 'POST',
|
|
239
|
+
body: body || {},
|
|
240
|
+
});
|
|
241
|
+
return response.data;
|
|
242
|
+
}
|
|
146
243
|
//# sourceMappingURL=http-client.js.map
|
package/dist/http-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,15 +2,18 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* MCP Server for FactorialHR
|
|
4
4
|
*
|
|
5
|
-
* Provides access to
|
|
6
|
-
*
|
|
5
|
+
* Provides comprehensive access to FactorialHR data through the Model Context Protocol
|
|
6
|
+
* for use with Claude Code and other MCP clients.
|
|
7
7
|
*
|
|
8
8
|
* Features:
|
|
9
|
-
* -
|
|
9
|
+
* - 80+ tools for employees, teams, locations, contracts, time off, attendance,
|
|
10
|
+
* documents, job catalog, projects, training, work areas, recruiting (ATS), and payroll
|
|
11
|
+
* - Full CRUD operations with safety guardrails for high-risk actions
|
|
10
12
|
* - Pagination support for all list operations
|
|
11
13
|
* - Caching for improved performance
|
|
12
14
|
* - Retry logic with exponential backoff
|
|
13
15
|
* - Runtime validation with Zod schemas
|
|
16
|
+
* - Audit logging for all write operations
|
|
14
17
|
*/
|
|
15
18
|
export {};
|
|
16
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG"}
|