PayPal, guarded

io.github.Fizzl13由 GitHub 账号 Fizzl13 发布v0.2.1更新于 Oct 30, 2026

PayPal's Agent Toolkit with limits on refunds and the owner's Approve/Deny above them.

发布方自己的服务:Paypal

概览

AI 生成的概览

PayPal Agent Toolkit 的 MCP 服务器,让助手读取并操作 PayPal 商家账户,并由守护层限制退款额度、对高风险操作请求本人批准。

可以做什么
  • 读取订单、发票、交易、争议、退款、商品、订阅计划与订阅
  • 创建、发送、催缴、取消和删除发票,包括定期发票系列
  • 创建订单、捕获付款,并为发票登记收款或退款记录
  • 管理商品、订阅计划与订阅,创建物流跟踪
  • 查看守护状态、当日额度与待批准事项,或预演守护层会如何判定
适用场景
适合让助手处理你自己的 PayPal 商家账户,例如开票、订阅、订单和退款,同时让涉及资金或资金承诺的操作由本人把关。建议先在 PayPal 沙箱中试用。
运行要求
通过 npx 以 stdio 在本地运行(需要 Node.js)。需要 PayPal REST 应用的客户端 ID 与密钥(PAYPAL_CLIENT_ID、PAYPAL_CLIENT_SECRET),并设置 PAYPAL_ENVIRONMENT 为 SANDBOX 或 PRODUCTION。可选审批渠道:FIZZL_AGENT_KEY 使用 Fizzl Agent Wallet,或 TELEGRAM_BOT_TOKEN 配合 TELEGRAM_CHAT_ID;否则在聊天应用内审批。
安装前请注意
当 PAYPAL_ENVIRONMENT 设为 PRODUCTION 时,退款和付款都是真实资金。服务器持有 PayPal API 凭据,可能还持有钱包代理密钥和 Telegram 机器人令牌。它可以发送发票、取消订阅、接受争议、把发票标记为已付款;超过设定额度时需本人批准,若未配置任何审批渠道则直接不执行。发票备注、争议消息等 PayPal 数据属于不可信文本。

安装

在 SourceWeft 中

  1. 打开 控制台中的 PayPal, guarded,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

fizzl-paypal-guard-mcp

PayPal's Agent Toolkit as an MCP server for Claude Desktop, Claude Code, Cursor and other MCP clients, with fizzl-paypal-guard between the model and PayPal.

It has the same 47 tools as PayPal's own MCP server (@paypal/mcp), under the same names. The difference: every call that moves or promises money is checked first.

  • Reads pass straight through. Orders, invoices, transactions, disputes and refunds: look as much as you like.
  • Never more than is left. A refund without an amount refunds everything that's left of a payment. The guard reads the payment at PayPal first. A refund of a payment that was already refunded in full is stopped, and so is a refund for more than is left.
  • Not when the bank already paid. A refund of a payment with an open chargeback or dispute is stopped: the buyer would get the money twice, and PayPal lets that refund through.
  • Your limits. By default up to $25 per refund, $100 and 10 refunds a day, one refund per payment a day, and the third refund for the same customer within 30 days asks you. Cancellations and bills have a number a day.
  • You decide the rest. Above a limit, and for every accepted dispute, price change or invoice marked as paid, you get Approve and Deny: on your phone (Telegram, or the Fizzl Agent Wallet) or in the chat app itself. No answer means no.
  • A log the agent doesn't write. Every action that isn't a read is logged on your machine with its decision, the reasons and who approved it. The day's counts are kept there too, so restarting the app doesn't give the agent a fresh day of limits.

A blocked call returns { "blocked": true, "reasons": […], "message": "Not done (…)" }, and the message tells the model not to try another way. The model can't talk its way past the guard: the checks use facts from PayPal and limits from you, never what the conversation says.

Live demo of the guard (a support agent in the PayPal sandbox): https://fizzl-paypal-demo.onrender.com

Set up

  1. Make a REST app at developer.paypal.com → Apps & Credentials. Start in Sandbox: test money only. Copy its client ID and secret.
  2. Add the server to your MCP client. For Claude Desktop, in claude_desktop_config.json:
