@moovio/sdk 0.8.1 → 0.9.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 (44) hide show
  1. package/bin/mcp-server.js +39 -8
  2. package/bin/mcp-server.js.map +12 -11
  3. package/jsr.json +1 -1
  4. package/lib/config.d.ts +3 -3
  5. package/lib/config.js +3 -3
  6. package/mcp-server/extensions.d.ts +2 -0
  7. package/mcp-server/extensions.d.ts.map +1 -1
  8. package/mcp-server/mcp-server.js +1 -1
  9. package/mcp-server/prompts.d.ts +26 -0
  10. package/mcp-server/prompts.d.ts.map +1 -0
  11. package/mcp-server/prompts.js +47 -0
  12. package/mcp-server/prompts.js.map +1 -0
  13. package/mcp-server/resources.d.ts.map +1 -1
  14. package/mcp-server/resources.js +1 -0
  15. package/mcp-server/resources.js.map +1 -1
  16. package/mcp-server/server.d.ts.map +1 -1
  17. package/mcp-server/server.js +4 -2
  18. package/mcp-server/server.js.map +1 -1
  19. package/mcp-server/tools.d.ts.map +1 -1
  20. package/mcp-server/tools.js +1 -0
  21. package/mcp-server/tools.js.map +1 -1
  22. package/models/components/createtransfersource.d.ts +2 -0
  23. package/models/components/createtransfersource.d.ts.map +1 -1
  24. package/models/components/createtransfersource.js +2 -0
  25. package/models/components/createtransfersource.js.map +1 -1
  26. package/models/components/transfersource.d.ts +6 -0
  27. package/models/components/transfersource.d.ts.map +1 -1
  28. package/models/components/transfersource.js +3 -0
  29. package/models/components/transfersource.js.map +1 -1
  30. package/models/components/wallettransactionsourcetype.d.ts +3 -0
  31. package/models/components/wallettransactionsourcetype.d.ts.map +1 -1
  32. package/models/components/wallettransactionsourcetype.js +1 -0
  33. package/models/components/wallettransactionsourcetype.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/lib/config.ts +3 -3
  36. package/src/mcp-server/extensions.ts +4 -0
  37. package/src/mcp-server/mcp-server.ts +1 -1
  38. package/src/mcp-server/prompts.ts +110 -0
  39. package/src/mcp-server/resources.ts +1 -0
  40. package/src/mcp-server/server.ts +4 -2
  41. package/src/mcp-server/tools.ts +1 -0
  42. package/src/models/components/createtransfersource.ts +4 -0
  43. package/src/models/components/transfersource.ts +13 -0
  44. package/src/models/components/wallettransactionsourcetype.ts +1 -0
