@moovio/sdk 26.2.7 → 26.3.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/README.md +112 -80
- package/bin/mcp-server.js +604 -324
- package/bin/mcp-server.js.map +59 -59
- package/funcs/accountsCreate.d.ts +8 -10
- package/funcs/accountsCreate.d.ts.map +1 -1
- package/funcs/accountsCreate.js +8 -10
- package/funcs/accountsCreate.js.map +1 -1
- package/funcs/capabilitiesDisable.d.ts +1 -1
- package/funcs/capabilitiesDisable.js +1 -1
- package/funcs/capabilitiesGet.d.ts +1 -1
- package/funcs/capabilitiesGet.js +1 -1
- package/funcs/capabilitiesList.d.ts +1 -1
- package/funcs/capabilitiesList.js +1 -1
- package/funcs/capabilitiesRequest.d.ts +1 -1
- package/funcs/capabilitiesRequest.js +1 -1
- package/funcs/cardIssuingGet.js +1 -1
- package/funcs/cardIssuingGet.js.map +1 -1
- package/funcs/cardIssuingGetFull.js +1 -1
- package/funcs/cardIssuingGetFull.js.map +1 -1
- package/funcs/cardIssuingList.js +1 -1
- package/funcs/cardIssuingList.js.map +1 -1
- package/funcs/cardIssuingRequest.js +1 -1
- package/funcs/cardIssuingRequest.js.map +1 -1
- package/funcs/cardIssuingUpdate.js +1 -1
- package/funcs/cardIssuingUpdate.js.map +1 -1
- package/funcs/transfersListCancellations.d.ts +17 -0
- package/funcs/transfersListCancellations.d.ts.map +1 -0
- package/funcs/transfersListCancellations.js +129 -0
- package/funcs/transfersListCancellations.js.map +1 -0
- package/hooks/access-token-hook.d.ts +25 -0
- package/hooks/access-token-hook.d.ts.map +1 -0
- package/hooks/access-token-hook.js +60 -0
- package/hooks/access-token-hook.js.map +1 -0
- package/hooks/registration.d.ts.map +1 -1
- package/hooks/registration.js +4 -0
- package/hooks/registration.js.map +1 -1
- package/hooks/types.d.ts +1 -0
- package/hooks/types.d.ts.map +1 -1
- package/jsr.json +1 -1
- package/lib/config.d.ts +7 -3
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +3 -3
- package/lib/config.js.map +1 -1
- package/lib/encodings.js +12 -12
- package/lib/encodings.js.map +1 -1
- package/lib/matchers.js +3 -3
- package/lib/matchers.js.map +1 -1
- package/lib/primitives.d.ts +1 -0
- package/lib/primitives.d.ts.map +1 -1
- package/lib/primitives.js +18 -0
- package/lib/primitives.js.map +1 -1
- package/lib/retries.js +7 -0
- package/lib/retries.js.map +1 -1
- package/lib/sdks.d.ts.map +1 -1
- package/lib/sdks.js +50 -16
- package/lib/sdks.js.map +1 -1
- package/mcp-server/cli/start/command.d.ts.map +1 -1
- package/mcp-server/cli/start/command.js +8 -0
- package/mcp-server/cli/start/command.js.map +1 -1
- package/mcp-server/cli/start/impl.d.ts +1 -0
- package/mcp-server/cli/start/impl.d.ts.map +1 -1
- package/mcp-server/cli/start/impl.js +2 -0
- package/mcp-server/cli/start/impl.js.map +1 -1
- package/mcp-server/mcp-server.js +1 -1
- package/mcp-server/server.d.ts +1 -0
- package/mcp-server/server.d.ts.map +1 -1
- package/mcp-server/server.js +4 -1
- package/mcp-server/server.js.map +1 -1
- package/mcp-server/tools/accountsCreate.d.ts.map +1 -1
- package/mcp-server/tools/accountsCreate.js +8 -10
- package/mcp-server/tools/accountsCreate.js.map +1 -1
- package/mcp-server/tools/capabilitiesDisable.js +1 -1
- package/mcp-server/tools/capabilitiesGet.js +1 -1
- package/mcp-server/tools/capabilitiesList.js +1 -1
- package/mcp-server/tools/capabilitiesRequest.js +1 -1
- package/mcp-server/tools/transfersListCancellations.d.ts +8 -0
- package/mcp-server/tools/transfersListCancellations.d.ts.map +1 -0
- package/{models/components/authorizeduser.js → mcp-server/tools/transfersListCancellations.js} +27 -22
- package/mcp-server/tools/transfersListCancellations.js.map +1 -0
- package/models/components/addcapabilities.d.ts +9 -0
- package/models/components/addcapabilities.d.ts.map +1 -1
- package/models/components/addcapabilities.js.map +1 -1
- package/models/components/capability.d.ts +7 -1
- package/models/components/capability.d.ts.map +1 -1
- package/models/components/capability.js.map +1 -1
- package/models/components/capabilityid.d.ts +14 -2
- package/models/components/capabilityid.d.ts.map +1 -1
- package/models/components/capabilityid.js +7 -1
- package/models/components/capabilityid.js.map +1 -1
- package/models/components/createaccount.d.ts +9 -0
- package/models/components/createaccount.d.ts.map +1 -1
- package/models/components/createaccount.js.map +1 -1
- package/models/components/createpaymentlink.d.ts +3 -3
- package/models/components/fullissuedcard.d.ts +25 -9
- package/models/components/fullissuedcard.d.ts.map +1 -1
- package/models/components/fullissuedcard.js +11 -5
- package/models/components/fullissuedcard.js.map +1 -1
- package/models/components/index.d.ts +1 -4
- package/models/components/index.d.ts.map +1 -1
- package/models/components/index.js +1 -4
- package/models/components/index.js.map +1 -1
- package/models/components/issuedcard.d.ts +25 -9
- package/models/components/issuedcard.d.ts.map +1 -1
- package/models/components/issuedcard.js +11 -5
- package/models/components/issuedcard.js.map +1 -1
- package/models/components/onboardinginvite.d.ts +1 -1
- package/models/components/onboardinginviterequest.d.ts +1 -1
- package/models/components/paymentlink.d.ts +2 -2
- package/models/components/requestcard.d.ts +14 -17
- package/models/components/requestcard.d.ts.map +1 -1
- package/models/components/requestcard.js +9 -10
- package/models/components/requestcard.js.map +1 -1
- package/models/components/updateissuedcard.d.ts +33 -8
- package/models/components/updateissuedcard.d.ts.map +1 -1
- package/models/components/updateissuedcard.js +35 -6
- package/models/components/updateissuedcard.js.map +1 -1
- package/models/components/webhookdata.d.ts +3 -2
- package/models/components/webhookdata.d.ts.map +1 -1
- package/models/components/webhookdata.js +7 -4
- package/models/components/webhookdata.js.map +1 -1
- package/models/components/webhookdataauthorizationexpiring.d.ts +23 -0
- package/models/components/webhookdataauthorizationexpiring.d.ts.map +1 -0
- package/models/components/{createauthorizedusererror.js → webhookdataauthorizationexpiring.js} +18 -17
- package/models/components/webhookdataauthorizationexpiring.js.map +1 -0
- package/models/components/webhookdatacapabilityrequested.d.ts +7 -1
- package/models/components/webhookdatacapabilityrequested.d.ts.map +1 -1
- package/models/components/webhookdatacapabilityrequested.js.map +1 -1
- package/models/components/webhookdatacapabilityupdated.d.ts +7 -1
- package/models/components/webhookdatacapabilityupdated.d.ts.map +1 -1
- package/models/components/webhookdatacapabilityupdated.js.map +1 -1
- package/models/components/webhookdatasweepcreated.d.ts +5 -0
- package/models/components/webhookdatasweepcreated.d.ts.map +1 -1
- package/models/components/webhookdatasweepcreated.js +2 -0
- package/models/components/webhookdatasweepcreated.js.map +1 -1
- package/models/components/webhookdatasweepupdated.d.ts +5 -0
- package/models/components/webhookdatasweepupdated.d.ts.map +1 -1
- package/models/components/webhookdatasweepupdated.js +2 -0
- package/models/components/webhookdatasweepupdated.js.map +1 -1
- package/models/components/webhookeventtype.d.ts +1 -0
- package/models/components/webhookeventtype.d.ts.map +1 -1
- package/models/components/webhookeventtype.js +1 -0
- package/models/components/webhookeventtype.js.map +1 -1
- package/models/errors/requestcarderror.d.ts +12 -12
- package/models/errors/requestcarderror.d.ts.map +1 -1
- package/models/errors/requestcarderror.js +17 -17
- package/models/errors/requestcarderror.js.map +1 -1
- package/models/errors/updateissuedcarderror.d.ts +9 -6
- package/models/errors/updateissuedcarderror.d.ts.map +1 -1
- package/models/errors/updateissuedcarderror.js +12 -9
- package/models/errors/updateissuedcarderror.js.map +1 -1
- package/models/operations/disablecapability.d.ts +7 -1
- package/models/operations/disablecapability.d.ts.map +1 -1
- package/models/operations/disablecapability.js.map +1 -1
- package/models/operations/getcapability.d.ts +7 -1
- package/models/operations/getcapability.d.ts.map +1 -1
- package/models/operations/getcapability.js.map +1 -1
- package/models/operations/index.d.ts +1 -0
- package/models/operations/index.d.ts.map +1 -1
- package/models/operations/index.js +1 -0
- package/models/operations/index.js.map +1 -1
- package/models/operations/listcancellations.d.ts +45 -0
- package/models/operations/listcancellations.d.ts.map +1 -0
- package/models/operations/listcancellations.js +90 -0
- package/models/operations/listcancellations.js.map +1 -0
- package/package.json +1 -1
- package/sdk/accounts.d.ts +8 -10
- package/sdk/accounts.d.ts.map +1 -1
- package/sdk/accounts.js +8 -10
- package/sdk/accounts.js.map +1 -1
- package/sdk/capabilities.d.ts +4 -4
- package/sdk/capabilities.js +4 -4
- package/sdk/transfers.d.ts +7 -0
- package/sdk/transfers.d.ts.map +1 -1
- package/sdk/transfers.js +10 -0
- package/sdk/transfers.js.map +1 -1
- package/src/funcs/accountsCreate.ts +8 -10
- package/src/funcs/capabilitiesDisable.ts +1 -1
- package/src/funcs/capabilitiesGet.ts +1 -1
- package/src/funcs/capabilitiesList.ts +1 -1
- package/src/funcs/capabilitiesRequest.ts +1 -1
- package/src/funcs/cardIssuingGet.ts +1 -1
- package/src/funcs/cardIssuingGetFull.ts +3 -3
- package/src/funcs/cardIssuingList.ts +1 -1
- package/src/funcs/cardIssuingRequest.ts +1 -1
- package/src/funcs/cardIssuingUpdate.ts +1 -1
- package/src/funcs/transfersListCancellations.ts +181 -0
- package/src/hooks/access-token-hook.ts +73 -0
- package/src/hooks/registration.ts +5 -0
- package/src/hooks/types.ts +1 -0
- package/src/lib/config.ts +8 -3
- package/src/lib/encodings.ts +1 -1
- package/src/lib/matchers.ts +1 -1
- package/src/lib/primitives.ts +16 -0
- package/src/lib/retries.ts +8 -0
- package/src/lib/sdks.ts +54 -17
- package/src/mcp-server/cli/start/command.ts +9 -0
- package/src/mcp-server/cli/start/impl.ts +3 -0
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +5 -1
- package/src/mcp-server/tools/accountsCreate.ts +8 -10
- package/src/mcp-server/tools/capabilitiesDisable.ts +1 -1
- package/src/mcp-server/tools/capabilitiesGet.ts +1 -1
- package/src/mcp-server/tools/capabilitiesList.ts +1 -1
- package/src/mcp-server/tools/capabilitiesRequest.ts +1 -1
- package/src/mcp-server/tools/transfersListCancellations.ts +38 -0
- package/src/models/components/addcapabilities.ts +9 -0
- package/src/models/components/capability.ts +7 -1
- package/src/models/components/capabilityid.ts +14 -2
- package/src/models/components/createaccount.ts +9 -0
- package/src/models/components/createpaymentlink.ts +3 -3
- package/src/models/components/fullissuedcard.ts +35 -17
- package/src/models/components/index.ts +1 -4
- package/src/models/components/issuedcard.ts +35 -17
- package/src/models/components/onboardinginvite.ts +1 -1
- package/src/models/components/onboardinginviterequest.ts +1 -1
- package/src/models/components/paymentlink.ts +2 -2
- package/src/models/components/requestcard.ts +23 -34
- package/src/models/components/updateissuedcard.ts +73 -17
- package/src/models/components/webhookdata.ts +18 -8
- package/src/models/components/webhookdataauthorizationexpiring.ts +65 -0
- package/src/models/components/webhookdatacapabilityrequested.ts +7 -1
- package/src/models/components/webhookdatacapabilityupdated.ts +7 -1
- package/src/models/components/webhookdatasweepcreated.ts +7 -0
- package/src/models/components/webhookdatasweepupdated.ts +7 -0
- package/src/models/components/webhookeventtype.ts +1 -0
- package/src/models/errors/requestcarderror.ts +26 -25
- package/src/models/errors/updateissuedcarderror.ts +18 -13
- package/src/models/operations/disablecapability.ts +7 -1
- package/src/models/operations/getcapability.ts +7 -1
- package/src/models/operations/index.ts +1 -0
- package/src/models/operations/listcancellations.ts +120 -0
- package/src/sdk/accounts.ts +8 -10
- package/src/sdk/capabilities.ts +4 -4
- package/src/sdk/transfers.ts +18 -0
- package/src/types/async.ts +8 -7
- package/test/tests/accessToken.test.ts +86 -0
- package/types/async.d.ts.map +1 -1
- package/types/async.js +8 -7
- package/types/async.js.map +1 -1
- package/lib/dlv.d.ts +0 -14
- package/lib/dlv.d.ts.map +0 -1
- package/lib/dlv.js +0 -49
- package/lib/dlv.js.map +0 -1
- package/lib/is-plain-object.d.ts +0 -2
- package/lib/is-plain-object.d.ts.map +0 -1
- package/lib/is-plain-object.js +0 -41
- package/lib/is-plain-object.js.map +0 -1
- package/models/components/authorizeduser.d.ts +0 -22
- package/models/components/authorizeduser.d.ts.map +0 -1
- package/models/components/authorizeduser.js.map +0 -1
- package/models/components/createauthorizeduser.d.ts +0 -25
- package/models/components/createauthorizeduser.d.ts.map +0 -1
- package/models/components/createauthorizeduser.js +0 -63
- package/models/components/createauthorizeduser.js.map +0 -1
- package/models/components/createauthorizedusererror.d.ts +0 -22
- package/models/components/createauthorizedusererror.d.ts.map +0 -1
- package/models/components/createauthorizedusererror.js.map +0 -1
- package/models/components/createauthorizeduserupdate.d.ts +0 -25
- package/models/components/createauthorizeduserupdate.d.ts.map +0 -1
- package/models/components/createauthorizeduserupdate.js +0 -63
- package/models/components/createauthorizeduserupdate.js.map +0 -1
- package/src/lib/dlv.ts +0 -53
- package/src/lib/is-plain-object.ts +0 -43
- package/src/models/components/authorizeduser.ts +0 -54
- package/src/models/components/createauthorizeduser.ts +0 -68
- package/src/models/components/createauthorizedusererror.ts +0 -65
- package/src/models/components/createauthorizeduserupdate.ts +0 -68
package/src/lib/sdks.ts
CHANGED
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
matchContentType,
|
|
24
24
|
} from "./http.js";
|
|
25
25
|
import { Logger } from "./logger.js";
|
|
26
|
+
import { combineSignals } from "./primitives.js";
|
|
26
27
|
import { retry, RetryConfig } from "./retries.js";
|
|
27
28
|
import { SecurityState } from "./security.js";
|
|
28
29
|
|
|
@@ -127,27 +128,55 @@ export class ClientSDK {
|
|
|
127
128
|
if (path) {
|
|
128
129
|
baseURL.pathname = baseURL.pathname.replace(/\/+$/, "") + "/";
|
|
129
130
|
reqURL = new URL(path, baseURL);
|
|
131
|
+
if (!reqURL.search && baseURL.search) {
|
|
132
|
+
reqURL.search = baseURL.search;
|
|
133
|
+
}
|
|
130
134
|
} else {
|
|
131
135
|
reqURL = baseURL;
|
|
132
136
|
}
|
|
133
137
|
reqURL.hash = "";
|
|
134
138
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (typeof q !== "undefined") {
|
|
141
|
-
secQuery.push(q);
|
|
139
|
+
// Appends already-encoded query pairs to a query string, replacing any
|
|
140
|
+
// existing pairs with the same key so later sources take precedence.
|
|
141
|
+
const mergeQuery = (current: string, additions: string): string => {
|
|
142
|
+
if (!additions) {
|
|
143
|
+
return current;
|
|
142
144
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
const additionKeys = new Set(
|
|
146
|
+
additions
|
|
147
|
+
.split("&")
|
|
148
|
+
.filter((pair) => pair !== "")
|
|
149
|
+
.map((pair) => pair.split("=")[0] ?? ""),
|
|
150
|
+
);
|
|
151
|
+
const kept = current.split("&").filter((pair) => {
|
|
152
|
+
return pair !== "" && !additionKeys.has(pair.split("=")[0] ?? "");
|
|
153
|
+
});
|
|
154
|
+
return [...kept, additions].join("&");
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
const encodeQueryRecord = (record: Record<string, unknown>): string => {
|
|
158
|
+
return Object.entries(record)
|
|
159
|
+
.map(([k, v]) => {
|
|
160
|
+
if (v == null) {
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
const value = v;
|
|
164
|
+
return encodeForm(k, value, {
|
|
165
|
+
explode: Array.isArray(value),
|
|
166
|
+
charEncoding: "percent",
|
|
167
|
+
});
|
|
168
|
+
})
|
|
169
|
+
.filter((pair): pair is string => typeof pair !== "undefined")
|
|
170
|
+
.join("&");
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
const finalQuery = [
|
|
174
|
+
query || "",
|
|
175
|
+
encodeQueryRecord(security?.queryParams || {}),
|
|
176
|
+
].reduce(mergeQuery, reqURL.search.slice(1));
|
|
147
177
|
|
|
148
178
|
if (finalQuery) {
|
|
149
|
-
|
|
150
|
-
reqURL.search = `?${q}`;
|
|
179
|
+
reqURL.search = `?${finalQuery}`;
|
|
151
180
|
}
|
|
152
181
|
|
|
153
182
|
const headers = new Headers(opHeaders);
|
|
@@ -193,9 +222,8 @@ export class ClientSDK {
|
|
|
193
222
|
...options?.fetchOptions,
|
|
194
223
|
...options,
|
|
195
224
|
};
|
|
196
|
-
if (!fetchOptions?.signal && conf.timeoutMs && conf.timeoutMs > 0) {
|
|
197
|
-
|
|
198
|
-
fetchOptions.signal = timeoutSignal;
|
|
225
|
+
if (!fetchOptions?.signal && conf.timeoutMs != null && conf.timeoutMs > 0) {
|
|
226
|
+
context.timeoutMs = conf.timeoutMs;
|
|
199
227
|
}
|
|
200
228
|
|
|
201
229
|
if (conf.body instanceof ReadableStream) {
|
|
@@ -242,10 +270,19 @@ export class ClientSDK {
|
|
|
242
270
|
>
|
|
243
271
|
> {
|
|
244
272
|
const { context, isErrorStatusCode } = options;
|
|
273
|
+
const timeoutMs = context.timeoutMs;
|
|
245
274
|
|
|
246
275
|
return retry(
|
|
247
276
|
async () => {
|
|
248
|
-
const
|
|
277
|
+
const cloned = request.clone();
|
|
278
|
+
let attempt = cloned;
|
|
279
|
+
if (timeoutMs != null && timeoutMs > 0) {
|
|
280
|
+
const timeoutSignal = AbortSignal.timeout(timeoutMs);
|
|
281
|
+
const combined = combineSignals(cloned.signal, timeoutSignal)
|
|
282
|
+
?? timeoutSignal;
|
|
283
|
+
attempt = new Request(cloned, { signal: combined });
|
|
284
|
+
}
|
|
285
|
+
const req = await this.#hooks.beforeRequest(context, attempt);
|
|
249
286
|
await logRequest(this.#logger, req).catch((e) =>
|
|
250
287
|
this.#logger?.log("Failed to log request:", e)
|
|
251
288
|
);
|
|
@@ -51,6 +51,15 @@ export const startCommand = buildCommand({
|
|
|
51
51
|
return z.string().parse(value);
|
|
52
52
|
},
|
|
53
53
|
},
|
|
54
|
+
"access-token": {
|
|
55
|
+
kind: "parsed",
|
|
56
|
+
brief:
|
|
57
|
+
"Allows setting the accessToken parameter for all supported operations",
|
|
58
|
+
optional: true,
|
|
59
|
+
parse: (value) => {
|
|
60
|
+
return z.string().parse(value);
|
|
61
|
+
},
|
|
62
|
+
},
|
|
54
63
|
"server-url": {
|
|
55
64
|
kind: "parsed",
|
|
56
65
|
brief: "Overrides the default server URL used by the SDK",
|
|
@@ -20,6 +20,7 @@ interface StartCommandFlags {
|
|
|
20
20
|
readonly tool?: string[];
|
|
21
21
|
readonly username?: string | undefined;
|
|
22
22
|
readonly password?: string | undefined;
|
|
23
|
+
readonly "access-token"?: SDKOptions["accessToken"] | undefined;
|
|
23
24
|
readonly "server-url"?: string;
|
|
24
25
|
readonly "server-index"?: SDKOptions["serverIdx"];
|
|
25
26
|
readonly "log-level": ConsoleLoggerLevel;
|
|
@@ -53,6 +54,7 @@ async function startStdio(flags: StartCommandFlags) {
|
|
|
53
54
|
username: flags.username ?? "",
|
|
54
55
|
password: flags.password ?? "",
|
|
55
56
|
}),
|
|
57
|
+
accessToken: flags["access-token"],
|
|
56
58
|
serverURL: flags["server-url"],
|
|
57
59
|
serverIdx: flags["server-index"],
|
|
58
60
|
});
|
|
@@ -76,6 +78,7 @@ async function startSSE(flags: StartCommandFlags) {
|
|
|
76
78
|
username: flags.username ?? "",
|
|
77
79
|
password: flags.password ?? "",
|
|
78
80
|
}),
|
|
81
|
+
accessToken: flags["access-token"],
|
|
79
82
|
serverURL: flags["server-url"],
|
|
80
83
|
serverIdx: flags["server-index"],
|
|
81
84
|
});
|
package/src/mcp-server/server.ts
CHANGED
|
@@ -166,6 +166,7 @@ import { tool$transfersGetCancellation } from "./tools/transfersGetCancellation.
|
|
|
166
166
|
import { tool$transfersGetRefund } from "./tools/transfersGetRefund.js";
|
|
167
167
|
import { tool$transfersInitiateRefund } from "./tools/transfersInitiateRefund.js";
|
|
168
168
|
import { tool$transfersList } from "./tools/transfersList.js";
|
|
169
|
+
import { tool$transfersListCancellations } from "./tools/transfersListCancellations.js";
|
|
169
170
|
import { tool$transfersListRefunds } from "./tools/transfersListRefunds.js";
|
|
170
171
|
import { tool$transfersUpdate } from "./tools/transfersUpdate.js";
|
|
171
172
|
import { tool$underwritingGet } from "./tools/underwritingGet.js";
|
|
@@ -192,15 +193,17 @@ export function createMCPServer(deps: {
|
|
|
192
193
|
scopes?: MCPScope[] | undefined;
|
|
193
194
|
serverURL?: string | undefined;
|
|
194
195
|
security?: SDKOptions["security"] | undefined;
|
|
196
|
+
accessToken?: SDKOptions["accessToken"] | undefined;
|
|
195
197
|
serverIdx?: SDKOptions["serverIdx"] | undefined;
|
|
196
198
|
}) {
|
|
197
199
|
const server = new McpServer({
|
|
198
200
|
name: "Moov",
|
|
199
|
-
version: "26.
|
|
201
|
+
version: "26.3.1",
|
|
200
202
|
});
|
|
201
203
|
|
|
202
204
|
const client = new MoovCore({
|
|
203
205
|
security: deps.security,
|
|
206
|
+
accessToken: deps.accessToken,
|
|
204
207
|
serverURL: deps.serverURL,
|
|
205
208
|
serverIdx: deps.serverIdx,
|
|
206
209
|
});
|
|
@@ -344,6 +347,7 @@ export function createMCPServer(deps: {
|
|
|
344
347
|
tool(tool$transfersGet);
|
|
345
348
|
tool(tool$transfersUpdate);
|
|
346
349
|
tool(tool$transfersCreateCancellation);
|
|
350
|
+
tool(tool$transfersListCancellations);
|
|
347
351
|
tool(tool$transfersGetCancellation);
|
|
348
352
|
tool(tool$transfersInitiateRefund);
|
|
349
353
|
tool(tool$transfersListRefunds);
|
|
@@ -13,21 +13,19 @@ const args = {
|
|
|
13
13
|
export const tool$accountsCreate: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "accounts-create",
|
|
15
15
|
description:
|
|
16
|
-
`You can create
|
|
17
|
-
information to Moov. Requirements differ per account type and requested [capabilities](https://docs.moov.io/guides/accounts/capabilities/requirements/).
|
|
16
|
+
`You can create business or individual accounts for your users (i.e., customers, merchants) by passing the required information to Moov. Requirements differ per account type and requested [capabilities](https://docs.moov.io/guides/accounts/capabilities/reference/).
|
|
18
17
|
|
|
19
|
-
If you
|
|
20
|
-
+ Send Moov the user [platform terms of service agreement](https://docs.moov.io/guides/accounts/requirements/platform-agreement/) acceptance.
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
The \`transfers\` capability is automatically requested for every account. If you request any capability beyond \`transfers\` (for example, \`send-funds.ach\`, \`collect-funds.card-payments\`), you'll need to:
|
|
19
|
+
+ Send Moov the user's [platform terms of service agreement](https://docs.moov.io/guides/accounts/requirements/platform-agreement/) acceptance. This can be done at account creation, or by [patching](https://docs.moov.io/api/moov-accounts/accounts/patch/) the account using the \`termsOfService\` field.
|
|
20
|
+
+ Fulfill the [verification and underwriting requirements](https://docs.moov.io/guides/accounts/requirements/) for each requested capability. A capability isn't enabled until its requirements pass — check the capability's status to see what's still outstanding.
|
|
21
|
+
|
|
22
|
+
If you're creating a business account, depending on the business type, you'll also need to:
|
|
23
23
|
+ Provide [business representatives](https://docs.moov.io/api/moov-accounts/representatives/) after creating the account.
|
|
24
24
|
+ [Patch](https://docs.moov.io/api/moov-accounts/accounts/patch/) the account to indicate that business representative ownership information is complete.
|
|
25
25
|
|
|
26
|
-
Visit our documentation to read more about [creating accounts](https://docs.moov.io/guides/accounts/create-accounts/) and [verification requirements](https://docs.moov.io/guides/accounts/requirements/identity-verification/).
|
|
27
|
-
Note that the \`mode\` field (for production or sandbox) is only required when creating a _facilitator_ account. All non-facilitator account requests will ignore the mode field and be set to the calling facilitator's mode.
|
|
26
|
+
Visit our documentation to read more about [creating accounts](https://docs.moov.io/guides/accounts/create-accounts/) and [verification requirements](https://docs.moov.io/guides/accounts/requirements/identity-verification/). Note that the \`mode\` field (for production or sandbox) is only required when creating a Partner account. All other account requests will ignore the mode field and be set to the calling Partner account's mode.
|
|
28
27
|
|
|
29
|
-
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
|
|
30
|
-
to specify the \`/accounts.write\` scope.`,
|
|
28
|
+
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the \`/accounts.write\` scope.`,
|
|
31
29
|
args,
|
|
32
30
|
tool: async (client, args, ctx) => {
|
|
33
31
|
const [result, apiCall] = await accountsCreate(
|
|
@@ -13,7 +13,7 @@ const args = {
|
|
|
13
13
|
export const tool$capabilitiesDisable: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "capabilities-disable",
|
|
15
15
|
description:
|
|
16
|
-
`Disable a specific capability that an account has requested. Read our [capabilities
|
|
16
|
+
`Disable a specific capability that an account has requested. Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to learn more.
|
|
17
17
|
|
|
18
18
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
|
19
19
|
you'll need to specify the \`/accounts/{accountID}/capabilities.write\` scope.`,
|
|
@@ -13,7 +13,7 @@ const args = {
|
|
|
13
13
|
export const tool$capabilitiesGet: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "capabilities-get",
|
|
15
15
|
description:
|
|
16
|
-
`Retrieve a specific capability that an account has requested. Read our [capabilities
|
|
16
|
+
`Retrieve a specific capability that an account has requested. Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to learn more.
|
|
17
17
|
|
|
18
18
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
|
19
19
|
you'll need to specify the \`/accounts/{accountID}/capabilities.read\` scope.`,
|
|
@@ -14,7 +14,7 @@ export const tool$capabilitiesList: ToolDefinition<typeof args> = {
|
|
|
14
14
|
name: "capabilities-list",
|
|
15
15
|
description: `Retrieve all the capabilities an account has requested.
|
|
16
16
|
|
|
17
|
-
Read our [capabilities
|
|
17
|
+
Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to learn more.
|
|
18
18
|
|
|
19
19
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
|
20
20
|
you'll need to specify the \`/accounts/{accountID}/capabilities.read\` scope.`,
|
|
@@ -13,7 +13,7 @@ const args = {
|
|
|
13
13
|
export const tool$capabilitiesRequest: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "capabilities-request",
|
|
15
15
|
description:
|
|
16
|
-
`Request capabilities for a specific account. Read our [capabilities
|
|
16
|
+
`Request capabilities for a specific account. Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to learn more.
|
|
17
17
|
|
|
18
18
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
|
19
19
|
you'll need to specify the \`/accounts/{accountID}/capabilities.write\` scope.`,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { transfersListCancellations } from "../../funcs/transfersListCancellations.js";
|
|
6
|
+
import * as operations from "../../models/operations/index.js";
|
|
7
|
+
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
+
|
|
9
|
+
const args = {
|
|
10
|
+
request: operations.ListCancellationsRequest$inboundSchema,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const tool$transfersListCancellations: ToolDefinition<typeof args> = {
|
|
14
|
+
name: "transfers-list-cancellations",
|
|
15
|
+
description: ` Get a list of cancellations for a transfer.
|
|
16
|
+
|
|
17
|
+
To access this endpoint using a [token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
|
|
18
|
+
to specify the \`/accounts/{accountID}/transfers.read\` scope.`,
|
|
19
|
+
args,
|
|
20
|
+
tool: async (client, args, ctx) => {
|
|
21
|
+
const [result, apiCall] = await transfersListCancellations(
|
|
22
|
+
client,
|
|
23
|
+
args.request,
|
|
24
|
+
{ fetchOptions: { signal: ctx.signal } },
|
|
25
|
+
).$inspect();
|
|
26
|
+
|
|
27
|
+
if (!result.ok) {
|
|
28
|
+
return {
|
|
29
|
+
content: [{ type: "text", text: result.error.message }],
|
|
30
|
+
isError: true,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const value = result.value.result;
|
|
35
|
+
|
|
36
|
+
return formatResult(value, apiCall);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -13,6 +13,15 @@ import {
|
|
|
13
13
|
} from "./capabilityid.js";
|
|
14
14
|
|
|
15
15
|
export type AddCapabilities = {
|
|
16
|
+
/**
|
|
17
|
+
* Capabilities to request for the account. Request granular capability IDs that match your use case.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
*
|
|
21
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
22
|
+
*
|
|
23
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
|
|
24
|
+
*/
|
|
16
25
|
capabilities: Array<CapabilityID>;
|
|
17
26
|
};
|
|
18
27
|
|
|
@@ -29,7 +29,13 @@ export type Capability = {
|
|
|
29
29
|
*
|
|
30
30
|
* @remarks
|
|
31
31
|
*
|
|
32
|
-
*
|
|
32
|
+
* **Deprecated capabilities**
|
|
33
|
+
*
|
|
34
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
|
|
35
|
+
*
|
|
36
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
37
|
+
*
|
|
38
|
+
* The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
|
|
33
39
|
*/
|
|
34
40
|
capability: CapabilityID;
|
|
35
41
|
accountID: string;
|
|
@@ -10,7 +10,13 @@ import { ClosedEnum } from "../../types/enums.js";
|
|
|
10
10
|
*
|
|
11
11
|
* @remarks
|
|
12
12
|
*
|
|
13
|
-
*
|
|
13
|
+
* **Deprecated capabilities**
|
|
14
|
+
*
|
|
15
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
|
|
16
|
+
*
|
|
17
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
18
|
+
*
|
|
19
|
+
* The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
|
|
14
20
|
*/
|
|
15
21
|
export const CapabilityID = {
|
|
16
22
|
Transfers: "transfers",
|
|
@@ -36,7 +42,13 @@ export const CapabilityID = {
|
|
|
36
42
|
*
|
|
37
43
|
* @remarks
|
|
38
44
|
*
|
|
39
|
-
*
|
|
45
|
+
* **Deprecated capabilities**
|
|
46
|
+
*
|
|
47
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
|
|
48
|
+
*
|
|
49
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
50
|
+
*
|
|
51
|
+
* The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
|
|
40
52
|
*/
|
|
41
53
|
export type CapabilityID = ClosedEnum<typeof CapabilityID>;
|
|
42
54
|
|
|
@@ -65,6 +65,15 @@ export type CreateAccount = {
|
|
|
65
65
|
* User provided settings to manage an account.
|
|
66
66
|
*/
|
|
67
67
|
settings?: Settings | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Capabilities to request when the account is created. Request granular capability IDs that match your use case.
|
|
70
|
+
*
|
|
71
|
+
* @remarks
|
|
72
|
+
*
|
|
73
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
74
|
+
*
|
|
75
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
|
|
76
|
+
*/
|
|
68
77
|
capabilities?: Array<CapabilityID> | undefined;
|
|
69
78
|
/**
|
|
70
79
|
* The operating mode for an account.
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
*
|
|
49
49
|
* @remarks
|
|
50
50
|
*
|
|
51
|
-
* A payment link must include
|
|
51
|
+
* A payment link must include exactly one of `payment`, `payout`, or `customAmountPayment` details. For payout payment links,
|
|
52
52
|
* `maxUses` will automatically be set to 1, as these are intended for a one-time disbursement
|
|
53
53
|
* to a specific recipient.
|
|
54
54
|
*/
|
|
@@ -68,8 +68,8 @@ export type CreatePaymentLink = {
|
|
|
68
68
|
*
|
|
69
69
|
* In API versions before `2026.07.00`, this was a required field.
|
|
70
70
|
*
|
|
71
|
-
* In API version `2026.07.00` and beyond, this field is required for `
|
|
72
|
-
* for `
|
|
71
|
+
* In API version `2026.07.00` and beyond, this field is required for `payment` and `payout` links and must be
|
|
72
|
+
* omitted for `customAmountPayment` links, where the payor chooses the amount.
|
|
73
73
|
*/
|
|
74
74
|
amount: Amount;
|
|
75
75
|
/**
|
|
@@ -7,11 +7,11 @@ import { safeParse } from "../../lib/schemas.js";
|
|
|
7
7
|
import { Result as SafeParseResult } from "../../types/fp.js";
|
|
8
8
|
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
} from "./
|
|
10
|
+
Address,
|
|
11
|
+
Address$inboundSchema,
|
|
12
|
+
Address$Outbound,
|
|
13
|
+
Address$outboundSchema,
|
|
14
|
+
} from "./address.js";
|
|
15
15
|
import {
|
|
16
16
|
CardBrand,
|
|
17
17
|
CardBrand$inboundSchema,
|
|
@@ -55,17 +55,25 @@ export type FullIssuedCard = {
|
|
|
55
55
|
*/
|
|
56
56
|
expiration: CardExpiration;
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* Unique identifier for the wallet funding the card.
|
|
59
59
|
*/
|
|
60
|
-
|
|
60
|
+
fundingWalletID: string;
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* Identifier for the account of the card's authorized user.
|
|
63
63
|
*/
|
|
64
|
-
|
|
64
|
+
authorizedUserAccountID?: string | undefined;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
66
|
+
* An optional descriptive name for the card.
|
|
67
67
|
*/
|
|
68
|
-
|
|
68
|
+
nickname?: string | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
|
|
71
|
+
*/
|
|
72
|
+
metadata?: { [k: string]: string } | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Billing address associated with the card.
|
|
75
|
+
*/
|
|
76
|
+
billingAddress?: Address | undefined;
|
|
69
77
|
/**
|
|
70
78
|
* The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
|
|
71
79
|
*
|
|
@@ -83,6 +91,7 @@ export type FullIssuedCard = {
|
|
|
83
91
|
formFactor: IssuedCardFormFactor;
|
|
84
92
|
controls?: IssuingControls | undefined;
|
|
85
93
|
createdOn: Date;
|
|
94
|
+
updatedOn: Date;
|
|
86
95
|
/**
|
|
87
96
|
* The issued card's Primary Account Number (PAN)
|
|
88
97
|
*/
|
|
@@ -103,13 +112,16 @@ export const FullIssuedCard$inboundSchema: z.ZodType<
|
|
|
103
112
|
brand: CardBrand$inboundSchema,
|
|
104
113
|
lastFourCardNumber: z.string(),
|
|
105
114
|
expiration: CardExpiration$inboundSchema,
|
|
106
|
-
authorizedUser: AuthorizedUser$inboundSchema,
|
|
107
|
-
memo: z.string().optional(),
|
|
108
115
|
fundingWalletID: z.string(),
|
|
116
|
+
authorizedUserAccountID: z.string().optional(),
|
|
117
|
+
nickname: z.string().optional(),
|
|
118
|
+
metadata: z.record(z.string()).optional(),
|
|
119
|
+
billingAddress: Address$inboundSchema.optional(),
|
|
109
120
|
state: IssuedCardState$inboundSchema,
|
|
110
121
|
formFactor: IssuedCardFormFactor$inboundSchema,
|
|
111
122
|
controls: IssuingControls$inboundSchema.optional(),
|
|
112
123
|
createdOn: z.string().datetime({ offset: true }).transform(v => new Date(v)),
|
|
124
|
+
updatedOn: z.string().datetime({ offset: true }).transform(v => new Date(v)),
|
|
113
125
|
pan: z.string(),
|
|
114
126
|
cvv: z.string(),
|
|
115
127
|
});
|
|
@@ -119,13 +131,16 @@ export type FullIssuedCard$Outbound = {
|
|
|
119
131
|
brand: string;
|
|
120
132
|
lastFourCardNumber: string;
|
|
121
133
|
expiration: CardExpiration$Outbound;
|
|
122
|
-
authorizedUser: AuthorizedUser$Outbound;
|
|
123
|
-
memo?: string | undefined;
|
|
124
134
|
fundingWalletID: string;
|
|
135
|
+
authorizedUserAccountID?: string | undefined;
|
|
136
|
+
nickname?: string | undefined;
|
|
137
|
+
metadata?: { [k: string]: string } | undefined;
|
|
138
|
+
billingAddress?: Address$Outbound | undefined;
|
|
125
139
|
state: string;
|
|
126
140
|
formFactor: string;
|
|
127
141
|
controls?: IssuingControls$Outbound | undefined;
|
|
128
142
|
createdOn: string;
|
|
143
|
+
updatedOn: string;
|
|
129
144
|
pan: string;
|
|
130
145
|
cvv: string;
|
|
131
146
|
};
|
|
@@ -140,13 +155,16 @@ export const FullIssuedCard$outboundSchema: z.ZodType<
|
|
|
140
155
|
brand: CardBrand$outboundSchema,
|
|
141
156
|
lastFourCardNumber: z.string(),
|
|
142
157
|
expiration: CardExpiration$outboundSchema,
|
|
143
|
-
authorizedUser: AuthorizedUser$outboundSchema,
|
|
144
|
-
memo: z.string().optional(),
|
|
145
158
|
fundingWalletID: z.string(),
|
|
159
|
+
authorizedUserAccountID: z.string().optional(),
|
|
160
|
+
nickname: z.string().optional(),
|
|
161
|
+
metadata: z.record(z.string()).optional(),
|
|
162
|
+
billingAddress: Address$outboundSchema.optional(),
|
|
146
163
|
state: IssuedCardState$outboundSchema,
|
|
147
164
|
formFactor: IssuedCardFormFactor$outboundSchema,
|
|
148
165
|
controls: IssuingControls$outboundSchema.optional(),
|
|
149
166
|
createdOn: z.date().transform(v => v.toISOString()),
|
|
167
|
+
updatedOn: z.date().transform(v => v.toISOString()),
|
|
150
168
|
pan: z.string(),
|
|
151
169
|
cvv: z.string(),
|
|
152
170
|
});
|
|
@@ -51,7 +51,6 @@ export * from "./assignproductimage.js";
|
|
|
51
51
|
export * from "./assignproductimagevalidationerror.js";
|
|
52
52
|
export * from "./asynccreatedrefund.js";
|
|
53
53
|
export * from "./asynctransfer.js";
|
|
54
|
-
export * from "./authorizeduser.js";
|
|
55
54
|
export * from "./authtoken.js";
|
|
56
55
|
export * from "./authtokenrequest.js";
|
|
57
56
|
export * from "./bankaccount.js";
|
|
@@ -139,9 +138,6 @@ export * from "./createaccount.js";
|
|
|
139
138
|
export * from "./createaccountsettings.js";
|
|
140
139
|
export * from "./createaccounttype.js";
|
|
141
140
|
export * from "./createapplepaysession.js";
|
|
142
|
-
export * from "./createauthorizeduser.js";
|
|
143
|
-
export * from "./createauthorizedusererror.js";
|
|
144
|
-
export * from "./createauthorizeduserupdate.js";
|
|
145
141
|
export * from "./createbusinesserror.js";
|
|
146
142
|
export * from "./createbusinessprofile.js";
|
|
147
143
|
export * from "./createdtransfer.js";
|
|
@@ -519,6 +515,7 @@ export * from "./webhookdata.js";
|
|
|
519
515
|
export * from "./webhookdataaccountcreated.js";
|
|
520
516
|
export * from "./webhookdataaccountdisconnected.js";
|
|
521
517
|
export * from "./webhookdataaccountupdated.js";
|
|
518
|
+
export * from "./webhookdataauthorizationexpiring.js";
|
|
522
519
|
export * from "./webhookdatabalanceupdated.js";
|
|
523
520
|
export * from "./webhookdatabankaccountcreated.js";
|
|
524
521
|
export * from "./webhookdatabankaccountdeleted.js";
|