@aifinpay/mcp 2.0.0-rc.5 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +117 -64
  3. package/bin/aifinpay-mcp.js +115 -67
  4. package/dist/api.d.ts +2 -0
  5. package/dist/api.d.ts.map +1 -0
  6. package/dist/api.js +6 -0
  7. package/dist/api.js.map +1 -0
  8. package/dist/config.d.ts +11 -2
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +27 -11
  11. package/dist/config.js.map +1 -1
  12. package/dist/identity.d.ts +9 -0
  13. package/dist/identity.d.ts.map +1 -0
  14. package/dist/identity.js +81 -0
  15. package/dist/identity.js.map +1 -0
  16. package/dist/index.d.ts +3 -6
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +3 -6
  19. package/dist/index.js.map +1 -1
  20. package/dist/safe-fetch.d.ts.map +1 -1
  21. package/dist/safe-fetch.js +73 -19
  22. package/dist/safe-fetch.js.map +1 -1
  23. package/dist/server.d.ts +1 -1
  24. package/dist/server.d.ts.map +1 -1
  25. package/dist/server.js +108 -22
  26. package/dist/server.js.map +1 -1
  27. package/dist/tools/agent-address.d.ts.map +1 -1
  28. package/dist/tools/agent-address.js +5 -4
  29. package/dist/tools/agent-address.js.map +1 -1
  30. package/dist/tools/{payable-fetch.d.ts → agent-history.d.ts} +21 -23
  31. package/dist/tools/agent-history.d.ts.map +1 -0
  32. package/dist/tools/agent-history.js +141 -0
  33. package/dist/tools/agent-history.js.map +1 -0
  34. package/dist/tools/agent-quota.d.ts.map +1 -1
  35. package/dist/tools/agent-quota.js +3 -1
  36. package/dist/tools/agent-quota.js.map +1 -1
  37. package/dist/tools/{agent-quote.d.ts → dev-payment-quote.d.ts} +10 -12
  38. package/dist/tools/dev-payment-quote.d.ts.map +1 -0
  39. package/dist/tools/dev-payment-quote.js +80 -0
  40. package/dist/tools/dev-payment-quote.js.map +1 -0
  41. package/dist/tools/production-control.d.ts +104 -0
  42. package/dist/tools/production-control.d.ts.map +1 -1
  43. package/dist/tools/production-control.js +177 -14
  44. package/dist/tools/production-control.js.map +1 -1
  45. package/dist/tools/supported-chains.d.ts +38 -0
  46. package/dist/tools/supported-chains.d.ts.map +1 -0
  47. package/dist/tools/supported-chains.js +132 -0
  48. package/dist/tools/supported-chains.js.map +1 -0
  49. package/package.json +28 -6
  50. package/skills/SKILL.md +271 -0
  51. package/smithery.yaml +137 -0
  52. package/dist/directory.d.ts +0 -55
  53. package/dist/directory.d.ts.map +0 -1
  54. package/dist/directory.js +0 -56
  55. package/dist/directory.js.map +0 -1
  56. package/dist/tools/agent-call.d.ts +0 -68
  57. package/dist/tools/agent-call.d.ts.map +0 -1
  58. package/dist/tools/agent-call.js +0 -129
  59. package/dist/tools/agent-call.js.map +0 -1
  60. package/dist/tools/agent-claim-self.d.ts +0 -66
  61. package/dist/tools/agent-claim-self.d.ts.map +0 -1
  62. package/dist/tools/agent-claim-self.js +0 -299
  63. package/dist/tools/agent-claim-self.js.map +0 -1
  64. package/dist/tools/agent-quote.d.ts.map +0 -1
  65. package/dist/tools/agent-quote.js +0 -81
  66. package/dist/tools/agent-quote.js.map +0 -1
  67. package/dist/tools/pay-with-split.d.ts +0 -93
  68. package/dist/tools/pay-with-split.d.ts.map +0 -1
  69. package/dist/tools/pay-with-split.js +0 -138
  70. package/dist/tools/pay-with-split.js.map +0 -1
  71. package/dist/tools/payable-fetch.d.ts.map +0 -1
  72. package/dist/tools/payable-fetch.js +0 -135
  73. package/dist/tools/payable-fetch.js.map +0 -1
@@ -1,9 +1,21 @@
1
+ import { apiUrl } from "../api.js";
1
2
  const DEFAULT_BASE = "https://aifinpay.io";