@@ -0,0 +1,110 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ import { RequestHandlerExtra } from "@modelcontextprotocol/sdk/shared/protocol.js";
7
+ import { GetPromptResult } from "@modelcontextprotocol/sdk/types.js";
8
+ import {
9
+ objectOutputType,
10
+ ZodOptional,
11
+ ZodType,
12
+ ZodTypeAny,
13
+ ZodTypeDef,
14
+ } from "zod";
15
+ import { MoovCore } from "../core.js";
16
+ import { ConsoleLogger } from "./console-logger.js";
17
+ import { MCPScope } from "./scopes.js";
18
+
19
+ // '@modelcontextprotocol/sdk' currently does not export this type
20
+ export type PromptArgsRawShape = {
21
+ [k: string]:
22
+ | ZodType<string, ZodTypeDef, string>
23
+ | ZodOptional<ZodType<string, ZodTypeDef, string>>;
24
+ };
25
+
26
+ export type PromptDefinition<
27
+ Args extends undefined | PromptArgsRawShape = undefined,
28
+ > = Args extends PromptArgsRawShape ? {
29
+ name: string;
30
+ description?: string;
31
+ scopes?: MCPScope[];
32
+ args: Args;
33
+ prompt: (
34
+ client: MoovCore,
35
+ args: objectOutputType<Args, ZodTypeAny>,
36
+ extra: RequestHandlerExtra,
37
+ ) => GetPromptResult | Promise<GetPromptResult>;
38
+ }
39
+ : {
40
+ name: string;
41
+ description?: string;
42
+ scopes?: MCPScope[];
43
+ args?: undefined;
44
+ prompt: (
45
+ client: MoovCore,
46
+ extra: RequestHandlerExtra,
47
+ ) => GetPromptResult | Promise<GetPromptResult>;
48
+ };
49
+
50
+ // Optional function to assist with formatting prompt results
51
+ export async function formatResult(value: string): Promise<GetPromptResult> {
52
+ return {
53
+ messages: [
54
+ {
55
+ role: "user",
56
+ content: {
57
+ type: "text",
58
+ text: value,
59
+ },
60
+ },
61
+ ],
62
+ };
63
+ }
64
+
65
+ export function createRegisterPrompt(
66
+ logger: ConsoleLogger,
67
+ server: McpServer,
68
+ sdk: MoovCore,
69
+ allowedScopes: Set<MCPScope>,
70
+ ): <A extends PromptArgsRawShape | undefined>(
71
+ prompt: PromptDefinition<A>,
72
+ ) => void {
73
+ return <A extends PromptArgsRawShape | undefined>(
74
+ prompt: PromptDefinition<A>,
75
+ ): void => {
76
+ const scopes = prompt.scopes ?? [];
77
+ if (!scopes.every((s: MCPScope) => allowedScopes.has(s))) {
78
+ return;
79
+ }
80
+
81
+ if (prompt.args) {
82
+ if (prompt.description) {
83
+ server.prompt(
84
+ prompt.name,
85
+ prompt.description,
86
+ prompt.args,
87
+ async (args, ctx) => prompt.prompt(sdk, args, ctx),
88
+ );
89
+ } else {
90
+ server.prompt(
91
+ prompt.name,
92
+ prompt.args,
93
+ async (args, ctx) => prompt.prompt(sdk, args, ctx),
94
+ );
95
+ }
96
+ } else {
97
+ if (prompt.description) {
98
+ server.prompt(
99
+ prompt.name,
100
+ prompt.description,
101
+ async (ctx) => prompt.prompt(sdk, ctx),
102
+ );
103
+ } else {
104
+ server.prompt(prompt.name, async (ctx) => prompt.prompt(sdk, ctx));
105
+ }
106
+ }
107
+
108
+ logger.debug("Registered prompt", { name: prompt.name });
109
+ };
110
+ }
@@ -46,6 +46,7 @@ export type ResourceTemplateDefinition = {
46
46
  read: ReadResourceTemplateCallback;
47
47
  };
48
48
 
