@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.
- package/LICENSE +21 -0
- package/README.md +133 -0
- package/bin/cli.js +2 -0
- package/dist/client/billing-client.d.ts +19 -0
- package/dist/client/billing-client.d.ts.map +1 -0
- package/dist/client/billing-client.js +62 -0
- package/dist/client/billing-client.js.map +1 -0
- package/dist/client/http-client.d.ts +44 -0
- package/dist/client/http-client.d.ts.map +1 -0
- package/dist/client/http-client.js +117 -0
- package/dist/client/http-client.js.map +1 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +12 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/invoice-client.d.ts +42 -0
- package/dist/client/invoice-client.d.ts.map +1 -0
- package/dist/client/invoice-client.js +107 -0
- package/dist/client/invoice-client.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +87 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/billing-tools.d.ts +11 -0
- package/dist/tools/billing-tools.d.ts.map +1 -0
- package/dist/tools/billing-tools.js +209 -0
- package/dist/tools/billing-tools.js.map +1 -0
- package/dist/tools/buyer-tools.d.ts +11 -0
- package/dist/tools/buyer-tools.d.ts.map +1 -0
- package/dist/tools/buyer-tools.js +148 -0
- package/dist/tools/buyer-tools.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/invoice-tools.d.ts +11 -0
- package/dist/tools/invoice-tools.d.ts.map +1 -0
- package/dist/tools/invoice-tools.js +319 -0
- package/dist/tools/invoice-tools.js.map +1 -0
- package/dist/tools/seller-tools.d.ts +11 -0
- package/dist/tools/seller-tools.d.ts.map +1 -0
- package/dist/tools/seller-tools.js +149 -0
- package/dist/tools/seller-tools.js.map +1 -0
- package/dist/types/billing.d.ts +145 -0
- package/dist/types/billing.d.ts.map +1 -0
- package/dist/types/billing.js +4 -0
- package/dist/types/billing.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/invoice.d.ts +197 -0
- package/dist/types/invoice.d.ts.map +1 -0
- package/dist/types/invoice.js +4 -0
- package/dist/types/invoice.js.map +1 -0
- package/dist/utils/format.d.ts +14 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +51 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +59 -0
package/dist/index.d.ts
ADDED
|
@@ -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":";;;AAgCA,oCAwEC;AAvGD,oEAAoE;AACpE,wEAAiF;AACjF,4DAAqD;AACrD,kEAA2D;AAC3D,kEAA2D;AAC3D,+CAK0B;AAE1B,4DAA4D;AAE5D,SAAS,SAAS;IAChB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO;QACL,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,yBAAyB;QACnE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,EAAE,EAAE,CAAC;QACtE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,GAAG,EAAE,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,4DAA4D;AAE5D,SAAgB,YAAY,CAAC,MAK5B;IACC,MAAM,GAAG,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;IAElC,MAAM,UAAU,GAAG,IAAI,2BAAU,CAAC;QAChC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,yBAAyB;QACjD,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,iCAAa,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,IAAI,iCAAa,CAAC,UAAU,CAAC,CAAC;IAEpD,+BAA+B;IAC/B,MAAM,QAAQ,GAAG;QACf,GAAG,iCAAsB;QACzB,GAAG,gCAAqB;QACxB,GAAG,+BAAoB;QACvB,GAAG,iCAAsB;KAC1B,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,iCAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gCAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,+BAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,iCAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5E,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;QAC3B,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAEhC,SAAS,CAAC,iBAAiB,CACzB,EAAE,MAAM,EAAE,YAAY,EAAS,EAC/B,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAClC,CAAC;IAEF,SAAS,CAAC,iBAAiB,CACzB,EAAE,MAAM,EAAE,YAAY,EAAS,EAC/B,KAAK,EAAE,OAAY,EAAE,EAAE;QACrB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACjD,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;QAEzD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAA,4BAAiB,EAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAA,2BAAgB,EAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAA,0BAAe,EAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAA,4BAAiB,EAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;YAC1D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAC9D,CAAC;AAED,4DAA4D;AAE5D,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -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"}
|