@sardis/mcp-server 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/CLAUDE_DESKTOP_CONFIG.md +180 -0
  3. package/LICENSE +21 -0
  4. package/README.md +375 -0
  5. package/dist/api.d.ts +25 -0
  6. package/dist/api.d.ts.map +1 -0
  7. package/dist/api.js +70 -0
  8. package/dist/api.js.map +1 -0
  9. package/dist/cli.d.ts +12 -0
  10. package/dist/cli.d.ts.map +1 -0
  11. package/dist/cli.js +274 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/config.d.ts +47 -0
  14. package/dist/config.d.ts.map +1 -0
  15. package/dist/config.js +82 -0
  16. package/dist/config.js.map +1 -0
  17. package/dist/index.d.ts +61 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +255 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/tools/agents.d.ts +7 -0
  22. package/dist/tools/agents.d.ts.map +1 -0
  23. package/dist/tools/agents.js +219 -0
  24. package/dist/tools/agents.js.map +1 -0
  25. package/dist/tools/approvals.d.ts +9 -0
  26. package/dist/tools/approvals.d.ts.map +1 -0
  27. package/dist/tools/approvals.js +308 -0
  28. package/dist/tools/approvals.js.map +1 -0
  29. package/dist/tools/cards.d.ts +9 -0
  30. package/dist/tools/cards.d.ts.map +1 -0
  31. package/dist/tools/cards.js +415 -0
  32. package/dist/tools/cards.js.map +1 -0
  33. package/dist/tools/fiat.d.ts +9 -0
  34. package/dist/tools/fiat.d.ts.map +1 -0
  35. package/dist/tools/fiat.js +394 -0
  36. package/dist/tools/fiat.js.map +1 -0
  37. package/dist/tools/holds.d.ts +7 -0
  38. package/dist/tools/holds.d.ts.map +1 -0
  39. package/dist/tools/holds.js +403 -0
  40. package/dist/tools/holds.js.map +1 -0
  41. package/dist/tools/index.d.ts +70 -0
  42. package/dist/tools/index.d.ts.map +1 -0
  43. package/dist/tools/index.js +152 -0
  44. package/dist/tools/index.js.map +1 -0
  45. package/dist/tools/payments.d.ts +47 -0
  46. package/dist/tools/payments.d.ts.map +1 -0
  47. package/dist/tools/payments.js +447 -0
  48. package/dist/tools/payments.js.map +1 -0
  49. package/dist/tools/policy.d.ts +41 -0
  50. package/dist/tools/policy.d.ts.map +1 -0
  51. package/dist/tools/policy.js +450 -0
  52. package/dist/tools/policy.js.map +1 -0
  53. package/dist/tools/spending.d.ts +9 -0
  54. package/dist/tools/spending.d.ts.map +1 -0
  55. package/dist/tools/spending.js +324 -0
  56. package/dist/tools/spending.js.map +1 -0
  57. package/dist/tools/types.d.ts +247 -0
  58. package/dist/tools/types.d.ts.map +1 -0
  59. package/dist/tools/types.js +71 -0
  60. package/dist/tools/types.js.map +1 -0
  61. package/dist/tools/wallet-management.d.ts +9 -0
  62. package/dist/tools/wallet-management.d.ts.map +1 -0
  63. package/dist/tools/wallet-management.js +222 -0
  64. package/dist/tools/wallet-management.js.map +1 -0
  65. package/dist/tools/wallets.d.ts +15 -0
  66. package/dist/tools/wallets.d.ts.map +1 -0
  67. package/dist/tools/wallets.js +112 -0
  68. package/dist/tools/wallets.js.map +1 -0
  69. package/mcp.json +283 -0
  70. package/package.json +145 -0
