@quackai/q402-mcp 0.7.3 → 0.7.5

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 (2) hide show
  1. package/dist/index.js +12 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -211,7 +211,7 @@ var isValidPrivateKey = (s) => typeof s === "string" && PRIVATE_KEY_RE.test(s);
211
211
 
212
212
  // src/version.ts
213
213
  var PACKAGE_NAME = "@quackai/q402-mcp";
214
- var PACKAGE_VERSION = "0.7.3";
214
+ var PACKAGE_VERSION = "0.7.5";
215
215
 
216
216
  // src/tools/quote.ts
217
217
  import { z } from "zod";
@@ -1193,6 +1193,10 @@ var PAY_TOOL = {
1193
1193
  enum: ["eoa", "agentic-local", "agentic-server"],
1194
1194
  description: `Which wallet to spend from. "eoa" = user's real MetaMask EOA (Q402_PRIVATE_KEY). "agentic-local" = Agent Wallet exported key (Q402_AGENTIC_PRIVATE_KEY). "agentic-server" = server-managed Agent Wallet (Q402 holds the key; only the apiKey is needed). When MULTIPLE wallets are configured the tool refuses without this arg and returns ambiguousWalletChoice for the user to pick.`
1195
1195
  },
1196
+ walletId: {
1197
+ type: "string",
1198
+ description: `Server-managed Agent Wallet only (walletMode="agentic-server"). Lowercased Agent Wallet address selecting which of the user's wallets to spend from when they hold more than one (max 10 per owner). Omit to use the user's default wallet. Ignored for the other walletMode values since those modes carry their own signing key.`
1199
+ },
1196
1200
  confirm: {
1197
1201
  type: "boolean",
1198
1202
  const: true,
@@ -2708,12 +2712,14 @@ async function runAgenticInfo(input = {}) {
2708
2712
  asOf: null,
2709
2713
  erc8004AgentId: null,
2710
2714
  scan8004Url: null,
2715
+ reputation: null,
2711
2716
  dashboardUrl,
2712
2717
  setupHint: "No live Q402 API key configured. Run q402_doctor to set one up, or open your dashboard to create an Agent Wallet."
2713
2718
  };
2714
2719
  }
2715
2720
  let wallet = null;
2716
2721
  let balance = null;
2722
+ let reputation = null;
2717
2723
  let fetchError = null;
2718
2724
  try {
2719
2725
  const res = await fetch(`${base}/wallet/agentic/info-by-key`, {
@@ -2728,6 +2734,7 @@ async function runAgenticInfo(input = {}) {
2728
2734
  const data = await res.json();
2729
2735
  wallet = data.wallet ?? null;
2730
2736
  balance = data.balance ?? null;
2737
+ reputation = data.reputation ?? null;
2731
2738
  } else if (res.status === 404) {
2732
2739
  fetchError = "endpoint_not_deployed";
2733
2740
  } else if (res.status === 410) {
@@ -2749,6 +2756,7 @@ async function runAgenticInfo(input = {}) {
2749
2756
  asOf: null,
2750
2757
  erc8004AgentId: null,
2751
2758
  scan8004Url: null,
2759
+ reputation: null,
2752
2760
  dashboardUrl,
2753
2761
  setupHint: fetchError === "endpoint_not_deployed" ? "Agent Wallet info-by-key endpoint is not live yet. Open the dashboard to view your wallet directly." : fetchError === "wallet_archived" ? "The requested wallet is archived. Restore it from the dashboard before reading." : explicitWalletId ? `Could not fetch Agent Wallet ${explicitWalletId} for this apiKey. Verify the walletId is one of this owner's wallets, or omit it to read the default wallet.` : "Could not fetch Agent Wallet for this apiKey. Verify the key is bound to a wallet via the dashboard, then retry."
2754
2762
  };
@@ -2767,6 +2775,7 @@ async function runAgenticInfo(input = {}) {
2767
2775
  asOf: balance ? new Date(balance.asOf).toISOString() : null,
2768
2776
  erc8004AgentId: wallet.erc8004AgentId,
2769
2777
  scan8004Url: scan8004UrlFor(wallet.erc8004AgentId),
2778
+ reputation,
2770
2779
  dashboardUrl,
2771
2780
  setupHint: wallet.deletedAt ? "This Agent Wallet is archived and pending hard-delete. Restore it from the dashboard before sending." : void 0
2772
2781
  };
@@ -3491,8 +3500,8 @@ async function main() {
3491
3500
  return { content: [jsonText(await runClearDelegation(parsed))] };
3492
3501
  }
3493
3502
  case "q402_agentic_info": {
3494
- AgenticInfoInputSchema.parse(args ?? {});
3495
- return { content: [jsonText(await runAgenticInfo())] };
3503
+ const parsed = AgenticInfoInputSchema.parse(args ?? {});
3504
+ return { content: [jsonText(await runAgenticInfo(parsed))] };
3496
3505
  }
3497
3506
  case "q402_recurring_list": {
3498
3507
  const parsed = RecurringListInputSchema.parse(args ?? {});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quackai/q402-mcp",
3
- "version": "0.7.3",
3
+ "version": "0.7.5",
4
4
  "description": "MCP server for Q402 — gasless USDC, USDT, and RLUSD payments across 9 EVM chains, callable from Claude (Desktop / Code), OpenAI Codex CLI, and any other Model Context Protocol client.",
5
5
  "mcpName": "io.github.bitgett/q402-mcp",
6
6
  "keywords": [