agent402-mcp 0.12.7 → 0.12.9

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # agent402-mcp
2
2
 
3
- MCP server for [Agent402](https://agent402.tools) - a catalog of **500+: 400+ pay-per-call web tools + 100+ curated multi-tool skill packs** for AI agents (every one tested, priced, and settled on-chain; every one earns its place), paid per call in USDC via the [x402 protocol](https://www.x402.org), or **with compute (proof-of-work)** when no wallet is configured. (The hosted API is dual-stack: it also accepts [MPP](https://agent402.tools/what-is-mpp) clients on the same 402, settling on Base/Celo or natively on Tempo; this package pays via x402.) Built by [Havok Holdings LLC](https://github.com/MikeyPetrillo/Agent402).
3
+ MCP server for [Agent402](https://agent402.tools), the applied layer of [Agentic Finance (AIFI)](https://agent402.tools/agentic-finance) - a catalog of **500+: 400+ pay-per-call web tools + 100+ curated multi-tool skill packs** for AI agents (every one tested, priced, and settled on-chain; every one earns its place), paid per call in USDC via the [x402 protocol](https://www.x402.org), or **with compute (proof-of-work)** when no wallet is configured. (The hosted API is dual-stack: it also accepts [MPP](https://agent402.tools/what-is-mpp) clients on the same 402, settling on Base/Celo or natively on Tempo; this package pays via x402.) Built by [Havok Holdings LLC](https://github.com/MikeyPetrillo/Agent402).
4
4
 
5
5
  Your agent gets browser rendering, screenshots, PDF text extraction, URL→markdown, live web search **+ web answers with citations**, live **financial/crypto/macro data** (Yahoo stock quotes, CoinGecko, FRED, ECB FX, World Bank, yield curve), **SEC EDGAR filings** (10-K/10-Q text, XBRL, insider, 13F, IPO calendar), **deterministic stats & forecasting** (Pearson correlation, OLS, Holt-Winters), **compression** (gzip/brotli), DNS/TLS/WHOIS + email-deliverability checks, wallet-keyed shared memory, and 200+ deterministic pure-CPU utilities - plus 100+ **skill packs** like `security-audit`, `trend-analysis`, `structured-scrape`, `decode-blob`, and `forecasting-bake-off` callable as MCP prompts. Payment handled invisibly underneath the MCP calls. No signup, no API key.
6
6
 
package/index.js CHANGED
@@ -492,13 +492,14 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
492
492
  title: "List top x402 sellers",
493
493
  annotations: { title: "List top x402 sellers", ...SAFE },
494
494
  description:
495
- "List the x402 sellers earning the most USDC (or serving the most calls) on Base in the last ~24h, derived from on-chain USDC transfers. Useful for agents discovering the live x402 economy: who's getting paid, which networks, and where to point demand. Free to call (no payment, no proof-of-work). Defaults: top 10, sort by USDC, exclude this service's own wallet.",
495
+ "List ranked sellers from the on-chain leaderboards. wire=x402 (default): x402 sellers earning the most USDC (or serving the most calls) on Base in the last ~24h, derived from on-chain USDC transfers. wire=mpp: MPP (Machine Payments Protocol) sellers ranked by inbound USDC.e transfers on Tempo to the recipient their live 402 names (window, rolling 7d/30d, distinct payers, volume; routable = the host's router will pay them). Useful for agents discovering the live x402 / MPP economy: who's getting paid, which networks, and where to point demand. Free to call (no payment, no proof-of-work). Defaults: top 10, sort by USDC, exclude this service's own wallet.",
496
496
  inputSchema: {
497
497
  type: "object",
498
498
  properties: {
499
499
  limit: { type: "number", description: "Max rows to return (default 10, max 50)" },
500
- sort: { type: "string", enum: ["usd", "calls"], description: "Rank by USDC settled (default) or by call count" },
500
+ sort: { type: "string", enum: ["usd", "calls"], description: "Rank by USDC settled (default) or by call count (mpp: 7-day volume / 7-day transfers, default calls)" },
501
501
  include: { type: "string", enum: ["external", "all"], description: "'external' (default) hides this service's own wallet; 'all' includes it" },
502
+ wire: { type: "string", enum: ["x402", "mpp"], description: "Which leaderboard: x402 (default) or mpp" },
502
503
  },
503
504
  },
504
505
  outputSchema: META_OUTPUT_SCHEMAS["sellers.list"],
@@ -616,8 +617,8 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
616
617
  npm: "npx -y agent402-mcp",
617
618
  maintainer: "Havok Holdings LLC",
618
619
  },
619
- positioning: "Deterministic tools layer beside LLM gateways: flagship search/answer first, 500+ long-tail tools via catalog.find / catalog.search / catalog.call.",
620
- ecosystem: "Call sellers.list to see which x402 sellers (any wallet, not just this host) are settling the most USDC (primarily on Base) in the last 24h - discovers the live economy beyond this catalog.",
620
+ positioning: `Deterministic tools layer beside LLM gateways: flagship search/answer first, 500+ long-tail tools via catalog.find / catalog.search / catalog.call. Agent402 is the applied layer of Agentic Finance (AIFI): agents that pay and get paid per request over x402 or MPP (Machine Payments Protocol), both on the same 402 - ${BASE}/agentic-finance, ${BASE}/glossary.`,
621
+ ecosystem: "Call sellers.list to see which x402 sellers (any wallet, not just this host) are settling the most USDC (primarily on Base) in the last 24h, or sellers.list with wire=mpp for MPP sellers ranked by on-chain USDC.e transfers on Tempo - discovers the live economy beyond this catalog.",
621
622
  });