49
+ // Optional function to assist with formatting resource results
49
50
  export async function formatResult(
50
51
  value: unknown,
51
52
  uri: URL,
@@ -6,6 +6,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
6
  import { MoovCore } from "../core.js";
7
7
  import { SDKOptions } from "../lib/config.js";
8
8
  import type { ConsoleLogger } from "./console-logger.js";
9
+ import { createRegisterPrompt } from "./prompts.js";
9
10
  import {
10
11
  createRegisterResource,
11
12
  createRegisterResourceTemplate,
@@ -155,7 +156,7 @@ export function createMCPServer(deps: {
155
156
  }) {
156
157
  const server = new McpServer({
157
158
  name: "Moov",
158
- version: "0.8.1",
159
+ version: "0.9.0",
159
160
  });
160
161
 
161
162
  const client = new MoovCore({
@@ -182,7 +183,8 @@ export function createMCPServer(deps: {
182
183
  client,
183
184
  scopes,
184
185
  );
185
- const register = { tool, resource, resourceTemplate };
186
+ const prompt = createRegisterPrompt(deps.logger, server, client, scopes);
187
+ const register = { tool, resource, resourceTemplate, prompt };
186
188
  void register; // suppress unused warnings
187
189
 
188
190
  tool(tool$accountsCreate);
@@ -34,6 +34,7 @@ export type ToolDefinition<Args extends undefined | ZodRawShape = undefined> =
34
34
  ) => CallToolResult | Promise<CallToolResult>;
35
35
  };
36
36
 
37
+ // Optional function to assist with formatting tool results
37
38
  export async function formatResult(
38
39
  value: unknown,
39
40
  init: { response?: Response | undefined },
@@ -31,6 +31,7 @@ export type CreateTransferSource = {
31
31
  */
32
32
  transferID?: string | undefined;
33
33
  paymentMethodID?: string | undefined;
34
+ paymentToken?: string | undefined;
34
35
  cardDetails?: CreateTransferSourceCard | undefined;
35
36
  achDetails?: CreateTransferSourceACH | undefined;
36
37
  };
@@ -43,6 +44,7 @@ export const CreateTransferSource$inboundSchema: z.ZodType<
43
44
  > = z.object({
44
45
  transferID: z.string().optional(),
45
46
  paymentMethodID: z.string().optional(),
47
+ paymentToken: z.string().optional(),
46
48
  cardDetails: CreateTransferSourceCard$inboundSchema.optional(),
47
49
  achDetails: CreateTransferSourceACH$inboundSchema.optional(),
48
50
  });
@@ -51,6 +53,7 @@ export const CreateTransferSource$inboundSchema: z.ZodType<
51
53
  export type CreateTransferSource$Outbound = {
52
54
  transferID?: string | undefined;
53
55
  paymentMethodID?: string | undefined;
56
+ paymentToken?: string | undefined;
54
57
  cardDetails?: CreateTransferSourceCard$Outbound | undefined;
55
58
  achDetails?: CreateTransferSourceACH$Outbound | undefined;
56
59
  };
@@ -63,6 +66,7 @@ export const CreateTransferSource$outboundSchema: z.ZodType<
63
66
  > = z.object({
64
67
  transferID: z.string().optional(),
65
68
  paymentMethodID: z.string().optional(),
69
+ paymentToken: z.string().optional(),
66
70
  cardDetails: CreateTransferSourceCard$outboundSchema.optional(),
67
71
  achDetails: CreateTransferSourceACH$outboundSchema.optional(),
68
72
  });
@@ -47,6 +47,12 @@ import {
47
47
  PaymentMethodType$inboundSchema,
48
48
  PaymentMethodType$outboundSchema,
49
49
  } from "./paymentmethodtype.js";
50
+ import {
51
+ TerminalCard,
52
+ TerminalCard$inboundSchema,
53
+ TerminalCard$Outbound,
54
+ TerminalCard$outboundSchema,
55
+ } from "./terminalcard.js";
50
56
  import {
51
57
  TransferAccount,
52
58
  TransferAccount$inboundSchema,
@@ -78,6 +84,10 @@ export type TransferSource = {
78
84
  * Describes an Apple Pay token on a Moov account.
79
85
  */
80
86
  applePay?: ApplePayResponse | undefined;
87
+ /**
88
+ * Describes payment card details captured with tap or in-person payment.
89
+ */
90
+ terminalCard?: TerminalCard | undefined;
81
91
  /**
82
92
  * Card-specific details about the transaction.
83
93
  */
@@ -102,6 +112,7 @@ export const TransferSource$inboundSchema: z.ZodType<
102
112
  wallet: PaymentMethodsWallet$inboundSchema.optional(),
103
113
  card: PaymentMethodsCard$inboundSchema.optional(),
104
114
  applePay: ApplePayResponse$inboundSchema.optional(),
115
+ terminalCard: TerminalCard$inboundSchema.optional(),
105
116
  cardDetails: CardTransactionDetails$inboundSchema.optional(),
106
117
  achDetails: ACHTransactionDetails$inboundSchema.optional(),
107
118
  });
@@ -116,6 +127,7 @@ export type TransferSource$Outbound = {
116
127
  wallet?: PaymentMethodsWallet$Outbound | undefined;
117
128
  card?: PaymentMethodsCard$Outbound | undefined;
118
129
  applePay?: ApplePayResponse$Outbound | undefined;
130
+ terminalCard?: TerminalCard$Outbound | undefined;
119
131
  cardDetails?: CardTransactionDetails$Outbound | undefined;
120
132
  achDetails?: ACHTransactionDetails$Outbound | undefined;
121
133
  };
@@ -134,6 +146,7 @@ export const TransferSource$outboundSchema: z.ZodType<
134
146
  wallet: PaymentMethodsWallet$outboundSchema.optional(),
135
147
  card: PaymentMethodsCard$outboundSchema.optional(),
136
148
  applePay: ApplePayResponse$outboundSchema.optional(),
149
+ terminalCard: TerminalCard$outboundSchema.optional(),
137
150
  cardDetails: CardTransactionDetails$outboundSchema.optional(),
138
151
  achDetails: ACHTransactionDetails$outboundSchema.optional(),
139
152
  });
@@ -12,6 +12,7 @@ export const WalletTransactionSourceType = {
12
12
  IssuingAuthorization: "issuing-authorization",
13
13
  Sweep: "sweep",
14
14
  Adjustment: "adjustment",
15
+ Fee: "fee",
15
16
  } as const;
16
17
  export type WalletTransactionSourceType = ClosedEnum<
17
18
  typeof WalletTransactionSourceType