@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.
- package/bin/mcp-server.js +39 -8
- package/bin/mcp-server.js.map +12 -11
- package/jsr.json +1 -1
- package/lib/config.d.ts +3 -3
- package/lib/config.js +3 -3
- package/mcp-server/extensions.d.ts +2 -0
- package/mcp-server/extensions.d.ts.map +1 -1
- package/mcp-server/mcp-server.js +1 -1
- package/mcp-server/prompts.d.ts +26 -0
- package/mcp-server/prompts.d.ts.map +1 -0
- package/mcp-server/prompts.js +47 -0
- package/mcp-server/prompts.js.map +1 -0
- package/mcp-server/resources.d.ts.map +1 -1
- package/mcp-server/resources.js +1 -0
- package/mcp-server/resources.js.map +1 -1
- package/mcp-server/server.d.ts.map +1 -1
- package/mcp-server/server.js +4 -2
- package/mcp-server/server.js.map +1 -1
- package/mcp-server/tools.d.ts.map +1 -1
- package/mcp-server/tools.js +1 -0
- package/mcp-server/tools.js.map +1 -1
- package/models/components/createtransfersource.d.ts +2 -0
- package/models/components/createtransfersource.d.ts.map +1 -1
- package/models/components/createtransfersource.js +2 -0
- package/models/components/createtransfersource.js.map +1 -1
- package/models/components/transfersource.d.ts +6 -0
- package/models/components/transfersource.d.ts.map +1 -1
- package/models/components/transfersource.js +3 -0
- package/models/components/transfersource.js.map +1 -1
- package/models/components/wallettransactionsourcetype.d.ts +3 -0
- package/models/components/wallettransactionsourcetype.d.ts.map +1 -1
- package/models/components/wallettransactionsourcetype.js +1 -0
- package/models/components/wallettransactionsourcetype.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/config.ts +3 -3
- package/src/mcp-server/extensions.ts +4 -0
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/prompts.ts +110 -0
- package/src/mcp-server/resources.ts +1 -0
- package/src/mcp-server/server.ts +4 -2
- package/src/mcp-server/tools.ts +1 -0
- package/src/models/components/createtransfersource.ts +4 -0
- package/src/models/components/transfersource.ts +13 -0
- 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
|
+
}
|
package/src/mcp-server/server.ts
CHANGED
|
@@ -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.
|
|
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
|
|
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);
|
package/src/mcp-server/tools.ts
CHANGED
|
@@ -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
|