Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

PayPal, guarded

NPM · FIZZL-PAYPAL-GUARD-MCP

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

76 Trust /100

Last scanned (1 hour ago)

Scores higher than 51% of npm servers

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security89
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects @langchain/core 0.3.6, reached via @paypal/agent-toolkit > @langchain/core. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 77 of 246 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Fizzl13/x402-examples). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 1 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability61
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 8191 tokens (~167/item across 49 items; 49 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
  • Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 94% of tool parameters carry a description.Partial
Tool Safety97
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 7 of 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "get_refund" implies "refund" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 50 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 24 Oct 26 0
    • CVE-2023-54404 affects this package: high ▼ security
  • 23 Oct 26 +38
    • CVE-2026-41907 affects this package: high ▼ security
    • CVE-2026-41139 affects this package: high ▼ security
    • CVE-2026-40897 affects this package: high ▼ security
    • CVE-2025-9910 affects this package: high ▼ security
    • CVE-2026-8657 affects this package: high ▼ security
    • CVE-2026-8769 affects this package: high ▼ security
    • CVE-2025-68665 affects this package: high ▼ security
    • CVE-2026-40190 affects this package: high ▼ security
    • CVE-2026-45134 affects this package: high ▼ security
    • CVE-2026-41182 affects this package: high ▼ security
    • CVE-2025-48985 affects this package: high ▼ security
    • Known CVEs: unverified → fail ▼ security
    • Injection markers: unverified → pass ▲ security
    • Tool coverage: unverified → 100 ▲ functional
    • Stability: unverified → 0.07 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • Dependency health: unverified → 0.85 ▲ functional
    • Package version: 0.1.1 → 0.2.1 functional
  • 22 Oct 26 −29
    • CVE-2026-41907 affects this package: high ▼ security
    • CVE-2026-41139 affects this package: high ▼ security
    • CVE-2026-40897 affects this package: high ▼ security
    • CVE-2025-9910 affects this package: high ▼ security
    • CVE-2026-8657 affects this package: high ▼ security
    • CVE-2026-8769 affects this package: high ▼ security
    • CVE-2025-68665 affects this package: high ▼ security
    • CVE-2026-40190 affects this package: high ▼ security
    • CVE-2026-45134 affects this package: high ▼ security
    • CVE-2026-41182 affects this package: high ▼ security
    • CVE-2025-48985 affects this package: high ▼ security
    • Known CVEs: unverified → fail ▼ security
    • Stability: 0.00 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Dependency health: unverified → 0.85 ▲ functional
    • First check of Schema quality: unverified functional
    • Package version: 0.1.1 → 0.2.1 functional
    • Package version: 0.1.1 → 0.2.0 functional
  • 21 Oct 26 67

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Oct 2026 · Analysed npm/fizzl-paypal-guard-mcp@0.2.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo Fizzl13/x402-examples
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/Fizzl13/x402-examples/.github/workflows/paypal-guard-mcp.yml@refs/heads/main
Rekor log index 3383605435
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:305e55718ef71cb63cb373c85320fe08b3458ff4a17bfabd2d17700802be79fd2cbe627bf8b91603c520abc6945cff494fe4ce370d01f39842c4e9ced

Background: How many MCP packages publish verified provenance →

Vulnerabilities 12 findings
ID CVE Severity Vector Fix available
GHSA-866g-f22w-33x8 CVE-2026-8769 medium CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L yes
GHSA-r399-636x-v7f6 CVE-2025-68665 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N yes
GHSA-rwvc-j5jr-mgvh CVE-2025-48985 low CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N yes
GHSA-33vc-wfww-vjfv CVE-2025-9910 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N yes
GHSA-j4fx-xxwh-2485 CVE-2026-8657 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L yes
GHSA-3644-q5cj-c5c7 CVE-2026-45134 high CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N yes
GHSA-fw9q-39r9-c252 CVE-2026-40190 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L yes
GHSA-rr7j-v2q5-chgv CVE-2026-41182 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N yes
GHSA-29qv-4j9f-fjw5 CVE-2026-40897 high CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H yes
GHSA-jvff-x2qm-6286 CVE-2026-41139 high CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H yes
GHSA-w5hq-g745-h8pq CVE-2026-41907 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N yes
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 246 packages
Packages resolved 246
Deprecated 2
Stale 74
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 49 exposed · ~8,011 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
accept_dispute_claim ~105

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.

NameTypeReqDescription
dispute_idstringyes–
notestringyesA note about why the seller is accepting the claim

No output schema declared.

No examples provided.

activate_recurring_series ~115

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.

NameTypeReqDescription
recurring_series_idstringyesThe ID of the recurring invoice series to activate.

No output schema declared.

No examples provided.

cancel_invoice_auto_reminder ~102

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.

NameTypeReqDescription
invoice_idstringyesThe ID of the invoice for which to cancel all scheduled automatic reminders.

No output schema declared.

No examples provided.

cancel_recurring_series ~95

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.

NameTypeReqDescription
recurring_series_idstringyesThe ID of the recurring invoice series to cancel.

No output schema declared.

No examples provided.

cancel_sent_invoice ~121

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.

NameTypeReqDescription
additional_recipientsarray–Additional email addresses to which to send the cancellation.
invoice_idstringyesThe ID of the invoice to cancel.
notestring–A cancellation note to the recipient.
send_to_recipientboolean–Indicates whether to send the cancellation to the recipient.

No output schema declared.

No examples provided.

cancel_subscription ~154

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.

NameTypeReqDescription
payloadobjectyesPayload for subscription cancellation.
subscription_idstringyesThe ID of the subscription to show details.

No output schema declared.

No examples provided.

create_conditional_rules_for_invoice ~61

Create conditional rules for an invoice on PayPal.

NameTypeReqDescription
invoice_idstringyesThe ID of the invoice for which the conditional rules are to be created.
rulesarrayyesThe list of conditional rules to create for the invoice.

No output schema declared.

No examples provided.

create_invoice ~770

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.

NameTypeReqDescription
allow_partial_paymentboolean–Whether the invoice allows a partial payment. If false, the invoice must be paid in full. If true, the invoice allows partial payments. Not available for users in India, Brazil, or Israel.
allow_tipboolean–Whether the payer can add a tip when paying. Not available in Hong Kong, Taiwan, India, or Japan.
currency_codestringyesThe three-character ISO-4217 currency code for the invoice (for example, USD). Applies to every monetary amount on the invoice.
enable_pay_by_bankboolean–Whether to enable PAY_BY_BANK as a payment method for this invoice, letting the payer pay directly from their bank account. Available only for US-based merchants and invoices with USD currency.
invoice_datestring–The invoice date in yyyy-MM-DD format.
invoice_numberstring–The invoice number. If omitted, PayPal auto-increments from the last invoice number used.
invoicer_address_line_1string–The first line of the invoicer's address, for example, number and street.
invoicer_address_line_2string–The second line of the invoicer's address, for example, suite or apartment number.
invoicer_business_namestring–The business name of the invoicer.
invoicer_citystring–The city, town, or village of the invoicer's address.
invoicer_country_codestring–The two-character ISO 3166-1 country code of the invoicer's address (for example, US or GB).
invoicer_email_addressstring–The email address of the invoicer.
invoicer_given_namestring–The first name of the invoicer.
invoicer_postal_codestring–The postal code of the invoicer's address.
invoicer_statestring–The state or province of the invoicer's address.
invoicer_surnamestring–The last name of the invoicer.
invoicer_tax_idstring–The invoicer's tax ID.
itemsarrayyesThe line items on the invoice.
minimum_partial_payment_amountstring–The minimum amount allowed for a partial payment, in the invoice's currency_code. Valid only when allow_partial_payment is true.
notestring–A note to the invoice recipient. Also appears on the invoice notification email.
pay_by_bank_exclusive_above_thresholdboolean–When true, PAY_BY_BANK becomes the only available payment method once the invoice total exceeds PayPal's system-defined threshold ($1000), disabling all other payment methods above that threshold.
primary_recipientsarrayyesThe recipients who will be billed for this invoice.
referencestring–A reference value, such as a purchase order number.
shipping_coststring–The shipping cost for the invoice, in the invoice's currency_code.
theme_colorstring–The primary color used to render the invoice, as a hex color code (e.g. #000000). If omitted, the default theme is used.

No output schema declared.

No examples provided.

create_order ~148

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.

NameTypeReqDescription
cancelUrlstring––
currencyCodestringyesCurrency code of the amount.
discountnumber–The discount amount for the order.
itemsarrayyes–
notes–––
returnUrlstring––
shippingAddress––The shipping address for the order.
shippingCostnumber–The cost of shipping for the order.

No output schema declared.

No examples provided.

create_product ~320

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" }

NameTypeReqDescription
categorystring–The product category.
descriptionstring–The product description.
home_urlstring–The home page URL for the product.
image_urlstring–The image URL for the product.
namestringyesThe product name.
typestringyesThe product type. Value is PHYSICAL, DIGITAL, or SERVICE.

No output schema declared.

No examples provided.

create_recurring_series ~744

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.

NameTypeReqDescription
allow_partial_paymentboolean–Whether each generated invoice allows a partial payment. If false, each invoice must be paid in full. If true, each invoice allows partial payments. Not available for users in India, Brazil, or Israe…
allow_tipboolean–Whether the payer can add a tip when paying. Not available in Hong Kong, Taiwan, India, or Japan.
currency_codestringyesCurrency code of the recurring invoice series
interval_countintegeryesThe number of intervals between each recurring invoice cycle. For example, an interval_count of 2 with interval_unit of MONTH means the invoice recurs every 2 months
interval_unitstringyesThe time unit for the recurring invoice cycle interval
invoicer_address_line_1string–The first line of the invoicer's address, for example, number and street.
invoicer_address_line_2string–The second line of the invoicer's address, for example, suite or apartment number.
invoicer_business_namestring–The business name of the invoicer.
invoicer_citystring–The city, town, or village of the invoicer's address.
invoicer_country_codestring–The two-character ISO 3166-1 country code of the invoicer's address (for example, US or GB).
invoicer_email_addressstring–The email address of the invoicer.
invoicer_given_namestring–The first name of the invoicer.
invoicer_postal_codestring–The postal code of the invoicer's address.
invoicer_statestring–The state or province of the invoicer's address.
invoicer_surnamestring–The last name of the invoicer.
invoicer_tax_idstring–The invoicer's tax ID.
itemsarray–The line items that will appear on each invoice in the recurring series
minimum_partial_payment_amountstring–The minimum amount allowed for a partial payment on each generated invoice, in the series' currency_code. Valid only when allow_partial_payment is true.
notestring–A note to the invoice recipient. Also appears on the invoice notification email.
primary_recipientsarrayyesThe primary recipient of the recurring invoices
referencestring–A reference value, such as a purchase order number.
shipping_coststring–The shipping cost for each generated invoice, in the series' currency_code.
start_series_datestringyesThe date when the recurring series begins and the first invoice is generated, in yyyy-MM-DD format. Cannot be a past date.
total_cyclesinteger–The total number of invoices to generate in the series. If omitted, the series runs indefinitely until cancelled.

No output schema declared.

No examples provided.

create_refund ~272

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.

NameTypeReqDescription
amountobject–The amount to refund. If not specified, the full captured amount is refunded.
capture_idstringyesThe ID of the capture to refund.
invoice_idstring–The invoice ID that is used to track this payment.
note_to_payerstring–A note to the payer.

No output schema declared.

No examples provided.

create_shipment_tracking ~331

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/ }

NameTypeReqDescription
carrierstring–The carrier handling the shipment.
order_idstring–The ID of the order for which to create a shipment
statusstring–The status of the shipment. It can be "ON_HOLD", "SHIPPED", "DELIVERED", or "CANCELLED".
tracking_numberstringyesThe tracking number for the shipment. Id is provided by the shipper. This is required to create a shipment.
transaction_idstringyesThe transaction ID associated with the shipment. Transaction id available after the order is paid or captured. This is required to create a shipment.

No output schema declared.

No examples provided.

create_subscription ~239

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.

NameTypeReqDescription
application_contextobject–The application context for the subscription.
plan_idstringyesThe ID of the subscription plan to create.
quantitynumber–The quantity of the product in the subscription.
shipping_amountobject–The shipping amount for the subscription.
subscriberobject–The subscriber details.

No output schema declared.

No examples provided.

create_subscription_plan ~227

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.

NameTypeReqDescription
billing_cyclesarrayyesThe billing cycles of the plan.
descriptionstring–The subscription plan description.
namestringyesThe subscription plan name.
payment_preferencesobject–The payment preferences for the subscription plan.
product_idstringyesThe ID of the product for which to create the plan.
taxesobject–The tax details.

No output schema declared.

No examples provided.

delete_invoice ~120

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.

NameTypeReqDescription
invoice_idstringyesThe ID of the draft or scheduled invoice to delete.

No output schema declared.

No examples provided.

delete_recurring_series ~126

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.

NameTypeReqDescription
recurring_series_idstringyesThe ID of the recurring invoice series to delete. Only series in DRAFT status can be deleted; use cancel_recurring_series for an activated series.

No output schema declared.

No examples provided.

generate_invoice_number ~63

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).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