@@ -0,0 +1,308 @@
1
+ /**
2
+ * Approval Flow tools for MCP server
3
+ *
4
+ * Tools for requesting human approval for payments that exceed limits.
5
+ */
6
+ import { z } from 'zod';
7
+ import { getConfig } from '../config.js';
8
+ import { apiRequest } from '../api.js';
9
+ // Schemas
10
+ const RequestApprovalSchema = z.object({
11
+ action: z.string().describe('Type of action requiring approval'),
12
+ vendor: z.string().optional().describe('Vendor for the payment'),
13
+ amount: z.number().optional().describe('Payment amount requiring approval'),
14
+ reason: z.string().optional().describe('Reason for the approval request'),
15
+ purpose: z.string().optional().describe('Purpose of the payment'),
16
+ card_limit: z.number().optional().describe('Card limit (for create_card action)'),
17
+ urgency: z.enum(['low', 'medium', 'high']).optional().describe('How urgent is this approval'),
18
+ expires_in_hours: z.number().optional().describe('Hours until request expires (default: 24)'),
19
+ });
20
+ const ApprovalStatusSchema = z.object({
21
+ approval_id: z.string().describe('Approval request ID'),
22
+ });
23
+ // Tool definitions
24
+ export const approvalToolDefinitions = [
25
+ {
26
+ name: 'sardis_request_approval',
27
+ description: 'Request human approval for a payment that exceeds policy limits or requires manual review.',
28
+ inputSchema: {
29
+ type: 'object',
30
+ properties: {
31
+ action: { type: 'string', description: 'Type of action requiring approval (payment, create_card, etc.)' },
32
+ vendor: { type: 'string', description: 'Vendor for the payment' },
33
+ amount: { type: 'number', description: 'Payment amount requiring approval' },
34
+ reason: { type: 'string', description: 'Reason for the approval request' },
35
+ purpose: { type: 'string', description: 'Purpose of the payment' },
36
+ card_limit: { type: 'number', description: 'Card limit (for create_card action)' },
37
+ urgency: {
38
+ type: 'string',
39
+ enum: ['low', 'medium', 'high'],
40
+ description: 'How urgent is this approval request',
41
+ },
42
+ expires_in_hours: { type: 'number', description: 'Hours until request expires (default: 24)' },
43
+ },
44
+ required: ['action'],
45
+ },
46
+ },
47
+ {
48
+ name: 'sardis_get_approval_status',
49
+ description: 'Check the status of a pending approval request.',
50
+ inputSchema: {
51
+ type: 'object',
52
+ properties: {
53
+ approval_id: { type: 'string', description: 'Approval request ID' },
54
+ },
55
+ required: ['approval_id'],
56
+ },
57
+ },
58
+ {
59
+ name: 'sardis_check_approval',
60
+ description: 'Check the status of an approval request (alias for sardis_get_approval_status).',
61
+ inputSchema: {
62
+ type: 'object',
63
+ properties: {
64
+ approval_id: { type: 'string', description: 'Approval request ID' },
65
+ },
66
+ required: ['approval_id'],
67
+ },
68
+ },
69
+ {
70
+ name: 'sardis_list_pending_approvals',
71
+ description: 'List all pending approval requests.',
72
+ inputSchema: {
73
+ type: 'object',
74
+ properties: {
75
+ action: { type: 'string', description: 'Filter by action type' },
76
+ limit: { type: 'number', description: 'Maximum number of results' },
77
+ },
78
+ required: [],
79
+ },
80
+ },
81
+ {
82
+ name: 'sardis_cancel_approval',
83
+ description: 'Cancel a pending approval request.',
84
+ inputSchema: {
85
+ type: 'object',
86
+ properties: {
87
+ approval_id: { type: 'string', description: 'Approval request ID to cancel' },
88
+ reason: { type: 'string', description: 'Reason for cancellation' },
89
+ },
90
+ required: ['approval_id'],
91
+ },
92
+ },
93
+ ];
94
+ // Tool handlers
95
+ export const approvalToolHandlers = {
96
+ sardis_request_approval: async (args) => {
97
+ const parsed = RequestApprovalSchema.safeParse(args);
98
+ if (!parsed.success) {
99
+ return {
100
+ content: [{ type: 'text', text: `Invalid request: ${parsed.error.message}` }],
101
+ isError: true,
102
+ };
103
+ }
104
+ const config = getConfig();
105
+ if (!config.apiKey || config.mode === 'simulated') {
106
+ const approvalId = `appr_${Date.now().toString(36)}`;
107
+ const expiresAt = new Date(Date.now() + (parsed.data.expires_in_hours || 24) * 3600000).toISOString();
108
+ const description = parsed.data.action === 'payment' && parsed.data.vendor && parsed.data.amount
109
+ ? `$${parsed.data.amount} payment to ${parsed.data.vendor}`
110
+ : parsed.data.action === 'create_card'
111
+ ? `Create card with limit $${parsed.data.card_limit || 'unlimited'}`
112
+ : parsed.data.action;
113
+ return {
114
+ content: [{
115
+ type: 'text',
116
+ text: JSON.stringify({
117
+ approval_id: approvalId,
118
+ action: parsed.data.action,
119
+ vendor: parsed.data.vendor,
120
+ amount: parsed.data.amount,
121
+ reason: parsed.data.reason,
122
+ purpose: parsed.data.purpose,
123
+ card_limit: parsed.data.card_limit,
124
+ status: 'pending',
125
+ urgency: parsed.data.urgency || 'medium',
126
+ requested_by: config.agentId || 'agent_simulated',
127
+ created_at: new Date().toISOString(),
128
+ expires_at: expiresAt,
129
+ message: `Approval request submitted. Human review required for ${description}.`,
130
+ next_steps: 'The request will be reviewed by an authorized approver. Check status using sardis_get_approval_status.',
131
+ }, null, 2),
132
+ }],
133
+ };
134
+ }
135
+ try {
136
+ const result = await apiRequest('POST', '/api/v2/approvals', parsed.data);
137
+ return {
138
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
139
+ };
140
+ }
141
+ catch (error) {
142
+ return {
143
+ content: [{
144
+ type: 'text',
145
+ text: `Failed to request approval: ${error instanceof Error ? error.message : 'Unknown error'}`,
146
+ }],
147
+ isError: true,
148
+ };
149
+ }
150
+ },
151
+ sardis_get_approval_status: async (args) => {
152
+ const parsed = ApprovalStatusSchema.safeParse(args);
153
+ if (!parsed.success) {
154
+ return {
155
+ content: [{ type: 'text', text: `Invalid request: ${parsed.error.message}` }],
156
+ isError: true,
157
+ };
158
+ }
159
+ const config = getConfig();
160
+ if (!config.apiKey || config.mode === 'simulated') {
161
+ // Simulate random status for demo
162
+ const statuses = ['pending', 'approved', 'denied'];
163
+ const status = statuses[Math.floor(Math.random() * statuses.length)];
164
+ return {
165
+ content: [{
166
+ type: 'text',
167
+ text: JSON.stringify({
168
+ approval_id: parsed.data.approval_id,
169
+ action: 'payment',
170
+ vendor: 'Example Vendor',
171
+ amount: 500,
172
+ purpose: 'Service payment',
173
+ status,
174
+ urgency: 'medium',
175
+ requested_by: 'agent_simulated',
176
+ reviewed_by: status !== 'pending' ? 'admin@example.com' : undefined,
177
+ created_at: new Date(Date.now() - 3600000).toISOString(),
178
+ expires_at: new Date(Date.now() + 20 * 3600000).toISOString(),
179
+ reviewed_at: status !== 'pending' ? new Date().toISOString() : undefined,
180
+ }, null, 2),
181
+ }],
182
+ };
183
+ }
184
+ try {
185
+ const result = await apiRequest('GET', `/api/v2/approvals/${parsed.data.approval_id}`);
186
+ return {
187
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
188
+ };
189
+ }
190
+ catch (error) {
191
+ return {
192
+ content: [{
193
+ type: 'text',
194
+ text: `Failed to get approval status: ${error instanceof Error ? error.message : 'Unknown error'}`,
195
+ }],
196
+ isError: true,
197
+ };
198
+ }
199
+ },
200
+ sardis_check_approval: async (args) => {
201
+ // Alias for sardis_get_approval_status
202
+ const handler = approvalToolHandlers['sardis_get_approval_status'];
203
+ if (!handler) {
204
+ return {
205
+ content: [{ type: 'text', text: 'Handler not found' }],
206
+ isError: true,
207
+ };
208
+ }
209
+ return handler(args);
210
+ },
211
+ sardis_list_pending_approvals: async (args) => {
212
+ const config = getConfig();
213
+ const actionFilter = typeof args === 'object' && args !== null && 'action' in args
214
+ ? args.action
215
+ : undefined;
216
+ if (!config.apiKey || config.mode === 'simulated') {
217
+ const mockApprovals = [
218
+ {
219
+ approval_id: 'appr_pending_1',
220
+ action: 'payment',
221
+ vendor: 'OpenAI',
222
+ amount: 500,
223
+ status: 'pending',
224
+ urgency: 'high',
225
+ created_at: new Date(Date.now() - 3600000).toISOString(),
226
+ },
227
+ {
228
+ approval_id: 'appr_pending_2',
229
+ action: 'create_card',
230
+ card_limit: 1000,
231
+ status: 'pending',
232
+ urgency: 'medium',
233
+ created_at: new Date(Date.now() - 7200000).toISOString(),
234
+ },
235
+ ];
236
+ const filtered = actionFilter
237
+ ? mockApprovals.filter(a => a.action === actionFilter)
238
+ : mockApprovals;
239
+ return {
240
+ content: [{
241
+ type: 'text',
242
+ text: JSON.stringify(filtered, null, 2),
243
+ }],
244
+ };
245
+ }
246
+ try {
247
+ const params = new URLSearchParams({ status: 'pending' });
248
+ if (actionFilter)
249
+ params.append('action', actionFilter);
250
+ const result = await apiRequest('GET', `/api/v2/approvals?${params}`);
251
+ return {
252
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
253
+ };
254
+ }
255
+ catch (error) {
256
+ return {
257
+ content: [{
258
+ type: 'text',
259
+ text: `Failed to list approvals: ${error instanceof Error ? error.message : 'Unknown error'}`,
260
+ }],
261
+ isError: true,
262
+ };
263
+ }
264
+ },
265
+ sardis_cancel_approval: async (args) => {
266
+ const parsed = ApprovalStatusSchema.safeParse(args);
267
+ if (!parsed.success) {
268
+ return {
269
+ content: [{ type: 'text', text: `Invalid request: ${parsed.error.message}` }],
270
+ isError: true,
271
+ };
272
+ }
273
+ const config = getConfig();
274
+ const reason = typeof args === 'object' && args !== null && 'reason' in args
275
+ ? args.reason
276
+ : 'Cancelled by agent';
277
+ if (!config.apiKey || config.mode === 'simulated') {
278
+ return {
279
+ content: [{
280
+ type: 'text',
281
+ text: JSON.stringify({
282
+ approval_id: parsed.data.approval_id,
283
+ status: 'cancelled',
284
+ reason,
285
+ cancelled_at: new Date().toISOString(),
286
+ message: 'Approval request cancelled successfully',
287
+ }, null, 2),
288
+ }],
289
+ };
290
+ }
291
+ try {
292
+ const result = await apiRequest('DELETE', `/api/v2/approvals/${parsed.data.approval_id}`, { reason });
293
+ return {
294
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
295
+ };
296
+ }
297
+ catch (error) {
298
+ return {
299
+ content: [{
300
+ type: 'text',
301
+ text: `Failed to cancel approval: ${error instanceof Error ? error.message : 'Unknown error'}`,
302
+ }],
303
+ isError: true,
304
+ };
305
+ }
306
+ },
307
+ };
308
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/tools/approvals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Virtual Card tools for MCP server
3
+ *
4
+ * Tools for issuing and managing virtual Visa/Mastercard cards via Lithic integration.
5
+ */
6
+ import type { ToolDefinition, ToolHandler } from './types.js';
7
+ export declare const cardToolDefinitions: ToolDefinition[];
8
+ export declare const cardToolHandlers: Record<string, ToolHandler>;
9
+ //# sourceMappingURL=cards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../../src/tools/cards.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAc,MAAM,YAAY,CAAC;AAwC1E,eAAO,MAAM,mBAAmB,EAAE,cAAc,EAqF/C,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAuTxD,CAAC"}