From 57cfb2e9caea9170472d53b9c720d2612d4cbb1f Mon Sep 17 00:00:00 2001 From: djiang-jq Date: Thu, 12 Nov 2026 10:48:20 -0800 Subject: [PATCH 1/2] feat(third_party): add the PayPal plugin Connect agents to PayPal's hosted MCP server at https://mcp.paypal.com/mcp for invoices, orders and refunds, subscriptions, catalog products, shipment tracking, disputes, and transaction reporting. The server supports OAuth 2.1 with dynamic client registration and PKCE, so there is nothing to configure beyond the PayPal sign-in prompt. Co-authored-by: Cursor --- .cursor-plugin/marketplace.json | 5 ++ README.md | 1 + third_party/paypal/.cursor-plugin/plugin.json | 37 +++++++++++ third_party/paypal/CHANGELOG.md | 9 +++ third_party/paypal/LICENSE | 21 +++++++ third_party/paypal/README.md | 61 +++++++++++++++++++ third_party/paypal/assets/logo.svg | 1 + third_party/paypal/mcp.json | 8 +++ 8 files changed, 143 insertions(+) create mode 100644 third_party/paypal/.cursor-plugin/plugin.json create mode 100644 third_party/paypal/CHANGELOG.md create mode 100644 third_party/paypal/LICENSE create mode 100644 third_party/paypal/README.md create mode 100644 third_party/paypal/assets/logo.svg create mode 100644 third_party/paypal/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 82dda9aa44..507e4d567a 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -717,6 +717,11 @@ "name": "front", "source": "third_party/front", "description": "Search conversations, draft and send replies, and manage tags, tasks, and inboxes." + }, + { + "name": "paypal", + "source": "third_party/paypal", + "description": "Work with invoices, orders, refunds, subscriptions, disputes, and transactions in PayPal." } ] } diff --git a/README.md b/README.md index f13e094223..515dd04971 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `eight-sleep` | [Eight Sleep](third_party/eight-sleep/) | Cursor | Integrations | Connect your Eight Sleep account to see your sleep scores, stages and heart metrics, check your Pod's status and temperature settings, and manage your alarms and your side of the Pod, with your approval for each change. | | `netsuite` | [NetSuite](third_party/netsuite/) | Cursor | Integrations | Work with records, reports, saved searches, and SuiteQL queries in NetSuite. | | `front` | [Front](third_party/front/) | Cursor | Integrations | Search conversations, draft and send replies, and manage tags, tasks, and inboxes. | +| `paypal` | [PayPal](third_party/paypal/) | Cursor | Integrations | Work with invoices, orders, refunds, subscriptions, disputes, and transactions in PayPal. | Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest). ## Repository structure diff --git a/third_party/paypal/.cursor-plugin/plugin.json b/third_party/paypal/.cursor-plugin/plugin.json new file mode 100644 index 0000000000..5da839ace4 --- /dev/null +++ b/third_party/paypal/.cursor-plugin/plugin.json @@ -0,0 +1,37 @@ +{ + "name": "paypal", + "displayName": "PayPal", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Work with invoices, orders, refunds, subscriptions, disputes, and transactions in PayPal.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://developer.paypal.com/ai-tools/mcp-server", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.svg", + "keywords": [ + "paypal", + "payments", + "invoices", + "orders", + "refunds", + "subscriptions", + "disputes", + "transactions", + "commerce", + "mcp" + ], + "category": "integrations", + "tags": [ + "paypal", + "payments", + "commerce", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/paypal/CHANGELOG.md b/third_party/paypal/CHANGELOG.md new file mode 100644 index 0000000000..ebeca9a45d --- /dev/null +++ b/third_party/paypal/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `paypal` MCP server pointing at PayPal's hosted Streamable HTTP endpoint (`https://mcp.paypal.com/mcp`). +- Auth uses OAuth 2.1 with Dynamic Client Registration and PKCE — no access token or client credentials to configure. +- Logo: PayPal's official mark, from `paypalobjects.com`. diff --git a/third_party/paypal/LICENSE b/third_party/paypal/LICENSE new file mode 100644 index 0000000000..ca2bba771c --- /dev/null +++ b/third_party/paypal/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/paypal/README.md b/third_party/paypal/README.md new file mode 100644 index 0000000000..db4e29f555 --- /dev/null +++ b/third_party/paypal/README.md @@ -0,0 +1,61 @@ +# PayPal + +Cursor plugin that connects agents to [PayPal](https://www.paypal.com) through PayPal's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Work with a PayPal business account — invoices, orders and refunds, subscription plans, catalog products, shipment tracking, disputes, and transaction history — through the PayPal API. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **PayPal**. +3. Click **Install**, then complete the PayPal sign-in prompt. + +Or run `/add-plugin paypal` in chat. + +## MCP + +```json +{ + "mcpServers": { + "paypal": { + "type": "http", + "url": "https://mcp.paypal.com/mcp" + } + } +} +``` + +Auth is OAuth 2.1 with Dynamic Client Registration and PKCE. Cursor registers itself and prompts for PayPal sign-in when the plugin connects — there is no access token, client ID, or client secret to configure. + +## What agents can do + +| Area | Tools | +| --- | --- | +| Invoices | `create_invoice`, `list_invoices`, `get_invoice`, `send_invoice`, `send_invoice_reminder`, `cancel_sent_invoice`, `generate_invoice_qr_code` | +| Orders and payments | `create_order`, `get_order`, `pay_order`, `create_refund`, `get_refund` | +| Subscriptions | `create_subscription_plan`, `update_plan`, `list_subscription_plans`, `show_subscription_plan_details`, `create_subscription`, `show_subscription_details`, `update_subscription`, `cancel_subscription` | +| Catalog | `create_product`, `list_products`, `show_product_details`, `update_product` | +| Shipment tracking | `create_shipment_tracking`, `get_shipment_tracking` | +| Disputes | `list_disputes`, `get_dispute`, `accept_dispute_claim` | +| Reporting | `list_transactions` | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- The server reaches **production** data only. To test against a PayPal sandbox account, point at `https://mcp.sandbox.paypal.com/mcp` or run PayPal's local server (`npx -y @paypal/mcp --tools=all`) with a sandbox access token. +- The server can write as well as read — creating invoices, capturing payments, issuing refunds, and cancelling subscriptions are all tool calls. Approve each action deliberately. +- Agentic shopping tools (`search_product`, `create_cart`, `checkout_cart`) exist on the remote server but require the `x-feature-flags: commerce:true` request header, which this plugin does not send. + +## Docs + +- MCP server quickstart: https://developer.paypal.com/ai-tools/mcp-server +- Source (local server): https://github.com/paypal/paypal-mcp-server +- PayPal Developer Dashboard: https://developer.paypal.com/dashboard/ +- Server URL: https://mcp.paypal.com/mcp + +Logo is PayPal's official mark, from `paypalobjects.com`. + +## License + +MIT diff --git a/third_party/paypal/assets/logo.svg b/third_party/paypal/assets/logo.svg new file mode 100644 index 0000000000..f818fe55d7 --- /dev/null +++ b/third_party/paypal/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/third_party/paypal/mcp.json b/third_party/paypal/mcp.json new file mode 100644 index 0000000000..f72091d4a6 --- /dev/null +++ b/third_party/paypal/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "paypal": { + "type": "http", + "url": "https://mcp.paypal.com/mcp" + } + } +} From 3534363cd892ebcf204f5d35c79d9874e02c6396 Mon Sep 17 00:00:00 2001 From: djiang-jq Date: Thu, 12 Nov 2026 18:11:15 -0800 Subject: [PATCH 2/2] docs: link Rippling's MCP setup guide from the URL variable Point people at the setup page at the moment they are asked to paste the Remote MCP server URL, matching how other plugins cite a setup page in the variable description. Co-authored-by: Cursor --- third_party/rippling/.cursor-plugin/plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/rippling/.cursor-plugin/plugin.json b/third_party/rippling/.cursor-plugin/plugin.json index 73170cb17a..80a2bae2dc 100644 --- a/third_party/rippling/.cursor-plugin/plugin.json +++ b/third_party/rippling/.cursor-plugin/plugin.json @@ -41,7 +41,7 @@ "RIPPLING_MCP_URL": { "type": "string", "title": "Remote MCP server URL", - "description": "Remote MCP server URL copied from Rippling → My IT → MCP connectors. This is the Rippling MCP URL from the setup page, not a company-wide API token and not an MCP Gateway URL for a different product." + "description": "Remote MCP server URL copied from Rippling → My IT → MCP connectors. Setup guide: https://developer.rippling.com/documentation/rippling-platform/rippling-mcp/setup. This is the Rippling MCP URL from the setup page, not a company-wide API token and not an MCP Gateway URL for a different product." } } },