@moovio/sdk 25.5.7 → 25.6.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 +109 -77
- package/bin/mcp-server.js +597 -317
- 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
|
@@ -161,6 +161,7 @@ import { tool$transfersGetCancellation } from "./tools/transfersGetCancellation.
|
|
|
161
161
|
import { tool$transfersGetRefund } from "./tools/transfersGetRefund.js";
|
|
162
162
|
import { tool$transfersInitiateRefund } from "./tools/transfersInitiateRefund.js";
|
|
163
163
|
import { tool$transfersList } from "./tools/transfersList.js";
|
|
164
|
+
import { tool$transfersListCancellations } from "./tools/transfersListCancellations.js";
|
|
164
165
|
import { tool$transfersListRefunds } from "./tools/transfersListRefunds.js";
|
|
165
166
|
import { tool$transfersUpdate } from "./tools/transfersUpdate.js";
|
|
166
167
|
import { tool$underwritingGet } from "./tools/underwritingGet.js";
|
|
@@ -186,15 +187,17 @@ export function createMCPServer(deps: {
|
|
|
186
187
|
scopes?: MCPScope[] | undefined;
|
|
187
188
|
serverURL?: string | undefined;
|
|
188
189
|
security?: SDKOptions["security"] | undefined;
|
|
190
|
+
accessToken?: SDKOptions["accessToken"] | undefined;
|
|
189
191
|
serverIdx?: SDKOptions["serverIdx"] | undefined;
|
|
190
192
|
}) {
|
|
191
193
|
const server = new McpServer({
|
|
192
194
|
name: "Moov",
|
|
193
|
-
version: "25.
|
|
195
|
+
version: "25.6.1",
|
|
194
196
|
});
|
|
195
197
|
|
|
196
198
|
const client = new MoovCore({
|
|
197
199
|
security: deps.security,
|
|
200
|
+
accessToken: deps.accessToken,
|
|
198
201
|
serverURL: deps.serverURL,
|
|
199
202
|
serverIdx: deps.serverIdx,
|
|
200
203
|
});
|
|
@@ -333,6 +336,7 @@ export function createMCPServer(deps: {
|
|
|
333
336
|
tool(tool$transfersGet);
|
|
334
337
|
tool(tool$transfersUpdate);
|
|
335
338
|
tool(tool$transfersCreateCancellation);
|
|
339
|
+
tool(tool$transfersListCancellations);
|
|
336
340
|
tool(tool$transfersGetCancellation);
|
|
337
341
|
tool(tool$transfersInitiateRefund);
|
|
338
342
|
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",
|
|
@@ -25,7 +31,13 @@ export const CapabilityID = {
|
|
|
25
31
|
*
|
|
26
32
|
* @remarks
|
|
27
33
|
*
|
|
28
|
-
*
|
|
34
|
+
* **Deprecated capabilities**
|
|
35
|
+
*
|
|
36
|
+
* 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.
|
|
37
|
+
*
|
|
38
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
39
|
+
*
|
|
40
|
+
* 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.
|
|
29
41
|
*/
|
|
30
42
|
export type CapabilityID = ClosedEnum<typeof CapabilityID>;
|
|
31
43
|
|
|
@@ -68,6 +68,15 @@ export type CreateAccount = {
|
|
|
68
68
|
* User provided settings to manage an account.
|
|
69
69
|
*/
|
|
70
70
|
settings?: Settings | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Capabilities to request when the account is created. Request granular capability IDs that match your use case.
|
|
73
|
+
*
|
|
74
|
+
* @remarks
|
|
75
|
+
*
|
|
76
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
77
|
+
*
|
|
78
|
+
* 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.
|
|
79
|
+
*/
|
|
71
80
|
capabilities?: Array<CapabilityID> | undefined;
|
|
72
81
|
/**
|
|
73
82
|
* 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";
|
|
@@ -129,9 +128,6 @@ export * from "./contact.js";
|
|
|
129
128
|
export * from "./createaccount.js";
|
|
130
129
|
export * from "./createaccountsettings.js";
|
|
131
130
|
export * from "./createapplepaysession.js";
|
|
132
|
-
export * from "./createauthorizeduser.js";
|
|
133
|
-
export * from "./createauthorizedusererror.js";
|
|
134
|
-
export * from "./createauthorizeduserupdate.js";
|
|
135
131
|
export * from "./createbusinesserror.js";
|
|
136
132
|
export * from "./createbusinessprofile.js";
|
|
137
133
|
export * from "./createdtransfer.js";
|
|
@@ -468,6 +464,7 @@ export * from "./webhookdata.js";
|
|
|
468
464
|
export * from "./webhookdataaccountcreated.js";
|
|
469
465
|
export * from "./webhookdataaccountdisconnected.js";
|
|
470
466
|
export * from "./webhookdataaccountupdated.js";
|
|
467
|
+
export * from "./webhookdataauthorizationexpiring.js";
|
|
471
468
|
export * from "./webhookdatabalanceupdated.js";
|
|
472
469
|
export * from "./webhookdatabankaccountcreated.js";
|
|
473
470
|
export * from "./webhookdatabankaccountdeleted.js";
|