generate_invoice_qr_code ~83

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.

NameTypeReqDescription
heightnumber–The QR code height
invoice_idstringyesThe invoice id to generate QR code for
widthnumber–The QR code width

No output schema declared.

No examples provided.

get_dispute ~80

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.

NameTypeReqDescription
dispute_idstringyesThe order id generated during create call

No output schema declared.

No examples provided.

get_invoice ~42

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

NameTypeReqDescription
invoice_idstringyesThe ID of the invoice to retrieve.

No output schema declared.

No examples provided.

get_merchant_insights ~153

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.

NameTypeReqDescription
end_datestringyesThe end date range to filter insights
insight_typestringyesThe type of insight to retrieve. It can be "ORDERS" or "SALES"
start_datestringyesThe start date range to filter insights
time_intervalstringyesThe time periods used for segmenting metrics data. It can be "DAILY", "WEEKLY", "MONTHLY", "QUARTERLY", or "YEARLY"

No output schema declared.

No examples provided.

get_order ~69

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.

NameTypeReqDescription
idstringyesThe order id generated during create call

No output schema declared.

No examples provided.

get_recurring_series ~63

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.

NameTypeReqDescription
recurring_series_idstringyesThe ID of the recurring invoice series to retrieve.

No output schema declared.

No examples provided.

get_refund ~142

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

NameTypeReqDescription
refund_idstringyesThe ID of the refund to get details for.

No output schema declared.

No examples provided.

get_shipment_tracking ~95

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:

NameTypeReqDescription
order_idstring–The ID of the order for which to create a shipment.
transaction_idstring–The transaction ID associated with the shipment tracking to retrieve.

No output schema declared.

No examples provided.

list_disputes ~64

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

NameTypeReqDescription
dispute_statestring–OPEN_INQUIRIES
disputed_transaction_id–––
pagenumber––
page_sizenumber––

No output schema declared.

No examples provided.

list_invoices ~82

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

NameTypeReqDescription
pagenumber–The page number of the result set to fetch.
page_sizenumber–The number of records to return per page (maximum 100).
total_requiredboolean–Indicates whether the response should include the total count of items.

No output schema declared.

No examples provided.

list_products ~81

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

NameTypeReqDescription
pagenumber–The page number of the result set to fetch.
page_sizenumber–The number of records to return per page (maximum 100).
total_requiredboolean–Indicates whether the response should include the total count of products.

No output schema declared.

No examples provided.

list_subscription_plans ~107

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

NameTypeReqDescription
pagenumber–The page number of the result set to fetch.
page_sizenumber–The number of records to return per page (maximum 100).
product_idstring–The ID of the product for which to get subscription plans.
total_requiredboolean–Indicates whether the response should include the total count of plans.

No output schema declared.

No examples provided.

list_transactions ~345

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.

NameTypeReqDescription
end_datestring–Filters the transactions in the response by an end date and time, in ISO8601 date and time format. Seconds are required. Fractional seconds are optional. The maximum supported range is 31 days.
pagenumber––
page_sizenumber––
search_monthsnumber–Number of months to search back for a transaction by ID. Default is 12 months.
start_datestring–Filters the transactions in the response by a start date and time, in ISO8601 date and time format. Seconds are required. Fractional seconds are optional.
transaction_id––The ID of the transaction to retrieve.
transaction_statusstring––

No output schema declared.

No examples provided.

pay_order ~60

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.

NameTypeReqDescription
idstringyesThe order id generated during create call

No output schema declared.

No examples provided.

paypal_guard_check ~92

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.

NameTypeReqDescription
argumentsobject–The arguments you would pass to it
toolstringyesA PayPal tool name, like create_refund

No output schema declared.

No examples provided.

paypal_guard_status ~82

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.

NameTypeReqDescription
approval_idstring–An approvalId from a result with "waiting": true

No output schema declared.

No examples provided.

record_payment_for_invoice ~338

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.

NameTypeReqDescription
amountobject–The currency and amount for a financial transaction.
invoice_idstringyesThe ID of the invoice to record the payment against.
methodstringyesThe payment mode or method through which the invoicer can accept the payments.
notestring–A note associated with an external cash or check payment.
payment_datestring–The date when the invoicer recorded the payment, in yyyy-MM-dd format.
payment_date_timestring–The date and time when the invoicer recorded the payment, in Internet date and time format (ISO 8601), for example 2018-05-13T21:20:00Z or 2018-05-13T21:20:00.000-08:00. Seconds are required.
payment_idstring–The ID for a PayPal payment transaction. Required for the PAYPAL payment type.
shipping_infoobject–The shipping information associated with this payment.