2
3
  const ROUTES = new Set(["AIFP-1", "AIFP-2"]);
3
- const CHAINS = new Set([
4
- "polygon", "avalanche", "arbitrum", "bnb", "base",
5
- "unichain", "optimism", "botchain", "xrplevm",
4
+ const EVM_CHAINS = new Set([
5
+ "polygon",
6
+ "avalanche",
7
+ "arbitrum",
8
+ "bnb",
9
+ "base",
10
+ "unichain",
11
+ "optimism",
12
+ "botchain",
13
+ "robinhood",
14
+ "xrplevm",
6
15
  ]);
16
+ const SOLANA_CHAINS = new Set(["solana"]);
17
+ const CASPER_CHAINS = new Set(["casper"]);
18
+ const ALL_CHAINS = new Set([...EVM_CHAINS, ...SOLANA_CHAINS, ...CASPER_CHAINS]);
7
19
  function result(value) {
8
20
  return { content: [{ type: "text", text: JSON.stringify(value, null, 2) }] };
9
21
  }
@@ -14,12 +26,10 @@ function base(ctx) {
14
26
  return String(ctx.config.baseUrl || DEFAULT_BASE).replace(/\/$/, "");
15
27
  }
16
28
  async function api(ctx, path, init) {
17
- const response = await ctx.agent.inner.fetchImpl(`${base(ctx)}${path}`, init);
29
+ const response = await ctx.agent.inner.fetchImpl(apiUrl(base(ctx), path), init);
18
30
  const body = await response.json().catch(() => null);
19
31
  if (!response.ok) {
20
- const detail = body && typeof body === "object"
21
- ? JSON.stringify(body)
22
- : `HTTP ${response.status}`;
32
+ const detail = body && typeof body === "object" ? JSON.stringify(body) : `HTTP ${response.status}`;
23
33
  throw new Error(detail);
24
34
  }
25
35
  return body;
@@ -32,7 +42,10 @@ export function agentPassportResolveTool() {
32
42
  inputSchema: {
33
43
  type: "object",
34
44
  properties: {
35
- identifier: { type: "string", description: "@username, AIFP-#########, or aifp_agent_* id" },
45
+ identifier: {
46
+ type: "string",
47
+ description: "@username, AIFP-#########, or aifp_agent_* id",
48
+ },
36
49
  },
37
50
  required: ["identifier"],
38
51
  },
@@ -82,18 +95,24 @@ export async function runSettlementRoutes(ctx, args) {
82
95
  export function settlementInvoiceTool() {
83
96
  return {
84
97
  name: "settlement_invoice",
85
- description: "Build and validate a NON-SIGNING v1.3 settlement invoice. This tool never moves funds. " +
98
+ description: "Build and validate a NON-SIGNING v1.3 settlement invoice for EVM chains. This tool never moves funds. " +
86
99
  "Use the published @aifinpay/agent v2 settlement executor to verify bytecode/profile and sign it.",
87
100
  inputSchema: {
88
101
  type: "object",
89
102
  properties: {
90
103
  route_class: { type: "string", enum: ["AIFP-1", "AIFP-2"] },
91
- chain: { type: "string", enum: [...CHAINS] },
92
- asset: { type: "string", description: "Native symbol, USDC, or USDT if the route advertises it." },
104
+ chain: { type: "string", enum: [...EVM_CHAINS] },
105
+ asset: {
106
+ type: "string",
107
+ description: "Native symbol, USDC, or USDT if the route advertises it.",
108
+ },
93
109
  gross_amount: { type: "string", description: "Gross payer amount in base units." },
94
- merchant_wallet: { type: "string", description: "Merchant/provider EVM wallet." },
110
+ merchant_wallet: { type: "string", description: "Merchant/provider EVM wallet (0x...)." },
95
111
  order_id: { type: "string" },
96
- valid_until: { type: "integer", description: "Optional Unix seconds, max 20 minutes ahead." },
112
+ valid_until: {
113
+ type: "integer",
114
+ description: "Optional Unix seconds, max 20 minutes ahead.",
115
+ },
97
116
  },
98
117
  required: ["route_class", "chain", "asset", "gross_amount", "merchant_wallet", "order_id"],
99
118
  },
@@ -106,7 +125,7 @@ export async function runSettlementInvoice(ctx, args) {
106
125
  const chain = String(args.chain || "").toLowerCase();
107
126
  if (!ROUTES.has(route))
108
127
  return errorResult("route_class must be AIFP-1 or AIFP-2");
109
- if (!CHAINS.has(chain))
128
+ if (!EVM_CHAINS.has(chain))
110
129
  return errorResult("unsupported EVM settlement chain");
111
130
  try {
112
131
  const payload = {
@@ -128,4 +147,148 @@ export async function runSettlementInvoice(ctx, args) {
128
147
  return errorResult(`Settlement invoice failed: ${e.message}`);
129
148
  }
130
149
  }
150
+ // ─────────────────────────────────────────────────────────────────────────────
151
+ // Solana settlement
152
+ // ─────────────────────────────────────────────────────────────────────────────
153
+ const SOLANA_ASSETS = new Set(["SOL", "USDC"]);
154
+ export function settlementSolanaTool() {
155
+ return {
156
+ name: "settlement_solana",
157
+ description: "Build and validate a NON-SIGNING Solana settlement invoice. This tool never moves funds. " +
158
+ "Uses the AiFinPay Solana B2B split program (Anchor). " +
159
+ "Use the published @aifinpay/agent v2 settlement executor to sign and submit.",
160
+ inputSchema: {
161
+ type: "object",
162
+ properties: {
163
+ route_class: { type: "string", enum: ["AIFP-1", "AIFP-2"] },
164
+ chain: { type: "string", enum: [...SOLANA_CHAINS] },
165
+ asset: {
166
+ type: "string",
167
+ enum: [...SOLANA_ASSETS],
168
+ description: "SOL (native) or USDC (SPL token).",
169
+ },
170
+ gross_amount: { type: "string", description: "Gross payer amount in base units (lamports for SOL, 6 decimals for USDC)." },
171
+ merchant_wallet: {
172
+ type: "string",
173
+ description: "Merchant/provider Solana base58 public key.",
174
+ },
175
+ order_id: { type: "string" },
176
+ valid_until: {
177
+ type: "integer",
178
+ description: "Optional Unix seconds, max 20 minutes ahead.",
179
+ },
180
+ },
181
+ required: ["route_class", "chain", "asset", "gross_amount", "merchant_wallet", "order_id"],
182
+ },
183
+ annotations: { readOnlyHint: true, openWorldHint: false, destructiveHint: false },
184
+ outputSchema: { type: "object" },
185
+ };
186
+ }
187
+ export async function runSettlementSolana(ctx, args) {
188
+ const route = String(args.route_class || "").toUpperCase();
189
+ const chain = String(args.chain || "").toLowerCase();
190
+ if (!ROUTES.has(route))
191
+ return errorResult("route_class must be AIFP-1 or AIFP-2");
192
+ if (!SOLANA_CHAINS.has(chain))
193
+ return errorResult("unsupported Solana settlement chain");
194
+ const wallet = String(args.merchant_wallet || "");
195
+ if (!/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(wallet)) {
196
+ return errorResult("merchant_wallet must be a valid Solana base58 public key");
197
+ }
198
+ const asset = String(args.asset || "").toUpperCase();
199
+ if (!SOLANA_ASSETS.has(asset)) {
200
+ return errorResult("asset must be SOL or USDC");
201
+ }
202
+ try {
203
+ const payload = {
204
+ route_class: route,
205
+ chain,
206
+ asset,
207
+ gross_amount: String(args.gross_amount || ""),
208
+ merchant_wallet: wallet,
209
+ order_id: String(args.order_id || ""),
210
+ ...(args.valid_until != null ? { valid_until: Number(args.valid_until) } : {}),
211
+ };
212
+ return result(await api(ctx, "/v1/settlement/invoice", {
213
+ method: "POST",
214
+ headers: { "content-type": "application/json" },
215
+ body: JSON.stringify(payload),
216
+ }));
217
+ }
218
+ catch (e) {
219
+ return errorResult(`Solana settlement invoice failed: ${e.message}`);
220
+ }
221
+ }
222
+ // ─────────────────────────────────────────────────────────────────────────────
223
+ // Casper settlement
224
+ // ─────────────────────────────────────────────────────────────────────────────
225
+ const CASPER_ASSETS = new Set(["CSPR"]);
226
+ export function settlementCasperTool() {
227
+ return {
228
+ name: "settlement_casper",
229
+ description: "Build and validate a NON-SIGNING Casper settlement invoice. This tool never moves funds. " +
230
+ "Casper uses Wasm smart contracts and deploys (not EVM transactions). " +
231
+ "Use the published @aifinpay/agent v2 settlement executor to sign and submit.",
232
+ inputSchema: {
233
+ type: "object",
234
+ properties: {
235
+ route_class: { type: "string", enum: ["AIFP-1", "AIFP-2"] },
236
+ chain: { type: "string", enum: [...CASPER_CHAINS] },
237
+ asset: {
238
+ type: "string",
239
+ enum: [...CASPER_ASSETS],
240
+ description: "CSPR (native Casper token).",
241
+ },
242
+ gross_amount: { type: "string", description: "Gross payer amount in motes (10^-8 CSPR)." },
243
+ merchant_wallet: {
244
+ type: "string",
245
+ description: "Merchant/provider Casper account hex (account-hash-...).",
246
+ },
247
+ order_id: { type: "string" },
248
+ valid_until: {
249
+ type: "integer",
250
+ description: "Optional Unix seconds, max 20 minutes ahead.",
251
+ },
252
+ },
253
+ required: ["route_class", "chain", "asset", "gross_amount", "merchant_wallet", "order_id"],
254
+ },
255
+ annotations: { readOnlyHint: true, openWorldHint: false, destructiveHint: false },
256
+ outputSchema: { type: "object" },
257
+ };
258
+ }
259
+ export async function runSettlementCasper(ctx, args) {
260
+ const route = String(args.route_class || "").toUpperCase();
261
+ const chain = String(args.chain || "").toLowerCase();
262
+ if (!ROUTES.has(route))
263
+ return errorResult("route_class must be AIFP-1 or AIFP-2");
264
+ if (!CASPER_CHAINS.has(chain))
265
+ return errorResult("unsupported Casper settlement chain");
266
+ const wallet = String(args.merchant_wallet || "");
267
+ if (!/^account-hash-[0-9a-f]{64}$/.test(wallet)) {
268
+ return errorResult("merchant_wallet must be a valid Casper account hash (account-hash-...)");
269
+ }
270
+ const asset = String(args.asset || "").toUpperCase();
271
+ if (!CASPER_ASSETS.has(asset)) {
272
+ return errorResult("asset must be CSPR");
273
+ }
274
+ try {
275
+ const payload = {
276
+ route_class: route,
277
+ chain,
278
+ asset,
279
+ gross_amount: String(args.gross_amount || ""),
280
+ merchant_wallet: wallet,
281
+ order_id: String(args.order_id || ""),
282
+ ...(args.valid_until != null ? { valid_until: Number(args.valid_until) } : {}),
283
+ };
284
+ return result(await api(ctx, "/v1/settlement/invoice", {
285
+ method: "POST",
286
+ headers: { "content-type": "application/json" },
287
+ body: JSON.stringify(payload),
288
+ }));
289
+ }
290
+ catch (e) {
291
+ return errorResult(`Casper settlement invoice failed: ${e.message}`);
292
+ }
293
+ }
131
294
  //# sourceMappingURL=production-control.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"production-control.js","sourceRoot":"","sources":["../../src/tools/production-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"production-control.js","sourceRoot":"","sources":["../../src/tools/production-control.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { ToolContext } from "../server.js";
2
+ export declare function deploymentInfoTool(): {
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: string;
7
+ properties: {
8
+ ecosystem: {
9
+ type: string;
10
+ enum: string[];
11
+ description: string;
12
+ };
13
+ environment: {
14
+ type: string;
15
+ enum: string[];
16
+ description: string;
17
+ };
18
+ network: {
19
+ type: string;
20
+ description: string;
21
+ };
22
+ };
23
+ additionalProperties: boolean;
24
+ };
25
+ annotations: {
26
+ readOnlyHint: boolean;
27
+ openWorldHint: boolean;
28
+ destructiveHint: boolean;
29
+ };
30
+ };
31
+ export declare function runDeploymentInfo(_ctx: ToolContext, args: Record<string, unknown>): Promise<{
32
+ content: {
33
+ type: string;
34
+ text: string;
35
+ }[];
36
+ structuredContent: Record<string, unknown[]>;
37
+ }>;
38
+ //# sourceMappingURL=supported-chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supported-chains.d.ts","sourceRoot":"","sources":["../../src/tools/supported-chains.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA4BhD,wBAAgB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BjC;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;GA2EvF"}
@@ -0,0 +1,132 @@
1
+ import { V14_DEPLOYMENTS, SOLANA_V14_DEPLOYMENTS } from "@aifinpay/agent";
2
+ /** Casper deployments — static from @aifinpay/deployments registry (not re-exported by agent). */
3
+ const CASPER_DEPLOYMENTS = [
4
+ {
5
+ network: "casper-test",
6
+ environment: "testnet",
7
+ status: "live",
8
+ settlementEnabled: true,
9
+ contractPackageHash: "hash-47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a",
10
+ rpcEndpoint: "https://node.testnet.casper.network/rpc",
11
+ explorer: "https://testnet.cspr.live/contract/47df409829ddf0612617460293ba591a19b26fa0c06918878204088d3eb9b78a",
12
+ version: "v2",
13
+ },
14
+ {
15
+ network: "casper",
16
+ environment: "mainnet",
17
+ status: "historical",
18
+ settlementEnabled: false,
19
+ contractHash: "contract-9903a5e3948e799196df54b17270bc6769338ac1cc36c9eb47e113f88d23f019",
20
+ contractPackageHash: "hash-7ad34a204952eef63d5dcf5159fb7d009e85dea4f49cbdf73dde190652dfa375",
21
+ rpcEndpoint: "https://node.casper.network/rpc",
22
+ explorer: "https://cspr.live/contract/9903a5e3948e799196df54b17270bc6769338ac1cc36c9eb47e113f88d23f019",
23
+ version: "v1",
24
+ disabledReason: "v1: pay_agent recorded receipt but did NOT transfer value; separate native transfer required",
25
+ },
26
+ ];
27
+ export function deploymentInfoTool() {
28
+ return {
29
+ name: "deployment_info",
30
+ description: "Get AiFinPay deployment details across EVM, Solana, and Casper — addresses, stablecoins, program IDs, and settlement status. " +
31
+ "Filter by ecosystem (evm/solana/casper), environment (prod/dev), or network name.",
32
+ inputSchema: {
33
+ type: "object",
34
+ properties: {
35
+ ecosystem: {
36
+ type: "string",
37
+ enum: ["evm", "solana", "casper"],
38
+ description: "Filter by ecosystem. Omit for all.",
39
+ },
40
+ environment: {
41
+ type: "string",
42
+ enum: ["prod", "dev", "testnet", "mainnet"],
43
+ description: "Filter by environment. Omit for all.",
44
+ },
45
+ network: {
46
+ type: "string",
47
+ description: "Filter by exact network name (e.g. 'optimism', 'mainnet', 'casper-test').",
48
+ },
49
+ },
50
+ additionalProperties: false,
51
+ },
52
+ annotations: { readOnlyHint: true, openWorldHint: false, destructiveHint: false },
53
+ };
54
+ }
55
+ export async function runDeploymentInfo(_ctx, args) {
56
+ const ecosystem = args.ecosystem;
57
+ const environment = args.environment;
58
+ const network = args.network;
59
+ const result = {};
60
+ // ── EVM ──────────────────────────────────────────────────────────────────
61
+ if (!ecosystem || ecosystem === "evm") {
62
+ let evm = Object.values(V14_DEPLOYMENTS);
63
+ if (environment)
64
+ evm = evm.filter((d) => d.environment === environment);
65
+ if (network)
66
+ evm = evm.filter((d) => d.network === network);
67
+ result.evm = evm.map((d) => ({
68
+ network: d.network,
69
+ chainId: d.chainId,
70
+ environment: d.environment,
71
+ status: d.status,
72
+ settlementEnabled: d.settlementEnabled,
73
+ contracts: {
74
+ splitter: d.splitter.address,
75
+ tokenList: d.splitter.tokenList,
76
+ profiles: d.splitter.profiles,
77
+ admin: d.splitter.admin,
78
+ signer: d.splitter.signer,
79
+ pauser: d.splitter.pauser,
80
+ treasury: d.splitter.treasury,
81
+ },
82
+ stablecoins: d.splitter.assets.map((a) => ({
83
+ symbol: a.symbol,
84
+ name: a.name ?? a.symbol,
85
+ address: a.address,
86
+ })),
87
+ safe: { address: d.safe.address, version: d.safe.version, threshold: d.safe.threshold },
88
+ }));
89
+ }
90
+ // ── Solana ───────────────────────────────────────────────────────────────
91
+ if (!ecosystem || ecosystem === "solana") {
92
+ let solana = Object.values(SOLANA_V14_DEPLOYMENTS);
93
+ if (environment)
94
+ solana = solana.filter((d) => d.environment === environment);
95
+ if (network)
96
+ solana = solana.filter((d) => d.network === network);
97
+ result.solana = solana.map((d) => ({
98
+ network: d.network,
99
+ environment: d.environment,
100
+ status: d.status,
101
+ settlementEnabled: d.settlementEnabled,
102
+ disabledReason: d.disabledReason,
103
+ programId: d.programId,
104
+ idl: d.idl,
105
+ }));
106
+ }
107
+ // ── Casper ───────────────────────────────────────────────────────────────
108
+ if (!ecosystem || ecosystem === "casper") {
109
+ let casper = [...CASPER_DEPLOYMENTS];
110
+ if (environment)
111
+ casper = casper.filter((d) => d.environment === environment);
112
+ if (network)
113
+ casper = casper.filter((d) => d.network === network);
114
+ result.casper = casper.map((d) => ({
115
+ network: d.network,
116
+ environment: d.environment,
117
+ status: d.status,
118
+ settlementEnabled: d.settlementEnabled,
119
+ contractPackageHash: d.contractPackageHash,
120
+ contractHash: "contractHash" in d ? d.contractHash : undefined,
121
+ rpcEndpoint: d.rpcEndpoint,
122
+ explorer: d.explorer,
123
+ version: d.version,
124
+ disabledReason: "disabledReason" in d ? d.disabledReason : undefined,
125
+ }));
126
+ }
127
+ return {
128
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
129
+ structuredContent: result,
130
+ };
131
+ }
132
+ //# sourceMappingURL=supported-chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supported-chains.js","sourceRoot":"","sources":["../../src/tools/supported-chains.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aifinpay/mcp",
3
- "version": "2.0.0-rc.5",
3
+ "version": "2.1.0",
4
4
  "description": "AiFinPay MCP production-RC control surface for Agent Passport resolution and runtime-verified AIFP-1/AIFP-2 settlement invoices. Signing tools remain gated until @aifinpay/agent v2 release.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -18,12 +18,22 @@
18
18
  "dist",
19
19
  "bin",
20
20
  "README.md",
21
- "LICENSE"
21
+ "LICENSE",
22
+ "skills",
23
+ "package.json",
24
+ "package-lock.json",
25
+ "smithery.yaml"
22
26
  ],
23
27
  "scripts": {
28
+ "sync:skills": "node scripts/sync-skills.mjs",
29
+ "prebuild": "npm run sync:skills",
24
30
  "build": "tsc -p tsconfig.json",
25
31
  "test": "vitest run",
26
- "prepublishOnly": "npm run build"
32
+ "prepublishOnly": "npm run build",
33
+ "lint": "eslint .",
34
+ "lint:fix": "eslint . --fix",
35
+ "format": "prettier --write \"**/*.{js,mjs,cjs,jsx,ts,tsx,json,md}\"",
36
+ "format:check": "prettier --check \"**/*.{js,mjs,cjs,jsx,ts,tsx,json,md}\""
27
37
  },
28
38
  "keywords": [
29
39
  "aifinpay",
@@ -65,18 +75,30 @@
65
75
  },
66
76
  "bugs": "https://github.com/AiFinPay/sdk/issues",
67
77
  "dependencies": {
68
- "@aifinpay/agent": "^1.8.1",
78
+ "@aifinpay/agent": "^2.0.1",
79
+ "@aifinpay/skill": "^2.0.9",
69
80
  "@modelcontextprotocol/sdk": "^1.0.0",
70
81
  "bs58": "^6.0.0",
71
82
  "tweetnacl": "^1.0.3"
72
83
  },
84
+ "overrides": {
85
+ "jayson": {
86
+ "uuid": "^11.1.1"
87
+ }
88
+ },
73
89
  "devDependencies": {
74
- "@types/node": "^20.0.0",
90
+ "@eslint/js": "^9.0.0",
91
+ "@types/node": "^22",
92
+ "eslint": "^10.10.0",
93
+ "eslint-config-prettier": "^10.1.8",
94
+ "globals": "^16.0.0",
95
+ "prettier": "^3.9.6",
75
96
  "typescript": "^5.4.0",
97
+ "typescript-eslint": "^8.0.0",
76
98
  "vitest": "^4.1.5"
77
99
  },
78
100
  "engines": {
79
- "node": ">=18"
101
+ "node": ">=22"
80
102
  },
81
103
  "publishConfig": {
82
104
  "access": "public"