Skip to content

feat: add mcp client approval callbacks#522

Open
parvahuja wants to merge 1 commit into
wevm:mainfrom
parvahuja:parv/mppx-mcp-approval-callback
Open

feat: add mcp client approval callbacks#522
parvahuja wants to merge 1 commit into
wevm:mainfrom
parvahuja:parv/mppx-mcp-approval-callback

Conversation

@parvahuja

Copy link
Copy Markdown

Summary

  • Add an optional payment approval callback to wrapped MCP client tool calls
  • Support callTool(null, params) for explicit automatic payment
  • Add type and runtime coverage for approval, denial, and explicit auto-pay flows

Context

Agent SDK integrations often need a human-in-the-loop step before an agent pays for a tool call. This keeps the existing callTool(params, options) API intact and adds an overload for approval-aware calls.

Usage

Before:

const paidMcp = McpClient.wrap(mcpClient, { methods })

const result = await paidMcp.callTool({
  name: "premium_tool",
  arguments: toolArgs,
})

After:

const result = await paidMcp.callTool(approvePayment, {
  name: "premium_tool",
  arguments: toolArgs,
})

Use paidMcp.callTool(null, params) to make the automatic-payment choice explicit.

Validation

  • pnpm check
  • pnpm check:types
  • VITE_NODE_ENV=unit pnpm test --project node src/mcp-sdk/client/McpClient.unit.test.ts

Note: pnpm check:types still emits existing ox/viem Tempo channel bundler warnings, but exits successfully.

@brendanjryan brendanjryan marked this pull request as ready for review June 8, 2026 23:04
_meta?: Record<string, unknown>
}

export type OnPaymentRequired = (challenge: Challenge.Challenge) => boolean | Promise<boolean>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants