@elyonar/einvoice-mcp 0.1.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.
Files changed (64) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +133 -0
  3. package/bin/cli.js +2 -0
  4. package/dist/client/billing-client.d.ts +19 -0
  5. package/dist/client/billing-client.d.ts.map +1 -0
  6. package/dist/client/billing-client.js +62 -0
  7. package/dist/client/billing-client.js.map +1 -0
  8. package/dist/client/http-client.d.ts +44 -0
  9. package/dist/client/http-client.d.ts.map +1 -0
  10. package/dist/client/http-client.js +117 -0
  11. package/dist/client/http-client.js.map +1 -0
  12. package/dist/client/index.d.ts +4 -0
  13. package/dist/client/index.d.ts.map +1 -0
  14. package/dist/client/index.js +12 -0
  15. package/dist/client/index.js.map +1 -0
  16. package/dist/client/invoice-client.d.ts +42 -0
  17. package/dist/client/invoice-client.d.ts.map +1 -0
  18. package/dist/client/invoice-client.js +107 -0
  19. package/dist/client/invoice-client.js.map +1 -0
  20. package/dist/index.d.ts +17 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +87 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/tools/billing-tools.d.ts +11 -0
  25. package/dist/tools/billing-tools.d.ts.map +1 -0
  26. package/dist/tools/billing-tools.js +209 -0
  27. package/dist/tools/billing-tools.js.map +1 -0
  28. package/dist/tools/buyer-tools.d.ts +11 -0
  29. package/dist/tools/buyer-tools.d.ts.map +1 -0
  30. package/dist/tools/buyer-tools.js +148 -0
  31. package/dist/tools/buyer-tools.js.map +1 -0
  32. package/dist/tools/index.d.ts +5 -0
  33. package/dist/tools/index.d.ts.map +1 -0
  34. package/dist/tools/index.js +16 -0
  35. package/dist/tools/index.js.map +1 -0
  36. package/dist/tools/invoice-tools.d.ts +11 -0
  37. package/dist/tools/invoice-tools.d.ts.map +1 -0
  38. package/dist/tools/invoice-tools.js +319 -0
  39. package/dist/tools/invoice-tools.js.map +1 -0
  40. package/dist/tools/seller-tools.d.ts +11 -0
  41. package/dist/tools/seller-tools.d.ts.map +1 -0
  42. package/dist/tools/seller-tools.js +149 -0
  43. package/dist/tools/seller-tools.js.map +1 -0
  44. package/dist/types/billing.d.ts +145 -0
  45. package/dist/types/billing.d.ts.map +1 -0
  46. package/dist/types/billing.js +4 -0
  47. package/dist/types/billing.js.map +1 -0
  48. package/dist/types/index.d.ts +3 -0
  49. package/dist/types/index.d.ts.map +1 -0
  50. package/dist/types/index.js +19 -0
  51. package/dist/types/index.js.map +1 -0
  52. package/dist/types/invoice.d.ts +197 -0
  53. package/dist/types/invoice.d.ts.map +1 -0
  54. package/dist/types/invoice.js +4 -0
  55. package/dist/types/invoice.js.map +1 -0
  56. package/dist/utils/format.d.ts +14 -0
  57. package/dist/utils/format.d.ts.map +1 -0
  58. package/dist/utils/format.js +51 -0
  59. package/dist/utils/format.js.map +1 -0
  60. package/dist/utils/index.d.ts +2 -0
  61. package/dist/utils/index.d.ts.map +1 -0
  62. package/dist/utils/index.js +8 -0
  63. package/dist/utils/index.js.map +1 -0
  64. package/package.json +59 -0
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import { HttpClient } from './client/http-client.js';
4
+ import { InvoiceClient } from './client/invoice-client.js';
5
+ import { BillingClient } from './client/billing-client.js';
6
+ export declare function createServer(config?: {
7
+ apiKey: string;
8
+ baseUrl?: string;
9
+ timeout?: number;
10
+ maxRetries?: number;
11
+ }): {
12
+ server: McpServer;
13
+ httpClient: HttpClient;
14
+ invoiceClient: InvoiceClient;
15
+ billingClient: BillingClient;
16
+ };
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AA2B3D,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;;;;;EAmEA"}
package/dist/index.js ADDED
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.createServer = createServer;
5
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
6
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
7
+ const http_client_js_1 = require("./client/http-client.js");
8
+ const invoice_client_js_1 = require("./client/invoice-client.js");
9
+ const billing_client_js_1 = require("./client/billing-client.js");
10
+ const index_js_1 = require("./tools/index.js");
11
+ // ─── Config ──────────────────────────────────────────────
12
+ function getConfig() {
13
+ const apiKey = process.env.EINVOICE_API_KEY;
14
+ if (!apiKey) {
15
+ console.error('Error: EINVOICE_API_KEY environment variable is required');
16
+ process.exit(1);
17
+ }
18
+ return {
19
+ apiKey,
20
+ baseUrl: process.env.EINVOICE_BASE_URL ?? 'https://api.einvoice.ng',
21
+ timeout: parseInt(process.env.EINVOICE_REQUEST_TIMEOUT ?? '30000', 10),
22
+ maxRetries: parseInt(process.env.EINVOICE_RETRY_ATTEMPTS ?? '3', 10),
23
+ };
24
+ }
25
+ // ─── Server Setup ────────────────────────────────────────
26
+ function createServer(config) {
27
+ const cfg = config ?? getConfig();
28
+ const httpClient = new http_client_js_1.HttpClient({
29
+ baseUrl: cfg.baseUrl ?? 'https://api.einvoice.ng',
30
+ apiKey: cfg.apiKey,
31
+ timeout: cfg.timeout,
32
+ maxRetries: cfg.maxRetries,
33
+ });
34
+ const invoiceClient = new invoice_client_js_1.InvoiceClient(httpClient);
35
+ const billingClient = new billing_client_js_1.BillingClient(httpClient);
36
+ // Collect all tool definitions
37
+ const allTools = [
38
+ ...index_js_1.invoiceToolDefinitions,
39
+ ...index_js_1.sellerToolDefinitions,
40
+ ...index_js_1.buyerToolDefinitions,
41
+ ...index_js_1.billingToolDefinitions,
42
+ ];
43
+ const invoiceToolNames = new Set(index_js_1.invoiceToolDefinitions.map((t) => t.name));
44
+ const sellerToolNames = new Set(index_js_1.sellerToolDefinitions.map((t) => t.name));
45
+ const buyerToolNames = new Set(index_js_1.buyerToolDefinitions.map((t) => t.name));
46
+ const billingToolNames = new Set(index_js_1.billingToolDefinitions.map((t) => t.name));
47
+ // Create MCP server
48
+ const server = new mcp_js_1.McpServer({
49
+ name: 'einvoice',
50
+ version: '1.0.0',
51
+ });
52
+ // Register tools using the low-level server
53
+ const rawServer = server.server;
54
+ rawServer.setRequestHandler({ method: 'tools/list' }, async () => ({ tools: allTools }));
55
+ rawServer.setRequestHandler({ method: 'tools/call' }, async (request) => {
56
+ const { name, arguments: args } = request.params;
57
+ const toolArgs = (args ?? {});
58
+ if (invoiceToolNames.has(name)) {
59
+ return (0, index_js_1.handleInvoiceTool)(name, toolArgs, invoiceClient);
60
+ }
61
+ if (sellerToolNames.has(name)) {
62
+ return (0, index_js_1.handleSellerTool)(name, toolArgs, invoiceClient);
63
+ }
64
+ if (buyerToolNames.has(name)) {
65
+ return (0, index_js_1.handleBuyerTool)(name, toolArgs, invoiceClient);
66
+ }
67
+ if (billingToolNames.has(name)) {
68
+ return (0, index_js_1.handleBillingTool)(name, toolArgs, billingClient);
69
+ }
70
+ return {
71
+ content: [{ type: 'text', text: `Unknown tool: ${name}` }],
72
+ isError: true,
73
+ };
74
+ });
75
+ return { server, httpClient, invoiceClient, billingClient };
76
+ }
77
+ // ─── Main ────────────────────────────────────────────────
78
+ async function main() {
79
+ const { server } = createServer();
80
+ const transport = new stdio_js_1.StdioServerTransport();
81
+ await server.connect(transport);
82
+ }
83
+ main().catch((error) => {
84
+ console.error('Fatal:', error);
85
+ process.exit(1);
86
+ });
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import type { BillingClient } from '../client/billing-client.js';
3
+ export declare const billingToolDefinitions: Tool[];
4
+ export declare function handleBillingTool(name: string, args: Record<string, unknown>, client: BillingClient): Promise<{
5
+ content: Array<{
6
+ type: 'text';
7
+ text: string;
8
+ }>;
9
+ isError?: boolean;
10
+ }>;
11
+ //# sourceMappingURL=billing-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-tools.d.ts","sourceRoot":"","sources":["../../src/tools/billing-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE,eAAO,MAAM,sBAAsB,EAAE,IAAI,EA+HxC,CAAC;AAIF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAwEhF"}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.billingToolDefinitions = void 0;
4
+ exports.handleBillingTool = handleBillingTool;
5
+ const format_js_1 = require("../utils/format.js");
6
+ exports.billingToolDefinitions = [
7
+ {
8
+ name: 'get_billing_account',
9
+ description: 'Get the current organization billing account: credit balance, billing mode, status, and thresholds.',
10
+ inputSchema: {
11
+ type: 'object',
12
+ properties: {},
13
+ },
14
+ },
15
+ {
16
+ name: 'check_balance',
17
+ description: 'Check if the account has sufficient credits for a given number of operations (e.g., before batch submitting invoices).',
18
+ inputSchema: {
19
+ type: 'object',
20
+ properties: {
21
+ credits: { type: 'number', minimum: 1, description: 'Number of credits to check against balance' },
22
+ },
23
+ required: ['credits'],
24
+ },
25
+ },
26
+ {
27
+ name: 'get_billing_setup',
28
+ description: 'Get comprehensive billing overview: account, active subscription, usage summary, and available plans.',
29
+ inputSchema: {
30
+ type: 'object',
31
+ properties: {},
32
+ },
33
+ },
34
+ {
35
+ name: 'get_subscription_plans',
36
+ description: 'List available subscription plans with pricing. Use to compare plans before subscribing.',
37
+ inputSchema: {
38
+ type: 'object',
39
+ properties: {
40
+ currency: { type: 'string', enum: ['NGN', 'USD', 'EUR', 'GBP'], description: 'Filter prices by currency' },
41
+ interval: { type: 'string', enum: ['MONTHLY', 'YEARLY'], description: 'Filter by billing interval' },
42
+ },
43
+ },
44
+ },
45
+ {
46
+ name: 'get_credit_packages',
47
+ description: 'List available credit packages for pay-as-you-go purchases, with pricing and bonus credits.',
48
+ inputSchema: {
49
+ type: 'object',
50
+ properties: {
51
+ currency: { type: 'string', enum: ['NGN', 'USD', 'EUR', 'GBP'], description: 'Filter prices by currency' },
52
+ featured: { type: 'boolean', description: 'Only show featured packages' },
53
+ },
54
+ },
55
+ },
56
+ {
57
+ name: 'get_active_subscription',
58
+ description: 'Get the current active subscription details: plan, credits per period, billing dates, and status.',
59
+ inputSchema: {
60
+ type: 'object',
61
+ properties: {},
62
+ },
63
+ },
64
+ {
65
+ name: 'get_subscription_history',
66
+ description: 'Get the history of all subscriptions for the organization.',
67
+ inputSchema: {
68
+ type: 'object',
69
+ properties: {},
70
+ },
71
+ },
72
+ {
73
+ name: 'purchase_credits',
74
+ description: 'Initiate a credit package purchase. Returns a checkout URL for payment completion.',
75
+ inputSchema: {
76
+ type: 'object',
77
+ properties: {
78
+ packageId: { type: 'string', description: 'Credit package ID (from get_credit_packages)' },
79
+ currency: { type: 'string', enum: ['NGN', 'USD', 'EUR', 'GBP'], description: 'Payment currency' },
80
+ successUrl: { type: 'string', description: 'Redirect URL after successful payment' },
81
+ cancelUrl: { type: 'string', description: 'Redirect URL if payment is cancelled' },
82
+ },
83
+ required: ['packageId', 'currency'],
84
+ },
85
+ },
86
+ {
87
+ name: 'get_payment_history',
88
+ description: 'Get payment transaction history with optional filtering.',
89
+ inputSchema: {
90
+ type: 'object',
91
+ properties: {
92
+ page: { type: 'integer', minimum: 1, description: 'Page number' },
93
+ limit: { type: 'integer', minimum: 1, maximum: 100, description: 'Results per page' },
94
+ status: { type: 'string', enum: ['PENDING', 'PROCESSING', 'SUCCEEDED', 'FAILED', 'CANCELLED', 'REFUNDED'] },
95
+ },
96
+ },
97
+ },
98
+ {
99
+ name: 'get_transaction_history',
100
+ description: 'Get credit transaction ledger: purchases, consumption, refunds, bonuses. Filterable by type and date.',
101
+ inputSchema: {
102
+ type: 'object',
103
+ properties: {
104
+ page: { type: 'integer', minimum: 1 },
105
+ limit: { type: 'integer', minimum: 1, maximum: 100 },
106
+ type: { type: 'string', enum: ['PURCHASE', 'CONSUMPTION', 'REFUND', 'BONUS', 'MANUAL', 'SUBSCRIPTION'], description: 'Filter by transaction type' },
107
+ creditPool: { type: 'string', enum: ['subscription', 'payg'], description: 'Filter by credit pool' },
108
+ startDate: { type: 'string', description: 'From date (YYYY-MM-DD)' },
109
+ endDate: { type: 'string', description: 'To date (YYYY-MM-DD)' },
110
+ },
111
+ },
112
+ },
113
+ {
114
+ name: 'get_usage_analytics',
115
+ description: 'Get usage analytics: total submissions, credits used, cost per submission, daily breakdown.',
116
+ inputSchema: {
117
+ type: 'object',
118
+ properties: {
119
+ startDate: { type: 'string', description: 'Period start (YYYY-MM-DD)' },
120
+ endDate: { type: 'string', description: 'Period end (YYYY-MM-DD)' },
121
+ period: { type: 'string', enum: ['day', 'week', 'month'], description: 'Grouping period' },
122
+ },
123
+ },
124
+ },
125
+ {
126
+ name: 'get_consumption_breakdown',
127
+ description: 'Get credit consumption breakdown by API endpoint/service. Shows which operations consume the most credits.',
128
+ inputSchema: {
129
+ type: 'object',
130
+ properties: {},
131
+ },
132
+ },
133
+ ];
134
+ // ─── Tool Handler ────────────────────────────────────────
135
+ async function handleBillingTool(name, args, client) {
136
+ try {
137
+ switch (name) {
138
+ case 'get_billing_account': {
139
+ const res = await client.getBillingAccount();
140
+ const bal = res.data.creditBalance;
141
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `Balance: ${bal} credits (${res.data.status}).`) }] };
142
+ }
143
+ case 'check_balance': {
144
+ const credits = Number((0, format_js_1.requiredParam)(args, 'credits'));
145
+ const res = await client.checkBalance(credits);
146
+ const msg = res.data.sufficient
147
+ ? `Sufficient balance: ${res.data.currentBalance} credits available (need ${credits}).`
148
+ : `Insufficient balance: ${res.data.currentBalance} credits available, need ${credits} (deficit: ${res.data.deficit}).`;
149
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, msg) }] };
150
+ }
151
+ case 'get_billing_setup': {
152
+ const res = await client.getBillingSetup();
153
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res) }] };
154
+ }
155
+ case 'get_subscription_plans': {
156
+ const res = await client.getSubscriptionPlans(args);
157
+ const count = Array.isArray(res.data) ? res.data.length : 0;
158
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `${count} subscription plans available.`) }] };
159
+ }
160
+ case 'get_credit_packages': {
161
+ const res = await client.getCreditPackages(args);
162
+ const count = Array.isArray(res.data) ? res.data.length : 0;
163
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `${count} credit packages available.`) }] };
164
+ }
165
+ case 'get_active_subscription': {
166
+ const res = await client.getActiveSubscription();
167
+ const sub = res.data;
168
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `Plan: ${sub.planName} (${sub.status}), ${sub.creditsPerPeriod} credits/${sub.interval.toLowerCase()}.`) }] };
169
+ }
170
+ case 'get_subscription_history': {
171
+ const res = await client.getSubscriptionHistory();
172
+ const count = Array.isArray(res.data) ? res.data.length : 0;
173
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `${count} subscriptions in history.`) }] };
174
+ }
175
+ case 'purchase_credits': {
176
+ const body = { ...args };
177
+ const res = await client.purchaseCredits(body);
178
+ const msg = res.data.checkoutUrl
179
+ ? `Payment initiated. Checkout URL: ${res.data.checkoutUrl}`
180
+ : `Purchase completed. Credits granted: ${res.data.creditsGranted}.`;
181
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, msg) }] };
182
+ }
183
+ case 'get_payment_history': {
184
+ const res = await client.getPaymentHistory(args);
185
+ const count = Array.isArray(res.data) ? res.data.length : 0;
186
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `${count} payments found.`) }] };
187
+ }
188
+ case 'get_transaction_history': {
189
+ const res = await client.getTransactionHistory(args);
190
+ const count = Array.isArray(res.data) ? res.data.length : 0;
191
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `${count} transactions found.`) }] };
192
+ }
193
+ case 'get_usage_analytics': {
194
+ const res = await client.getUsageAnalytics(args);
195
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `Submissions: ${res.data.totalSubmissions}, Credits used: ${res.data.creditsUsed}.`) }] };
196
+ }
197
+ case 'get_consumption_breakdown': {
198
+ const res = await client.getConsumptionBreakdown();
199
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res) }] };
200
+ }
201
+ default:
202
+ return { content: [{ type: 'text', text: `Unknown billing tool: ${name}` }], isError: true };
203
+ }
204
+ }
205
+ catch (error) {
206
+ return { content: [{ type: 'text', text: (0, format_js_1.formatError)(error) }], isError: true };
207
+ }
208
+ }
209
+ //# sourceMappingURL=billing-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-tools.js","sourceRoot":"","sources":["../../src/tools/billing-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import type { InvoiceClient } from '../client/invoice-client.js';
3
+ export declare const buyerToolDefinitions: Tool[];
4
+ export declare function handleBuyerTool(name: string, args: Record<string, unknown>, client: InvoiceClient): Promise<{
5
+ content: Array<{
6
+ type: 'text';
7
+ text: string;
8
+ }>;
9
+ isError?: boolean;
10
+ }>;
11
+ //# sourceMappingURL=buyer-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buyer-tools.d.ts","sourceRoot":"","sources":["../../src/tools/buyer-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE,eAAO,MAAM,oBAAoB,EAAE,IAAI,EA+FtC,CAAC;AAEF,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA4ChF"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buyerToolDefinitions = void 0;
4
+ exports.handleBuyerTool = handleBuyerTool;
5
+ const format_js_1 = require("../utils/format.js");
6
+ exports.buyerToolDefinitions = [
7
+ {
8
+ name: 'create_buyer',
9
+ description: 'Register a new buyer entity. Buyers must be registered before creating invoices.',
10
+ inputSchema: {
11
+ type: 'object',
12
+ properties: {
13
+ companyName: { type: 'string', description: 'Business name' },
14
+ tin: { type: 'string', description: 'Tax ID (format: XXXXXXXX-XXXX)' },
15
+ email: { type: 'string', description: 'Contact email' },
16
+ phoneNumber: { type: 'string', description: 'Phone (international format, starts with +)' },
17
+ postalAddress: {
18
+ type: 'object',
19
+ properties: {
20
+ streetName: { type: 'string' },
21
+ cityName: { type: 'string' },
22
+ countrySubentity: { type: 'string', description: 'State/Province' },
23
+ postalZone: { type: 'string' },
24
+ countryCode: { type: 'string', description: 'ISO 3166-1 alpha-2' },
25
+ },
26
+ required: ['streetName', 'cityName', 'countrySubentity', 'countryCode'],
27
+ },
28
+ tradingName: { type: 'string' },
29
+ registrationNumber: { type: 'string' },
30
+ buyerType: { type: 'string', enum: ['COMPANY', 'INDIVIDUAL', 'OTHER'] },
31
+ },
32
+ required: ['companyName', 'tin', 'email', 'phoneNumber', 'postalAddress'],
33
+ },
34
+ },
35
+ {
36
+ name: 'get_buyer',
37
+ description: 'Get full details of a buyer by ID.',
38
+ inputSchema: {
39
+ type: 'object',
40
+ properties: { buyerId: { type: 'string', description: 'Buyer ID' } },
41
+ required: ['buyerId'],
42
+ },
43
+ },
44
+ {
45
+ name: 'list_buyers',
46
+ description: 'List buyers with optional filtering and search.',
47
+ inputSchema: {
48
+ type: 'object',
49
+ properties: {
50
+ page: { type: 'integer', minimum: 1 },
51
+ limit: { type: 'integer', minimum: 1, maximum: 100 },
52
+ status: { type: 'string', enum: ['PENDING_VERIFICATION', 'ACTIVE', 'SUSPENDED', 'INACTIVE'] },
53
+ search: { type: 'string', description: 'Search by name or TIN' },
54
+ buyerType: { type: 'string', enum: ['COMPANY', 'INDIVIDUAL', 'OTHER'] },
55
+ },
56
+ },
57
+ },
58
+ {
59
+ name: 'update_buyer',
60
+ description: 'Update a buyer. TIN cannot be changed after creation.',
61
+ inputSchema: {
62
+ type: 'object',
63
+ properties: {
64
+ buyerId: { type: 'string', description: 'Buyer ID to update' },
65
+ companyName: { type: 'string' },
66
+ email: { type: 'string' },
67
+ phoneNumber: { type: 'string' },
68
+ postalAddress: { type: 'object' },
69
+ registrationNumber: { type: 'string' },
70
+ },
71
+ required: ['buyerId'],
72
+ },
73
+ },
74
+ {
75
+ name: 'delete_buyer',
76
+ description: 'Delete a buyer that has no invoices.',
77
+ inputSchema: {
78
+ type: 'object',
79
+ properties: { buyerId: { type: 'string', description: 'Buyer ID to delete' } },
80
+ required: ['buyerId'],
81
+ },
82
+ },
83
+ {
84
+ name: 'verify_buyer_tin',
85
+ description: 'Trigger TIN verification for a buyer with FIRS.',
86
+ inputSchema: {
87
+ type: 'object',
88
+ properties: { buyerId: { type: 'string', description: 'Buyer ID' } },
89
+ required: ['buyerId'],
90
+ },
91
+ },
92
+ {
93
+ name: 'get_buyer_verification_status',
94
+ description: 'Check the TIN verification status of a buyer.',
95
+ inputSchema: {
96
+ type: 'object',
97
+ properties: { buyerId: { type: 'string', description: 'Buyer ID' } },
98
+ required: ['buyerId'],
99
+ },
100
+ },
101
+ ];
102
+ async function handleBuyerTool(name, args, client) {
103
+ try {
104
+ switch (name) {
105
+ case 'create_buyer': {
106
+ const res = await client.createBuyer(args);
107
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `Buyer "${res.data.partyName}" created (${res.data.tinVerificationStatus}).`) }] };
108
+ }
109
+ case 'get_buyer': {
110
+ const id = (0, format_js_1.requiredParam)(args, 'buyerId');
111
+ const res = await client.getBuyer(id);
112
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res) }] };
113
+ }
114
+ case 'list_buyers': {
115
+ const res = await client.listBuyers(args);
116
+ const count = Array.isArray(res.data) ? res.data.length : 0;
117
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `Found ${res.meta.pagination?.total ?? count} buyers.`) }] };
118
+ }
119
+ case 'update_buyer': {
120
+ const id = (0, format_js_1.requiredParam)(args, 'buyerId');
121
+ const { buyerId: _, ...body } = args;
122
+ const res = await client.updateBuyer(id, body);
123
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `Buyer "${res.data.partyName}" updated.`) }] };
124
+ }
125
+ case 'delete_buyer': {
126
+ const id = (0, format_js_1.requiredParam)(args, 'buyerId');
127
+ const res = await client.deleteBuyer(id);
128
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, 'Buyer deleted.') }] };
129
+ }
130
+ case 'verify_buyer_tin': {
131
+ const id = (0, format_js_1.requiredParam)(args, 'buyerId');
132
+ const res = await client.verifyBuyerTin(id);
133
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `TIN verification: ${res.data.tinVerificationStatus}`) }] };
134
+ }
135
+ case 'get_buyer_verification_status': {
136
+ const id = (0, format_js_1.requiredParam)(args, 'buyerId');
137
+ const res = await client.getBuyerVerificationStatus(id);
138
+ return { content: [{ type: 'text', text: (0, format_js_1.formatSuccess)(res, `TIN status: ${res.data.tinVerificationStatus}`) }] };
139
+ }
140
+ default:
141
+ return { content: [{ type: 'text', text: `Unknown buyer tool: ${name}` }], isError: true };
142
+ }
143
+ }
144
+ catch (error) {
145
+ return { content: [{ type: 'text', text: (0, format_js_1.formatError)(error) }], isError: true };
146
+ }
147
+ }
148
+ //# sourceMappingURL=buyer-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buyer-tools.js","sourceRoot":"","sources":["../../src/tools/buyer-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { invoiceToolDefinitions, handleInvoiceTool } from './invoice-tools.js';
2
+ export { sellerToolDefinitions, handleSellerTool } from './seller-tools.js';
3
+ export { buyerToolDefinitions, handleBuyerTool } from './buyer-tools.js';
4
+ export { billingToolDefinitions, handleBillingTool } from './billing-tools.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleBillingTool = exports.billingToolDefinitions = exports.handleBuyerTool = exports.buyerToolDefinitions = exports.handleSellerTool = exports.sellerToolDefinitions = exports.handleInvoiceTool = exports.invoiceToolDefinitions = void 0;
4
+ var invoice_tools_js_1 = require("./invoice-tools.js");
5
+ Object.defineProperty(exports, "invoiceToolDefinitions", { enumerable: true, get: function () { return invoice_tools_js_1.invoiceToolDefinitions; } });
6
+ Object.defineProperty(exports, "handleInvoiceTool", { enumerable: true, get: function () { return invoice_tools_js_1.handleInvoiceTool; } });
7
+ var seller_tools_js_1 = require("./seller-tools.js");
8
+ Object.defineProperty(exports, "sellerToolDefinitions", { enumerable: true, get: function () { return seller_tools_js_1.sellerToolDefinitions; } });
9
+ Object.defineProperty(exports, "handleSellerTool", { enumerable: true, get: function () { return seller_tools_js_1.handleSellerTool; } });
10
+ var buyer_tools_js_1 = require("./buyer-tools.js");
11
+ Object.defineProperty(exports, "buyerToolDefinitions", { enumerable: true, get: function () { return buyer_tools_js_1.buyerToolDefinitions; } });
12
+ Object.defineProperty(exports, "handleBuyerTool", { enumerable: true, get: function () { return buyer_tools_js_1.handleBuyerTool; } });
13
+ var billing_tools_js_1 = require("./billing-tools.js");
14
+ Object.defineProperty(exports, "billingToolDefinitions", { enumerable: true, get: function () { return billing_tools_js_1.billingToolDefinitions; } });
15
+ Object.defineProperty(exports, "handleBillingTool", { enumerable: true, get: function () { return billing_tools_js_1.handleBillingTool; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;AAAA,uDAA+E;AAAtE,0HAAA,sBAAsB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAClD,qDAA4E;AAAnE,wHAAA,qBAAqB,OAAA;AAAE,mHAAA,gBAAgB,OAAA;AAChD,mDAAyE;AAAhE,sHAAA,oBAAoB,OAAA;AAAE,iHAAA,eAAe,OAAA;AAC9C,uDAA+E;AAAtE,0HAAA,sBAAsB,OAAA;AAAE,qHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,11 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import type { InvoiceClient } from '../client/invoice-client.js';
3
+ export declare const invoiceToolDefinitions: Tool[];
4
+ export declare function handleInvoiceTool(name: string, args: Record<string, unknown>, client: InvoiceClient): Promise<{
5
+ content: Array<{
6
+ type: 'text';
7
+ text: string;
8
+ }>;
9
+ isError?: boolean;
10
+ }>;
11
+ //# sourceMappingURL=invoice-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice-tools.d.ts","sourceRoot":"","sources":["../../src/tools/invoice-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAKjE,eAAO,MAAM,sBAAsB,EAAE,IAAI,EA0NxC,CAAC;AAIF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAyFhF"}