@goodsamsoftware/freshbooks-mcp 1.0.1 → 1.0.2
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/dist/auth/confirmation-store.d.ts +94 -0
- package/dist/auth/confirmation-store.d.ts.map +1 -0
- package/dist/auth/confirmation-store.js +126 -0
- package/dist/auth/confirmation-store.js.map +1 -0
- package/dist/auth/state-store.d.ts +96 -0
- package/dist/auth/state-store.d.ts.map +1 -0
- package/dist/auth/state-store.js +122 -0
- package/dist/auth/state-store.js.map +1 -0
- package/dist/auth/types.d.ts +1 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/config/environment.d.ts +25 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +39 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/errors/error-handler.d.ts.map +1 -1
- package/dist/errors/error-handler.js +18 -5
- package/dist/errors/error-handler.js.map +1 -1
- package/dist/errors/response-formatter.d.ts +3 -2
- package/dist/errors/response-formatter.d.ts.map +1 -1
- package/dist/errors/response-formatter.js +19 -2
- package/dist/errors/response-formatter.js.map +1 -1
- package/dist/server.js +85 -11
- package/dist/server.js.map +1 -1
- package/dist/tools/base-tool.d.ts +2 -2
- package/dist/tools/bill/bill-create.d.ts +4 -4
- package/dist/tools/bill/bill-delete.d.ts +6 -0
- package/dist/tools/bill/bill-delete.d.ts.map +1 -1
- package/dist/tools/bill/bill-list.d.ts +12 -12
- package/dist/tools/bill/bill-single.d.ts +4 -4
- package/dist/tools/bill/schemas.d.ts +28 -22
- package/dist/tools/bill/schemas.d.ts.map +1 -1
- package/dist/tools/bill/schemas.js +2 -0
- package/dist/tools/bill/schemas.js.map +1 -1
- package/dist/tools/bill-payment/billpayment-create.d.ts +4 -4
- package/dist/tools/bill-payment/billpayment-delete.d.ts +6 -0
- package/dist/tools/bill-payment/billpayment-delete.d.ts.map +1 -1
- package/dist/tools/bill-payment/billpayment-list.d.ts +12 -12
- package/dist/tools/bill-payment/billpayment-single.d.ts +4 -4
- package/dist/tools/bill-payment/billpayment-update.d.ts +4 -4
- package/dist/tools/bill-payment/schemas.d.ts +28 -22
- package/dist/tools/bill-payment/schemas.d.ts.map +1 -1
- package/dist/tools/bill-payment/schemas.js +2 -0
- package/dist/tools/bill-payment/schemas.js.map +1 -1
- package/dist/tools/bill-vendor/billvendor-create.d.ts +6 -6
- package/dist/tools/bill-vendor/billvendor-delete.d.ts +6 -0
- package/dist/tools/bill-vendor/billvendor-delete.d.ts.map +1 -1
- package/dist/tools/bill-vendor/billvendor-list.d.ts +14 -14
- package/dist/tools/bill-vendor/billvendor-single.d.ts +4 -4
- package/dist/tools/bill-vendor/billvendor-update.d.ts +6 -6
- package/dist/tools/bill-vendor/schemas.d.ts +34 -28
- package/dist/tools/bill-vendor/schemas.d.ts.map +1 -1
- package/dist/tools/bill-vendor/schemas.js +2 -0
- package/dist/tools/bill-vendor/schemas.js.map +1 -1
- package/dist/tools/callback/callback-create.d.ts +6 -6
- package/dist/tools/callback/callback-delete.d.ts +6 -0
- package/dist/tools/callback/callback-delete.d.ts.map +1 -1
- package/dist/tools/callback/callback-list.d.ts +12 -12
- package/dist/tools/callback/callback-resend-verification.d.ts +4 -4
- package/dist/tools/callback/callback-single.d.ts +4 -4
- package/dist/tools/callback/callback-update.d.ts +6 -6
- package/dist/tools/callback/schemas.d.ts +32 -26
- package/dist/tools/callback/schemas.d.ts.map +1 -1
- package/dist/tools/callback/schemas.js +2 -0
- package/dist/tools/callback/schemas.js.map +1 -1
- package/dist/tools/client/client-create.d.ts +2 -2
- package/dist/tools/client/client-delete.d.ts +8 -2
- package/dist/tools/client/client-delete.d.ts.map +1 -1
- package/dist/tools/client/client-list.d.ts +9 -9
- package/dist/tools/client/client-update.d.ts +2 -2
- package/dist/tools/client/schemas.d.ts +26 -20
- package/dist/tools/client/schemas.d.ts.map +1 -1
- package/dist/tools/client/schemas.js +2 -0
- package/dist/tools/client/schemas.js.map +1 -1
- package/dist/tools/credit-note/creditnote-create.d.ts +10 -10
- package/dist/tools/credit-note/creditnote-delete.d.ts +6 -0
- package/dist/tools/credit-note/creditnote-delete.d.ts.map +1 -1
- package/dist/tools/credit-note/creditnote-list.d.ts +14 -14
- package/dist/tools/credit-note/creditnote-single.d.ts +6 -6
- package/dist/tools/credit-note/creditnote-update.d.ts +10 -10
- package/dist/tools/credit-note/schemas.d.ts +42 -36
- package/dist/tools/credit-note/schemas.d.ts.map +1 -1
- package/dist/tools/credit-note/schemas.js +2 -0
- package/dist/tools/credit-note/schemas.js.map +1 -1
- package/dist/tools/expense/expense-create.d.ts +2 -2
- package/dist/tools/expense/expense-delete.d.ts +6 -0
- package/dist/tools/expense/expense-delete.d.ts.map +1 -1
- package/dist/tools/expense/expense-list.d.ts +8 -8
- package/dist/tools/expense/expense-single.d.ts +2 -2
- package/dist/tools/expense/expense-update.d.ts +2 -2
- package/dist/tools/expense/expense-update.d.ts.map +1 -1
- package/dist/tools/expense/expense-update.js +88 -63
- package/dist/tools/expense/expense-update.js.map +1 -1
- package/dist/tools/expense/schemas.d.ts +18 -12
- package/dist/tools/expense/schemas.d.ts.map +1 -1
- package/dist/tools/expense/schemas.js +2 -0
- package/dist/tools/expense/schemas.js.map +1 -1
- package/dist/tools/expense-category/expensecategory-list.d.ts +4 -4
- package/dist/tools/expense-category/schemas.d.ts +4 -4
- package/dist/tools/invoice/invoice-create.d.ts +10 -10
- package/dist/tools/invoice/invoice-delete.d.ts +6 -0
- package/dist/tools/invoice/invoice-delete.d.ts.map +1 -1
- package/dist/tools/invoice/invoice-list.d.ts +24 -24
- package/dist/tools/invoice/invoice-single.d.ts +10 -10
- package/dist/tools/invoice/invoice-update.d.ts +12 -12
- package/dist/tools/invoice/schemas.d.ts +56 -50
- package/dist/tools/invoice/schemas.d.ts.map +1 -1
- package/dist/tools/invoice/schemas.js +2 -0
- package/dist/tools/invoice/schemas.js.map +1 -1
- package/dist/tools/item/item-create.d.ts +8 -8
- package/dist/tools/item/item-list.d.ts +18 -18
- package/dist/tools/item/item-single.d.ts +6 -6
- package/dist/tools/item/item-update.d.ts +10 -10
- package/dist/tools/item/schemas.d.ts +38 -38
- package/dist/tools/journal-entry/journalentry-create.d.ts +4 -4
- package/dist/tools/journal-entry/schemas.d.ts +8 -8
- package/dist/tools/journal-entry-account/journalentryaccount-list.d.ts +14 -14
- package/dist/tools/journal-entry-account/schemas.d.ts +24 -24
- package/dist/tools/metadata.d.ts +13 -1
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +68 -1
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/other-income/otherincome-create.d.ts +10 -10
- package/dist/tools/other-income/otherincome-delete.d.ts +6 -0
- package/dist/tools/other-income/otherincome-delete.d.ts.map +1 -1
- package/dist/tools/other-income/otherincome-list.d.ts +14 -14
- package/dist/tools/other-income/otherincome-single.d.ts +6 -6
- package/dist/tools/other-income/otherincome-update.d.ts +10 -10
- package/dist/tools/other-income/schemas.d.ts +40 -34
- package/dist/tools/other-income/schemas.d.ts.map +1 -1
- package/dist/tools/other-income/schemas.js +2 -0
- package/dist/tools/other-income/schemas.js.map +1 -1
- package/dist/tools/payment/payment-create.d.ts +2 -2
- package/dist/tools/payment/payment-delete.d.ts +6 -0
- package/dist/tools/payment/payment-delete.d.ts.map +1 -1
- package/dist/tools/payment/payment-list.d.ts +8 -8
- package/dist/tools/payment/payment-single.d.ts +2 -2
- package/dist/tools/payment/payment-update.d.ts +2 -2
- package/dist/tools/payment/schemas.d.ts +18 -12
- package/dist/tools/payment/schemas.d.ts.map +1 -1
- package/dist/tools/payment/schemas.js +3 -1
- package/dist/tools/payment/schemas.js.map +1 -1
- package/dist/tools/project/project-create.d.ts +8 -8
- package/dist/tools/project/project-delete.d.ts +8 -2
- package/dist/tools/project/project-delete.d.ts.map +1 -1
- package/dist/tools/project/project-list.d.ts +21 -21
- package/dist/tools/project/project-single.d.ts +6 -6
- package/dist/tools/project/project-update.d.ts +10 -10
- package/dist/tools/project/schemas.d.ts +52 -46
- package/dist/tools/project/schemas.d.ts.map +1 -1
- package/dist/tools/project/schemas.js +2 -0
- package/dist/tools/project/schemas.js.map +1 -1
- package/dist/tools/service/schemas.d.ts +11 -11
- package/dist/tools/service/service-create.d.ts +2 -2
- package/dist/tools/service/service-list.d.ts +8 -8
- package/dist/tools/task/schemas.d.ts +34 -28
- package/dist/tools/task/schemas.d.ts.map +1 -1
- package/dist/tools/task/schemas.js +2 -0
- package/dist/tools/task/schemas.js.map +1 -1
- package/dist/tools/task/task-create.d.ts +6 -6
- package/dist/tools/task/task-delete.d.ts +6 -0
- package/dist/tools/task/task-delete.d.ts.map +1 -1
- package/dist/tools/task/task-list.d.ts +18 -18
- package/dist/tools/task/task-single.d.ts +4 -4
- package/dist/tools/task/task-update.d.ts +8 -8
- package/dist/tools/time-entry/schemas.d.ts +42 -36
- package/dist/tools/time-entry/schemas.d.ts.map +1 -1
- package/dist/tools/time-entry/schemas.js +2 -0
- package/dist/tools/time-entry/schemas.js.map +1 -1
- package/dist/tools/time-entry/timeentry-create.d.ts +6 -6
- package/dist/tools/time-entry/timeentry-delete.d.ts +8 -2
- package/dist/tools/time-entry/timeentry-delete.d.ts.map +1 -1
- package/dist/tools/time-entry/timeentry-list.d.ts +17 -17
- package/dist/tools/time-entry/timeentry-single.d.ts +4 -4
- package/dist/tools/time-entry/timeentry-update.d.ts +6 -6
- package/dist/tools/timer/schemas.d.ts +30 -24
- package/dist/tools/timer/schemas.d.ts.map +1 -1
- package/dist/tools/timer/schemas.js +2 -0
- package/dist/tools/timer/schemas.js.map +1 -1
- package/dist/tools/timer/timer-current.d.ts +8 -8
- package/dist/tools/timer/timer-discard.d.ts +8 -2
- package/dist/tools/timer/timer-discard.d.ts.map +1 -1
- package/dist/tools/timer/timer-start.d.ts +6 -6
- package/dist/tools/timer/timer-stop.d.ts +4 -4
- package/dist/tools/types.d.ts +16 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/user/schemas.d.ts +14 -14
- package/dist/tools/user/user-me.d.ts +6 -6
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +114 -20
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/sanitizer.d.ts +49 -0
- package/dist/utils/sanitizer.d.ts.map +1 -0
- package/dist/utils/sanitizer.js +163 -0
- package/dist/utils/sanitizer.js.map +1 -0
- package/package.json +2 -2
|
@@ -73,10 +73,11 @@ export declare function formatErrorForLogging(error: MCPError): object;
|
|
|
73
73
|
* Format error details for debugging
|
|
74
74
|
*
|
|
75
75
|
* Creates a comprehensive error dump including all details
|
|
76
|
-
* for debugging purposes.
|
|
76
|
+
* for debugging purposes. In production, returns limited information
|
|
77
|
+
* to prevent information disclosure.
|
|
77
78
|
*
|
|
78
79
|
* @param error - The normalized MCP error
|
|
79
|
-
* @returns Detailed error information
|
|
80
|
+
* @returns Detailed error information (limited in production)
|
|
80
81
|
*/
|
|
81
82
|
export declare function formatErrorForDebug(error: MCPError): object;
|
|
82
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-formatter.d.ts","sourceRoot":"","sources":["../../src/errors/response-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"response-formatter.d.ts","sourceRoot":"","sources":["../../src/errors/response-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,EACf,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GACjC,MAAM,CAUR;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAgD5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAgB7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CA2B3D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAYvD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAEpD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAqBjE"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* - JSON-RPC response format (for MCP protocol)
|
|
6
6
|
* - Claude-friendly text format (for display)
|
|
7
7
|
*/
|
|
8
|
+
import { isProduction } from "../config/environment.js";
|
|
8
9
|
/**
|
|
9
10
|
* Format MCPError for JSON-RPC 2.0 error response
|
|
10
11
|
*
|
|
@@ -138,12 +139,28 @@ export function formatErrorForLogging(error) {
|
|
|
138
139
|
* Format error details for debugging
|
|
139
140
|
*
|
|
140
141
|
* Creates a comprehensive error dump including all details
|
|
141
|
-
* for debugging purposes.
|
|
142
|
+
* for debugging purposes. In production, returns limited information
|
|
143
|
+
* to prevent information disclosure.
|
|
142
144
|
*
|
|
143
145
|
* @param error - The normalized MCP error
|
|
144
|
-
* @returns Detailed error information
|
|
146
|
+
* @returns Detailed error information (limited in production)
|
|
145
147
|
*/
|
|
146
148
|
export function formatErrorForDebug(error) {
|
|
149
|
+
// In production, return limited info to prevent information disclosure
|
|
150
|
+
if (isProduction()) {
|
|
151
|
+
return {
|
|
152
|
+
mcpError: {
|
|
153
|
+
code: error.code,
|
|
154
|
+
message: error.message,
|
|
155
|
+
},
|
|
156
|
+
data: {
|
|
157
|
+
recoverable: error.data.recoverable,
|
|
158
|
+
suggestion: error.data.suggestion,
|
|
159
|
+
},
|
|
160
|
+
timestamp: new Date().toISOString(),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
// Full debug info only in non-production environments
|
|
147
164
|
return {
|
|
148
165
|
mcpError: {
|
|
149
166
|
code: error.code,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-formatter.js","sourceRoot":"","sources":["../../src/errors/response-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"response-formatter.js","sourceRoot":"","sources":["../../src/errors/response-formatter.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -13,8 +13,12 @@ import { getConfig } from './config/index.js';
|
|
|
13
13
|
import { logger } from './utils/logger.js';
|
|
14
14
|
import { FreshBooksOAuth } from './auth/oauth.js';
|
|
15
15
|
import { EncryptedFileTokenStore } from './auth/token-store.js';
|
|
16
|
+
import { InMemoryStateStore } from './auth/state-store.js';
|
|
17
|
+
import { InMemoryConfirmationStore } from './auth/confirmation-store.js';
|
|
16
18
|
import { FreshBooksClientWrapper } from './client/index.js';
|
|
17
19
|
import { handleError, createAuthError } from './errors/index.js';
|
|
20
|
+
import { sanitizeForMcpResponse } from './utils/sanitizer.js';
|
|
21
|
+
import { getToolMetadata } from './tools/metadata.js';
|
|
18
22
|
/**
|
|
19
23
|
* Main server class
|
|
20
24
|
*/
|
|
@@ -22,6 +26,8 @@ class FreshBooksServer {
|
|
|
22
26
|
server;
|
|
23
27
|
oauth;
|
|
24
28
|
client;
|
|
29
|
+
stateStore;
|
|
30
|
+
confirmationStore;
|
|
25
31
|
constructor() {
|
|
26
32
|
// Initialize MCP server
|
|
27
33
|
this.server = new Server({
|
|
@@ -34,8 +40,10 @@ class FreshBooksServer {
|
|
|
34
40
|
});
|
|
35
41
|
// Load configuration
|
|
36
42
|
const config = getConfig();
|
|
37
|
-
// Initialize OAuth and client
|
|
43
|
+
// Initialize OAuth, state store, confirmation store, and client
|
|
38
44
|
const tokenStore = new EncryptedFileTokenStore(config.server.tokenStorePath);
|
|
45
|
+
this.stateStore = new InMemoryStateStore();
|
|
46
|
+
this.confirmationStore = new InMemoryConfirmationStore();
|
|
39
47
|
this.oauth = new FreshBooksOAuth({
|
|
40
48
|
clientId: config.freshbooks.clientId,
|
|
41
49
|
clientSecret: config.freshbooks.clientSecret,
|
|
@@ -85,8 +93,12 @@ class FreshBooksServer {
|
|
|
85
93
|
type: 'string',
|
|
86
94
|
description: 'Authorization code from OAuth redirect',
|
|
87
95
|
},
|
|
96
|
+
state: {
|
|
97
|
+
type: 'string',
|
|
98
|
+
description: 'State parameter returned by auth_get_url (required for CSRF protection)',
|
|
99
|
+
},
|
|
88
100
|
},
|
|
89
|
-
required: ['code'],
|
|
101
|
+
required: ['code', 'state'],
|
|
90
102
|
},
|
|
91
103
|
},
|
|
92
104
|
{
|
|
@@ -109,6 +121,56 @@ class FreshBooksServer {
|
|
|
109
121
|
hasArgs: !!args,
|
|
110
122
|
});
|
|
111
123
|
try {
|
|
124
|
+
// Check if tool requires confirmation for destructive operations
|
|
125
|
+
const metadata = getToolMetadata(name);
|
|
126
|
+
if (metadata?.requiresConfirmation) {
|
|
127
|
+
const confirmationId = args?.confirmationId;
|
|
128
|
+
const confirmed = args?.confirmed;
|
|
129
|
+
// Phase 2: Validate confirmation token if provided
|
|
130
|
+
if (confirmed && confirmationId) {
|
|
131
|
+
const isValid = await this.confirmationStore.consume(confirmationId, name, args);
|
|
132
|
+
if (!isValid) {
|
|
133
|
+
logger.warn('Invalid or expired confirmation token', { tool: name });
|
|
134
|
+
return {
|
|
135
|
+
content: [
|
|
136
|
+
{
|
|
137
|
+
type: 'text',
|
|
138
|
+
text: JSON.stringify(sanitizeForMcpResponse({
|
|
139
|
+
error: true,
|
|
140
|
+
code: 'INVALID_CONFIRMATION',
|
|
141
|
+
message: 'Invalid or expired confirmation token. Please request a new confirmation.',
|
|
142
|
+
suggestion: 'Call this tool again without confirmationId to get a new confirmation prompt.',
|
|
143
|
+
}), null, 2),
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
isError: true,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
// Valid confirmation - proceed to execute
|
|
150
|
+
logger.info('Confirmation validated for destructive operation', { tool: name, tier: metadata.tier });
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// Phase 1: Generate confirmation token and return prompt
|
|
154
|
+
const confirmation = await this.confirmationStore.create(name, args);
|
|
155
|
+
logger.info('Tool requires confirmation', { tool: name, tier: metadata.tier });
|
|
156
|
+
return {
|
|
157
|
+
content: [
|
|
158
|
+
{
|
|
159
|
+
type: 'text',
|
|
160
|
+
text: JSON.stringify(sanitizeForMcpResponse({
|
|
161
|
+
requiresConfirmation: true,
|
|
162
|
+
tool: name,
|
|
163
|
+
tier: metadata.tier,
|
|
164
|
+
message: metadata.confirmationMessage,
|
|
165
|
+
confirmationId: confirmation.token,
|
|
166
|
+
expiresIn: 300, // 5 minutes
|
|
167
|
+
instruction: 'IMPORTANT: Ask the user for explicit confirmation before proceeding. To execute, call this tool again with the same parameters plus confirmed: true and confirmationId: "<token>"',
|
|
168
|
+
}), null, 2),
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}
|
|
112
174
|
// Route to appropriate tool handler
|
|
113
175
|
switch (name) {
|
|
114
176
|
case 'auth_status':
|
|
@@ -154,7 +216,7 @@ class FreshBooksServer {
|
|
|
154
216
|
content: [
|
|
155
217
|
{
|
|
156
218
|
type: 'text',
|
|
157
|
-
text: JSON.stringify(status, null, 2),
|
|
219
|
+
text: JSON.stringify(sanitizeForMcpResponse(status), null, 2),
|
|
158
220
|
},
|
|
159
221
|
],
|
|
160
222
|
};
|
|
@@ -163,20 +225,24 @@ class FreshBooksServer {
|
|
|
163
225
|
* Handle auth_get_url tool
|
|
164
226
|
*/
|
|
165
227
|
async handleAuthGetUrl() {
|
|
166
|
-
|
|
228
|
+
// Generate CSRF protection state
|
|
229
|
+
const stateData = await this.stateStore.create();
|
|
230
|
+
const url = this.oauth.generateAuthorizationUrl(stateData.state);
|
|
167
231
|
return {
|
|
168
232
|
content: [
|
|
169
233
|
{
|
|
170
234
|
type: 'text',
|
|
171
|
-
text: JSON.stringify({
|
|
235
|
+
text: JSON.stringify(sanitizeForMcpResponse({
|
|
172
236
|
authorizationUrl: url,
|
|
237
|
+
state: stateData.state,
|
|
238
|
+
expiresIn: 600, // 10 minutes
|
|
173
239
|
instructions: [
|
|
174
240
|
'1. Visit the authorization URL in your browser',
|
|
175
241
|
'2. Log in to FreshBooks and authorize the application',
|
|
176
242
|
'3. Copy the authorization code from the redirect URL',
|
|
177
|
-
'4. Call auth_exchange_code with the authorization code',
|
|
243
|
+
'4. Call auth_exchange_code with the authorization code AND the state parameter',
|
|
178
244
|
],
|
|
179
|
-
}, null, 2),
|
|
245
|
+
}), null, 2),
|
|
180
246
|
},
|
|
181
247
|
],
|
|
182
248
|
};
|
|
@@ -188,6 +254,14 @@ class FreshBooksServer {
|
|
|
188
254
|
if (!args || !args.code) {
|
|
189
255
|
throw createAuthError('Authorization code is required');
|
|
190
256
|
}
|
|
257
|
+
if (!args.state) {
|
|
258
|
+
throw createAuthError('State parameter is required for CSRF protection');
|
|
259
|
+
}
|
|
260
|
+
// Validate and consume state (one-time use)
|
|
261
|
+
const isValidState = await this.stateStore.consume(args.state);
|
|
262
|
+
if (!isValidState) {
|
|
263
|
+
throw createAuthError('Invalid or expired state parameter. Please start the authentication flow again with auth_get_url.');
|
|
264
|
+
}
|
|
191
265
|
const tokenData = await this.oauth.exchangeCode(args.code);
|
|
192
266
|
// Set account if provided in token
|
|
193
267
|
if (tokenData.accountId) {
|
|
@@ -197,12 +271,12 @@ class FreshBooksServer {
|
|
|
197
271
|
content: [
|
|
198
272
|
{
|
|
199
273
|
type: 'text',
|
|
200
|
-
text: JSON.stringify({
|
|
274
|
+
text: JSON.stringify(sanitizeForMcpResponse({
|
|
201
275
|
success: true,
|
|
202
276
|
message: 'Authentication successful',
|
|
203
277
|
accountId: tokenData.accountId,
|
|
204
278
|
expiresIn: tokenData.expiresAt - Math.floor(Date.now() / 1000),
|
|
205
|
-
}, null, 2),
|
|
279
|
+
}), null, 2),
|
|
206
280
|
},
|
|
207
281
|
],
|
|
208
282
|
};
|
|
@@ -216,10 +290,10 @@ class FreshBooksServer {
|
|
|
216
290
|
content: [
|
|
217
291
|
{
|
|
218
292
|
type: 'text',
|
|
219
|
-
text: JSON.stringify({
|
|
293
|
+
text: JSON.stringify(sanitizeForMcpResponse({
|
|
220
294
|
success: true,
|
|
221
295
|
message: 'Authentication revoked successfully',
|
|
222
|
-
}, null, 2),
|
|
296
|
+
}), null, 2),
|
|
223
297
|
},
|
|
224
298
|
],
|
|
225
299
|
};
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,15 +49,15 @@ export declare const PaginationMetadataSchema: z.ZodObject<{
|
|
|
49
49
|
perPage: z.ZodNumber;
|
|
50
50
|
total: z.ZodNumber;
|
|
51
51
|
}, "strip", z.ZodTypeAny, {
|
|
52
|
-
total: number;
|
|
53
52
|
page: number;
|
|
54
53
|
perPage: number;
|
|
55
54
|
pages: number;
|
|
56
|
-
}, {
|
|
57
55
|
total: number;
|
|
56
|
+
}, {
|
|
58
57
|
page: number;
|
|
59
58
|
perPage: number;
|
|
60
59
|
pages: number;
|
|
60
|
+
total: number;
|
|
61
61
|
}>;
|
|
62
62
|
/**
|
|
63
63
|
* Common visibility state enum
|
|
@@ -113,12 +113,12 @@ export declare const billCreateTool: {
|
|
|
113
113
|
visState: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
|
|
114
114
|
}, "strip", z.ZodTypeAny, {
|
|
115
115
|
status: "partial" | "paid" | "overdue" | "unpaid";
|
|
116
|
-
createdAt: string;
|
|
117
|
-
id: number;
|
|
118
116
|
amount: {
|
|
119
117
|
code: string;
|
|
120
118
|
amount: string;
|
|
121
119
|
};
|
|
120
|
+
id: number;
|
|
121
|
+
createdAt: string;
|
|
122
122
|
dueDate: string | null;
|
|
123
123
|
updatedAt: string;
|
|
124
124
|
lines: any[];
|
|
@@ -142,12 +142,12 @@ export declare const billCreateTool: {
|
|
|
142
142
|
attachment?: any;
|
|
143
143
|
}, {
|
|
144
144
|
status: "partial" | "paid" | "overdue" | "unpaid";
|
|
145
|
-
createdAt: string;
|
|
146
|
-
id: number;
|
|
147
145
|
amount: {
|
|
148
146
|
code: string;
|
|
149
147
|
amount: string;
|
|
150
148
|
};
|
|
149
|
+
id: number;
|
|
150
|
+
createdAt: string;
|
|
151
151
|
dueDate: string | null;
|
|
152
152
|
updatedAt: string;
|
|
153
153
|
lines: any[];
|
|
@@ -15,12 +15,18 @@ export declare const billDeleteTool: {
|
|
|
15
15
|
inputSchema: z.ZodObject<{
|
|
16
16
|
accountId: z.ZodString;
|
|
17
17
|
billId: z.ZodNumber;
|
|
18
|
+
confirmed: z.ZodOptional<z.ZodBoolean>;
|
|
19
|
+
confirmationId: z.ZodOptional<z.ZodString>;
|
|
18
20
|
}, "strip", z.ZodTypeAny, {
|
|
19
21
|
accountId: string;
|
|
20
22
|
billId: number;
|
|
23
|
+
confirmed?: boolean | undefined;
|
|
24
|
+
confirmationId?: string | undefined;
|
|
21
25
|
}, {
|
|
22
26
|
accountId: string;
|
|
23
27
|
billId: number;
|
|
28
|
+
confirmed?: boolean | undefined;
|
|
29
|
+
confirmationId?: string | undefined;
|
|
24
30
|
}>;
|
|
25
31
|
outputSchema: z.ZodObject<{
|
|
26
32
|
success: z.ZodBoolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bill-delete.d.ts","sourceRoot":"","sources":["../../../src/tools/bill/bill-delete.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE;;GAEG;AACH,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"bill-delete.d.ts","sourceRoot":"","sources":["../../../src/tools/bill/bill-delete.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6BzB;;OAEG;mBAEM,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,UACpC,uBAAuB,GAC9B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;CAwCnD,CAAC"}
|
|
@@ -93,12 +93,12 @@ export declare const billListTool: {
|
|
|
93
93
|
visState: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
|
|
94
94
|
}, "strip", z.ZodTypeAny, {
|
|
95
95
|
status: "partial" | "paid" | "overdue" | "unpaid";
|
|
96
|
-
createdAt: string;
|
|
97
|
-
id: number;
|
|
98
96
|
amount: {
|
|
99
97
|
code: string;
|
|
100
98
|
amount: string;
|
|
101
99
|
};
|
|
100
|
+
id: number;
|
|
101
|
+
createdAt: string;
|
|
102
102
|
dueDate: string | null;
|
|
103
103
|
updatedAt: string;
|
|
104
104
|
lines: any[];
|
|
@@ -122,12 +122,12 @@ export declare const billListTool: {
|
|
|
122
122
|
attachment?: any;
|
|
123
123
|
}, {
|
|
124
124
|
status: "partial" | "paid" | "overdue" | "unpaid";
|
|
125
|
-
createdAt: string;
|
|
126
|
-
id: number;
|
|
127
125
|
amount: {
|
|
128
126
|
code: string;
|
|
129
127
|
amount: string;
|
|
130
128
|
};
|
|
129
|
+
id: number;
|
|
130
|
+
createdAt: string;
|
|
131
131
|
dueDate: string | null;
|
|
132
132
|
updatedAt: string;
|
|
133
133
|
lines: any[];
|
|
@@ -156,31 +156,31 @@ export declare const billListTool: {
|
|
|
156
156
|
perPage: z.ZodNumber;
|
|
157
157
|
total: z.ZodNumber;
|
|
158
158
|
}, "strip", z.ZodTypeAny, {
|
|
159
|
-
total: number;
|
|
160
159
|
page: number;
|
|
161
160
|
perPage: number;
|
|
162
161
|
pages: number;
|
|
163
|
-
}, {
|
|
164
162
|
total: number;
|
|
163
|
+
}, {
|
|
165
164
|
page: number;
|
|
166
165
|
perPage: number;
|
|
167
166
|
pages: number;
|
|
167
|
+
total: number;
|
|
168
168
|
}>;
|
|
169
169
|
}, "strip", z.ZodTypeAny, {
|
|
170
170
|
pagination: {
|
|
171
|
-
total: number;
|
|
172
171
|
page: number;
|
|
173
172
|
perPage: number;
|
|
174
173
|
pages: number;
|
|
174
|
+
total: number;
|
|
175
175
|
};
|
|
176
176
|
bills: {
|
|
177
177
|
status: "partial" | "paid" | "overdue" | "unpaid";
|
|
178
|
-
createdAt: string;
|
|
179
|
-
id: number;
|
|
180
178
|
amount: {
|
|
181
179
|
code: string;
|
|
182
180
|
amount: string;
|
|
183
181
|
};
|
|
182
|
+
id: number;
|
|
183
|
+
createdAt: string;
|
|
184
184
|
dueDate: string | null;
|
|
185
185
|
updatedAt: string;
|
|
186
186
|
lines: any[];
|
|
@@ -205,19 +205,19 @@ export declare const billListTool: {
|
|
|
205
205
|
}[];
|
|
206
206
|
}, {
|
|
207
207
|
pagination: {
|
|
208
|
-
total: number;
|
|
209
208
|
page: number;
|
|
210
209
|
perPage: number;
|
|
211
210
|
pages: number;
|
|
211
|
+
total: number;
|
|
212
212
|
};
|
|
213
213
|
bills: {
|
|
214
214
|
status: "partial" | "paid" | "overdue" | "unpaid";
|
|
215
|
-
createdAt: string;
|
|
216
|
-
id: number;
|
|
217
215
|
amount: {
|
|
218
216
|
code: string;
|
|
219
217
|
amount: string;
|
|
220
218
|
};
|
|
219
|
+
id: number;
|
|
220
|
+
createdAt: string;
|
|
221
221
|
dueDate: string | null;
|
|
222
222
|
updatedAt: string;
|
|
223
223
|
lines: any[];
|
|
@@ -77,12 +77,12 @@ export declare const billSingleTool: {
|
|
|
77
77
|
visState: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
|
|
78
78
|
}, "strip", z.ZodTypeAny, {
|
|
79
79
|
status: "partial" | "paid" | "overdue" | "unpaid";
|
|
80
|
-
createdAt: string;
|
|
81
|
-
id: number;
|
|
82
80
|
amount: {
|
|
83
81
|
code: string;
|
|
84
82
|
amount: string;
|
|
85
83
|
};
|
|
84
|
+
id: number;
|
|
85
|
+
createdAt: string;
|
|
86
86
|
dueDate: string | null;
|
|
87
87
|
updatedAt: string;
|
|
88
88
|
lines: any[];
|
|
@@ -106,12 +106,12 @@ export declare const billSingleTool: {
|
|
|
106
106
|
attachment?: any;
|
|
107
107
|
}, {
|
|
108
108
|
status: "partial" | "paid" | "overdue" | "unpaid";
|
|
109
|
-
createdAt: string;
|
|
110
|
-
id: number;
|
|
111
109
|
amount: {
|
|
112
110
|
code: string;
|
|
113
111
|
amount: string;
|
|
114
112
|
};
|
|
113
|
+
id: number;
|
|
114
|
+
createdAt: string;
|
|
115
115
|
dueDate: string | null;
|
|
116
116
|
updatedAt: string;
|
|
117
117
|
lines: any[];
|