@frihet/mcp-server 1.2.3 → 1.3.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 +124 -40
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +10 -0
- package/dist/client.js.map +1 -1
- package/dist/index.js +17 -3
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +46 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +90 -0
- package/dist/logger.js.map +1 -0
- package/dist/metrics.d.ts +28 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +81 -0
- package/dist/metrics.js.map +1 -0
- package/dist/tools/clients.d.ts.map +1 -1
- package/dist/tools/clients.js +36 -61
- package/dist/tools/clients.js.map +1 -1
- package/dist/tools/expenses.d.ts.map +1 -1
- package/dist/tools/expenses.js +36 -61
- package/dist/tools/expenses.js.map +1 -1
- package/dist/tools/invoices.d.ts.map +1 -1
- package/dist/tools/invoices.js +45 -75
- package/dist/tools/invoices.js.map +1 -1
- package/dist/tools/products.d.ts.map +1 -1
- package/dist/tools/products.js +36 -61
- package/dist/tools/products.js.map +1 -1
- package/dist/tools/quotes.d.ts.map +1 -1
- package/dist/tools/quotes.js +36 -61
- package/dist/tools/quotes.js.map +1 -1
- package/dist/tools/shared.d.ts +23 -1
- package/dist/tools/shared.d.ts.map +1 -1
- package/dist/tools/shared.js +54 -5
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/webhooks.d.ts.map +1 -1
- package/dist/tools/webhooks.js +36 -61
- package/dist/tools/webhooks.js.map +1 -1
- package/package.json +23 -14
package/dist/tools/webhooks.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Webhook management tools for the Frihet MCP server.
|
|
3
3
|
*/
|
|
4
4
|
import { z } from "zod/v4";
|
|
5
|
-
import {
|
|
5
|
+
import { withToolLogging, formatPaginatedResponse, formatRecord, listContent, getContent, mutateContent, READ_ONLY_ANNOTATIONS, CREATE_ANNOTATIONS, UPDATE_ANNOTATIONS, DELETE_ANNOTATIONS, paginatedOutput, deleteResultOutput, webhookItemOutput } from "./shared.js";
|
|
6
6
|
export function registerWebhookTools(server, client) {
|
|
7
7
|
// -- list_webhooks --
|
|
8
8
|
server.registerTool("list_webhooks", {
|
|
@@ -15,18 +15,13 @@ export function registerWebhookTools(server, client) {
|
|
|
15
15
|
offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
|
|
16
16
|
},
|
|
17
17
|
outputSchema: paginatedOutput(webhookItemOutput),
|
|
18
|
-
}, async ({ limit, offset }) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
return handleToolError(error);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
18
|
+
}, async ({ limit, offset }) => withToolLogging("list_webhooks", async () => {
|
|
19
|
+
const result = await client.listWebhooks({ limit, offset });
|
|
20
|
+
return {
|
|
21
|
+
content: [listContent(formatPaginatedResponse("webhooks", result))],
|
|
22
|
+
structuredContent: result,
|
|
23
|
+
};
|
|
24
|
+
}));
|
|
30
25
|
// -- get_webhook --
|
|
31
26
|
server.registerTool("get_webhook", {
|
|
32
27
|
title: "Get Webhook",
|
|
@@ -37,18 +32,13 @@ export function registerWebhookTools(server, client) {
|
|
|
37
32
|
id: z.string().describe("Webhook ID / ID del webhook"),
|
|
38
33
|
},
|
|
39
34
|
outputSchema: webhookItemOutput,
|
|
40
|
-
}, async ({ id }) => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
return handleToolError(error);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
35
|
+
}, async ({ id }) => withToolLogging("get_webhook", async () => {
|
|
36
|
+
const result = await client.getWebhook(id);
|
|
37
|
+
return {
|
|
38
|
+
content: [getContent(formatRecord("Webhook", result))],
|
|
39
|
+
structuredContent: result,
|
|
40
|
+
};
|
|
41
|
+
}));
|
|
52
42
|
// -- create_webhook --
|
|
53
43
|
server.registerTool("create_webhook", {
|
|
54
44
|
title: "Create Webhook",
|
|
@@ -74,18 +64,13 @@ export function registerWebhookTools(server, client) {
|
|
|
74
64
|
.describe("Signing secret for payload verification / Secreto para verificar las notificaciones"),
|
|
75
65
|
},
|
|
76
66
|
outputSchema: webhookItemOutput,
|
|
77
|
-
}, async (input) => {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
return handleToolError(error);
|
|
87
|
-
}
|
|
88
|
-
});
|
|
67
|
+
}, async (input) => withToolLogging("create_webhook", async () => {
|
|
68
|
+
const result = await client.createWebhook(input);
|
|
69
|
+
return {
|
|
70
|
+
content: [mutateContent(formatRecord("Webhook created", result))],
|
|
71
|
+
structuredContent: result,
|
|
72
|
+
};
|
|
73
|
+
}));
|
|
89
74
|
// -- update_webhook --
|
|
90
75
|
server.registerTool("update_webhook", {
|
|
91
76
|
title: "Update Webhook",
|
|
@@ -100,18 +85,13 @@ export function registerWebhookTools(server, client) {
|
|
|
100
85
|
secret: z.string().optional().describe("Signing secret / Secreto"),
|
|
101
86
|
},
|
|
102
87
|
outputSchema: webhookItemOutput,
|
|
103
|
-
}, async ({ id, ...data }) => {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
return handleToolError(error);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
88
|
+
}, async ({ id, ...data }) => withToolLogging("update_webhook", async () => {
|
|
89
|
+
const result = await client.updateWebhook(id, data);
|
|
90
|
+
return {
|
|
91
|
+
content: [mutateContent(formatRecord("Webhook updated", result))],
|
|
92
|
+
structuredContent: result,
|
|
93
|
+
};
|
|
94
|
+
}));
|
|
115
95
|
// -- delete_webhook --
|
|
116
96
|
server.registerTool("delete_webhook", {
|
|
117
97
|
title: "Delete Webhook",
|
|
@@ -122,17 +102,12 @@ export function registerWebhookTools(server, client) {
|
|
|
122
102
|
id: z.string().describe("Webhook ID / ID del webhook"),
|
|
123
103
|
},
|
|
124
104
|
outputSchema: deleteResultOutput,
|
|
125
|
-
}, async ({ id }) => {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
return handleToolError(error);
|
|
135
|
-
}
|
|
136
|
-
});
|
|
105
|
+
}, async ({ id }) => withToolLogging("delete_webhook", async () => {
|
|
106
|
+
await client.deleteWebhook(id);
|
|
107
|
+
return {
|
|
108
|
+
content: [mutateContent(`Webhook ${id} deleted successfully. / Webhook ${id} eliminado correctamente.`)],
|
|
109
|
+
structuredContent: { success: true, id },
|
|
110
|
+
};
|
|
111
|
+
}));
|
|
137
112
|
}
|
|
138
113
|
//# sourceMappingURL=webhooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/tools/webhooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExQ,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAqB;IAC3E,sBAAsB;IAEtB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,mGAAmG;YACnG,yHAAyH;QAC3H,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YACvG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SAC/E;QACD,YAAY,EAAE,eAAe,CAAC,iBAAiB,CAAC;KACjD,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/tools/webhooks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frihet/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "AI-native MCP server for business management — invoices, expenses, clients, products, quotes, webhooks. 31 tools. Works with Claude, Cursor, Windsurf, Cline.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -13,25 +13,34 @@
|
|
|
13
13
|
"prepublishOnly": "npm run build"
|
|
14
14
|
},
|
|
15
15
|
"keywords": [
|
|
16
|
-
"
|
|
17
|
-
"erp",
|
|
18
|
-
"invoicing",
|
|
19
|
-
"frihet",
|
|
16
|
+
"accounting",
|
|
20
17
|
"ai",
|
|
21
|
-
"
|
|
18
|
+
"ai-agent",
|
|
19
|
+
"anthropic",
|
|
20
|
+
"automation",
|
|
21
|
+
"billing",
|
|
22
|
+
"business-management",
|
|
22
23
|
"claude",
|
|
24
|
+
"clients",
|
|
25
|
+
"cline",
|
|
26
|
+
"codex",
|
|
27
|
+
"copilot",
|
|
23
28
|
"cursor",
|
|
24
|
-
"
|
|
25
|
-
"business-management",
|
|
26
|
-
"accounting",
|
|
29
|
+
"erp",
|
|
27
30
|
"expenses",
|
|
31
|
+
"fintech",
|
|
32
|
+
"frihet",
|
|
33
|
+
"invoicing",
|
|
34
|
+
"llm",
|
|
35
|
+
"mcp",
|
|
36
|
+
"mcp-server",
|
|
37
|
+
"model-context-protocol",
|
|
38
|
+
"quotes",
|
|
39
|
+
"saas",
|
|
28
40
|
"tax-compliance",
|
|
29
41
|
"verifactu",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"codex",
|
|
33
|
-
"ai-agent",
|
|
34
|
-
"automation"
|
|
42
|
+
"webhooks",
|
|
43
|
+
"windsurf"
|
|
35
44
|
],
|
|
36
45
|
"author": "BRTHLS <viktor@brthls.com>",
|
|
37
46
|
"license": "MIT",
|