622
623
  }
623
624
  if (name === "server.describe") {
@@ -625,6 +626,7 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
625
626
  service: BASE,
626
627
  connector: "stdio npm package (agent402-mcp)",
627
628
  maintainer: "Havok Holdings LLC",
629
+ positioning: `Agent402 is the applied layer of Agentic Finance (AIFI): software agents that pay and get paid on their own, per request, over x402 or MPP (Machine Payments Protocol) - both answered on the same 402. ${BASE}/agentic-finance, ${BASE}/glossary.`,
628
630
  startHere: {
629
631
  firstJob: "Search the web and answer questions. Call web.search or web.answer directly, or catalog.find with your task.",
630
632
  mode: HAS_WALLET ? "usdc" : "proof-of-work",
@@ -641,6 +643,47 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
641
643
  docs: `${BASE}/llms.txt`,
642
644
  });
643
645
  }
646
+ if (name === "sellers.list" && args.wire === "mpp") {
647
+ // Thin pass-through to /api/mpp-leaderboard (free, unpaywalled), same
648
+ // compact row shape as the hosted connector's wire=mpp branch.
649
+ const limit = Math.min(Math.max(parseInt(args.limit, 10) || 10, 1), 50);
650
+ const sort = args.sort === "usd" ? "usd" : "calls";
651
+ const include = args.include === "all" ? "all" : "external";
652
+ const res = await fetch(`${BASE}/api/mpp-leaderboard`);
653
+ if (!res.ok) {
654
+ return { content: [{ type: "text", text: `Failed to fetch the MPP leaderboard from ${BASE}: HTTP ${res.status}` }], isError: true };
655
+ }
656
+ const lb = await res.json();
657
+ let board = (Array.isArray(lb.rows) ? lb.rows : []).filter((r) => r.transfers > 0 || (r.d30?.transfers || 0) > 0);
658
+ if (include === "external") board = board.filter((r) => !r.self);
659
+ board = board.slice().sort((a, b) => sort === "usd"
660
+ ? ((b.d7?.volumeUsdc || 0) - (a.d7?.volumeUsdc || 0)) || (b.transfers - a.transfers)
661
+ : ((b.d7?.transfers || 0) - (a.d7?.transfers || 0)) || (b.transfers - a.transfers)).slice(0, limit);
662
+ const rows = board.map((r, i) => ({
663
+ rank: i + 1,
664
+ name: r.self ? "this host" : (r.sellers || []).map((s) => s.name).join(", ") || "unnamed recipient",
665
+ network: "eip155:4217",
666
+ wallet: r.recipient,
667
+ homepage: r.sellers?.[0]?.url || null,
668
+ transfersWindow: r.transfers,
669
+ transfers7d: r.d7?.transfers || 0,
670
+ transfers30d: r.d30?.transfers || 0,
671
+ payersWindow: r.payers,
672
+ volumeUsdc7d: Math.round((r.d7?.volumeUsdc || 0) * 10000) / 10000,
673
+ routable: !!r.routable,
674
+ }));
675
+ return mcpJsonResult({
676
+ wire: "mpp",
677
+ measure: "inbound USDC.e transfers on Tempo (chain 4217) to the recipient each seller's live MPP challenge names - a window read plus rolling 7d/30d, a proxy for settlements, not lifetime",
678
+ window: lb.window ? `~${lb.window.approxHours}h (${lb.window.blocks} blocks)` : null,
679
+ asOf: lb.generatedAt || null,
680
+ sort, include,
681
+ totalSellers: Array.isArray(lb.rows) ? lb.rows.length : 0,
682
+ results: rows,
683
+ ...(lb.stale ? { note: "Leaderboard is stale or still warming - retry in a few minutes." } : {}),
684
+ source: `${BASE}/api/mpp-leaderboard`,
685
+ });
686
+ }
644
687
  if (name === "sellers.list") {
645
688
  const limit = Math.min(Math.max(parseInt(args.limit, 10) || 10, 1), 50);
646
689
  const sort = args.sort === "calls" ? "calls" : "usd";
package/output-schemas.js CHANGED
@@ -99,7 +99,7 @@ export const FLAGSHIP_WRITERS = new Set(["memory-write"]);
99
99
 
100
100
  /** initialize.serverInfo description (MCP Implementation.description). */
101
101
  export const MCP_SERVER_DESCRIPTION =
102
- "Deterministic pay-per-call tools for AI agents: live web search and cited answers, news, browser render, market data, speech-to-text, wallet-keyed memory, plus 500+ long-tail tools via catalog.find. Settle in USDC via x402 or free via proof-of-work. Maintained by Havok Holdings LLC.";
102
+ "Agentic Finance (AIFI) applied layer - deterministic pay-per-call tools for AI agents: live web search and cited answers, news, browser render, market data, speech-to-text, wallet-keyed memory, plus 500+ long-tail tools via catalog.find. Settle in USDC via x402 or MPP (Machine Payments Protocol) on the same 402, or free via proof-of-work. Maintained by Havok Holdings LLC.";
103
103
 
104
104
  /** initialize.serverInfo.websiteUrl */
105
105
  export const MCP_SERVER_WEBSITE = "https://agent402.tools";
@@ -251,7 +251,9 @@ export const META_OUTPUT_SCHEMAS = {
251
251
  "sellers.list": {
252
252
  type: "object",
253
253
  properties: {
254
- window: { type: "string" },
254
+ wire: { type: "string", enum: ["x402", "mpp"] },
255
+ measure: { type: "string" },
256
+ window: { type: ["string", "null"] },
255
257
  asOf: { description: "Snapshot timestamp" },
256
258
  sort: { type: "string", enum: ["usd", "calls"] },
257
259
  include: { type: "string", enum: ["external", "all"] },
@@ -505,7 +507,7 @@ export function mcpInitializeInstructions(baseUrl) {
505
507
  const install = mcpInstallHints(baseUrl);
506
508
  const hosted = install.hostedUrl;
507
509
  return [
508
- "Agent402 is a deterministic tools layer for AI agents (Havok Holdings LLC).",
510
+ "Agent402 is a deterministic tools layer for AI agents (Havok Holdings LLC) - the applied layer of Agentic Finance (AIFI): agents that pay and get paid per request over x402 or MPP, or free via proof-of-work.",
509
511
  "Front door: call web.search or web.answer for live web search and cited answers.",
510
512
  "Also listed: web.news, browser.render, market.quote, audio.transcribe, memory.read, memory.write.",
511
513
  "Long catalog (500+ tools): call catalog.find with your task, or catalog.search then catalog.call.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent402-mcp",
3
- "version": "0.12.7",
3
+ "version": "0.12.9",
4
4
  "mcpName": "io.github.MikeyPetrillo/agent402",
5
5
  "author": "Havok Holdings LLC <mike@agent402.tools> (https://agent402.tools)",
6
6
  "homepage": "https://agent402.tools",