diff --git a/.claude-plugin/.upstream-base b/.claude-plugin/.upstream-base index bdfbaa9ee8..74f63b41b1 100644 --- a/.claude-plugin/.upstream-base +++ b/.claude-plugin/.upstream-base @@ -1 +1 @@ -a5539b15a3d56e04992565aafee2b37051329ce3 +6e359ce0aba9e927914d8a940510aa2ef66a8f23 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/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" + } + } +} 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." } } },