No output schema declared.

No examples provided.

record_refund_for_invoice ~181

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.

NameTypeReqDescription
amountobject–The currency and amount for a financial transaction.
invoice_idstringyesThe ID of the invoice to mark as refunded.
methodstringyesThe payment mode or method through which the invoicer can accept the payments.
refund_datestring–The date when the invoicer recorded the refund, in yyyy-MM-dd format.

No output schema declared.

No examples provided.

search_invoicing ~224

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.

NameTypeReqDescription
invoice_filtersobject–Filters to apply when resource_type is 'invoice'. Must not be set when resource_type is 'recurring_series'.
pageinteger–The page number of the result set to fetch.
page_sizeinteger–The number of records to return per page (maximum 100).
recurring_series_filtersobject–Filters to apply when resource_type is 'recurring_series'. Must not be set when resource_type is 'invoice'.
resource_typestringyesWhich resource type to search. 'invoice' searches individual invoices using invoice_filters; 'recurring_series' searches recurring invoice series using recurring_series_filters.
total_requiredboolean–Indicates whether the response should include the total count of matching invoices. Only applies when resource_type is 'invoice'.

No output schema declared.

No examples provided.

send_invoice ~118

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.

NameTypeReqDescription
additional_recipientsarray–Additional email addresses to which to send the invoice.
invoice_idstringyesThe ID of the invoice to send.
notestring–A note to the recipient.
send_to_recipientboolean–Indicates whether to send the invoice to the recipient.

No output schema declared.

No examples provided.

send_invoice_reminder ~99

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.

NameTypeReqDescription
additional_recipientsarray–Additional email addresses to which to send the reminder.
invoice_idstringyesThe ID of the invoice for which to send a reminder.
notestring–A note to the recipient.
subjectstring–The subject of the reminder email.

No output schema declared.

No examples provided.

setup_invoice_auto_reminders ~113

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.

NameTypeReqDescription
configurationsarray–An array of up to two invoice auto reminder configurations, one for BEFORE_DUE and one for AFTER_DUE. If omitted, both reminder types are created with the default configuration in INACTIVE state. If…

No output schema declared.

No examples provided.

show_product_details ~42

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

NameTypeReqDescription
product_idstringyesThe ID of the product to update.

No output schema declared.

No examples provided.

show_subscription_details ~75

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).

NameTypeReqDescription
get_additional_detailsboolean–Get all detailed information for the subscription.
subscription_idstringyesThe ID of the subscription to show details.

No output schema declared.

No examples provided.

show_subscription_plan_details ~62

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).

NameTypeReqDescription
plan_idstringyesThe ID of the subscription plan to show.