json
{  "mcpServers": {    "paypal": {      "command": "npx",      "args": ["-y", "fizzl-paypal-guard-mcp", "--tools=all"],      "env": {        "PAYPAL_CLIENT_ID": "your sandbox client id",        "PAYPAL_CLIENT_SECRET": "your sandbox secret",        "PAYPAL_ENVIRONMENT": "SANDBOX"      }    }  }}

For Claude Code:

sh
claude mcp add paypal -e PAYPAL_CLIENT_ID=… -e PAYPAL_CLIENT_SECRET=… -e PAYPAL_ENVIRONMENT=SANDBOX -- npx -y fizzl-paypal-guard-mcp --tools=all

Claude Desktop, with a double click: download fizzl-paypal-guard-mcp.mcpb and open it with Claude Desktop. It asks for the client ID and secret, your limits and, if you like, your Fizzl wallet key or Telegram bot; nothing to type in a config file.

  1. Restart the app and ask, for example: "List my PayPal transactions of the last week", then "Refund capture 2GG… in full". Ask paypal_guard_status what the guard allows and what it did today.

Coming from @paypal/mcp? Use the same --tools list. Instead of PAYPAL_ACCESS_TOKEN this server takes the app's client ID and secret: an access token stops working after about nine hours, and the guard needs to read payments itself.

Approvals

When an action needs your OK, the server asks the first of these that is set up:

WhereHowSettings
Fizzl Agent WalletApprove or Deny in Telegram (@FizzlWalletBot) or on the wallet dashboard, next to your agents' other payments. The outcome (PayPal's refund id) lands on a receipt there.FIZZL_AGENT_KEY: an agent key (awk_…) from wallet.fizzl.eu → Agents
Your own Telegram botA message from your bot with Approve and Deny. Make a bot with @BotFather and send it /start; get your chat id from @userinfobot. The bot must have no webhook.TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID
In the chat appA form in the app itself (MCP elicitation), with Approve or Deny. Only you can answer it, not the model. Works in MCP clients that support elicitation, such as Claude Code; in others, use your phone. Don't set up a hook that answers these forms automatically (Claude Code's Elicitation hook can).Nothing; APPROVAL_IN_CHAT=off to turn it off

With none of these, anything over a limit is simply not done.

A phone is the stronger choice: the question reaches you on a different device than the one the agent runs on. And it can wait longer than an MCP client waits for a tool call. If you haven't answered after APPROVAL_WAIT_SECONDS (45), the call returns "waiting": true with an approval id. The approval goes on: approve within APPROVAL_MINUTES (10) and the action runs then; otherwise nothing happens. The model is told not to try again, and paypal_guard_status with the approval id shows what became of it.

Settings