No output schema declared.

No examples provided.

update_invoice_auto_reminder ~137

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.

NameTypeReqDescription
intervalobjectyesThe interval at which to send the reminder. The interval unit is always DAY.
notificationobject–Notification settings for the reminder.
reminder_configuration_idstringyesThe ID of the auto reminder configuration to update.
repetitionintegeryesThe number of times to send the reminder. Must be 1 for BEFORE_DUE reminders.
statusstring–Select an option.
typestringyes–

No output schema declared.

No examples provided.

update_invoicing ~155

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.

NameTypeReqDescription
invoice_updateobject–Full replacement content for the invoice. Set only when resource_type is 'invoice'.
recurring_series_updateobject–Full replacement content for the recurring series. Set only when resource_type is 'recurring_series'.
resource_typestringyesWhich kind of resource to update. 'invoice' updates an individual invoice; 'recurring_series' updates a recurring invoice series.

No output schema declared.

No examples provided.

update_plan ~230

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.

NameTypeReqDescription
auto_bill_outstandingstring–Auto bill outstanding
descriptionstring–Plan description.
namestring–Plan name
operationsstringyesThe PATCH operations to perform on the plan
payment_failure_thresholdstring–Payment failure threshold
percentagestring–Taxes percentage
plan_idstringyesThe ID of the plan to update.
setup_feeobject–Setup fee
setup_fee_failure_actionstring–Setup fee failure action

No output schema declared.

No examples provided.

update_product ~76

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.

NameTypeReqDescription
operationsarrayyesThe PATCH operations to perform on the product.
product_idstringyesThe ID of the product to update.

No output schema declared.

No examples provided.

update_shipment_tracking ~153

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.

NameTypeReqDescription
carrierstring–The carrier handling the shipment.
new_tracking_numberstring–The new tracking number for the shipment if being updated.
statusstringyesThe status of the item shipment. It can be "CANCELLED", "DELIVERED", "LOCAL_PICKUP", "ON_HOLD", or "SHIPPED".
tracking_numberstringyesThe tracking number that you want to update.
transaction_idstringyesThe transaction ID associated with the shipment tracking to retrieve.

No output schema declared.

No examples provided.

update_subscription ~255

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.

NameTypeReqDescription
auto_bill_outstandingboolean–Indicates whether to automatically bill outstanding amounts.
currency_codestring–Currency code of the amount.
custom_idstring–The custom id for the subscription
fixed_priceobject–The fixed price for a billing cycle.
outstanding_balancestring–Outstanding Balance in the subscription
payment_failure_thresholdnumber–The number of failed payments before the subscription is canceled.
shipping_addressobject–The shipping address.
shipping_amountstring–The value of the shipping amount.
subscription_idstringyesThe ID of the subscription to update.
taxes_inclusiveboolean–Indicates whether the tax is inclusive.
taxes_percentagestring–The tax percentage.

No output schema declared.

No examples provided.

Install

How do I install the PayPal, guarded MCP server?

PayPal, guarded runs locally as an npm package, launched with npx -y fizzl-paypal-guard-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · fizzl-paypal-guard-mcp

# add to Claude Code
claude mcp add fizzl13-paypal-guard -- npx -y fizzl-paypal-guard-mcp
Common questions

What is the PayPal, guarded MCP server?

PayPal, guarded is an MCP server listed in the public MCP registry as io.github.Fizzl13/paypal-guard. PayPal's Agent Toolkit with limits on refunds and the owner's Approve/Deny above them. This page covers its npm package (fizzl-paypal-guard-mcp).

Is the PayPal, guarded MCP server safe to use?

PayPal, guarded scores 76 out of 100 on VerifyMCP. We recorded 12 known advisories against it as of 24 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the PayPal, guarded MCP server expose?

PayPal, guarded exposes 49 tools: create_invoice, create_recurring_series, activate_recurring_series, get_recurring_series, cancel_recurring_series, and 44 more. Their descriptions and schemas cost roughly 8,011 tokens of context every time the server is loaded.

Is the PayPal, guarded MCP server still maintained?

PayPal, guarded is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the PayPal, guarded MCP server under?

PayPal, guarded declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.