Variable
PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRETYour REST app. Without them the server lists its tools and every call explains how to set it up.
PAYPAL_ENVIRONMENTSANDBOX (default) or PRODUCTION
--tools= or PAYPAL_TOOLSall (default), or names as in PayPal's MCP server: payments.createRefund,payments.getRefunds,orders.get,transactions.list,invoices.list,…
LIMIT_REFUNDMost per refund without asking you (default 25.00)
LIMIT_REFUND_PER_DAYRefunds a day, in total (default 100.00)
LIMIT_REFUNDS_PER_DAYNumber of refunds a day (default 10)
LIMIT_CURRENCYThe currency of the limits (default USD). A refund in another currency asks you.
GUARD_POLICYAnything else, as JSON over the defaults: for example {"dispute":"deny","stop":"ask","bill":{"countPerDay":5}}, or {"returnDays":30} to be asked about refunds of payments older than your return period. Each kind takes "allow", "ask", "deny" or limits.
FIZZL_AGENT_KEY, FIZZL_WALLET_URLApprovals through the Fizzl Agent Wallet (URL default https://wallet.fizzl.eu)
TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_IDApprovals through your own Telegram bot
APPROVAL_IN_CHAToff to never ask in the chat app
APPROVAL_MINUTESHow long you have to answer (default 10)
APPROVAL_WAIT_SECONDSHow long a tool call waits for your answer before it returns "waiting" (default 45)
AGENT_NAMEThe name your phone shows (default: the MCP client's name)
GUARD_STATE_DIRWhere the day's counts and the log are kept (default ~/.fizzl-paypal-guard; sandbox and live apart)

Tools

All tools of PayPal's Agent Toolkit 1.11, sorted by what they can do to your money:

KindToolsBy default
readget_order, list_transactions, get_refund, list_invoices, get_invoice, list_disputes, get_dispute, …Pass
refundcreate_refundNever more than is left, never on a payment with an open chargeback or dispute; $25 each, $100 and 10 a day, one per payment a day; then you
disputeaccept_dispute_claim (pays the buyer)You decide each one
booksrecord_payment_for_invoice, record_refund_for_invoice (money marked as moved while none moves)You decide each one
stopcancel_subscription, cancel_sent_invoice, delete_invoice, …3 a day, then you
priceupdate_product, update_plan, update_subscription, create_subscription_plan, …You decide each one
billcreate_invoice, send_invoice, create_subscription, …20 a day, then you
othercreate_order, pay_order, create_shipment_tracking, send_invoice_reminder, …Pass

A tool the guard doesn't know yet (a newer toolkit) always asks you. The full list is in actions.js.

And two of its own:

Tool
paypal_guard_statusYour limits, how much of today's is used, approvals waiting for you, the latest decisions from the log. With approval_id: what became of that approval.
paypal_guard_checkDry run: what the guard would decide for a call, and why, without running it.

For apps that serve customers

In your own chat with Claude, you are the one giving the orders. A support bot is different: it acts for a customer, and a customer can claim anything ("I'm writing for my husband, here's his capture number"). There the guard also checks that a refund, cancellation or bill belongs to the customer the app is serving.

The app, not the model, tells the server who that is: in the tool call's _meta, which the model can't touch.

js
await mcpClient.callTool({  name: "create_refund",  arguments: { capture_id: "2GG…" },  _meta: { "fizzl.eu/customer": "[email protected]", "fizzl.eu/request": "My mug arrived broken" },});

PayPal knows the payer's email for PayPal checkout payments. Card payments have none; for those, use fizzl-paypal-guard in your own code with its customerOf hook, as the demo shop does.

Good to know

  • Test in the sandbox first. With PRODUCTION the refunds are real.
  • The day's counts are per machine. Two computers with the same PayPal app each have their own day.
  • The guard reads payments at PayPal with the same REST app. It never moves money itself.
  • Text inside PayPal data (invoice notes, dispute messages, item descriptions) is written by other people. The server tells the model to treat it as information, never as instructions. The guard doesn't count on the model listening.

Development

sh
npm cinpm test                          # the MCP server with a pretend PayPalPAYPAL_SANDBOX_CLIENT_ID=… PAYPAL_SANDBOX_SECRET=… node test/sandbox.mjs   # against the PayPal sandbox

GitHub Actions runs the sandbox check on every change (paypal-sandbox.yml): two customers pay by card, then over MCP a $12 refund runs, a $300 refund waits for the owner and runs after Approve, and a second refund of a payment already refunded in full is stopped.

MIT · Fizzl

来源:paypal-guard-mcp/README.md,提交 e91475e

工具

49

create_invoice

create invoice

Create Invoices on PayPal. This function creates a draft invoice, specifying a currency code, the invoicer's business information, one or more recipients to bill, and line items. Once created, the invoice can be sent to the customer for payment. primary_recipients and items use PayPal's real nested shape (billing_info/shipping_info for recipients; unit_amount/tax/discount for items); other fields use a simplified flat shape. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数noteitems必填allow_tipreferencetheme_colorinvoice_datecurrency_code必填invoicer_cityshipping_costinvoice_numberinvoicer_stateinvoicer_tax_id另有 13 个

create_recurring_series

create recurring series

Create a recurring invoice series on PayPal. This function creates a recurring invoice series that automatically generates and sends invoices to a customer on a schedule, specifying a billing frequency, a start date, a currency code, a primary recipient, and line items for the series template. primary_recipients and items use PayPal's real nested shape (billing_info/shipping_info for recipients; unit_amount/tax/discount for items); other fields use a simplified flat shape. A newly created series is in DRAFT status and will not generate invoices until activated -- call activate_recurring_series with the returned series ID to activate it. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数noteitemsallow_tipreferencetotal_cyclescurrency_code必填interval_unit必填invoicer_cityshipping_costinterval_count必填invoicer_stateinvoicer_tax_id另有 12 个

activate_recurring_series

activate recurring series

Activate a recurring invoice series on PayPal. This function activates a recurring invoice series by its ID, moving it out of DRAFT status. Once activated, PayPal automatically generates and sends invoices to the customer based on the series' configured schedule. Call this after create_recurring_series to make the series active. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数recurring_series_id必填

get_recurring_series

get recurring series

Get a recurring invoice series from PayPal. This function retrieves details of a specific recurring invoice series using its ID, including its schedule, status, template, and recipient information.

输入参数recurring_series_id必填

cancel_recurring_series

cancel recurring series

Cancel a recurring invoice series on PayPal. This function cancels a recurring invoice series by its ID. Once cancelled, PayPal stops generating and sending further invoices for the series. This action cannot be undone. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数recurring_series_id必填

delete_recurring_series

delete recurring series

Delete a recurring invoice series on PayPal. This function permanently deletes a recurring invoice series by its ID. Only series in DRAFT status can be deleted -- for a series that has already been activated, use cancel_recurring_series instead. This action cannot be undone. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数recurring_series_id必填

list_invoices

list invoices

List invoices from PayPal. This function retrieves a list of invoices with optional pagination parameters.

输入参数pagepage_sizetotal_required

get_invoice

get invoice

Get an invoice from PayPal. This function retrieves details of a specific invoice using its ID.

输入参数invoice_id必填

send_invoice

send invoice

Send an invoice to the recipient(s). This function sends a previously created invoice to its intended recipients. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数noteinvoice_id必填send_to_recipientadditional_recipients

send_invoice_reminder

send invoice reminder

Send a reminder for an invoice. This function sends a reminder for an invoice that has already been sent but hasn't been paid yet.

输入参数notesubjectinvoice_id必填additional_recipients

cancel_sent_invoice

cancel sent invoice

Cancel a sent invoice. This function cancels an invoice that has already been sent to the recipient(s). Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数noteinvoice_id必填send_to_recipientadditional_recipients

delete_invoice

delete invoice

Delete a draft or scheduled invoice on PayPal. This function permanently deletes an invoice that is in the draft or scheduled state, by ID. It does not work on invoices that have already been sent -- use cancel_sent_invoice for those instead. After deletion, the invoice's details can no longer be retrieved, but its invoice number can be reused. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数invoice_id必填

setup_invoice_auto_reminders

setup invoice auto reminders

Initialize the invoice auto reminder configuration for the merchant's PayPal account. This function sets up automatic reminders for unpaid invoices, for BEFORE_DUE and/or AFTER_DUE reminder types.

输入参数configurations

update_invoice_auto_reminder

update invoice auto reminder

Update an existing invoice auto reminder configuration by its configuration ID. This function performs a full update of the reminder configuration's timing interval, repetition count and notification preferences.

输入参数type必填statusinterval必填repetition必填notificationreminder_configuration_id必填

search_invoicing

search invoicing

Search for invoices or recurring invoice series on PayPal. Use resource_type "invoice" with invoice_filters, or "recurring_series" with recurring_series_filters -- only set the matching filters object. Recurring series search covers only the past 3 years.

输入参数pagepage_sizeresource_type必填total_requiredinvoice_filtersrecurring_series_filters

update_invoicing

update invoicing

Update an existing invoice or recurring invoice series on PayPal. For invoices, the recipient (primary_recipients) can only be changed 2 times within any 72-hour window -- avoid unnecessary recipient edits. Checked by fizzl-paypal-guard before it runs: the owner approves or denies each one.

输入参数resource_type必填invoice_updaterecurring_series_update

cancel_invoice_auto_reminder

cancel invoice auto reminder

Cancel all scheduled automatic reminders for an invoice. This function permanently cancels every automatic reminder scheduled for a specific invoice, by invoice ID. This action is irreversible -- once cancelled, automatic reminders cannot be re-enabled for that invoice. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数invoice_id必填

generate_invoice_qr_code

generate invoice qr code

Generate a QR code for an invoice. This function generates a QR code for an invoice, which can be used to pay the invoice using a mobile device or scanning app.

输入参数widthheightinvoice_id必填

generate_invoice_number

generate invoice number

Generate the next invoice number available to the merchant. This function generates the next invoice number by using the prefix and suffix from the merchant's last invoice number and incrementing the numeric portion by one (e.g. INVOICE-1234 -> INVOICE-1235).

无需输入参数。

record_payment_for_invoice

record payment for invoice

Record a payment for an invoice on PayPal. This function records an external or manual payment (for example, cash, check, bank transfer, or a PayPal transaction) against an invoice, by invoice ID. If the recorded amount covers the full amount due, PayPal marks the invoice PAID; otherwise it is marked PARTIALLY_PAID. This does not process a new payment -- it only logs one that was already collected. method is required. payment_id applies only to PAYPAL-type payments. Checked by fizzl-paypal-guard before it runs: the owner approves or denies each one.

输入参数noteamountmethod必填invoice_id必填payment_idpayment_dateshipping_infopayment_date_time

record_refund_for_invoice

record refund for invoice

Record a refund for an invoice on PayPal. This function records a refund against an invoice, by invoice ID. If all payments made against the invoice are refunded, PayPal marks the invoice REFUNDED; otherwise it is marked PARTIALLY_REFUNDED. This does not process a new refund -- it only logs one that was already issued. method is required. Checked by fizzl-paypal-guard before it runs: the owner approves or denies each one.

输入参数amountmethod必填invoice_id必填refund_date

create_conditional_rules_for_invoice

create conditional rules for invoice

Create conditional rules for an invoice on PayPal.

输入参数rules必填invoice_id必填

create_product

create product

Create a product in PayPal using product catalog - create products API. This function creates a new product that will be used in subscription plans, subscriptions. Required parameters are: name (product name), type (product type). High level: - id: (auto-generated or specify SKU of the product) The ID of the product - name: {product_name} (required) - description: {product_description} (optional) - type {DIGITAL | PHYSICAL | SERVICE} (required) - category: {product_category} (optional) - image_url: {image_url} (optional) - home_url: {home_url} (optional) Below is the payload request structure: { "id": "#PROD-XYAB12ABSB7868434", "name": "Video Streaming Service", "description": "Service for streaming latest series, movies etc.", "type": "SERVICE", "category": "SOFTWARE", "image_url": "https://example.com/streaming.jpg", "home_url": "https://example.com/home" }

输入参数name必填type必填categoryhome_urlimage_urldescription

list_products

list products

List products from PayPal. This function retrieves a list of products with optional pagination parameters.

输入参数pagepage_sizetotal_required

update_product

update product

Update a product in PayPal. This function updates an existing product using JSON Patch operations. Checked by fizzl-paypal-guard before it runs: the owner approves or denies each one.

输入参数operations必填product_id必填

show_product_details

show product details

List products from PayPal. This function retrieves a list of products with optional pagination parameters.

输入参数product_id必填

create_subscription_plan

create subscription plan

Create a subsctiption plan in PayPal using subscription - create plan API. This function creates a new subscription plan that defines pricing and billing cycle details for subscriptions. Required parameters are: product_id (the ID of the product for which to create the plan), name (subscription plan name), billing_cycles (billing cycle details). High level: product_id, name, description, taxes, status: {CREATED|INACTIVE|ACTIVE}, billing_cycles, payment_preferences are required in json object. While creating billing_cycles object, trial(second) billing cycle should precede regular billing cycle. Checked by fizzl-paypal-guard before it runs: the owner approves or denies each one.

输入参数name必填taxesproduct_id必填descriptionbilling_cycles必填payment_preferences

list_subscription_plans

list subscription plans

List subscription plans from PayPal. This function retrieves a list of subscription plans with optional product filtering and pagination parameters.

输入参数pagepage_sizeproduct_idtotal_required

show_subscription_plan_details

show subscription plan details

Show subscription plan details from PayPal. This function retrieves the details of a specific subscription plan using its ID. Required parameters are: plan_id (the ID of the subscription plan).

输入参数plan_id必填

create_subscription

create subscription

Create a subscription in PayPal using the subscription - create subscription API. This function allows you to create a new subscription for a specific plan, enabling the management of recurring payments. The only required parameter is plan_id (the ID of the subscription plan). All other fields are optional and can be omitted if not provided. The subscriber field is optional. If no subscriber information is provided, omit the subscriber field in the request payload. The shipping address is optional. If no shipping address is provided, set the shipping_preference to GET_FROM_FILE in the application context. The application context is also optional. If no application context information is provided, omit the application context field in the request payload. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数plan_id必填quantitysubscribershipping_amountapplication_context

show_subscription_details

show subscription details

Show subscription details from PayPal. This function retrieves the details of a specific subscription using its ID. Required parameters are: subscription_id (the ID of the subscription).

输入参数subscription_id必填get_additional_details

cancel_subscription

cancel subscription

Cancel a customer subscription in PayPal. This function cancels an active subscription for a customer. It requires the subscription ID and an optional reason for cancellation. Required parameters are: subscription_id (the ID of the subscription to be canceled). Below is the payload request structure: { "reason": "Customer requested cancellation" } You MUST ask the user for: - subscription_id - reason for cancellation. Return all of the above as structured JSON in your response. Checked by fizzl-paypal-guard before it runs: within the owner's limits; above them the owner approves or denies.

输入参数payload必填subscription_id必填

update_subscription

update subscription

Update a customer subscription in PayPal. This function updates an active or suspended subscription for a customer. It requires the subscription ID and payload of allowed keys to update to the subscription. Required parameters are: subscription_id (the ID of the subscription to be updated), and at-least one key to update Return response as structured JSON in your response. Checked by fizzl-paypal-guard before it runs: the owner approves or denies each one.

输入参数custom_idfixed_pricecurrency_codeshipping_amountsubscription_id必填taxes_inclusiveshipping_addresstaxes_percentageoutstanding_balanceauto_bill_outstandingpayment_failure_threshold

create_shipment_tracking

create shipment tracking

Create a shipment for a transaction in PayPal. This function creates a shipment record for a specific transaction, allowing you to track the shipment status and details. The transaction_id can fetch from the captured payment details in the order information. Required parameters are: tracking_number (the tracking number for the shipment), transaction_id (the transaction ID associated with the shipment). High level: tracking_number, transaction_id, status (optional), carrier (optional) are required json objects. Below is the payload request structure: { "tracking_number": "1234567890", "transaction_id": "9XJ12345ABC67890", "status": "SHIPPED", // Required: ON_HOLD, SHIPPED, DELIVERED, CANCELLED "carrier": "UPS" // Required: The carrier handling the shipment. Link to supported carriers: http://developer.paypal.com/docs/tracking/reference/carriers/ }

输入参数statuscarrierorder_idtransaction_id必填tracking_number必填

get_shipment_tracking

get shipment tracking

Get tracking information for a shipment by ID. This function retrieves tracking information for a specific shipment using the transaction ID and tracking number. The transaction_id can fetch from the captured payment details in the order information. Below is the payload request structure:

输入参数order_idtransaction_id

update_shipment_tracking

update shipment tracking

Update tracking information for a shipment by ID and status. This tool updates tracking information such as the carrier or the tracking number for a specific shipment using the transaction ID and status.

输入参数status必填carriertransaction_id必填tracking_number必填new_tracking_number

create_order

create order

Create an order in PayPal. This tool is used to create a new order in PayPal. This is typically the first step in initiating a payment flow. It sets up an order with specified details such as item(s) to be purchased, quantity, amount, currency, and other details.

输入参数items必填notesdiscountcancelUrlreturnUrlcurrencyCode必填shippingCostshippingAddress

get_order

get order

Retrieves the order details from PayPal for a given order ID. This tool is used to retrieve details of an existing order in PayPal. It provides information about the order, including items, amounts, status, and other relevant details.

输入参数id必填

pay_order

pay order

Capture a payment for an order. This tool is used to capture a payment for an order. It allows you to capture funds that have been authorized for a specific order but not yet captured.

输入参数id必填

list_disputes

list disputes

List disputes from PayPal. This function retrieves a list of disputes with optional pagination and filtering parameters.

输入参数pagepage_sizedispute_statedisputed_transaction_id

get_dispute

get dispute

Get details for a specific dispute from PayPal. This tool is used to lists disputes with a summary set of details, which shows the dispute_id, reason, status, dispute_state, dispute_life_cycle_stage, dispute_channel, dispute_amount, create_time and update_time fields.

输入参数dispute_id必填

accept_dispute_claim

accept dispute claim

Accept liability for a dispute claim. This tool is used to accept liability for a dispute claim. When you accept liability for a dispute claim, the dispute closes in the customer's favor and PayPal automatically refunds money to the customer from the merchant's account. Checked by fizzl-paypal-guard before it runs: the owner approves or denies each one.

输入参数note必填dispute_id必填

list_transactions

list transactions

List transactions from PayPal. This tool is used to list transactions with optional filtering parameters within a date range of 31 days. This tool can also be used to list details of a transaction given the transaction ID. - The start_date and end_date should be specified in ISO8601 date and time format. Example dates: 1996-12-19T16:39:57-08:00, 1985-04-12T23:20:50.52Z, 1990-12-31T23:59:60Z - The transaction_status accepts the following 4 values: 1. "D" - represents denied transactions. 2. "P" - represents pending transactions. 3. "S" - represents successful transactions. 4. "V" - represents transactions that were reversed. - The transaction_id is the unique identifier for the transaction.

输入参数pageend_datepage_sizestart_datesearch_monthstransaction_idtransaction_status

update_plan

update plan

Update a billing plan in PayPal using the Plans API (PATCH). This function updates an existing plan with status CREATED or ACTIVE. For INACTIVE plans, only status updates are allowed. You can patch the following attributes and objects in one call: - name - description - payment_preferences.auto_bill_outstanding - payment_preferences.payment_failure_threshold - payment_preferences.setup_fee - payment_preferences.setup_fee_failure_action - taxes.percentage Checked by fizzl-paypal-guard before it runs: the owner approves or denies each one.

输入参数nameplan_id必填setup_feeoperations必填percentagedescriptionauto_bill_outstandingsetup_fee_failure_actionpayment_failure_threshold

create_refund

create refund

Initiate a refund for a PayPal payment capture. If you have an order ID instead of a capture ID, first use the get order tool to obtain the capture ID from the order details. This function allows you to return funds to a customer by refunding a previously captured payment. You can issue a full refund or specify a partial amount. If multiple captures exist for an order, request clarification on which specific capture to refund. Required parameters: - Capture ID: The ID of the capture to refund - Amount (optional): For partial refunds, specify the amount to refund (must be less than or equal to the captured amount) - Note to Payer (optional): Additional explanation visible to the customer Response details include: - Refund ID and status - Refunded amount and currency Checked by fizzl-paypal-guard before it runs: never more than is left of the payment, within the owner's limits; above them the owner approves or denies.

输入参数amountcapture_id必填invoice_idnote_to_payer

get_refund

get refund

Retrieve detailed information about a PayPal payment refund. If you have an order ID instead of a refund ID, first use the get order tool to obtain the refund ID from the order details. This function returns comprehensive details about a refund, including its current status (completed, pending, cancelled), refunded amount, and processing information. When multiple refunds exist for an order or capture, request clarification on which specific refund to retrieve. Response details include: - Refund status and ID - Refunded amount and currency - Reason for refund (if provided) - Source transaction details

输入参数refund_id必填

get_merchant_insights

get merchant insights

Retrieve business intelligence metrics and analytics for a merchant, filtered by start date, end date, insight type, and time interval. This tool returns actionable insights into orders and sales data, supporting data-driven business decisions.

输入参数end_date必填start_date必填insight_type必填time_interval必填

paypal_guard_status

PayPal guard: status

What fizzl-paypal-guard allows and has done: the owner's limits, how much of today's limits is used, approvals waiting for the owner, and the latest decisions (from a log the agent doesn't write). With approval_id: what became of that one approval.

输入参数approval_id

paypal_guard_check

PayPal guard: dry run

Dry run: what fizzl-paypal-guard would decide for a PayPal tool call (allow, ask the owner, or deny, and why), without running it, counting it or asking anyone. Reads the payment, invoice or dispute at PayPal.

输入参数tool必填arguments

版本历史

2
  1. v0.2.1最新Oct 22, 2026
  2. v0.1.1Oct 21, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Paypal 集成