From 8e8d6ad22396278597d22d493fadb6b7f13423a6 Mon Sep 17 00:00:00 2001 From: Minu Palaniappan <> Date: Wed, 9 Sep 2026 15:44:35 -0700 Subject: [PATCH 1/6] feat(third_party): add 12 Grok connectors as third-party MCP plugins Package the hosted MCP connectors grok.com offers today that the Cursor marketplace does not: Axiom, Bigdata.com, Cal.com, Coinbase, DeepWiki, Gamma, Google Cloud BigQuery, Google Cloud SQL, Interactive Brokers, Meltwater, S&P Global, Webull. OAuth user login where the vendor supports it; Bigdata.com and Meltwater use an API key header variable like Hunter. Server URLs come from Grok's production connector catalog. --- .cursor-plugin/marketplace.json | 62 ++++++++++++++++- README.md | 12 ++++ third_party/axiom/.cursor-plugin/plugin.json | 36 ++++++++++ third_party/axiom/CHANGELOG.md | 9 +++ third_party/axiom/LICENSE | 21 ++++++ third_party/axiom/README.md | 59 ++++++++++++++++ third_party/axiom/assets/logo.png | Bin 0 -> 3263 bytes third_party/axiom/mcp.json | 8 +++ .../bigdata/.cursor-plugin/plugin.json | 48 +++++++++++++ third_party/bigdata/CHANGELOG.md | 9 +++ third_party/bigdata/LICENSE | 21 ++++++ third_party/bigdata/README.md | 64 ++++++++++++++++++ third_party/bigdata/assets/logo.png | Bin 0 -> 10046 bytes third_party/bigdata/mcp.json | 11 +++ third_party/cal/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/cal/CHANGELOG.md | 9 +++ third_party/cal/LICENSE | 21 ++++++ third_party/cal/README.md | 60 ++++++++++++++++ third_party/cal/assets/logo.png | Bin 0 -> 45212 bytes third_party/cal/mcp.json | 8 +++ .../coinbase/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/coinbase/CHANGELOG.md | 9 +++ third_party/coinbase/LICENSE | 21 ++++++ third_party/coinbase/README.md | 59 ++++++++++++++++ third_party/coinbase/assets/logo.png | Bin 0 -> 5300 bytes third_party/coinbase/mcp.json | 8 +++ .../deepwiki/.cursor-plugin/plugin.json | 34 ++++++++++ third_party/deepwiki/CHANGELOG.md | 9 +++ third_party/deepwiki/LICENSE | 21 ++++++ third_party/deepwiki/README.md | 58 ++++++++++++++++ third_party/deepwiki/assets/logo.png | Bin 0 -> 33728 bytes third_party/deepwiki/mcp.json | 8 +++ third_party/gamma/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/gamma/CHANGELOG.md | 9 +++ third_party/gamma/LICENSE | 21 ++++++ third_party/gamma/README.md | 60 ++++++++++++++++ third_party/gamma/assets/logo.png | Bin 0 -> 27920 bytes third_party/gamma/mcp.json | 8 +++ .../.cursor-plugin/plugin.json | 36 ++++++++++ .../google-cloud-bigquery/CHANGELOG.md | 9 +++ third_party/google-cloud-bigquery/LICENSE | 21 ++++++ third_party/google-cloud-bigquery/README.md | 61 +++++++++++++++++ .../google-cloud-bigquery/assets/logo.png | Bin 0 -> 22733 bytes third_party/google-cloud-bigquery/mcp.json | 8 +++ .../.cursor-plugin/plugin.json | 35 ++++++++++ third_party/google-cloud-sql/CHANGELOG.md | 9 +++ third_party/google-cloud-sql/LICENSE | 21 ++++++ third_party/google-cloud-sql/README.md | 60 ++++++++++++++++ third_party/google-cloud-sql/assets/logo.png | Bin 0 -> 14199 bytes third_party/google-cloud-sql/mcp.json | 8 +++ .../.cursor-plugin/plugin.json | 35 ++++++++++ third_party/interactive-brokers/CHANGELOG.md | 9 +++ third_party/interactive-brokers/LICENSE | 21 ++++++ third_party/interactive-brokers/README.md | 60 ++++++++++++++++ .../interactive-brokers/assets/logo.png | Bin 0 -> 9057 bytes third_party/interactive-brokers/mcp.json | 8 +++ .../meltwater/.cursor-plugin/plugin.json | 48 +++++++++++++ third_party/meltwater/CHANGELOG.md | 9 +++ third_party/meltwater/LICENSE | 21 ++++++ third_party/meltwater/README.md | 63 +++++++++++++++++ third_party/meltwater/assets/logo.png | Bin 0 -> 18265 bytes third_party/meltwater/mcp.json | 11 +++ .../sp-global/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/sp-global/CHANGELOG.md | 9 +++ third_party/sp-global/LICENSE | 21 ++++++ third_party/sp-global/README.md | 60 ++++++++++++++++ third_party/sp-global/assets/logo.png | Bin 0 -> 9203 bytes third_party/sp-global/mcp.json | 8 +++ third_party/webull/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/webull/CHANGELOG.md | 9 +++ third_party/webull/LICENSE | 21 ++++++ third_party/webull/README.md | 60 ++++++++++++++++ third_party/webull/assets/logo.png | Bin 0 -> 6600 bytes third_party/webull/mcp.json | 8 +++ 74 files changed, 1705 insertions(+), 2 deletions(-) create mode 100644 third_party/axiom/.cursor-plugin/plugin.json create mode 100644 third_party/axiom/CHANGELOG.md create mode 100644 third_party/axiom/LICENSE create mode 100644 third_party/axiom/README.md create mode 100644 third_party/axiom/assets/logo.png create mode 100644 third_party/axiom/mcp.json create mode 100644 third_party/bigdata/.cursor-plugin/plugin.json create mode 100644 third_party/bigdata/CHANGELOG.md create mode 100644 third_party/bigdata/LICENSE create mode 100644 third_party/bigdata/README.md create mode 100644 third_party/bigdata/assets/logo.png create mode 100644 third_party/bigdata/mcp.json create mode 100644 third_party/cal/.cursor-plugin/plugin.json create mode 100644 third_party/cal/CHANGELOG.md create mode 100644 third_party/cal/LICENSE create mode 100644 third_party/cal/README.md create mode 100644 third_party/cal/assets/logo.png create mode 100644 third_party/cal/mcp.json create mode 100644 third_party/coinbase/.cursor-plugin/plugin.json create mode 100644 third_party/coinbase/CHANGELOG.md create mode 100644 third_party/coinbase/LICENSE create mode 100644 third_party/coinbase/README.md create mode 100644 third_party/coinbase/assets/logo.png create mode 100644 third_party/coinbase/mcp.json create mode 100644 third_party/deepwiki/.cursor-plugin/plugin.json create mode 100644 third_party/deepwiki/CHANGELOG.md create mode 100644 third_party/deepwiki/LICENSE create mode 100644 third_party/deepwiki/README.md create mode 100644 third_party/deepwiki/assets/logo.png create mode 100644 third_party/deepwiki/mcp.json create mode 100644 third_party/gamma/.cursor-plugin/plugin.json create mode 100644 third_party/gamma/CHANGELOG.md create mode 100644 third_party/gamma/LICENSE create mode 100644 third_party/gamma/README.md create mode 100644 third_party/gamma/assets/logo.png create mode 100644 third_party/gamma/mcp.json create mode 100644 third_party/google-cloud-bigquery/.cursor-plugin/plugin.json create mode 100644 third_party/google-cloud-bigquery/CHANGELOG.md create mode 100644 third_party/google-cloud-bigquery/LICENSE create mode 100644 third_party/google-cloud-bigquery/README.md create mode 100644 third_party/google-cloud-bigquery/assets/logo.png create mode 100644 third_party/google-cloud-bigquery/mcp.json create mode 100644 third_party/google-cloud-sql/.cursor-plugin/plugin.json create mode 100644 third_party/google-cloud-sql/CHANGELOG.md create mode 100644 third_party/google-cloud-sql/LICENSE create mode 100644 third_party/google-cloud-sql/README.md create mode 100644 third_party/google-cloud-sql/assets/logo.png create mode 100644 third_party/google-cloud-sql/mcp.json create mode 100644 third_party/interactive-brokers/.cursor-plugin/plugin.json create mode 100644 third_party/interactive-brokers/CHANGELOG.md create mode 100644 third_party/interactive-brokers/LICENSE create mode 100644 third_party/interactive-brokers/README.md create mode 100644 third_party/interactive-brokers/assets/logo.png create mode 100644 third_party/interactive-brokers/mcp.json create mode 100644 third_party/meltwater/.cursor-plugin/plugin.json create mode 100644 third_party/meltwater/CHANGELOG.md create mode 100644 third_party/meltwater/LICENSE create mode 100644 third_party/meltwater/README.md create mode 100644 third_party/meltwater/assets/logo.png create mode 100644 third_party/meltwater/mcp.json create mode 100644 third_party/sp-global/.cursor-plugin/plugin.json create mode 100644 third_party/sp-global/CHANGELOG.md create mode 100644 third_party/sp-global/LICENSE create mode 100644 third_party/sp-global/README.md create mode 100644 third_party/sp-global/assets/logo.png create mode 100644 third_party/sp-global/mcp.json create mode 100644 third_party/webull/.cursor-plugin/plugin.json create mode 100644 third_party/webull/CHANGELOG.md create mode 100644 third_party/webull/LICENSE create mode 100644 third_party/webull/README.md create mode 100644 third_party/webull/assets/logo.png create mode 100644 third_party/webull/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 9cb30e8b9..302ba6597 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -347,8 +347,66 @@ "name": "hunter", "source": "third_party/hunter", "description": "Find and verify emails, discover companies, and save leads." + }, + { + "name": "axiom", + "source": "third_party/axiom", + "description": "Query logs, traces, and datasets with APL." + }, + { + "name": "bigdata", + "source": "third_party/bigdata", + "description": "Search financial news, filings, and transcripts." + }, + { + "name": "cal", + "source": "third_party/cal", + "description": "Check availability and book, cancel, or reschedule." + }, + { + "name": "coinbase", + "source": "third_party/coinbase", + "description": "Read balances, prices, and transactions." + }, + { + "name": "deepwiki", + "source": "third_party/deepwiki", + "description": "Read AI-generated docs for any GitHub repository." + }, + { + "name": "gamma", + "source": "third_party/gamma", + "description": "Generate presentations, documents, and websites." + }, + { + "name": "google-cloud-bigquery", + "source": "third_party/google-cloud-bigquery", + "description": "Explore datasets and run SQL queries." + }, + { + "name": "google-cloud-sql", + "source": "third_party/google-cloud-sql", + "description": "Inspect and manage Cloud SQL instances and databases." + }, + { + "name": "interactive-brokers", + "source": "third_party/interactive-brokers", + "description": "View accounts, positions, orders, and market data." + }, + { + "name": "meltwater", + "source": "third_party/meltwater", + "description": "Search media coverage, social mentions, and insights." + }, + { + "name": "sp-global", + "source": "third_party/sp-global", + "description": "Query company financials and market data via Kensho." + }, + { + "name": "webull", + "source": "third_party/webull", + "description": "View accounts, positions, orders, and quotes." } ] } - - diff --git a/README.md b/README.md index 32103e163..08d1ba441 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,18 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `x-ads` | [X Ads](third_party/x-ads/) | Cursor | Integrations | Manage ad campaigns, create ads, track conversions, and pull performance stats. | | `attio` | [Attio](third_party/attio/) | Cursor | Integrations | Search and update CRM records, lists, notes, and tasks. | | `hunter` | [Hunter](third_party/hunter/) | Cursor | Integrations | Find and verify emails, discover companies, and save leads. | +| `axiom` | [Axiom](third_party/axiom/) | Cursor | Integrations | Query logs, traces, and metrics with APL and manage monitors. | +| `bigdata` | [Bigdata.com](third_party/bigdata/) | Cursor | Integrations | Search financial news, filings, transcripts, and company data. | +| `cal` | [Cal.com](third_party/cal/) | Cursor | Integrations | Manage bookings, event types, schedules, and availability. | +| `coinbase` | [Coinbase](third_party/coinbase/) | Cursor | Integrations | Check balances, get quotes, and preview or place trades. | +| `deepwiki` | [DeepWiki](third_party/deepwiki/) | Cursor | Integrations | Read AI-generated docs and ask questions about any public repo. | +| `gamma` | [Gamma](third_party/gamma/) | Cursor | Integrations | Generate presentations, documents, and webpages. | +| `google-cloud-bigquery` | [Google Cloud BigQuery](third_party/google-cloud-bigquery/) | Cursor | Integrations | Explore datasets and tables and run SQL queries. | +| `google-cloud-sql` | [Google Cloud SQL](third_party/google-cloud-sql/) | Cursor | Integrations | Manage Cloud SQL instances, users, and backups, and run SQL. | +| `interactive-brokers` | [Interactive Brokers](third_party/interactive-brokers/) | Cursor | Integrations | Review positions, balances, P&L, and draft trade instructions. | +| `meltwater` | [Meltwater](third_party/meltwater/) | Cursor | Integrations | Search media and social mentions and pull analytics. | +| `sp-global` | [S&P Global](third_party/sp-global/) | Cursor | Integrations | Query S&P Capital IQ financials, prices, and transcripts. | +| `webull` | [Webull](third_party/webull/) | Cursor | Integrations | View accounts, positions, orders, watchlists, and market data. | 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/axiom/.cursor-plugin/plugin.json b/third_party/axiom/.cursor-plugin/plugin.json new file mode 100644 index 000000000..a9d76f74b --- /dev/null +++ b/third_party/axiom/.cursor-plugin/plugin.json @@ -0,0 +1,36 @@ +{ + "name": "axiom", + "displayName": "Axiom", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Query logs, traces, and metrics with APL and manage monitors.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://axiom.co/docs/console/intelligence/mcp-server", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "axiom", + "logs", + "traces", + "metrics", + "observability", + "apl", + "monitors", + "dashboards", + "mcp" + ], + "category": "integrations", + "tags": [ + "axiom", + "observability", + "logs", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/axiom/CHANGELOG.md b/third_party/axiom/CHANGELOG.md new file mode 100644 index 000000000..8cb0f6204 --- /dev/null +++ b/third_party/axiom/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `axiom` MCP server pointing at Axiom's hosted Streamable HTTP endpoint (`https://mcp.axiom.co/mcp`). +- Auth uses OAuth with Axiom user login — no API key or client ID to configure. +- Logo: Axiom's official mark, from the `axiomhq` GitHub organization. diff --git a/third_party/axiom/LICENSE b/third_party/axiom/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/axiom/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/axiom/README.md b/third_party/axiom/README.md new file mode 100644 index 000000000..a4de04d20 --- /dev/null +++ b/third_party/axiom/README.md @@ -0,0 +1,59 @@ +# Axiom + +Cursor plugin that connects agents to [Axiom](https://axiom.co/docs/console/intelligence/mcp-server) through Axiom's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Query logs, traces, and metrics with APL and manage monitors. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Axiom**. +3. Click **Install**, then complete the Axiom sign-in prompt. + +Or run `/add-plugin axiom` in chat. + +## MCP + +```json +{ + "mcpServers": { + "axiom": { + "type": "http", + "url": "https://mcp.axiom.co/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Axiom sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need an Axiom account. The hosted server works on all plans and runs queries through Axiom's US infrastructure. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Datasets | List datasets, inspect schemas, and run APL queries | +| Metrics | List metrics and tags and run MPL queries | +| Monitors | Check monitor status and alert history; create, update, and delete monitors and notifiers | +| Dashboards | List, export, create, update, and delete dashboards | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Tool calls run as the Axiom user who authorizes the connection. Revoke access from **Settings → Profile** in the Axiom console. +- Axiom's older local (stdio) servers on GitHub are deprecated; Axiom directs all clients to the hosted server above. + +## Docs + +- Axiom MCP server: https://axiom.co/docs/console/intelligence/mcp-server +- Server URL: https://mcp.axiom.co/mcp + +Logo is Axiom's official mark, from the `axiomhq` GitHub organization. + +## License + +MIT diff --git a/third_party/axiom/assets/logo.png b/third_party/axiom/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..db818f5d0e8a3f68c2e1ac791df96d4d58f31d12 GIT binary patch literal 3263 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 A#sB~S literal 0 HcmV?d00001 diff --git a/third_party/axiom/mcp.json b/third_party/axiom/mcp.json new file mode 100644 index 000000000..586d42c9c --- /dev/null +++ b/third_party/axiom/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "axiom": { + "type": "http", + "url": "https://mcp.axiom.co/mcp" + } + } +} diff --git a/third_party/bigdata/.cursor-plugin/plugin.json b/third_party/bigdata/.cursor-plugin/plugin.json new file mode 100644 index 000000000..b906b9b8c --- /dev/null +++ b/third_party/bigdata/.cursor-plugin/plugin.json @@ -0,0 +1,48 @@ +{ + "name": "bigdata", + "displayName": "Bigdata.com", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Search financial news, filings, transcripts, and company data.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.bigdata.com/mcp-reference/introduction", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "bigdata", + "financial research", + "news", + "filings", + "earnings transcripts", + "tearsheets", + "sentiment", + "mcp" + ], + "category": "integrations", + "tags": [ + "bigdata", + "finance", + "research", + "mcp" + ], + "variables": { + "type": "object", + "properties": { + "BIGDATA_API_KEY": { + "type": "string", + "title": "Bigdata.com API key", + "description": "API key from the Bigdata Developer Platform (https://developers.bigdata.com)." + } + }, + "required": [ + "BIGDATA_API_KEY" + ] + }, + "mcpServers": "./mcp.json" +} diff --git a/third_party/bigdata/CHANGELOG.md b/third_party/bigdata/CHANGELOG.md new file mode 100644 index 000000000..baa4e2b3a --- /dev/null +++ b/third_party/bigdata/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `bigdata` MCP server pointing at Bigdata.com's hosted Streamable HTTP endpoint (`https://mcp.bigdata.com/`). +- Auth uses a Bigdata.com API key passed as the `x-api-key` header via the `BIGDATA_API_KEY` variable. +- Logo: Bigdata.com's official mark, from the icon Bigdata.com publishes for its connector, on a 192×192 tile. diff --git a/third_party/bigdata/LICENSE b/third_party/bigdata/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/bigdata/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/bigdata/README.md b/third_party/bigdata/README.md new file mode 100644 index 000000000..d81211bed --- /dev/null +++ b/third_party/bigdata/README.md @@ -0,0 +1,64 @@ +# Bigdata.com + +Cursor plugin that connects agents to [Bigdata.com](https://docs.bigdata.com/mcp-reference/introduction) through Bigdata.com's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Search financial news, filings, transcripts, and company data. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Bigdata.com**. +3. Click **Install**, then enter your Bigdata.com API key. + +Or run `/add-plugin bigdata` in chat. + +## MCP + +```json +{ + "mcpServers": { + "bigdata": { + "type": "http", + "url": "https://mcp.bigdata.com/", + "headers": { + "x-api-key": "${BIGDATA_API_KEY}" + } + } + } +} +``` + +Auth is an API key sent as the `x-api-key` header. Cursor asks for `BIGDATA_API_KEY` when you install the plugin and never stores it in the repository. + +## Before you connect + +You need a Bigdata.com account and an API key from the Bigdata Developer Platform. Search and tearsheet calls draw on the quota attached to that key. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Search | Semantic and lexical search across news, filings, transcripts, and research | +| Securities | Find companies, ETFs, and funds by name, ticker, or identifier | +| Tearsheets | Company, country, market, ETF, sentiment, and portfolio snapshots | +| Calendar | Earnings and conference call schedule | +| Private content | List, fetch, and upload your own documents | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Bigdata.com documents OAuth only for its own first-party connectors; custom clients authenticate with `x-api-key`, so this plugin uses an API key variable. +- A separate docs server at `https://docs.bigdata.com/mcp` is for code assistants building integrations and is not what this plugin connects to. + +## Docs + +- MCP reference: https://docs.bigdata.com/mcp-reference/introduction +- Developer platform: https://developers.bigdata.com +- Server URL: https://mcp.bigdata.com/ + +Logo is Bigdata.com's official mark. + +## License + +MIT diff --git a/third_party/bigdata/assets/logo.png b/third_party/bigdata/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..34b4dfc88ecbffb30066f84565791a2c50e2e223 GIT binary patch literal 10046 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 AjQ{`u literal 0 HcmV?d00001 diff --git a/third_party/bigdata/mcp.json b/third_party/bigdata/mcp.json new file mode 100644 index 000000000..b706dca4e --- /dev/null +++ b/third_party/bigdata/mcp.json @@ -0,0 +1,11 @@ +{ + "mcpServers": { + "bigdata": { + "type": "http", + "url": "https://mcp.bigdata.com/", + "headers": { + "x-api-key": "${BIGDATA_API_KEY}" + } + } + } +} diff --git a/third_party/cal/.cursor-plugin/plugin.json b/third_party/cal/.cursor-plugin/plugin.json new file mode 100644 index 000000000..22113c7fb --- /dev/null +++ b/third_party/cal/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "cal", + "displayName": "Cal.com", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Manage bookings, event types, schedules, and availability.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://cal.com/docs/mcp-server", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "cal", + "scheduling", + "calendar", + "bookings", + "meetings", + "availability", + "event types", + "mcp" + ], + "category": "integrations", + "tags": [ + "cal", + "scheduling", + "calendar", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/cal/CHANGELOG.md b/third_party/cal/CHANGELOG.md new file mode 100644 index 000000000..242533c3d --- /dev/null +++ b/third_party/cal/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `cal` MCP server pointing at Cal.com's hosted Streamable HTTP endpoint (`https://mcp.cal.com/mcp`). +- Auth uses OAuth with Cal.com user login — no API key or client ID to configure. +- Logo: Cal.com's official mark, from the `calcom` GitHub organization. diff --git a/third_party/cal/LICENSE b/third_party/cal/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/cal/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/cal/README.md b/third_party/cal/README.md new file mode 100644 index 000000000..ab8bbbf7a --- /dev/null +++ b/third_party/cal/README.md @@ -0,0 +1,60 @@ +# Cal.com + +Cursor plugin that connects agents to [Cal.com](https://cal.com/docs/mcp-server) through Cal.com's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Manage bookings, event types, schedules, and availability. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Cal.com**. +3. Click **Install**, then complete the Cal.com sign-in prompt. + +Or run `/add-plugin cal` in chat. + +## MCP + +```json +{ + "mcpServers": { + "cal": { + "type": "http", + "url": "https://mcp.cal.com/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Cal.com sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need a Cal.com account. The hosted server wraps the Cal.com API v2 with 34 curated tools. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Bookings | List, create, reschedule, cancel, and confirm bookings; manage attendees | +| Event types | List, create, update, and delete event types | +| Schedules | Manage schedules and the default schedule | +| Availability | Available slots and busy times | +| Organizations | Memberships and routing forms | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Tool calls run as the Cal.com user who authorizes the connection. +- Cal.com also ships `@calcom/cal-mcp` for local stdio use with an API key; this plugin uses the hosted server only. + +## Docs + +- Cal.com MCP server: https://cal.com/docs/mcp-server +- Server URL: https://mcp.cal.com/mcp + +Logo is Cal.com's official mark, from the `calcom` GitHub organization. + +## License + +MIT diff --git a/third_party/cal/assets/logo.png b/third_party/cal/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..77e0ad96fefb9d3ca2617a39cca11dd0318ea0c3 GIT binary patch literal 45212 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�?l^qEA_OxAYY1H=*s_Yd7|vI=lAiHi@+AX(ftsiEuX34XaOwtDd+atik@aw z$}aQj&e9gF)g8q{HA?g4Y> zG3nW=^i-xjZAuvQThTVKl-WY0YdfB9$(pXqNa`|k>*;ENi!#92;JuDuwYK%&3$(ue z;$zQ6FyH*!DxRy-{5}jyy!S(RP%ui;;@2~qZTC2KljctDlkfy;UAjyPmS)4kw@ph9TSYwe;vB)(qJq&{Y{*x}SF( z6zw2Y*fQ%?`O#8kS?*k8UdM{iZzXERR(&Ji9&4PHCDRbuFYCtLD0*6px2{n_QYiB_ z(>kMw=ppHYI~TKF+o=@qq~f{J;TZe0T#*NuQjwqn6j^-g%-|T=JO~*Z-I`XYrs(eM zR{f@tkyDNc+7OzPj24+(4Mi+F+Oo1@zJer=^?dWIUkz%!gv6%Gcgno>Jv7r8@8e}) z+VoHr5&n-s@$NR&IYi_=_+iqrPC)$+UaWS6!B>6X7JHEZG-fv!K}^Z23k@`H(5(&` zds>ISp5ZJKVUFGTqWlPG@U(l8de}WDdIAQA<_KT9gsEdIXx=b{ zVW`ISW^jsH%j`3j-QBfO)6IzCeB=I%H7|WmsBGWI^+_eLE$Tjp8fAPS*4tzY+ZYUJ zdC+>%jz`8(3$%7+*(eg11cTTk!8eEF)UW@3{E#`S_su%euk?(erOtNd=PUKB|7)eh*>}*1jMXWfPn%3oV zVTlqJyZ$CoNyVdS`0V|^{^_4l(O`8VGtT>Rg^MwbS9MZ9y<;P_aWUtaW$($A)qk$i zKGqDXTsfaiCfq-Fhee>u(JW6WaZZFcLtN<7$GfZ4K11@6^V=4HoJaSA@Y(9pnz-yt zr+?F{oed-|y0wj<7Vccgn@WXV`n%dL2Z~cjPl4J^86`9?$GnPXmyDiYSdDJlCk!fE^lD)dZBfmr%Um@8rxC5 zTr6Z_w&n}vPp#c{0v);tQ{wf~(dl5P^C;p<(Gzy4^LZughE)kJ-o2LiWQ=4_0uE@3 zK?Ii$M;>O8X~nq@vr$#$0CXvJn$7-!+gPABkAH&-Z1zNM9QB8o-?kmh*=hNwTt#Tx zq^w>17;@FBw&NNzR54X%0 zZe(%QeDOQ?$m>0D+1NbhjO5YC*p>G(W|psV3}hC zn-=-KX<>2fd@;*U*EmhJ7_sJ8iObNa8jdJ9J6j0JOJjbApNx_WY$^;(q2;8UCG*W*bJr sOI2#I^D3l=|0cPyr+>Hq)$ literal 0 HcmV?d00001 diff --git a/third_party/cal/mcp.json b/third_party/cal/mcp.json new file mode 100644 index 000000000..44d4117bb --- /dev/null +++ b/third_party/cal/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "cal": { + "type": "http", + "url": "https://mcp.cal.com/mcp" + } + } +} diff --git a/third_party/coinbase/.cursor-plugin/plugin.json b/third_party/coinbase/.cursor-plugin/plugin.json new file mode 100644 index 000000000..6082c64ee --- /dev/null +++ b/third_party/coinbase/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "coinbase", + "displayName": "Coinbase", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Check balances, get quotes, and preview or place trades.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.cdp.coinbase.com/coinbase-for-agents/overview", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "coinbase", + "crypto", + "trading", + "portfolio", + "balances", + "market data", + "advanced trade", + "mcp" + ], + "category": "integrations", + "tags": [ + "coinbase", + "finance", + "crypto", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/coinbase/CHANGELOG.md b/third_party/coinbase/CHANGELOG.md new file mode 100644 index 000000000..217347095 --- /dev/null +++ b/third_party/coinbase/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `coinbase` MCP server pointing at Coinbase's hosted Streamable HTTP endpoint (`https://agents.coinbase.com/mcp`). +- Auth uses OAuth with Coinbase user login — no API key or client ID to configure. +- Logo: Coinbase's official mark, from the `coinbase` GitHub organization. diff --git a/third_party/coinbase/LICENSE b/third_party/coinbase/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/coinbase/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/coinbase/README.md b/third_party/coinbase/README.md new file mode 100644 index 000000000..87d24ea0f --- /dev/null +++ b/third_party/coinbase/README.md @@ -0,0 +1,59 @@ +# Coinbase + +Cursor plugin that connects agents to [Coinbase](https://docs.cdp.coinbase.com/coinbase-for-agents/overview) through Coinbase's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Check balances, get quotes, and preview or place trades. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Coinbase**. +3. Click **Install**, then complete the Coinbase sign-in prompt. + +Or run `/add-plugin coinbase` in chat. + +## MCP + +```json +{ + "mcpServers": { + "coinbase": { + "type": "http", + "url": "https://agents.coinbase.com/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Coinbase sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need a Coinbase account with Advanced Trade. Coinbase recommends scoping the agent to a dedicated portfolio. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Market data | Products, tickers, order books, and candles | +| Orders | Preview, create, edit, cancel, and list orders; close positions | +| Portfolios | Balances, portfolio breakdowns, and transfers between portfolios | +| Conversions | Quote and execute USDC/USD conversions | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Orders placed through this server are live. Preview first and keep the agent in an isolated portfolio. +- This is Coinbase for Agents, not the separate Agentic Wallet / x402 payments MCP. + +## Docs + +- Coinbase for Agents: https://docs.cdp.coinbase.com/coinbase-for-agents/overview +- Server URL: https://agents.coinbase.com/mcp + +Logo is Coinbase's official mark, from the `coinbase` GitHub organization. + +## License + +MIT diff --git a/third_party/coinbase/assets/logo.png b/third_party/coinbase/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ee7dab98e7ad33a6e549152b8106418572786b7a GIT binary patch literal 5300 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 literal 0 HcmV?d00001 diff --git a/third_party/coinbase/mcp.json b/third_party/coinbase/mcp.json new file mode 100644 index 000000000..d083aad8b --- /dev/null +++ b/third_party/coinbase/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "coinbase": { + "type": "http", + "url": "https://agents.coinbase.com/mcp" + } + } +} diff --git a/third_party/deepwiki/.cursor-plugin/plugin.json b/third_party/deepwiki/.cursor-plugin/plugin.json new file mode 100644 index 000000000..09ab97b46 --- /dev/null +++ b/third_party/deepwiki/.cursor-plugin/plugin.json @@ -0,0 +1,34 @@ +{ + "name": "deepwiki", + "displayName": "DeepWiki", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Read AI-generated docs and ask questions about any public repo.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.devin.ai/work-with-devin/deepwiki-mcp", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "deepwiki", + "documentation", + "repositories", + "code understanding", + "devin", + "cognition", + "mcp" + ], + "category": "integrations", + "tags": [ + "deepwiki", + "docs", + "github", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/deepwiki/CHANGELOG.md b/third_party/deepwiki/CHANGELOG.md new file mode 100644 index 000000000..0b3e34d1f --- /dev/null +++ b/third_party/deepwiki/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `deepwiki` MCP server pointing at DeepWiki's hosted Streamable HTTP endpoint (`https://mcp.deepwiki.com/mcp`). +- No auth — the public server needs no credentials. +- Logo: DeepWiki's official mark, from the icon DeepWiki publishes for its connector, on a 192×192 tile. diff --git a/third_party/deepwiki/LICENSE b/third_party/deepwiki/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/deepwiki/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/deepwiki/README.md b/third_party/deepwiki/README.md new file mode 100644 index 000000000..1d8fa3be0 --- /dev/null +++ b/third_party/deepwiki/README.md @@ -0,0 +1,58 @@ +# DeepWiki + +Cursor plugin that connects agents to [DeepWiki](https://docs.devin.ai/work-with-devin/deepwiki-mcp) through DeepWiki's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Read AI-generated docs and ask questions about any public repo. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **DeepWiki**. +3. Click **Install**. + +Or run `/add-plugin deepwiki` in chat. + +## MCP + +```json +{ + "mcpServers": { + "deepwiki": { + "type": "http", + "url": "https://mcp.deepwiki.com/mcp" + } + } +} +``` + +No authentication is required; the server covers public repositories only. + +## Before you connect + +No account is needed. The server covers public GitHub repositories already indexed on deepwiki.com. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Structure | List the documentation topics for a repository | +| Contents | Read the generated wiki pages | +| Questions | Ask a grounded question about one or more repositories | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- The public server needs no authentication. Private repositories use a different authenticated endpoint (`https://mcp.devin.ai/mcp`) that this plugin does not configure. +- Repositories must already be indexed on deepwiki.com. + +## Docs + +- DeepWiki MCP: https://docs.devin.ai/work-with-devin/deepwiki-mcp +- Server URL: https://mcp.deepwiki.com/mcp + +Logo is DeepWiki's official mark. + +## License + +MIT diff --git a/third_party/deepwiki/assets/logo.png b/third_party/deepwiki/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..47246d5bb7f1a30e4ddcd4a603441ad3f3d7a299 GIT binary patch literal 33728 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 Bg4zH8 literal 0 HcmV?d00001 diff --git a/third_party/deepwiki/mcp.json b/third_party/deepwiki/mcp.json new file mode 100644 index 000000000..d5579f4c9 --- /dev/null +++ b/third_party/deepwiki/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "deepwiki": { + "type": "http", + "url": "https://mcp.deepwiki.com/mcp" + } + } +} diff --git a/third_party/gamma/.cursor-plugin/plugin.json b/third_party/gamma/.cursor-plugin/plugin.json new file mode 100644 index 000000000..9f1a0275c --- /dev/null +++ b/third_party/gamma/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "gamma", + "displayName": "Gamma", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Generate presentations, documents, and webpages.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://developers.gamma.app/mcp/gamma-mcp-server.md", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "gamma", + "presentations", + "slides", + "documents", + "webpages", + "design", + "export", + "mcp" + ], + "category": "integrations", + "tags": [ + "gamma", + "presentations", + "productivity", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/gamma/CHANGELOG.md b/third_party/gamma/CHANGELOG.md new file mode 100644 index 000000000..bcba12392 --- /dev/null +++ b/third_party/gamma/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `gamma` MCP server pointing at Gamma's hosted Streamable HTTP endpoint (`https://mcp.gamma.app/mcp`). +- Auth uses OAuth with Gamma user login — no API key or client ID to configure. +- Logo: Gamma's official mark, from the icon Gamma publishes for its connector, on a 192×192 tile. diff --git a/third_party/gamma/LICENSE b/third_party/gamma/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/gamma/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/gamma/README.md b/third_party/gamma/README.md new file mode 100644 index 000000000..6712c661f --- /dev/null +++ b/third_party/gamma/README.md @@ -0,0 +1,60 @@ +# Gamma + +Cursor plugin that connects agents to [Gamma](https://developers.gamma.app/mcp/gamma-mcp-server.md) through Gamma's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Generate presentations, documents, and webpages. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Gamma**. +3. Click **Install**, then complete the Gamma sign-in prompt. + +Or run `/add-plugin gamma` in chat. + +## MCP + +```json +{ + "mcpServers": { + "gamma": { + "type": "http", + "url": "https://mcp.gamma.app/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Gamma sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need a Gamma account. Generations consume credits from that account. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Generate | Presentations, documents, webpages, and social posts from a prompt, outline, or template | +| Export | PDF, PPTX, and PNG exports | +| Browse | List and read existing Gammas, themes, and folders | +| Analytics | Views and comments on existing Gammas | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Generation is asynchronous: tools return a generation id that the agent polls until complete. +- Auth is OAuth 2.0 with Dynamic Client Registration. + +## Docs + +- Gamma MCP server: https://developers.gamma.app/mcp/gamma-mcp-server.md +- Tools reference: https://developers.gamma.app/mcp/mcp-tools-reference.md +- Server URL: https://mcp.gamma.app/mcp + +Logo is Gamma's official mark. + +## License + +MIT diff --git a/third_party/gamma/assets/logo.png b/third_party/gamma/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d83db3a76cabc5d5514ba5987d1b9a3309451c19 GIT binary patch literal 27920 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 Y2VS#Tp^zUGOaK4?07*qoM6N<$g73DLrT_o{ literal 0 HcmV?d00001 diff --git a/third_party/google-cloud-bigquery/mcp.json b/third_party/google-cloud-bigquery/mcp.json new file mode 100644 index 000000000..4068482cc --- /dev/null +++ b/third_party/google-cloud-bigquery/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "google-cloud-bigquery": { + "type": "http", + "url": "https://bigquery.googleapis.com/mcp" + } + } +} diff --git a/third_party/google-cloud-sql/.cursor-plugin/plugin.json b/third_party/google-cloud-sql/.cursor-plugin/plugin.json new file mode 100644 index 000000000..ec43ba16c --- /dev/null +++ b/third_party/google-cloud-sql/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "google-cloud-sql", + "displayName": "Google Cloud SQL", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Manage Cloud SQL instances, users, and backups, and run SQL.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.cloud.google.com/sql/docs/mysql/use-cloudsql-mcp", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "google cloud sql", + "google cloud", + "cloud sql", + "postgres", + "mysql", + "sql server", + "databases", + "mcp" + ], + "category": "integrations", + "tags": [ + "cloud sql", + "google cloud", + "databases", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/google-cloud-sql/CHANGELOG.md b/third_party/google-cloud-sql/CHANGELOG.md new file mode 100644 index 000000000..340133ae8 --- /dev/null +++ b/third_party/google-cloud-sql/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `google-cloud-sql` MCP server pointing at Google Cloud SQL's hosted Streamable HTTP endpoint (`https://sqladmin.googleapis.com/mcp`). +- Auth uses OAuth with Google Cloud SQL user login — no API key or client ID to configure. +- Logo: Google Cloud SQL's official mark, from the icon Google Cloud SQL publishes for its connector, on a 192×192 tile. diff --git a/third_party/google-cloud-sql/LICENSE b/third_party/google-cloud-sql/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/google-cloud-sql/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/google-cloud-sql/README.md b/third_party/google-cloud-sql/README.md new file mode 100644 index 000000000..cae05d844 --- /dev/null +++ b/third_party/google-cloud-sql/README.md @@ -0,0 +1,60 @@ +# Google Cloud SQL + +Cursor plugin that connects agents to [Google Cloud SQL](https://docs.cloud.google.com/sql/docs/mysql/use-cloudsql-mcp) through Google Cloud SQL's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Manage Cloud SQL instances, users, and backups, and run SQL. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Google Cloud SQL**. +3. Click **Install**, then complete the Google Cloud SQL sign-in prompt. + +Or run `/add-plugin google-cloud-sql` in chat. + +## MCP + +```json +{ + "mcpServers": { + "google-cloud-sql": { + "type": "http", + "url": "https://sqladmin.googleapis.com/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Google Cloud SQL sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need a Google Cloud project with the Cloud SQL Admin API enabled, and your Google account needs `roles/mcp.toolUser` plus a Cloud SQL viewer, editor, or admin role. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Instances | List, get, create, update, and clone instances; poll long-running operations | +| Users | List, create, and update database users | +| Backups | Create and restore backups; import from Cloud Storage | +| SQL | Run SQL on MySQL and PostgreSQL instances that allow the Data API | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Google also publishes read-only (`/mcp/readonly`) and instance-management (`/mcp/instance_manage`) endpoints; this plugin uses the full endpoint. +- SQL execution is not available on SQL Server instances. +- Grok also offers this connector with service-identity auth; this plugin configures only the user OAuth flow. + +## Docs + +- Use the Cloud SQL MCP server: https://docs.cloud.google.com/sql/docs/mysql/use-cloudsql-mcp +- Server URL: https://sqladmin.googleapis.com/mcp + +Logo is Google Cloud SQL's official mark. + +## License + +MIT diff --git a/third_party/google-cloud-sql/assets/logo.png b/third_party/google-cloud-sql/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a7b18ea3f40a72dbb83691dce68e6d82e85d698f GIT binary patch literal 14199 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 literal 0 HcmV?d00001 diff --git a/third_party/interactive-brokers/mcp.json b/third_party/interactive-brokers/mcp.json new file mode 100644 index 000000000..9160d5348 --- /dev/null +++ b/third_party/interactive-brokers/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "interactive-brokers": { + "type": "http", + "url": "https://api.ibkr.com/v1/api/mcp-public" + } + } +} diff --git a/third_party/meltwater/.cursor-plugin/plugin.json b/third_party/meltwater/.cursor-plugin/plugin.json new file mode 100644 index 000000000..08f7b12ad --- /dev/null +++ b/third_party/meltwater/.cursor-plugin/plugin.json @@ -0,0 +1,48 @@ +{ + "name": "meltwater", + "displayName": "Meltwater", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Search media and social mentions and pull analytics.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://developer.meltwater.com/guides/meltwater-mcp/overview", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "meltwater", + "media monitoring", + "pr", + "social listening", + "mentions", + "sentiment", + "saved searches", + "mcp" + ], + "category": "integrations", + "tags": [ + "meltwater", + "media", + "pr", + "mcp" + ], + "variables": { + "type": "object", + "properties": { + "MELTWATER_API_KEY": { + "type": "string", + "title": "Meltwater API token", + "description": "API token from the Meltwater developer portal. Requires the Meltwater MCP package on your subscription." + } + }, + "required": [ + "MELTWATER_API_KEY" + ] + }, + "mcpServers": "./mcp.json" +} diff --git a/third_party/meltwater/CHANGELOG.md b/third_party/meltwater/CHANGELOG.md new file mode 100644 index 000000000..1cb18de63 --- /dev/null +++ b/third_party/meltwater/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `meltwater` MCP server pointing at Meltwater's hosted Streamable HTTP endpoint (`https://api.meltwater.com/v2/mcp`). +- Auth uses a Meltwater API key passed as the `apikey` header via the `MELTWATER_API_KEY` variable. +- Logo: Meltwater's official mark, from the icon Meltwater publishes for its connector, on a 192×192 tile. diff --git a/third_party/meltwater/LICENSE b/third_party/meltwater/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/meltwater/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/meltwater/README.md b/third_party/meltwater/README.md new file mode 100644 index 000000000..7fa228520 --- /dev/null +++ b/third_party/meltwater/README.md @@ -0,0 +1,63 @@ +# Meltwater + +Cursor plugin that connects agents to [Meltwater](https://developer.meltwater.com/guides/meltwater-mcp/overview) through Meltwater's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Search media and social mentions and pull analytics. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Meltwater**. +3. Click **Install**, then enter your Meltwater API token. + +Or run `/add-plugin meltwater` in chat. + +## MCP + +```json +{ + "mcpServers": { + "meltwater": { + "type": "http", + "url": "https://api.meltwater.com/v2/mcp", + "headers": { + "apikey": "${MELTWATER_API_KEY}" + } + } + } +} +``` + +Auth is an API key sent as the `apikey` header. Cursor asks for `MELTWATER_API_KEY` when you install the plugin and never stores it in the repository. + +## Before you connect + +You need a Meltwater subscription that includes the Meltwater MCP package and an API token from the developer portal. Available tools depend on the products in your subscription. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Your assets | Find saved searches and tags configured in Meltwater | +| Mentions | Retrieve news and social documents for a saved search | +| Analytics | Volume, sentiment, top sources, and themes | +| Queries | Generate a query when no saved search exists | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Meltwater authenticates custom clients with the `apikey` header; OAuth is planned but not available yet. +- This is Meltwater MCP (`/v2/mcp`), not the higher-level Mira API endpoint at `/mcp`. + +## Docs + +- Meltwater MCP overview: https://developer.meltwater.com/guides/meltwater-mcp/overview +- Connecting: https://developer.meltwater.com/guides/meltwater-mcp/connecting +- Server URL: https://api.meltwater.com/v2/mcp + +Logo is Meltwater's official mark. + +## License + +MIT diff --git a/third_party/meltwater/assets/logo.png b/third_party/meltwater/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9538ead045e91102045eea3de5c3ebf65f4e19d0 GIT binary patch literal 18265 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≶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 BIAs6; literal 0 HcmV?d00001 diff --git a/third_party/meltwater/mcp.json b/third_party/meltwater/mcp.json new file mode 100644 index 000000000..fc83fb84e --- /dev/null +++ b/third_party/meltwater/mcp.json @@ -0,0 +1,11 @@ +{ + "mcpServers": { + "meltwater": { + "type": "http", + "url": "https://api.meltwater.com/v2/mcp", + "headers": { + "apikey": "${MELTWATER_API_KEY}" + } + } + } +} diff --git a/third_party/sp-global/.cursor-plugin/plugin.json b/third_party/sp-global/.cursor-plugin/plugin.json new file mode 100644 index 000000000..ee79402bb --- /dev/null +++ b/third_party/sp-global/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "sp-global", + "displayName": "S&P Global", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Query S&P Capital IQ financials, prices, and transcripts.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.kensho.com/llmreadyapi/overview", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "sp global", + "kensho", + "kfinance", + "capital iq", + "financials", + "market data", + "earnings transcripts", + "mcp" + ], + "category": "integrations", + "tags": [ + "s&p global", + "kensho", + "finance", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/sp-global/CHANGELOG.md b/third_party/sp-global/CHANGELOG.md new file mode 100644 index 000000000..d0b7b9dfe --- /dev/null +++ b/third_party/sp-global/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `sp-global` MCP server pointing at S&P Global's hosted Streamable HTTP endpoint (`https://kfinance.kensho.com/integrations/mcp`). +- Auth uses OAuth with S&P Global user login — no API key or client ID to configure. +- Logo: S&P Global's official mark, from the `kensho-technologies` GitHub organization. diff --git a/third_party/sp-global/LICENSE b/third_party/sp-global/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/sp-global/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/sp-global/README.md b/third_party/sp-global/README.md new file mode 100644 index 000000000..7e982a8a7 --- /dev/null +++ b/third_party/sp-global/README.md @@ -0,0 +1,60 @@ +# S&P Global + +Cursor plugin that connects agents to [S&P Global](https://docs.kensho.com/llmreadyapi/overview) through S&P Global's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Query S&P Capital IQ financials, prices, and transcripts. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **S&P Global**. +3. Click **Install**, then complete the S&P Global sign-in prompt. + +Or run `/add-plugin sp-global` in chat. + +## MCP + +```json +{ + "mcpServers": { + "sp-global": { + "type": "http", + "url": "https://kfinance.kensho.com/integrations/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for S&P Global sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need an active S&P Global Market Intelligence subscription or trial for the Kensho LLM-ready API. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Companies | Resolve companies by ticker, ISIN, or CUSIP and read profiles | +| Financials | Statements and 200+ line items from S&P Capital IQ | +| Prices | Historical prices, volumes, market cap, and enterprise value | +| Research | Earnings call transcripts, business relationships, M&A, and estimates | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Tool calls run under the S&P Global entitlements of the user who authorizes the connection. +- Kensho also ships the open-source `kensho-kfinance` package for a local server; this plugin uses the hosted server only. + +## Docs + +- Kensho LLM-ready API: https://docs.kensho.com/llmreadyapi/overview +- kfinance on GitHub: https://github.com/kensho-technologies/kfinance +- Server URL: https://kfinance.kensho.com/integrations/mcp + +Logo is S&P Global's official mark, from the `kensho-technologies` GitHub organization. + +## License + +MIT diff --git a/third_party/sp-global/assets/logo.png b/third_party/sp-global/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d220055ca8cb6afe1be259f25c5b808b5b7389b5 GIT binary patch literal 9203 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 literal 0 HcmV?d00001 diff --git a/third_party/webull/mcp.json b/third_party/webull/mcp.json new file mode 100644 index 000000000..9c8d94418 --- /dev/null +++ b/third_party/webull/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "webull": { + "type": "http", + "url": "https://api.webull.com/mcp" + } + } +} From 95ac59c54bb7f3a70371c16a1b48be35835dc8ce Mon Sep 17 00:00:00 2001 From: Minu Palaniappan <> Date: Wed, 9 Sep 2026 16:09:26 -0700 Subject: [PATCH 2/6] fix(marketplace): sync new plugin descriptions with their manifests --- .cursor-plugin/marketplace.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 302ba6597..8f58e0d9e 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -351,62 +351,62 @@ { "name": "axiom", "source": "third_party/axiom", - "description": "Query logs, traces, and datasets with APL." + "description": "Query logs, traces, and metrics with APL and manage monitors." }, { "name": "bigdata", "source": "third_party/bigdata", - "description": "Search financial news, filings, and transcripts." + "description": "Search financial news, filings, transcripts, and company data." }, { "name": "cal", "source": "third_party/cal", - "description": "Check availability and book, cancel, or reschedule." + "description": "Manage bookings, event types, schedules, and availability." }, { "name": "coinbase", "source": "third_party/coinbase", - "description": "Read balances, prices, and transactions." + "description": "Check balances, get quotes, and preview or place trades." }, { "name": "deepwiki", "source": "third_party/deepwiki", - "description": "Read AI-generated docs for any GitHub repository." + "description": "Read AI-generated docs and ask questions about any public repo." }, { "name": "gamma", "source": "third_party/gamma", - "description": "Generate presentations, documents, and websites." + "description": "Generate presentations, documents, and webpages." }, { "name": "google-cloud-bigquery", "source": "third_party/google-cloud-bigquery", - "description": "Explore datasets and run SQL queries." + "description": "Explore datasets and tables and run SQL queries." }, { "name": "google-cloud-sql", "source": "third_party/google-cloud-sql", - "description": "Inspect and manage Cloud SQL instances and databases." + "description": "Manage Cloud SQL instances, users, and backups, and run SQL." }, { "name": "interactive-brokers", "source": "third_party/interactive-brokers", - "description": "View accounts, positions, orders, and market data." + "description": "Review positions, balances, P&L, and draft trade instructions." }, { "name": "meltwater", "source": "third_party/meltwater", - "description": "Search media coverage, social mentions, and insights." + "description": "Search media and social mentions and pull analytics." }, { "name": "sp-global", "source": "third_party/sp-global", - "description": "Query company financials and market data via Kensho." + "description": "Query S&P Capital IQ financials, prices, and transcripts." }, { "name": "webull", "source": "third_party/webull", - "description": "View accounts, positions, orders, and quotes." + "description": "View accounts, positions, orders, watchlists, and market data." } ] } From f12224de3319fc5f4946df5be4ff4b337f3a0482 Mon Sep 17 00:00:00 2001 From: Minu Palaniappan <> Date: Wed, 9 Sep 2026 16:20:09 -0700 Subject: [PATCH 3/6] Drop connectors Grok never released publicly (Axiom, Bigdata.com, Cal.com, DeepWiki, Google Cloud SQL) Per the live grok-backend-connector-catalog-controls GrowthBook config these five are internal-only on grok.com, so they are not part of the Grok->Cursor parity set. --- .cursor-plugin/marketplace.json | 25 ------- README.md | 5 -- third_party/axiom/.cursor-plugin/plugin.json | 36 ---------- third_party/axiom/CHANGELOG.md | 9 --- third_party/axiom/LICENSE | 21 ------ third_party/axiom/README.md | 59 ---------------- third_party/axiom/assets/logo.png | Bin 3263 -> 0 bytes third_party/axiom/mcp.json | 8 --- .../bigdata/.cursor-plugin/plugin.json | 48 ------------- third_party/bigdata/CHANGELOG.md | 9 --- third_party/bigdata/LICENSE | 21 ------ third_party/bigdata/README.md | 64 ------------------ third_party/bigdata/assets/logo.png | Bin 10046 -> 0 bytes third_party/bigdata/mcp.json | 11 --- third_party/cal/.cursor-plugin/plugin.json | 35 ---------- third_party/cal/CHANGELOG.md | 9 --- third_party/cal/LICENSE | 21 ------ third_party/cal/README.md | 60 ---------------- third_party/cal/assets/logo.png | Bin 45212 -> 0 bytes third_party/cal/mcp.json | 8 --- .../deepwiki/.cursor-plugin/plugin.json | 34 ---------- third_party/deepwiki/CHANGELOG.md | 9 --- third_party/deepwiki/LICENSE | 21 ------ third_party/deepwiki/README.md | 58 ---------------- third_party/deepwiki/assets/logo.png | Bin 33728 -> 0 bytes third_party/deepwiki/mcp.json | 8 --- .../.cursor-plugin/plugin.json | 35 ---------- third_party/google-cloud-sql/CHANGELOG.md | 9 --- third_party/google-cloud-sql/LICENSE | 21 ------ third_party/google-cloud-sql/README.md | 60 ---------------- third_party/google-cloud-sql/assets/logo.png | Bin 14199 -> 0 bytes third_party/google-cloud-sql/mcp.json | 8 --- 32 files changed, 712 deletions(-) delete mode 100644 third_party/axiom/.cursor-plugin/plugin.json delete mode 100644 third_party/axiom/CHANGELOG.md delete mode 100644 third_party/axiom/LICENSE delete mode 100644 third_party/axiom/README.md delete mode 100644 third_party/axiom/assets/logo.png delete mode 100644 third_party/axiom/mcp.json delete mode 100644 third_party/bigdata/.cursor-plugin/plugin.json delete mode 100644 third_party/bigdata/CHANGELOG.md delete mode 100644 third_party/bigdata/LICENSE delete mode 100644 third_party/bigdata/README.md delete mode 100644 third_party/bigdata/assets/logo.png delete mode 100644 third_party/bigdata/mcp.json delete mode 100644 third_party/cal/.cursor-plugin/plugin.json delete mode 100644 third_party/cal/CHANGELOG.md delete mode 100644 third_party/cal/LICENSE delete mode 100644 third_party/cal/README.md delete mode 100644 third_party/cal/assets/logo.png delete mode 100644 third_party/cal/mcp.json delete mode 100644 third_party/deepwiki/.cursor-plugin/plugin.json delete mode 100644 third_party/deepwiki/CHANGELOG.md delete mode 100644 third_party/deepwiki/LICENSE delete mode 100644 third_party/deepwiki/README.md delete mode 100644 third_party/deepwiki/assets/logo.png delete mode 100644 third_party/deepwiki/mcp.json delete mode 100644 third_party/google-cloud-sql/.cursor-plugin/plugin.json delete mode 100644 third_party/google-cloud-sql/CHANGELOG.md delete mode 100644 third_party/google-cloud-sql/LICENSE delete mode 100644 third_party/google-cloud-sql/README.md delete mode 100644 third_party/google-cloud-sql/assets/logo.png delete mode 100644 third_party/google-cloud-sql/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 8f58e0d9e..2a184a9d2 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -348,31 +348,11 @@ "source": "third_party/hunter", "description": "Find and verify emails, discover companies, and save leads." }, - { - "name": "axiom", - "source": "third_party/axiom", - "description": "Query logs, traces, and metrics with APL and manage monitors." - }, - { - "name": "bigdata", - "source": "third_party/bigdata", - "description": "Search financial news, filings, transcripts, and company data." - }, - { - "name": "cal", - "source": "third_party/cal", - "description": "Manage bookings, event types, schedules, and availability." - }, { "name": "coinbase", "source": "third_party/coinbase", "description": "Check balances, get quotes, and preview or place trades." }, - { - "name": "deepwiki", - "source": "third_party/deepwiki", - "description": "Read AI-generated docs and ask questions about any public repo." - }, { "name": "gamma", "source": "third_party/gamma", @@ -383,11 +363,6 @@ "source": "third_party/google-cloud-bigquery", "description": "Explore datasets and tables and run SQL queries." }, - { - "name": "google-cloud-sql", - "source": "third_party/google-cloud-sql", - "description": "Manage Cloud SQL instances, users, and backups, and run SQL." - }, { "name": "interactive-brokers", "source": "third_party/interactive-brokers", diff --git a/README.md b/README.md index 08d1ba441..fb6b6b29c 100644 --- a/README.md +++ b/README.md @@ -71,14 +71,9 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `x-ads` | [X Ads](third_party/x-ads/) | Cursor | Integrations | Manage ad campaigns, create ads, track conversions, and pull performance stats. | | `attio` | [Attio](third_party/attio/) | Cursor | Integrations | Search and update CRM records, lists, notes, and tasks. | | `hunter` | [Hunter](third_party/hunter/) | Cursor | Integrations | Find and verify emails, discover companies, and save leads. | -| `axiom` | [Axiom](third_party/axiom/) | Cursor | Integrations | Query logs, traces, and metrics with APL and manage monitors. | -| `bigdata` | [Bigdata.com](third_party/bigdata/) | Cursor | Integrations | Search financial news, filings, transcripts, and company data. | -| `cal` | [Cal.com](third_party/cal/) | Cursor | Integrations | Manage bookings, event types, schedules, and availability. | | `coinbase` | [Coinbase](third_party/coinbase/) | Cursor | Integrations | Check balances, get quotes, and preview or place trades. | -| `deepwiki` | [DeepWiki](third_party/deepwiki/) | Cursor | Integrations | Read AI-generated docs and ask questions about any public repo. | | `gamma` | [Gamma](third_party/gamma/) | Cursor | Integrations | Generate presentations, documents, and webpages. | | `google-cloud-bigquery` | [Google Cloud BigQuery](third_party/google-cloud-bigquery/) | Cursor | Integrations | Explore datasets and tables and run SQL queries. | -| `google-cloud-sql` | [Google Cloud SQL](third_party/google-cloud-sql/) | Cursor | Integrations | Manage Cloud SQL instances, users, and backups, and run SQL. | | `interactive-brokers` | [Interactive Brokers](third_party/interactive-brokers/) | Cursor | Integrations | Review positions, balances, P&L, and draft trade instructions. | | `meltwater` | [Meltwater](third_party/meltwater/) | Cursor | Integrations | Search media and social mentions and pull analytics. | | `sp-global` | [S&P Global](third_party/sp-global/) | Cursor | Integrations | Query S&P Capital IQ financials, prices, and transcripts. | diff --git a/third_party/axiom/.cursor-plugin/plugin.json b/third_party/axiom/.cursor-plugin/plugin.json deleted file mode 100644 index a9d76f74b..000000000 --- a/third_party/axiom/.cursor-plugin/plugin.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "axiom", - "displayName": "Axiom", - "version": "1.0.0", - "minClientVersions": { - "cursor": "3.13.0" - }, - "description": "Query logs, traces, and metrics with APL and manage monitors.", - "author": { - "name": "Cursor", - "email": "plugins@cursor.com" - }, - "homepage": "https://axiom.co/docs/console/intelligence/mcp-server", - "repository": "https://github.com/cursor/plugins", - "license": "MIT", - "logo": "assets/logo.png", - "keywords": [ - "axiom", - "logs", - "traces", - "metrics", - "observability", - "apl", - "monitors", - "dashboards", - "mcp" - ], - "category": "integrations", - "tags": [ - "axiom", - "observability", - "logs", - "mcp" - ], - "mcpServers": "./mcp.json" -} diff --git a/third_party/axiom/CHANGELOG.md b/third_party/axiom/CHANGELOG.md deleted file mode 100644 index 8cb0f6204..000000000 --- a/third_party/axiom/CHANGELOG.md +++ /dev/null @@ -1,9 +0,0 @@ -# Changelog - -All notable changes to this plugin will be documented here. - -## 1.0.0 — initial release - -- Added the `axiom` MCP server pointing at Axiom's hosted Streamable HTTP endpoint (`https://mcp.axiom.co/mcp`). -- Auth uses OAuth with Axiom user login — no API key or client ID to configure. -- Logo: Axiom's official mark, from the `axiomhq` GitHub organization. diff --git a/third_party/axiom/LICENSE b/third_party/axiom/LICENSE deleted file mode 100644 index ca2bba771..000000000 --- a/third_party/axiom/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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/axiom/README.md b/third_party/axiom/README.md deleted file mode 100644 index a4de04d20..000000000 --- a/third_party/axiom/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Axiom - -Cursor plugin that connects agents to [Axiom](https://axiom.co/docs/console/intelligence/mcp-server) through Axiom's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. - -Query logs, traces, and metrics with APL and manage monitors. - -## Install - -1. Open **Cursor Settings → Plugins**. -2. Search for **Axiom**. -3. Click **Install**, then complete the Axiom sign-in prompt. - -Or run `/add-plugin axiom` in chat. - -## MCP - -```json -{ - "mcpServers": { - "axiom": { - "type": "http", - "url": "https://mcp.axiom.co/mcp" - } - } -} -``` - -Auth is OAuth. Cursor prompts for Axiom sign-in when the plugin connects — there is no client ID or personal access token to configure. - -## Before you connect - -You need an Axiom account. The hosted server works on all plans and runs queries through Axiom's US infrastructure. - -## What agents can do - -| Category | Capabilities | -| --- | --- | -| Datasets | List datasets, inspect schemas, and run APL queries | -| Metrics | List metrics and tags and run MPL queries | -| Monitors | Check monitor status and alert history; create, update, and delete monitors and notifiers | -| Dashboards | List, export, create, update, and delete dashboards | - -The hosted runtime is the source of truth for tool names and schemas. - -## Notes - -- Tool calls run as the Axiom user who authorizes the connection. Revoke access from **Settings → Profile** in the Axiom console. -- Axiom's older local (stdio) servers on GitHub are deprecated; Axiom directs all clients to the hosted server above. - -## Docs - -- Axiom MCP server: https://axiom.co/docs/console/intelligence/mcp-server -- Server URL: https://mcp.axiom.co/mcp - -Logo is Axiom's official mark, from the `axiomhq` GitHub organization. - -## License - -MIT diff --git a/third_party/axiom/assets/logo.png b/third_party/axiom/assets/logo.png deleted file mode 100644 index db818f5d0e8a3f68c2e1ac791df96d4d58f31d12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3263 zcmd5<_ct8Q7GGBH8(q|uM2Q{}Eut)TiO#Bt7NUlT7DVq|qD7*uw#X7ev@Fp}_-?cy zdbfnds?py1{_x(v@Xnb#_s*SrX6~8uxn<(?bv0?JIH&*s04)p(F(mNs*F-@~m}gth z^a+gUm7%68pz0q^EMWn0FoQYj=m3NXG6jGr#u-3zZ9*Up0s#QP0wMsAz=^JP1;qc| z{ayh4pL}hoqaZf`0MH1*AS%ZGMBBN}ZaPm`dtF)Zk0Zf$v65YED#cJ^hOSSbPV)5Z zsCYK;xN&?e8yMVkzYxk08Tpd}5nJde^T5zJ(V+9}a{f4=5wpGBv_4Zip>#Zh$7Rh0 zM%PbVqI{00o^PX%lH(S6C{qFdA0xDZB7GO`bKzpy8g#n1+)K}`*!UX1wmOi3S77|7 zH%r{Qw5-fy>dWdnCVz1T6F8%8(-jM9YHGSNxbRyWd>_wzx0#x>zWy<VoxlfA@M%h-;=o%ia+ER zs>R6vYXVSNY6;b8N;dOb~Ox#ahRq z8-{syTz7sV4fwIG_}Laeb~*3KL9cGybc0^=DZ8{&>a{1g!d}ca!vg68Ox=P%*40=| z-PTHP^v1re1Li8eHmstmddF#EWYL?|3>U`4}Wnt1xG2j=fjIyZT$Ky*r@bvX| z)!BAN%jtKmUr5_z7gm&_UG28QQ)Wp5ACAvc?V)=Ej)mcVc)^CUNd3#P>^&bb0eV@pn zt*P4QIv?(5l&E3(D4qHyKwiADXrC>XA}u~05&y90ATBxF9!&S~VBdq%s{AAH%D%7>sM zS&X6MlKK_)ypykh&zihxhinMLQ=*qEe|uZaN@|VX-GN7XWs8PKX(qARefn$0j*fL( za4y>U-dBl0TE`#SR~vhoFW?`t*}ko7Z*@B02S4z4Wt@n*#B$m>LMa}e>rRv#trIYY zP&(KguOtN7X-0p_;tjS3FFqp6c{yF%&Bp0G&PFUyR!t)n@NY_~0F9!j-~9PpgjYt2 z)G0+|$Nc_C9c>Kr8+1#|@;X89rMoENG;Q!}LkNvQnv&}v% zOiLw1Buh(6kRjk=Zwe2+;Mm9nken{oB~}Be5~N{{nKeH^=cMcrW}=d+o(9Fjt!DE2oS>%k|xD#q6i zP0#1eFjhrqX?Y}3Yl}bqW+pmRqMdaOhntU$4J}#ywAHFw4#-%Yf-6iaOIaAB_o}U$ zz?*7LD;5neQ1ETR^ysElgkz{@A@kaFopVHED008AYgG`PHtO0p(Y~*!!7-^2L(l?M zWb<%G-idQ9hbvnPC`&rNCE}5y12d**GRx6?ahNE z78nOOW+PHKj+2956CYY$gHVc$A43{+n$co%$0clohY{)lpAqlGHkBEwB&aH4;@pIw z)LC;2#3*78xha2*1$zDx5OyC`au zXu#RJu-pl(`Y+#r=)(77&GZ{f>i(Oei(@{fR&g^;{P8EJ_;otp`&;9c z0uQzF-@UWH^WhgeP&=!F&sy^o*>zQF6_qqp`9laSv8ts==>etp7< zh;%XME4~I>=%k1-eX@<9W?KA2$OaRi74z1=gh(KS&`|LJQ;y7+GRp-Un_NmkW_6$r zj$CdFZhEu@Hi*lNy0&7-%oHQTQCdFJ;)l6gbii?Eurus4Q8o9vgb|ftnYtx!{;u3f5o*$LxvLv?wtjiR{r$UeTP19e)uNRudV*??irEdc>nd@@44{b+K&YQkPc&Q7XPTEBpNyJb zvbTeB=YSXW@(jnTMmv&3#1mCdZhAugR>H}J1qD;9QnFU9TZ7o|^10smu9WJy5Z>*B zo4Z)*P6#I@VMNuFc2uqrGF^CiyS*=Eaaq~cF}EN=tNL2hqE5L^TD3=Zn?uxY=j#0Q z9t#FDG&EkF_KSsLyfZZat;y=ayZDtG6V=wZ*kjpF5}aK&;84KJwmu3xfKJ7+@bFltdmixg_w{}D zpgcc0NB3%?Jmy=EZnvnbvMESI;yk*0dVc4p#R{0}bB>H&fxFNh(}jG3lBV2Ux?o?C zFz?JIN7p*HsgYK{-@`f>GzrJh% z356$=tyOT<+#=Op^%V}BZdDGhhm?oJ86phbWK4FOnTDU zBw+T5iIVM8y8YS7v(qe~*>A~ym$iYN*_NT{9%fUo^}LYRDL8FM$5QrXJ};-%(>>VE z@A^vi{ufP-n7oH7yL+kqZnU2qSjg_KI5u`aN<4(DFc3{j5U$FUas9=%td`Q)*jFgY zORK=Z=32EW^5ErtDQWP79`?$MzlZml=XYm%l5U!q4-3grG=IUlIjv-~MXc_qYS1OA z6LRvC0CHmIUM(n8qKY5Wvq0&y+>?aJ{9fr#=t10wsrVO+jTy_5pE)>09iM!q9D38> z_h%BsC=L80?J=i#CZjTTb4#a5QY2EnZtEAyH9yq!md!))kb8vqHnJVsgXibwaxD~q z&X`Ac;MGrQCrqKrC?v(Wh?p21igbSBIDvp0ntmsincNcaEIEdSfHPYUc>yX$-2^kVj-z5YDF)O8_Msy5;O0SVyk A#sB~S diff --git a/third_party/axiom/mcp.json b/third_party/axiom/mcp.json deleted file mode 100644 index 586d42c9c..000000000 --- a/third_party/axiom/mcp.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "mcpServers": { - "axiom": { - "type": "http", - "url": "https://mcp.axiom.co/mcp" - } - } -} diff --git a/third_party/bigdata/.cursor-plugin/plugin.json b/third_party/bigdata/.cursor-plugin/plugin.json deleted file mode 100644 index b906b9b8c..000000000 --- a/third_party/bigdata/.cursor-plugin/plugin.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "bigdata", - "displayName": "Bigdata.com", - "version": "1.0.0", - "minClientVersions": { - "cursor": "3.13.0" - }, - "description": "Search financial news, filings, transcripts, and company data.", - "author": { - "name": "Cursor", - "email": "plugins@cursor.com" - }, - "homepage": "https://docs.bigdata.com/mcp-reference/introduction", - "repository": "https://github.com/cursor/plugins", - "license": "MIT", - "logo": "assets/logo.png", - "keywords": [ - "bigdata", - "financial research", - "news", - "filings", - "earnings transcripts", - "tearsheets", - "sentiment", - "mcp" - ], - "category": "integrations", - "tags": [ - "bigdata", - "finance", - "research", - "mcp" - ], - "variables": { - "type": "object", - "properties": { - "BIGDATA_API_KEY": { - "type": "string", - "title": "Bigdata.com API key", - "description": "API key from the Bigdata Developer Platform (https://developers.bigdata.com)." - } - }, - "required": [ - "BIGDATA_API_KEY" - ] - }, - "mcpServers": "./mcp.json" -} diff --git a/third_party/bigdata/CHANGELOG.md b/third_party/bigdata/CHANGELOG.md deleted file mode 100644 index baa4e2b3a..000000000 --- a/third_party/bigdata/CHANGELOG.md +++ /dev/null @@ -1,9 +0,0 @@ -# Changelog - -All notable changes to this plugin will be documented here. - -## 1.0.0 — initial release - -- Added the `bigdata` MCP server pointing at Bigdata.com's hosted Streamable HTTP endpoint (`https://mcp.bigdata.com/`). -- Auth uses a Bigdata.com API key passed as the `x-api-key` header via the `BIGDATA_API_KEY` variable. -- Logo: Bigdata.com's official mark, from the icon Bigdata.com publishes for its connector, on a 192×192 tile. diff --git a/third_party/bigdata/LICENSE b/third_party/bigdata/LICENSE deleted file mode 100644 index ca2bba771..000000000 --- a/third_party/bigdata/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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/bigdata/README.md b/third_party/bigdata/README.md deleted file mode 100644 index d81211bed..000000000 --- a/third_party/bigdata/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# Bigdata.com - -Cursor plugin that connects agents to [Bigdata.com](https://docs.bigdata.com/mcp-reference/introduction) through Bigdata.com's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. - -Search financial news, filings, transcripts, and company data. - -## Install - -1. Open **Cursor Settings → Plugins**. -2. Search for **Bigdata.com**. -3. Click **Install**, then enter your Bigdata.com API key. - -Or run `/add-plugin bigdata` in chat. - -## MCP - -```json -{ - "mcpServers": { - "bigdata": { - "type": "http", - "url": "https://mcp.bigdata.com/", - "headers": { - "x-api-key": "${BIGDATA_API_KEY}" - } - } - } -} -``` - -Auth is an API key sent as the `x-api-key` header. Cursor asks for `BIGDATA_API_KEY` when you install the plugin and never stores it in the repository. - -## Before you connect - -You need a Bigdata.com account and an API key from the Bigdata Developer Platform. Search and tearsheet calls draw on the quota attached to that key. - -## What agents can do - -| Category | Capabilities | -| --- | --- | -| Search | Semantic and lexical search across news, filings, transcripts, and research | -| Securities | Find companies, ETFs, and funds by name, ticker, or identifier | -| Tearsheets | Company, country, market, ETF, sentiment, and portfolio snapshots | -| Calendar | Earnings and conference call schedule | -| Private content | List, fetch, and upload your own documents | - -The hosted runtime is the source of truth for tool names and schemas. - -## Notes - -- Bigdata.com documents OAuth only for its own first-party connectors; custom clients authenticate with `x-api-key`, so this plugin uses an API key variable. -- A separate docs server at `https://docs.bigdata.com/mcp` is for code assistants building integrations and is not what this plugin connects to. - -## Docs - -- MCP reference: https://docs.bigdata.com/mcp-reference/introduction -- Developer platform: https://developers.bigdata.com -- Server URL: https://mcp.bigdata.com/ - -Logo is Bigdata.com's official mark. - -## License - -MIT diff --git a/third_party/bigdata/assets/logo.png b/third_party/bigdata/assets/logo.png deleted file mode 100644 index 34b4dfc88ecbffb30066f84565791a2c50e2e223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10046 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 AjQ{`u diff --git a/third_party/bigdata/mcp.json b/third_party/bigdata/mcp.json deleted file mode 100644 index b706dca4e..000000000 --- a/third_party/bigdata/mcp.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "mcpServers": { - "bigdata": { - "type": "http", - "url": "https://mcp.bigdata.com/", - "headers": { - "x-api-key": "${BIGDATA_API_KEY}" - } - } - } -} diff --git a/third_party/cal/.cursor-plugin/plugin.json b/third_party/cal/.cursor-plugin/plugin.json deleted file mode 100644 index 22113c7fb..000000000 --- a/third_party/cal/.cursor-plugin/plugin.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "cal", - "displayName": "Cal.com", - "version": "1.0.0", - "minClientVersions": { - "cursor": "3.13.0" - }, - "description": "Manage bookings, event types, schedules, and availability.", - "author": { - "name": "Cursor", - "email": "plugins@cursor.com" - }, - "homepage": "https://cal.com/docs/mcp-server", - "repository": "https://github.com/cursor/plugins", - "license": "MIT", - "logo": "assets/logo.png", - "keywords": [ - "cal", - "scheduling", - "calendar", - "bookings", - "meetings", - "availability", - "event types", - "mcp" - ], - "category": "integrations", - "tags": [ - "cal", - "scheduling", - "calendar", - "mcp" - ], - "mcpServers": "./mcp.json" -} diff --git a/third_party/cal/CHANGELOG.md b/third_party/cal/CHANGELOG.md deleted file mode 100644 index 242533c3d..000000000 --- a/third_party/cal/CHANGELOG.md +++ /dev/null @@ -1,9 +0,0 @@ -# Changelog - -All notable changes to this plugin will be documented here. - -## 1.0.0 — initial release - -- Added the `cal` MCP server pointing at Cal.com's hosted Streamable HTTP endpoint (`https://mcp.cal.com/mcp`). -- Auth uses OAuth with Cal.com user login — no API key or client ID to configure. -- Logo: Cal.com's official mark, from the `calcom` GitHub organization. diff --git a/third_party/cal/LICENSE b/third_party/cal/LICENSE deleted file mode 100644 index ca2bba771..000000000 --- a/third_party/cal/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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/cal/README.md b/third_party/cal/README.md deleted file mode 100644 index ab8bbbf7a..000000000 --- a/third_party/cal/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Cal.com - -Cursor plugin that connects agents to [Cal.com](https://cal.com/docs/mcp-server) through Cal.com's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. - -Manage bookings, event types, schedules, and availability. - -## Install - -1. Open **Cursor Settings → Plugins**. -2. Search for **Cal.com**. -3. Click **Install**, then complete the Cal.com sign-in prompt. - -Or run `/add-plugin cal` in chat. - -## MCP - -```json -{ - "mcpServers": { - "cal": { - "type": "http", - "url": "https://mcp.cal.com/mcp" - } - } -} -``` - -Auth is OAuth. Cursor prompts for Cal.com sign-in when the plugin connects — there is no client ID or personal access token to configure. - -## Before you connect - -You need a Cal.com account. The hosted server wraps the Cal.com API v2 with 34 curated tools. - -## What agents can do - -| Category | Capabilities | -| --- | --- | -| Bookings | List, create, reschedule, cancel, and confirm bookings; manage attendees | -| Event types | List, create, update, and delete event types | -| Schedules | Manage schedules and the default schedule | -| Availability | Available slots and busy times | -| Organizations | Memberships and routing forms | - -The hosted runtime is the source of truth for tool names and schemas. - -## Notes - -- Tool calls run as the Cal.com user who authorizes the connection. -- Cal.com also ships `@calcom/cal-mcp` for local stdio use with an API key; this plugin uses the hosted server only. - -## Docs - -- Cal.com MCP server: https://cal.com/docs/mcp-server -- Server URL: https://mcp.cal.com/mcp - -Logo is Cal.com's official mark, from the `calcom` GitHub organization. - -## License - -MIT diff --git a/third_party/cal/assets/logo.png b/third_party/cal/assets/logo.png deleted file mode 100644 index 77e0ad96fefb9d3ca2617a39cca11dd0318ea0c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45212 zcmV)FK)=6Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91z@P&F1ONa40RR91zyJUM08KkN$^ZaB07*naRCocDy$7JKS6Sz~_bEvP zgaimJ6qP1Q2WcWi7!*Y*0*csmECZv6qM`_6!NGe`$2vG(RAeZEqjE2Konf`r9i^Y?unDf4;?zZ zq#@rqCKZ1C_%V2o96o|hCGT9WTAFkrVQ-BKG9<7HPbmSA0QgyP@+24zrvhxq5HN(Y zq+Qs1CwF@VAwmS?EFyN6D|U7Quh6}dCnS~>E)3yyM5!G4WAcgP#}6GjGSWnue_%X$ z;yA)(Q581k9OR!op}O6}IBoZk9^S=UhnNL5IvHG^92*gsPYhF9v}j->I6t32FV4(L zjnX~EV);-2a-G~efhIND&-|erO|sdB*mpf+vo~{@f#HVa@L}EEw6l%|-FRrHam5k* z}{7#vsOmevqOCHPUP~&Bl)WT*| z@?kL+hYuY_QTiQMnVd=YZO?(^D8WTy4xt)paVaX(7L0_ei#DFG+a(|oLG}QUkSAjN z3s;S`rBTa$DKH^&!~jsUqIq>v&uP0KyB5ywg8Sa!O?%3lx4* zM>FQDGFF2nQaoY|n1M@w&Z^p^7J?uH;E>^8`ovuw3a^%Az|=@7cdZRvjwT)HV1{pO zB)W`ayvRi>2FU1gf#?A$XO7?v{3#vREGwFp9$^yX1YRq3j;du^!eK)Z0}yU?VH$nr z<6bk;h(vZ3RN#e^$q=Pl7Q<#i(uzp)VZ8>GiU6Ca(S=L}F`!9mpa{8oWE#1=X1Vc` zEBCP|A;5QBVpvhv9!MkM1sPl!6|0nF)iaT47_@e9mK2as-cJMp|B_YYv1=4Wq_yIx zv#f7A!JI6i4xl?t#!rus5y+AS#v}4)UX0Ob4oMa$+^ub7=YXLAA5nYI)tf8TUiGCz zgFpWXgiEGqa7|h(Z5nx8Bu`Ll^Ob2Iwm4vf5_D@3GN`nGV7mqj4F9-jnH>M?)E3G3 zTr&O$gL&)I^pOS+RR#8uj7>T%N@3*lp@%t#=s7S-0}Q45vaE&3HgDP}ua}N+DRUH~ z83_=8#$X_o(G%pRglV4gs4+sM#k+gt2!&l?TAN&6Gt3fFv@oAq@xiu z`C4t)LHg5-(aidhxDu+duAXp1TXmdTNG|#rRF{LX~EEu)52xA*_G(dz3N|@m2 zsvJYC!K@AQUMEab;r=KjKnW*tAKFHdW)8%8vyaHiaN{tbyMvw1rSyVTk2cE8K!RIn zZlsO4c&s=T0F5{IFrEY5;Uh=YxoOA&&0K*#1CTx;8872XX;7UUXZcI>GMAxxKznpx zsEVbij?d)kk)ubY(E#=y4YKe+hs!u$Z-d3PnygahtH^=fAw#owIFip`e%Y8B9z9!} zV1Zd=wz&_O?nzbxI3ZZ+o)ygHbQdx^AY+USJVZ#GISAz{6>H5jJLxN3&RgMEFp6@~ zaBfs*TJNbjJV!J(Q|2Xc?A(7vJYM^ znPPEcHkDkw8O$t=5i!XfP>&HBC-hnFV?ae^QBiVaiLB(L$B1TlY%=7^jJ6?Suo0jH+c)otOkmqYZl-jLreUUFCWov^<&98k8{Z(3OoA}eswi7bbnuOo zI#QXw))$)A%vp^wt5-{)-CTLnL%@k*vzD+%ZQ5ih7?HVamU?5Y4aMm_cj~oIDUS;= zY+NS-Y^)%84`gE&hd?16BG_##;ANS{Oa(gREhRRL%OD2g1Q=#mRZoUs0C(UgT<%A! zSRGCwJV`ZCyleOb_mh)G^Qs_qtNr+~#TthCIbVYgG8zET2)}(Cr4HRXr4%`I%yEP+;2xs$H2f+i(I*bVeq#I(Z|FM*|YIgeK^4p%G(|pdxpG)Q(mS zTPkI&uEX!7Z<-^$Jbd^l%I5G01Iz-};}o`&R38URXU0(l6O6F18d`8TSAq(Fv&&B9 z%%#G_DFDV44vlBe5H^DnotyHqv%@SJS2j>QhK|QM;zN{mg;{uz=O3jRKk!AM@qv-S zsie;nEKtA<5@&b}cKjF)L0tawezA2BZybWb!GWA!h$N>8^ zVoVQ8E0E`p*^fjsIC#ZK2;GB9VMfe0DTsj$A^8ra6||nPt#Ar`=g46XSUhl3`3^Pg zI9UiO^gt$t0@s!**q*fzvLa*-6*wpP(U{gQo==7FCL6|Im>FR4!!zNT?DR5C`qb>C za8@~33y$b#?jPm?G_#gaX9PTf`37={MX@_#$ML}g-XZUCdG}gzaLGu81D9ton!K~9 zpwVYlS?x!c-mq~2M)1PR<>HK2(Nn9SDD9LoxSPXJ==IeUFy@B7yc`5WzVUp{npsFw zX0WgWFNm4Ouv&Plexy>lcy(uo^XyFWDwNsz0O6#dic^B|apgyRhG7|L4(&{Rn&d4h zgrGzzw><}R3XU^ZszBmGsplo~({%|w5t6rX)KSQ|ezZ^aC4}jcamV;jtTwR@+#KI(hbvVr)O)D6l>`W0JIYNrZ0Mmwe1jH31p3w_Qh-wT} z329QYk42_Y3r}^5RjYfDh&;48ARzhbh>XR}DOl;20pA4&Ec2L+Zz9A*Gq4_~LbVDY zvjEHrL7-gaLEDx>x@kAbHyWkSFSv|wApkNOsU+`lPjizfZa1Et8CHWuh-UpT(uTI> z3viMUVl8gIj6q~ilH}h76JA0LB<-ZY4)s)AxY%}!H@z_*egp!>&`J&CY|yipwSX{r zY8Awilgb|2QsI#ztF;adh?0muUAF>9zQIkq%M23*z=_9aD`JLRUWBxg>C65q7C8nunP7Ci(*|BBus1 z#Xtx!7I-46Tq34SiE_hOwK8VvhbJA62d$4Jz-R{hH+L&R8)>2vr`Ih$HPY)5oVQd= zoIGw>q6vvC36kkTZl^`&yi9Io*N|_5hk5|aGi6m-u9R;v9(TEU0Yl+I*}6iD0?*vS zDN9{rsT~_-j(6c5BORB#_T?fjU59R1f~{q=ef{EJ#6rxAERMH$9BTPHB#}QOBmzdo zrqtZ&s%rI0n9>};#X^hI%4WsdK;`M8;-}`pXHs%8#HBO0GsfQyj=AB5mO%sN3E#sx zZ4Ss9qE4mMMdIWHE7Ic6=wRhl9Qc62CD1iQi*bF7mxsI?M@#hU&K&unTDkzRQPidb z*oyxWm{qW6r+7CQ832aVVk;_Mm}8odSUX(PH^3h7y)$qfvm$-4YXyaitTS;x6Rq$1?SqjYivZmv|HK?#iG-sJmW z6SRdyORcWRDZ1JmS2w^UE(A7=Q{#d1julMfGEQs?9Q&#*xthz4t^$2L zW@c-Qn=H+v1|#5U_%L5L05E-iM!wFjwrzM>Lfbe2X90GFWIkL-7p0LiR%M|PB@lwz zrZ|y?9h!mEhAAeCfMO9OJFfZUhoOs`yjl=Eh}%O7v!!~WrC)g`Qv_DLu|*6@!bq;wwAQ-coQ3; zOJO4u^_m6(|kbjkr zt5p#ydV0K1^2bJjI6FBp(TxF=#(c8egAOF~U?unUs1|b^buA&p{Q=KdRB&|(x?H& zIgS%m;yPz!>?vJ5am&TEu0bgM5o_?w1AU5_Lq9Zn7Ormnuq(j{hnG3ESRN(|l8y-V zv&^t=5{nN0$tYfYSEMmR0(bJg4kT<|l%jzuixdf)Ov<+B!J+)?Y?shr%(yzxV)>`1 zQ{o<OjtI80nOO_EUf85$* z6wMy<9)fA(xAFTpH;xi_VhtZ`?QR21^&@Yyki@5|!D)7az9E$uhA6; zBHAaZG9g{IjF0K6q>M<8(-6>4{XkGOB1g0n>0<;lwHy~j4T+mQ_iVhf8t`RUU?jiv zZPH=mw$_|g^_~e!)XOc1)T8L-tifhT5J5`G0o<(PosEO^LJv7-qWHMX;z8|!X1rF- zP@u7O-|;*?8r0hn0ZS(2xgrn&(9!ACOsWamJ5Ojxp@uycjV)8fpI)Y=W-tI^PKfnP zN3k>;-~v@pLctrCjWf5L0On#@rH9#sE^)^R+NC}63fv}dI3b=Jml;=-F=~bLDkZ$J zO;2NlC5W*A7LP1i^CqG64Q{zJq6Rl)MP6J zgp=EDTmyQP!GU~kl{LD}Yx!n?Lp0|Dk7inhulduGnB@{s-8AW}U0e+sETum4V46#s zPkL-pkUhhLhHAJI$>k#}U@~%ez$fH+dX!5YFGoCn`fD5>C6)3%%5zOFMSiz44M4D#O z@HS7|1wa~>xMfF&vs`DSO@u6kN=GZtB35o9P#QhtQq$eDEU4Stk>L zIw^|B!6Cw=Es@a$!ZKG$NEjOzd8DwzH8wCXG$fhGmFiT&MNAJ}&^SV~SFj1N33NyjhbpwWOp4l>zzZhP9%6jmqF7caCpiZ(T`53XIkh**VG+8nB> zW{egv1VRK#sXAYnWDNBw)U(nsM>bSo2)cQ!^(Ke4tt62~rYRdb6B-=NkE6``qg@Du z%U+>ZzWN1ELmIpcLhtJ|g(p3B9RhEmfl+)k!22O6SG?e&7F*+RVlyVU0-Ys1yg8WI zmZWP^kWtb>3&H>+nSM}dGTu>1zEwg5>yhc7Er1KVr?>GXnNVU0y8e)^9OKggXonsDg_sE z=;S_RD@T>1Iv))3_-9I5BXPwy?6Prb4yn5jfQ3A(1ylpU{kMY6xT!G309dAgaT;Xa zA$t+BQigGam^*%YV4N_PHp!zTrj-nV88P=_!uQf28q!DNyde{EfdwF+m=ydB9$BD} zancld2+&OEV)Aal4qg|WAfXPSu#y-kJ&peep@%9~CQ#OQRmXG_ktyV`po>AjiK1It>jLoyWs_Lw#i8oX z5}*Ar;ZbQ)Hn->;Ft4wG;T`%4^zhhIJ_5s24{w@^opC_ol4<t_tuMs535awjigF+*eRv|%_Lweb`@_v{>JZOp1ss(y887t&?MlVxgQPF!iKZcCW? z7d9!W7=Bzr77sqwRI@aSRRCm1 z&uZa^O=Dd`r7bF$Zr{=>EN8+7uhPXSJk6#tXyGZVCT|#Vn_!N=S%^3tZPTs1X_y{2 zd$fqVn-hFho+sKq_El5aDZ5rV0s`t2lfp&2hN-0Rhp)6KW*#yu?{a5fIW&?*&LyIe z#pdfn?FCbo>X~!K#oDGBbVQ&Dn3gYes^z*Qhlp`zAfQR$kNY)jsKEr+XmXL1M!lLj z;#9hh&@;)`;B*TVSz*9qc9 znSTpw-qIzglD5Foby_zvX3t5fbnl$)4K_nAUs5c(JjK&|OB4zu03F})u6c&AJ|Pg1 zN(BQf0oSvL$45?>mqwZ!V+3boDNgA)AZIvcoI$=YA`w3P-s9wYu1pRr^6J>VA=UQ0; z7`Kd1+MGB+axh^iGq|`i;!%KMn1smG+?>NzNO)K?63{dsY(b0!&d3XNEU{ZdN(if3 zvb0Jv3xkUu4d!T#en7pzAr>vYqW(Y09RKwv(l8%0mH`QMa%jMc*DN7|?m8(Rc>gULav} zC~zyc-gqNywVcWUfua~0+&tpLRyaYX8rAsCuF=JK^`v>%3D3`{m98LiNcjnscwht4cqOM4m z50_Rh_c-wunAEBdX~PwbEi?J5XBqQMHyC_HDI}%}-ANJ;^D@eB&n?MmZ#0hhIA27j{Olcd*nj*{u=4nw z6AGz`=zu37zkZqo+~=vtC>N)BytLtC$U4IrlzCX=Qdf5$rVc#@JyNvqU=fq))fpE5 zz9Wk+S}HV*Uuo^jukJ69QDBwXJ)?;At*Xl_t3AZ}bhBW_3Uo~eiDrquQ#gZM(qSR# z-y#PRO<_@%E)1h#v2QYi%PR45o0k*ewmC2{i`2Ae4l0tSLl_6PFoYlo@#`;ZLnawP zD6uLs#INlh7Uu>=(g{jnM55K5&k}|kd@zB?7?NL#53PP|5-@~P)%L8LilM}N9!9q?j0z5q8opmc{v5*WuP zs@26!GN)eqne1M+J}xYX8UXZsS2E@9#hV19UQ-j=J9W9Y=8&AK>hU9QvqD6xSJ5lH zk>Kk@0Ry$(b(K_Sz*!3FJ;(Dc4032f^=4}Al}*AB|V>5(^@B|7+LCHD2jr| z67#x!X8|2qP|Y{0pzyY%Fc_^iKRPa$xz(pUv>hs&-)ZLtt!QbsdaapE^^nT^SdMVU zOd11G2bq(O=mJ$9BH>C)W30j?*oYO2 zV+gl~X*-)8f3c0i)wP*8g7Dz10MCLR&;qT;MZjNJ7;0rRpvR#LACvk^bu_;A*15`V zPKP_oHGnK(xHCbtu0D4_Wbw-PM3D&r5Jd0k!Fv<1Lk(axfvlu)I{8!EHrkD`QwCeu zNY)K2hzyS~u`$I{2HmZXy0H&)Qk9_6)Q;ZN%{AXt@rf5d-bR?{qg12zr`kw}kzwn- z4=)5Wjmn3;8bybwtWg+P#>;z7tF?v18!L+`8WVY?MY8ZBAXqWfhudHNG@uzY5nqas zpj$5w5L6o5pX3iZCBd%V@dzmbTs&wJw7)=td;-?}%R(HFW|vZ_Mnju)fHj~^)Z`Fl zI{AoOwfyaN!*|xPHH<~$w~2WL2Cop%8IynkBpk;GOCFX$y4JzIZaR{MIJ7el0c5D6 zuNO9f!72?l3N9Tkoy~t-(kX=2Q61PH#$B2~Nf(kexuwhx>Trwp$WRH6^I%-W3_La8jSq1s=2{4YeQUm zmG{vgg^b`wiAFQ4pOLR`OcLh|99x@nnv%~A4ATh^U@rC*Mn1pwrQgX?gi$p1W`=iX z3PljV%qwy0X;h9faU|RqbwjN>`p}Pg@cU6EV)Y@g{D^?T2*%%+?~kH#M#r(@m6RRS zC;f}m*=If9scfFb!)1PyU@`zb!3d#+$K0c@6t(NL(G@C4v>n!|l(5GYud=+{Bmto2 zB2i2w89il7ws$9MxWv2aN(IbW5UOre)KNpe)1blG9RnVRTH?i`Z8rD%SsvyA1IT2~ zwDx_;FNt+^J`r6;nI)!9Sh(;6B&r$I56M_U7;g*XS%lvSH*ca&lstaMh6>d1k|^K` zgCtr|^n?p-kfcc{ig3sjmK_63<&{9Xb*jCtjV z*QeWdB9$N-I`&qIghZHAmY_C+q0l@H@*h$e(OVWp2HTX~1T{4ZosnqP{Z2+t85^-W z9oJ?N@$<73BqqNnd!p0HzGh?DCaMvYyM!o=4Vc!0E|q09D~(7B9vbi^Vi`$U4$Md{ zsc=bxQ|h6B&{WPF_4B8NM@y0G6ix`e5gSe;0$8QmXe{CPgd56`2;} zVM9^xW0ZBv>y|GF%K`H=C+55y0tF)kU}7L$wD<==GAtLFf;EdD9dt9miy&O+$YFg3 zV<yGZAg{pX|#}TN90+sx%B4nmYpm64GdR~Xmf}u-|aZ6GF zbelRPlR029%f0g)Vd-M95X7cr2Z*asZ3=Q#Hm}Qa4MB7Z_fcCM@G*sj^Q}|&V4GEo z!AOvbq6%`zv|trQyUeE9Be1#(j}uPeGOG?W%(-L}6(ou0Obw6mkhPmaYGIr{b+jWzqBJA8Payj7Z@})m!MRP0H$9UQK=Uhr$Tl1s4U^Z5s758DmaN} zBhdR65$1+LA%Qs$zl2j`XddkOA)>mi zf{6$+hT)+nyGbU6c+B))Iy%O)qHF^}w?g^IsOTTafp4UHcw;0rkL3*OSNT7m3hlSr`mVHq)V{a{X2w<9ww@8EEWC&MVSzuIvWV z@(UDR1z;NqCKiJcM;XIPX!ntE>l9HR{Yfu;-4e25mlmdUNc98xq9J(0YPy&-cpxM# z${+z1N*u~-%0a7m(@Q0@mU7Uz$!a77q%luax)s&(mWtBoAYq^*p?E-ToYkQ>^nY?7 zgHYc>sZ0*Yi(MIbFhvM;yM#qDdafs#0vWFxngLgA!ID@Rnp49!j?DOgj02_y)j#Rz z2E|2AGZ`vS>Q%AU=bZ|YN|Da1h*a*R+@!+MqjQ^v&CWw9iJKiPJiE5o)Q}>47PoF% ziqJ({&|LwtTPke1BX+g3@p2Ii5IJrjK%yM~$j&RmWp~KS`C)MEWz1od$x2~cQdV9Lfh3a?8J`2d$)MoV zuD)0kC?XXq1yATkX#EShugV*WVmp;{Gw4T1B9z6YgLe49CJ4hpAC9@}HYPGE(89*m ztF_fm}bst!@Yf0BOcSSzOtF zJ5A@$fv7Z{oh%v9N-L-;SEZVCtQ~&FZxW?)oWm%T$z;Y5;NiHG5!lv)vb0PUQ$CnY zQOa|y&;{?Z;ho(NE+Qtj1&}!-W{-ao{x|k?5F7=l# z^yqfJXxu6TZfI!lB`-d54DkiKzL}nRepTd>k23Hc)ca$W0=nSr4cNU zGp+fUq>T}0xUuf01or%G=%A0q?Fz-Xf@@&X2N`lSsiY};4bY;8xBM+MmUPG&5jLRp zj{!wkR`?Z{7!}MoUK+Ay*CLNV#Y02K73aM|zYJ>L!=6aPKl)+nv&LMT%GqMZbQ}SO zGNX4_jL#Bn>tA2M3y2zP@s^Izo6D_(Npii#bUm&lQ1Ve8!Jgvvw*< zS?(U!$}Pt8Tt^PAM}}Ue2eTKpWGPQ}9aN`~(+!GonveY%F%nKdYbLY=5X%*#-r?J1 zTNz_fMDji(!{OR9ROAi>BTA+uhlD|{2&iX&3$x;J1*%F2aQ4j^B=aeELR71vHC(O9 zShSXqa1$yZ53}ZhO-hNAtx_A~(2S`3kZ_BZXT+LkfBq66|5pw)Z9=6C5|?j85F`Wv zSsZy5&LRgII^B~Clg7Uw=C4VhlDpp%$NXL_#^)11QnsVu$%f7fX09Gbg+Uj81nSeK zi3%rBj}D_f2RI%HA~DjbJT;Tbv>Zy+19XYOf=G-9fT(esha)`VeafCI!d? zYh_$F&`^iBqjV&Ta#`rt0Zw-*&|H$o;2B*7=v4Apd#kDX){~QTj!CnD)bY#-in(h8 znF0(-zO{rfY#xksxnU>C4pZ?|3IJ^hPkRCc0N^^>^&+HMy)O3fE0=Wzfh#{L*5JV= zSSNA;(^!~w>b5j>+eV#Ayxx-7Jkx$)O(yDLMo^yIZV{n%XW_N-IJ{FTMMG@FC5LOP zaB2*Vl<{LA#7(*wCOulA`>E_aoh7ja3$n$A?T0D$ktVa{M1gBgT<3rwiu9{@T; z;obz8{(;ifj7?w7<6KSPFRzOo8F@+hjH+~P-@1Zp*WCIg2Nxb!S!a|GitF@Dehb5B zR8C~R&^RIpke?2G3C3fdW8h-9dubib-EX}stbehZ&}J-Xd6xB8nQNYp({8*d=HpsN!YW-lMo#uv88dT zm+NvzBXcJE>iMxyu3#XE)vW>IF;Qlnq%yW~8%ifslyAiP|2P$j+@)0swfJae4QWbY z<>4ULx|f)iUEs&Dgg|5HZ&>7A5dq2^^#ad0u5LukITOkJJ4x$A%pf!#xM-4~c(dk# zQABmSB}e`!EK8um#({?;K0bVm7_;u8|p0&Xdp?IX~eh;h_fpC9xQPo z0!oZg6Mvy-r$B-k)3s01WbcfIO6HjLxXmg@vJ#ML@`=-jnL5nNS%0%WWZPsR>F8Qi zc?(^@UBZq{ZJG+%aqH6UNl zv=pu(L|PG>M1b1dRSJ{==pm#I7Qe_w#cT*H_w+MKT7rBWj%s17zbt7CSr5#HUwZ^g zL`2onmYOsj0$)P`Y}`yAD|EBRES-Zw35|@oGQck-N)m5$Gqz4zGqUgCd3_Q$^!!BDtz-f7GT4 zUYTSrXw?IWIO9pwaM5#HNuVa+dSyZ`p=)`H5R#zhl}jLTTu1KMt}U%*79URRWQM{D zg92)u%edfAOtzhM&aFi6WA$jXPZlXE_FzB@ z8H`%m`1k>ds_<^Z+(4nP-t%i~xCF)^V%>&7uONEBt%M+vw!SO}2L=5&ripLtPl0(Y zyUF0+`beVjYlr?CVPaLr6paOrcQ(3JjYs;}l3Y>9m{A>o3m31Fu)H$_DdNBcROvCx zB8)J61tglugk+9Wn7}o*Fzz7MbyVVtJ55!F97bt8p6Vt=Y|5$#kku}RhCb2pZZ>)I zVw%IEb};K^MF_9mp=B^Q^K-Kx5fEZBAz(gJ!9ObWqw4vHka_P*f)qTN7;_8mQOukx z1k7J`+l=fOCu1I9G(M4R0P7G4@^YOpYi+j7>{x?LwSra~kzv}Q!V@$iaLGtf4S%JE zzPnW5X`vS+O+>vbS=5bo zCobHI6U7g&0c{y0RGaPzIPd5H3EO0mRtN+P`i=$2#wWP2RYF|(83|E3Yuc4bteB=m zL&so*)9_$e34uoY$P~UCS$^P<;UfeM>h@&dAw%>ucu@p(U#V808j9Z(p3*%PBp+7K zc|}Jum}xCXA(;X*qFsSRDY|lsWQy*jXw38mXDpW@qq#?WMU~&AEpJT}k^0)V_a!KM zP^d=e7_hWNgHlf?ZY6nJi##^@Hb#vSeQOc~9T~xch+@Wt62RjbU#E#LKXR3;wF_|* zh(y6kBWw+8FDNr&c>_-5LL+SdwvkOB;^oEhY1C5qFxadjxYk3x&y}fzBC6%2AR}4G zWNE~)pf5GEB5_Ktkw@ckIRC?35;eZ#q)wc34=IoBa|$sN1_{FHz|Q9qYDW%UGHZC@ zbF|#KJ}-kw3H(5&Q7|*oGJuW&WmapTb0J2CKt^F%HfpZyDzylAn2B z#pWnt5v3eWF~t*ONlsFkw~9;w&N&dlrToR-W&VX{y(Wx-~}*L&B?b$uYO|QRJGY{FG`IN@qlbc>&}@0F7Re z({qwgY(@@7?Mj+t)jbDg_@clFw14WlCfW%#$gNX7|jN0Yg-B7uKYsxTa8 z(|+|e-0#cMC6gFYZ2Jh2fO1&mh5@6Mp%h*qbN#qBV3L3ds0KCzEY#5gB&15wnx{V) z7y&$NLd|dWmlE<7r^>l0%=Wo`^IsHgqcn&s|C9p&euM@PNR}Krs#dwlankz{?Q|O8 zbl4;6>o`F>XC0bkq=Pu!hS@m?V%@I<$(Vx@8l0}$0>JCY2fd7m<g%%Bt~Jab z&?!=co4#QNMDo`v%;UH$DJ{Oq0rEp1Dr6`X2p*h=j*$uFq8R8c8&sN1hK`?X7`rOFpxhw+s zOj$FP=?VY}oZ_ML=BxhfP@$h^va>B(EmW;m{^Z3#uqs3|Q%u8|yTP_rs-GRPYK^6w zf#4Fq;3;5dkyaR2-9@(rDoCY?)>&zgujJBQNeya`*`snO(Bs`W70%rd^32Za>1w!O z6ea*4z9T>>GZv4ukqI2Y$+1qeXyQ)YNLd;xOG0u~k)A(UzcvH3h_#e%t*zeqqhV5D1=8cMG?8$wmDJ{;r>XGaVI@UYiwVd6r+& zV(NveJ-XBrfhp`zehGw`0Vgk9Zmh%j#WwbgVIr7?)#k+&8L7WgV8Ni+RMk|hG&2QV z>`enf$lgI&T97QDo~=O~R{vA?kpPzti$O}8iVF5x293J~O!)CCsZ-7gUH|}-(SLZv z^zo$cAPWOU%FkaFUjdIHXhkM$$@g`@#H&32#se57q<&b`I|MELC|$SeP8-8YPA_A# zE8%@^^E)FRqa5mFIrwW?#R*UvB2BR{XVyI1VRo-a1oMJA(Mxq*7#thC<>b&;I>4qoqd4>ZBVkFG&TX&*Niw zYlEb~R=>-AmphRl`m~@%KDR?E=Acl+% zNO+Y}G2oFB4E#WhM}`G?#;>Z0&-7LdE0wxw#Xq=9{GKi@TQO6%+XYGzDC3f*)6=c@ zvc(S=a`FZzj7DF7YB-H6TK^k{pPhl0sE3?TY`vs5FG~pnJ9oH*24-ZD0Sc=g$jo); zP1UT8*k826I}$;Fj4bGLEXIu}T#y7+x8_QPqC(>QE+hCrq5z#iP$lY`SJ;Ug{9_@A zNiXP_f?f}qPbES5R~9lrEKDy2VVpZ%WL&}6AXCP*6D6WVMBuf4gs-xM;>LacOCMP< zGQul9QIlL|F^qG`>j)ppqGOT`J%c)^EF2bKsFmicF|*qZ$4D3ei~#@w)RW>6i_NWI z(ziWj!qLZq@amrqB+}W}Ey=8}`89kMDlX(ARZKY7$+%_Exh%_9MddxlGg|PHnjRuZ7*+eiWf8Qcc&sSc#iBAXn7 z6f4O{xKu=bpvh9HqlKPvL3PD9XBBNmN8~amTpuQr%YABIR5F!tG8qYz&3z4;=v#1t z6e?&SL%IgijR|^r4f$AxH#AvtmC8%rfMw#rY`}(CDT8wmasi9@#hw;@LR9+L!Kj)2 zIzTw(8GxYC5GK8~M5b9%-Z(W)xT_!gz||f#_7|XZ7%}Y>=ITZD@~2_cIw3{|4JZ`h zImB7UF%vbea&dJ3JQJQax!ax3U3b8FRj}OwgN)V1TZ`K5jUm7f0 z&@;s#e=2O2y$lhw^yLWh0bEFQ7#*}Uts!Cr1Ar!kQ*}(@Rcw@_xODmCchyBlYe_?Z zvrb4a;C;Sv7rGySOlTT(t zfK5IVLp6}en`?$0P!95Q`CbO2HbSprQsqr1LZ)4h)pj9Ggjb{Z$)&ei~l5EyV}a|@=&eQe;jv@~OiYNu3UJgy9* ziae2I+@M4=-wQ#Uxy$n9KeDvmNWsn7ioMD_U9z~CK^HBLC@GEl!Vwl<+oovs5@3#> ze){R;G%|6cHn%o#N**-K9ftHDTuR1cdX#evrecB5t{jS;@9$cqOKC7QXjV~tT`F3g zht(9k%CLT~oG^qIpwe)c>!hj{TA&$MVpZ)?hde`2{1!Nhxl4WnuL*6;@w! z0{%odG%&_JnToc`D`TrDX;J4`m`N9bx!6}ge6WI;*EJcFg9h-|8u!XUrqln1=Q zxEaxrDCIIAcPX>c3`xL~g=uaG3Q{r&8jJa>$J*v7sEFF=(f=e2aztt2RBiOUmkr> zOvj=Hi(Hwl!par7gGTf$hlEq<0D^{IuSiouDX4bYB<06>ar)PTuZC>?T^ZQ%7sO18 zriSJ0MM3wUFZH*Bi$Q|SDmvIdKw)AXAXO2@gEG_Uhl>PRT6~(!2QG&%`|M{a>3~op z%|nm2@dpA2tORqyDD%cn3}enz>8oiYS?PGqb?l_eS81dO?}v7L^w6c>xoHnt@-ed& zxB`i4;szY(S#YgM<+#9jQw1aw4$o~GnWIn#!2}iF))je1mnf9+P(*1?H?eSX!DIc7 zHBjTS37fRu+=ygeF>2O>C8V36i8))3J||yO5F%ZdWsMy+L6z4d804!bdIFTM%r;$D z6n$-}U~0MG-IRiCniFsS%mZBd5$VhuU^TCgBTOMLX_iO7!=+^!rZ>%!d~IEHmk~rw zv*q%`GW!9Y+4kI3HkIWcH9!U(5>ZJcBD31g6jA2~k`V&@U~uLA4qSLg+xYH;SH6rW z+`+0C#z~z8BY%x>0s{t|03}>vA1h`HQ>u!pZzy&mjH(h8Q=4OV`0e~nQvk0t8g~7_$rGD7NJjqH~+6klEhs$Xv*0t;{vZM!A&T${~dj5%)!f6DRzy6iJ#9 zhzwLA4HdIk8OP&_7QMCDDPmPaEK{a_ZdHeFT@6Jo5)9RPMit}AS&b3Qlsc!utAAZr zJ4bx{ZCXIe_hcABIZYOU(3}d14s?p2Y6Ga4O54n|>t&QqrzvY7!vSEU;L1;ODkx*& z%B66Scif0Lr56;DR&@?YskNRa!rl$qm}C5W@*--e;v#&;0$DK5!)1i7HIX#W+k|uE zvUWAEZ;eo&QNS0u#|@0nV;;`DxCDPusGyON8gI_}5g4(DfqX(IWG-?&Z)l-}hE0u2 z{vsi8Jt7mI4-2F=VCASP^wJWscLrukTaCIcw{UGf)cUOT^kyO z=T^D#45s+sS+epFWxOZN4JW)a&Oi77ctD50ffDp4%KFD+C$Nxsi=%948WSb@qi=JpJ;2pJN8mx$d3okHe3@SIkGFZ$p)DQpw zKmbWZK~(-jA2>wf=|eMTh9w+d=)m!#&pX=t@+nR-UD1xWDr3B1qi~C;Zsh|n%m9Q! zs76!&-DQbHuak@jS`8=p+X*BVhU(vSZ?9}_h5Ww?Cuh86B~}R1KBf-0d<+?+65)=_ zR=9ECPmQ-JDy55G50W46;CFvTD~Aqc897{tN`~Pii^;hqPERh990eRN)n2B#1YL6_ z(SOPMx~ggFD?NeDV=Q_JzB?k>sk#5yk*X)R5rlybQHfYApstY5S5N~!%Zo zt&)&~rE=f~OOlus$UtoHjYGX+tc+n~E}_{VA}8#F3VWr6Ivd4lQ>5~1IZZNrwKiY9 z)>g}$BH}`V5mX|FDCu>kKs07ZgZy3Cx-UTWz+>1oG&k^T#mlDS2bRF*DC3EH zRG39d=x?uMAOvVanl6HUqXno4RM&W;Jw=;a3my1EnP);PfKg`-<;KyiWD@{mb(QW@ zrV-ItqYSxig!SeX&_?@m5=d8Qg4Sh1G+`LF1d3CHLZDvmD&q}}hFUVzILRZ{62W(C z(uf*RoFz{4)Y7P~(G7m{Mjg?@${0Le79q~qL=rLvY0J1a8Wox6lj93I#2tJTH^&Yr zii$#ToW5Tbs!TZLoO^O=+s8ci6YAw zNMK6~v-%MoDrSK)t_LXg>pz4TdPHIXV#hlEJ6QV2HY~iD94bWyjIl7BYRw-gNQEd{ z4&;^zQjtoILX`_wE95xqOcTmJEMk_%^mGNFX)fu}3kdvTa6>n!G8S7mRW>J#sARgH z^B72w>@q+Mtz(l&=<9T3A_WZe`R7&WLowmuJ3tJ2Qf}Rdo=7Kxk6`A!JX6XNCjVv@ zyjsGWj-;s;+bc8Koo)W=F&Q9n=?{^YVl@KvdDZ)Vz74N}Aa;QeHdVRDcPC31au+e2 zd1v--)h`z)NtV2fCpjp4*r#B?D8Qy7rW?B>!p`riWh(?Tmypw6SVZJkrnrG9YI7_# zcr+!rJVeDnW8#=`H=|r5w$2=k7Z};}l6f;GXaF+IMe`fLjxfz|RIZ$eS=jRAC?X?n3d}4{fkovYvFa##&c8#=Ah2jen}+m&nk!tQMBQ2=V&C)i&~Hkh z9=BYyc?nT5vw+mhCG)WBcwzTTUS601=ww8J>-Psh)JOLjCN%=J(ZXgQ(W7JYyjYrI zHe`@G;+Ux9hAG7efnBl=PKajN;4Z`>fHeRbm{K4B^GZb27go^@cdv`AuO0WnB^xsuvk5RTRyAViKA6fpv9 z6#Bptk3zr|j7Vq$^l$@Bhx}YI&{H9qXvza!ta5A~cCLWvvgf-WJQ*?ongIX?2Pg0d z_T0o_Ih_HCe@R;eaH-7Qoge)7-%Tx4EwMPc_a}e;KQFrQVuAVH2^5;F($Pb!8ROk- z_V({R=wEje;2ONL3=bfI<0G$dfnO6gKE)Xz;F>w;nK7iMi)01bn_1`;3SFUfIkje1 zfq?+YW~VMqc2<8+jp(Mz@Z6h-Mf9)a&=X9oXrh zj}X$tWm0LjLGpV^bQ#>a)va!Mn_GSPjc#;jV%$FiyG8z0W;5 z|EVR{J3B9U;fpT5_#-&1O!L4&F6LpNTUU65jyNb0U_{-%y}}uMs;ZIWI6qmNuU3hZ zX7vISxjSy&3Y{DUs8cqGw(vksD5i=qyW%v~@voh_sbS5L(E$t=qr-G_8)`k!6SH0MnCx_v7|Q_Z6=fc(TAqd-rkv4yXx0}-F?oz=T~0! z3%^i-``X!OU-Kq6{^GmcElR*gEBHz>MQuJg$DLg1TCoQ>4*r z&XmCNI_oqCNdl=xxmX?@8bDudPI!3yJqptlK(GgxNnM!f-bQf2l~F<YC z_OT_bg`ZinOfW#Tz97%!=2Dqu4D!sy^-_twp-uo%b)aR zxA@x^z4)2W{*zCA`qR*AJSJHhc^96ac!=I9vf6;nAEsPq+6U=;W}@N1$mIQ+vlK^a z6yst>Vn0KxAGvi$a#3dv99RdvpS*Qq7*~=#4ALgI)LwRpqi6TXcTk7;#$wZDMcX8! zvo5v8{E$m9W=xsE>Q%dk5*RHv&r|3_P(*_y>T=!Ivb^h&XtU9QLHe zAYyIgigyoEi>l~Mc6rPo#r?t+%;JMw4`q)&G&TK$X=5D(x(){T+Rl#jNs&y6Fb$a1 z2#aoOAkoaK#Zgx|meWWVMt810>1RlC;9lC5AeKw}wVwV2 zomUh=g$Ef_CS*E_yBPD7K8p%S%)+Ayt1q5;#KOAOP7Mwv;c%skM_LA1UW0)9FD$GG zA&MDZ6_hfFy^sBY@B7X#z4=Ymcd%V};YBZh<*VQIuJbSX#3#-;{q*Zy?>e`=&8@!d z7GJ8EO?%#7{I5TI-t$q%fG-3@-+9ATWF6E<&J7*EFrEBB$7eVMO8nmVszw{}23s+BwtLkseV}q;&pQ%2JQHDsxfC~^ z5lI0CHtJ~j5HTpS(;;_sAuV7)G-qKOoJba)iiIVw0nTX6WJIg{8CL|;Y}DL%;X`;Q zNHQCH@h!U$j9ilD%AUWODgt<$W!R=DGmMUx+;IqoG4zxc*c?ae(X*1$p)SKzgHRaJ zy2+tIEM$L+VrTchUwiL6-{}rY-`76)p$nh;C(nE3t6w|oDR1uVyn631{_+Laz0S41 z=|T7Zs;|7urI%j%d%yqmm%i+kKvErgkGPsG`133GorFRzDB**Bn`@d%25>8D{v!i| z$$))87?TqKWTv}6-!{QUMroF7_j0{Bt9Bc5m*yOAiK_k>chM0~US?(HE>{=JY#?F_ zm*Zqc=s@2k*bblYX^97RI~;(TcERX!D-+?8cnX8PxzbYpZ0yosuruj?G7n$)6&IwS zk(dZjnJ9s>Vf{lBlG6ek&k)+yYW`ONB;6|U<|V$#KUPxRtDOki1!~Wo5rj+EY%b*N$7 zvc2qOuYA{e=i|0(U+3%_f5{gukLQk+&#(@0j zk;7kkx4Yc-Hn+U~IoG?&Rjy26F8;_z-u{kvzVcPCed}A_jyLo`M&jyh)o5-@Pdm+D z+0H#XZ++W4KJbALV)EVYdZ#;o#T{;VgL4q|=}&*=-RGVEl9#^XWiNl#v15Ff<`B>8 zk&joY>tFjd_X6!%XP$|)4}IvO*S+CQFZ{a~UwrY0$r%DC*hw9I(>@3YzcFEc8l&>b z)D>OHp`)~qKe$PEF>A{0?S9wyJrbW8F6ADc2M?262)xERbY zDOf0`svULt;K8{7-t~6TbU9zV+YA9t7OzhSz`m&phT) zKm3DeoaYXt5qevy`xJOTd)hDk{Np}n_CR-o>!0&0zx?ym8+`ly-}@a8_{OjMoM;j9 zUElGrCp_*aP(f&gYR%K){NWOsONtDeI1w3#W0Lf|k_p9X1VnGib?-E=lFX}LWK_*+ zR*LDO%%E}vpt_+0P9MIxXy8Thm9KoIFS^kU_gl|8d()fVVv3j~{p2Hh$fQ(4tnj6Q zb?=Ds%Wk%eU;2fgrT*`idBy%$pL_SaTp@A2Ya_vZE|<&=+XCaIK0-Afr!xrY4V-(O zd-orE)FaP0dQVK!)ETjUvuxr{^XCkU^-_A z#-rPT_Mivc?`Ai>@qwX(7ks4s*vI_HJ??&29=RQyIrZwR?ta(%f5UypWY0r7S)UV* zS#Psw@fv=^fAHfR;FS{40@FblY2!(q#{|BfyeTARJd66FANZbwTpbqUKeiqG=*K>G!F%5OiBEiTJF@M3`@s{~eUwP;I-21EdA91$Cc6dUaq635Z3yTOC3&r{?JQ8kxhkuWg#E<{z zBR9v`#rlB{e&~;%`{%ED?dvbO7yBV`-};)@z5d1j^il>vvwv#(xabd_ z_RK%~zyFdOQk-zjYh3*iKlr_rll_zvBW^5y^*8?O+ursLrl7pz?Qio_k9pKtXPvpF zq(HJM|J4g#Xh1fqOpC(g3;$Ogm4a_uvvvpl{rA(fQ;jFa7Dq|Khve^==YlRJ{5%uOkZ| z`rrqA_ji8le#-Cowr}~Tm%IW1rMK&LfBU0n{PA=D$Mf`ad&);Y_VFh@`PZ*~oon6f zCI_}Ql9l_Fi$45ezz_}=)Qx&QG!ltPw3; zaPj8bDS8YEm_T#@$+BcbwBd1+8wH!4#B`Iv1wm>-?Kk8n4coukx#lSoP6bO_IG;R> zob9WhjkwUc$K;psNDOx<8nTgQcvGnnRlb=*&K>V?+c0k>?L6i8p7y4Cy;eWrJZuP`1uq*617=?8R$9E>HXAV0Ep;Q=uoK-Y8r z5Izr?sO`*off86FP-MVfz4#xyvzHK`~rJoFUL! zJakQ)5fr74QzNLo&_OZ)SrG7w0Z2C=yMusqg31Gl{Xpq!c0;_P0y0skrRU|^;J<4= zgP^f2DgWdx4nD{}@4O3M`m$H}VFjFhz{D#uu?YIVe&LJQ^3!wq3n9Z~og&HQ4GDl} ziXmp`^G=6zBQUOUjceTW;IjUU=l^e>pui+}m!0G${E59wF8Rczmwt-m0R}=(Ifs$i zJU9gc!pET$JcQ5()ia;{r<|NFhqbeFhuhy8V#8mQwo|Wt-5U*%kE-WBpHMc=Ix`}xyn_pA`FTmDS}ZeSE?v*Rk{eoJeU^xJo3BGKhUmo?Q3(b8Qi7! zkC$_a7<85Ws=zNe0y&7ayang_=bW=&5Ru?=KB}98UUI~PYU1(Ye|*V)ddo5@5t%#o zPiZe+HU(Ts+FroW%fJ_Z(G3rVZ|9$1`U=>gk*wgFyXf6+j+0ZnyL>fezoLKm$Cr-7 z^q-p}YJ2XVLq7iTkH7YHZ`e;y;)aMZW{piQGWOP3M@k^LR zY5C!5$Co&t??3G)qYoA4@ZDydL}${Pap<`oV$vN=8tt27dZ3XBeXetlTA1)A%D^gB zznIKB1EzUFf(>+&XD)(CGQ@`(>F<5t2VmLXZhDh11{~tH=`zHGd_E+}Ue~2$6{Oe? zUG=I5j#CujiL`f^Wj5+o=_-<(LiX#WuS(stcIWM^a`J~;peFP=1Jg+4q4U+x+EUU% z*Zbe^Q($LtRH5Z{Bmf@gFsoa3cdvfd0p9n#=e-b&V32@Z1*K_j-aG%i_w3hojZ{~J zRtRSn;xG%Enm;&0Zt>nPfdebiLI--21B)v8_T+vt`UvDzD_jO*gK=22#WiJCkxhu2 zOVxL18UO1=TRBl|d`!d=felX$4^pPYMcQhH!J@}E*`OB|#6*hU^QH67cfQ+0&%SoM z+um9sP$x936*gTv9TE5vQBtq1Ts1#tHeGsWluk5RJfSx!@_Wr>Cd zeUP|_##(eb<3o{UOhC23ve6fSBq-CzS`c3L+0QWe+0TCVZEyS6Ej~KuT<^NKyREmZ z%)*2@-29IUbRgMuESbSb2Pj_d?p*pQzf-nt-0Z+_$;fe#(ZN}s&1=`Y?sc}rbWp@% zKrQ!-r@F7hL5KuE3eqRP2f)Wa&aKwv4FWz|%Cls7AKDia9oHg`v=Hs>v4dRBxx;5t z*JYw&<6)5>A#vi|Jf}V9-~-axkF;jL6eX-U1H*jnY9JZdQyMEF8pRa&3dTW^#=;Ql zggK}XYg621K7&lqL5QwqyYb&O6vzC}1*4YWK_G)Xic;bnRCQ?Tf!9c1vl^@=qXC>U z$UA2BMItoJVP(HjJV8J6YF7h+b%+!R2;4AD_RujkJ0UWzYxejE@WTBzB(z=hFiWVfhr);Bl`ik3u0psN8J2#ky6(l_)M^8J-hphW`!H(Pcw-D8Gpsj2mv{*ASPcoxbWb`TH-UM$kptUQ=|2sKNjiP zB2m;{MHqBY-_}MMksVK=nkig>SpSu-5W9@V>6Q?;e-Hx&@1w&z$%_sgr8yb=%wr!- zDe{q$oU5LXipf_{^JwI|zWre&5)cu{2l&u#+bzEIW_P&#ZT*Mw=GY%@&9!oH|H6~G zQ@{EMa$RzTHW6h)yLNW?FpElX+WaRWySseP|LyNMP(&Yi|NGtG2G_^a`j*h)&bc8t zxp$>6_yUpuIl6v#m(SSuYva?E+uoY$%Z!0yiiE?51@6%IeCNZje5EVxr{{jVMAg0f z8@&2tQ;G^Y5?urP$?WsBsj4_g(Mk>sFuDgQ1tjl)DJf%?OG08whuJO|w93%5)IEUa z+8c7qhZOuJHhj&;XE}?E6C$*TnewnL9wVBJQIme<$CSi2cCn}a;WG%Hx;Kse_(ii;P&;BGPxbpg61ZMVXXI|~`Kl2kzJ?vW^td~xn{KtQO z>Bm0y@hvYPdD3|Eo86>%crchpA-I~S*nDQbrKEHI1@C#?>)%Lr&OWez%DzGHNh}E6 zqvn@lb@Bn*R@gWOxaLhVtER3#HPx_1|Cc4?nI)sD)|hF)B^tS;!+*)8Fw0UWXIBe9 zPVsv9_IJE1*8~QZG{I?7f{nz75tE=}(5me({g{MIK?gu6qhZGL7kc>a7{q)o#_P5* zezTk1f8}sDtoB7VeH{Jj2v#&9fSHJpMY#DF)m$&mR zg)h3{4LE;nC2;<_>s{`|2+v!2`odX~2V&oNzx#gAcYZ6MCT_{5!?zdy=kx!!cu(%} zoeCVZC3xZA{=+4gc)QEz6`b*B9BFKVuYC3Ec(n80_kZBdcf9?XXI^c~LJpmKkGq|I z`Wc_S>@t=OAJXxaoyYv>Bls01Xm0i8x8ND{8{YI5?yI?npd4-)5qr;j-0jL&zA|`@ z9Y1lED_GTM0~vrEH;E7D8>zr3X=L)Y5LA%d*|T6Fgk+SNsZxKpP%(*veJUE7=s*8| z{q@z)I`gZ~{i=bneZ?;%4L{qFD|R?9Kl)Msfp6{n(KDZOi(A~B;B9G0>dG`ZS*M{`T)a^+~_@c<*;Mjc<8>%R?W?&t~Aj zJ0FD3ap}OGtI>HarELCnFRTYmfUEy|qiUftEwo z5jJ6N!CjZ;sK-0fP#3c^^r$eLe#&Ys!KWj=1f0U--h>+dQ#v*Gw~TUSm`*iT;vf9c zvrgFy*4+Qw8}~B*r@ceT`E{9lW+Q!vzfq>5DxbLUS{jO|4W$(2S$TM6h`V zYU5hDAvEfV`qbzVb-OWF@!H`|L*_wwD}_CDP*TylHyN$`m_1QH@0&p^1csz z;IWVUg*X4p+fE_-oR@$1qJR9^|MWyY&nG|-SnT!UfmWSx7|(NDA>I`XPY#59KWTSJ z-pUXWV%6#;$y&cWryrYoAd?%Lq7Gd2UBcc_xd-z;f-&(^H}kw3l!jWHa$q~lP8GH2G768|DUez zX4keXx$1c3z4_I#EEkr5mJJ;~1cgerWdlXYM!bm|?!l8G8a##@w4iJWM2~`|%hjm7 z_huHq|A@6u7OcFv&suZFj2JN@X3V+P-e;ectN%YM_esD)xr!oi3D9f~FZS;Qm#m@$Zc%6plS))3MD^JZh0>T9_Kp#iiIFDn$lTqTzg7@@yT^Z(<+;s5o&{na<$5H7Fz zl8pniTSuBDui-x3V(abGF!22CFMsJ%L4Wy||Ha;uDqE$0@cX|9ZWW|=?!NumU;TCb zynE*nz?9_;v_6~RlOej;_=6w+=->U@KQ&h4fBaAX*(a&{TxqP3ZEiHve(>wx{;l8g zfp#0Rzw^T%qS98{V=5Wovl)N$i(e*YABv*sXH$#ezzE)tfBd5#{j-1SCXN+;`FzWN z{~!O;hw;5V9IE`yno{Y4WhUK!Z2KiBp1Aa>c%R`PC(%*`-FC;?^iTfrKl}P+SE=RNdiL9%wF_{`LF6@p>dv{1D zrYj{2(^Bxy|KdO7z#ie>h8!2EmLvP_gn1Yp=5BmWDOey{Xv((zL0Vm+a);DWIf20K zX*>OfjH&1)DK#e#<=FQNS^d>tBlg=7(3k{U(V063cmhF0Z>|idzZLwUKNP%K8SWu@ z8*(kngfikGV)vM3NpALWsIoU78%}0Q3a8;T4{udbI|&0Faj`eKlzlS2uC~vq>a?Tt zr3KqgPCpf+y89X$o-Hi^g|o2H(_^{4)n$BkVCz#peI6l|()6tNMXIXfu7Z;remu6w zbXBiNE!Fcyp-^b0p!VGxJucJVGTOq`BBLM~MTW(>Hs!9hY{!Nu?`pNR7DBdt81L|r zC{is|Z|Ny}nph47hBQUmxEf-=SO0u4qsPkhKv7_R1APfm7WP>uSzz|~iKg!?jj3$P zPG{)dP+Dgf%VIM~Is8O-6JmpW?EI_VA8692xSaOEiJ@|GA*pYX1W&&`v_kVeV#j;E&AhWOzmf|U0y~yaXA6wp0qQh z7-vJE(I7_%{aXq~^hpFKA6@k^hty1sBx>O8R?U>eI}-!$55&2cX6)&zl3>YQ|q~(j&eBUZ!UZ zcB{L6sIJ^=isZa+0!ZP$L}Fa)LqWl4bKdWoqh#(BX~#K+Rv|(6_IdI3#A6nzl*+y1 zu?W?@!ArJ4UVXYo%56sgBzE7lSN#|&rdhn8!Q|OkL*^Iaa(0tmqh7Bh!Q-rhT9Q4( z-X!Cc#+KtDEg$dqGRgTyy6^hlZW`>IuGZ31sF=%nv=u7)uOyEX153PHDM-3Bk?4ux zTqO=qyp?LG68$ootE0y#`vU^@zEnwipAZ&Bs0F)4QIEI-3Q`-i$m053rJkm01cuq&P5R_qBVlYsAW=-WwkuFgnTHEXoxsdT7HfEgdRic!FXh{2>s1 z@*KZH>V#hx79Argo>pzA?4*{QcJAkV}XNyAxR`f*3-3qTL$vees5%q|fZ z8xK|=R75L6_rZ^%PSA+M?_`>rtc`CQE4$Ka7=aGHugY7Cg(jIp}mop4JfpQZBLaPy|%DJoxl zu~AMND`mYpcbEiP4UhB)!DlmD+(8}aY9V>;b({LtgXX1PUh2|Gme;j7_RAg>m9aKj z>*1OonBbW)a-y`@xx~%iQOrz9*JIVo2|8~fi$_P<7AMOTS;DF9RTm59vCq`DGN$t0 ze`N|CM&-$lMmch+_QCVDCu4G-`=JPhI_z@+3wP73BfaYY_oQT_Xt~dLgg0h3$rikGtjWD?lTJS5_Ky2ICKNVlHW!OzN1q!>{X7~7%Z~@h{8@G~S znQDlW&_w)p;=tzsHPr3>uRF&lJ$%sadz|#=j0-h?A1S0oK5=br_0!`Jj5yiAO;)sB74onDL ze)`ywRH-O+~g+GxtE2HA6%1gyK%Jk|GkUel&2s9S0ZTmodh=*##6m;vxRB?w+zPz;N;1~s zEy?GF&=$&d1$dJ!<;2fDnkjIxx1aO2RND9Sq$X0DS6tcA%~ZeTJ_1SOiCxZb@a zVbrg`kZ3$rw_#XJ`vj6PR~^T2fh%PGj%S|+&fGbsw~Sj9pmlap(00d3LIUc**6fms zCxnm0G8EltMbyoMsVIJA=8Oh-jqEN?2wYV8W3w2L1ZeoGTikY8?Oy~a`SkG{?uyC? z-NtLgl_`EdQ*gzQcN)$xVq$$dp6>Uml%r!F? z_~vbM{o{vkv>~g>S)*JW?VM5`wzd}LL$!j6-$@o4O2l+~bA@T@ z9EMnw=1Z%0Qwq@aVtGX?DJppdR@(Wt^cpFD&Nn6=lp{BE}0g^!I7!XVFd?YJh za&tCgUAa8Rg@R5Y1JWpTGRkGWDoQ#I#!Qe5#ZrW};BQ?n)|+^FbjQME)fw!t5bz@p z@I)!5n!BqCOj6Aa4ZYiN#Z8{<%~7rs(`hvy4{@Omy^S?-7uPx;^X8mqRnnmk^%v&e zd05Coy+SsF#3Qtz4$OKB#_6G!*ke6{oaPL*PKgbJ({d$Urd$776UQCDH)OMUv=#!A zXQDI{iZZ7pX6+c%Xc#drX>U%ac3U@1%i0Aj^k+an`ntxrp33r- zr3hqo`=?_D!VER6wT2p}rOpy!_@j>Sl3>~fK;s53p9b$}6p^u=!91FSB)c9zWP`Lw zP(Aa_9LKQb6Fi(O-Y$IX(uq}Hdo*lY4PSe}(L`I09YsrUmq4U$xnd0NySiHg*7meo zdo*t$*Gqm2aEiKERnO05szKGoC2{z3rhPQgyMfoDgpglJm+N`7BiN9fS{iWP`Q|I^ zK^@Mqe8ZZ6^FneoZ5YDkQ{rQGwWQQZd3auF)MdWcs013z7U#J|8RQ?|x&5I-r91UKb~Zr40i z=`1FLNB%599^diMqQMG1FibcAkE(iFVPgPA)lXN|=bks14S`$@Ct%Dqc25`qu*arn z3?}IO?9F6F(HsOGof-qOO7m=$_OS) zoE8|&3Asfk7njh-$fjd6#wbaaJCp1r-REvDlUY93?9vqsOM$ltg?yYw*&Xzx#gF|Y z`UXSO=+;{}DF-H?dN>JlQg1pfI;%-w)w_j*FODWdOqb!szb#|n z&#rTsgxD`W?@e(Bfi!y*v|03sRp46+sn3xeAa&fEtmoIw7O~jL+5&A16M<-R_=ER< z@P~g~jkzcK?L0=yTUFn@JT&zzU0sfXbUFuGKC!Z3P|$-1tdWnNNdPNFs&jb-;v zoZm^ilZ`nxbB)pohoPmm&+Hul%{Zi62Xl>G7mQ1}a%&2VOAjtH{L)5PdYu69gHRDd zQYko)weB4rV#e{>e9QWlm7JLA zuO%gWpIvxMg^G_7J}%m4Mmr- zy0)6naeDH=+=#;q){I7bS_UMIU7ZZl7W&V;&(LN{mj@@79t`fuX{>Ji<_nA~?=j-k zW!QMsD~KFU*!9-$Yi}Ako5Qz#S(a4f<-J#(JFj#L5>*Q)Q(M}%!8&&0W~R5o#s$l? ziCI=clFgg<+_~D8S{FNT>OU>U>TO)u(`#h^c8(n*q^bFnnG4%FvZzSm4RKGZKSCKd zs^A5oCMGM5*E?h`_0`Mex>~`r>bj1{{mzDF>2=$ndH%qN{5zTeH+Ue6|EA4l6_svR zk_?R_S5Eoimr*buGsdw>z%E7Bo^)N0d*M5$u1vhm;YsG|J>>YckNv_e27UpG$@45i z*BTw+DW8I?TLE;|Cp1R);9R(l2kA)ua?8YJZ#p)Op0ZqpAfef%W*Eq zxnmh202@2xIqJMf?d^JQ#+dlM0*1Ud2eZ&Bz%-F3D8YEvhT_ ztKoiDrM51Q$3Cm63oVJvDu?@%G9?$kVlldss82`a zpBbE*Z0@z3iuZ@UXSN~9U$(LYjP?po5b3KTj_=+O4V5eK0623|a6Yi|u3q6W8Xm(l z6B2H?gjkqzD7k!i49lPep$`PuKw6wMT+^$X- zFq8Y^MYoefP$F(#_SmDNBHxehr88!CnSJl=?Qih#T)g?<0KjnplcfFu?9u_my$!-j z&s8g#1x!>J2Gu!CdR)rq%o)O2^qCVUS!+>bdPSlR`NAu@{rH{g>|lh zie&7`D9)Hv;F&Sg(9RFGj4bKrZb5-2h0|;1bP_*XXo8??Ts?$1FIagoT|E|RQGGVu z8VLkD;~hCH-mZhKEeD6a}SF2Xp+Bx<) zZR)jn9%zu?q0z`GyhP8Q2)I1_dPGInc|9WNrZq{!Y1DPMNT-JfIPsrL4+!>t`#e>I z?k@V+;qi71TxyC-cW9@U0m^ygA+?{_Jd+HSBEZ10CSx`3vXO8O0|cQOje(`=iN+>_ z0lIa>{5C$FxQ!YKZf3imy<}ZN(Kcs`4KPN(O%iIfxb#1Jc@%N7S!gmrfmf)!&raYR z%zDpb`@lvZmjpwUU-4j2#1_8!q9F&@*i^|=z2+^=`6nHHFJkVmBv)Vzmm5YIOdc94 zA|;vb5}cH4cgF#CNVD9I;T%pR5Dn6UeK?S1(h%6x>E=KCbIFUb&TrB*dXs~2@}mGp zZG)II3vo61Wpe@}ta;$b_GkSXbzxpdCvzZ}vpT)4kJ+k*1)1`uAj}^8msD|D?{vBr zb*dJs#4~e6Xyp?O1)ZT-+hW?hax7CD*tGdnD(s*(-nJ<4veQ|-vRwe!w#yz!fWtC6 z^5Vu$op#WE%;)rowfUJKn02?FA2ZzUV!F261R${v}=50Xo)XlnyK zekt~i6uL6fIy&$6$6SoE4bli19$t(EClyS_c){x%rE2uj_F21^V2qBTZNUQA3SM0) zKP;g8DzODd*o66?Hk2Q9;<7ks6)n;H!wrBnk}-LvMtnX*hjD)R!n&IBq(I z&=J(g~JTSyA3 z&p4M!Vp=SV!ETz~+u!!qXfZ61M$v3RVFj4vb-=y9hD0bLN2MZl6(#&dX5`XaLf_{U z-hJ609D=2V<7P$uDU8kZQf%yE>6Jwu1Ka{vU#=OT#XzdK0DS9C9cZ4>KvGy6TNKKB zHxOMG?B}gR`VM(h*VuuoiOW9_&2$jaTOD-OH3l5F@%1OcYPTY$G`2eAMBc=*KSbO8 zMZZ`>QWTr*`qlcBlPndE6U1f_9a zUxTLPTy}LyRtS$wKlSym=oT=;n_aQtw4Egk#MZ2gE|qIpl`zlzubI$CIJVtWT2Axa z)0UZeq4|zNBE8aC%q6!ZOQCK9HkDc<7M>N1u=k&V$}_Q@D5F(hycEl0pz&6XaOy2c zblwhfP~xFwG@dUbX~W&g(}<2^2Mp7glG<8H3!zb^&s8mS16%#r4;+s36TnE2MR216 z6eN3+z_%ymegR#Ilit`P2+cG;=H{27E*V-Dq#<>o&IYxMU?(N7?kdpPyC=LWMQ{@D zb@$#Rr!<0O7)nCHTIT=&FYZZ1K~%t104^KoJu|nE>4Z6aXLd+w`0}f#63`_Z0pu?m z(0FC8-z>*l`^06l7wH9VytHONo<``(EV0F-HLk(~XA2OmNzxoP#y3%*4dm|iu8YDl zZ=9S?!mJDDJ+ze9hGc8DVWS@rObl%ap#{hzkedcJWJ?BZ%(e7fEsxudC@KW8qKiiO zsa@_>FUe?USLDpE%rQh;F9tT6-UuLo<79EZ+ku)ie%JTC?Mq=o zTAZe6=cSjV+)~XhShPCmA(>TFH3yd0^CC}5(@jCVD~%;;AL+*)Pr)Dq5+qI>X%vRs z(HvuEcPyJy>zGAG;Yxb&W_MFu)1ES-ua>ed|QZF?^SLjvuy*tFl258HQu1P{rK_>fwGJMqn3Nc z%NB$dYDCLV97oNL!>|ckX{T*DabPwTofd8{doCp(Jh2?wr9?&Dz9RL-tAwH70@D2U zLpNJ=ob8AZ_3Rh^#_oYBIHy#PuV~Rl%|*rQRijyIangI{Lfni>i*sWg%YIV<4B-#{ zR8_|6l}LS>sr;W84Rd-~qbVQKZ(w;dm)i5PK_lUZi(tg&y%OWE;oO?4O1Bl=E1C0! zB;@l~TRB&G&i=;Dbn?6X)T>o5ucy0Ln@CWpp|I`3#wuz0N{5B^G?&(w!Rc}>-0<*Q^BL5D*D|Q;9sTtmDhT_ff(3kRYlD37693b>NvRwH3ub7UFW6Z$w zkqmE~^MDL(24H$KxNg?)w{ zt4n~R;)ZXRt>2t{DqK~X!N$Z(7{0x?Mqv;|)hIG6#2MgtezX@A*h zU^6EN?w)9A)TFr#(oSu|OYpqv#2Itu=s|i_O7ubV2u~-5X_R724wyCoiI+o9>isN>xZ?*S3t8_j$Dm(+}CXk536neD=Hpixtac zb|3`2WIOr+va^hCs_5dig2MLczOfWaM>_Hch=J_Bou8YX3)?1iwAm{MI@DdB@l4h{ z0xvdGxc(>kU|r78k5=7p=FhawLkzmfDi9=jG)bz9iWZhooFO%=@0las0{3WhP3Ugj z3+4=5dreDRT4Qi%>deX#jGg=RhgFH&(>2T79(gTNDo{eU6-< z#Yvv*&MWJyK&|Y#xjeXAFn6HlcRXeP0 zIZsb+puiMbM4izFQaV53Ayl`DCAhA{TMt$h{LX^E7*=1vN|*sp$=EW!hRu)#wNWH9 zM7+N?);UAmF@=~r0iHe1R`ttuT~iyeJxrZiV~>F|o;&o+tMW$08*BUM&&VR(lv>90 z3wx`xSpsB4m;Mo)wZc>T!w3)vB|x$VfYDTx*da}G+%Hetx3+z5tD)U-It$#KXYt?= zV=Lj+QYSP}HuvD{9*|N(@c1V`WZM{Tg3{Jxx)`P?HvON*Ou<$qm_Xn{vMaJVQbykM zo-TvrhcT*LH+|X3rODiL>iL-3?{jMgmUbm_WB6Wqnq~hDZHgWG zOvKfyo{r$6;7&)zWb1_59%kvmPf;+m_4TZ1OQ`)%nv$-+oHQ znStI{@EKXui<&1hub)@Af#|YCHp3|}^W0=|L z4bA~hQm1p1bNQD%CA96NPp5FY%RZ-8!o~hZk@pX_yzl?9N#ADPm@p_#)BJi`V<=9= z8Xm?OT*hyhF zcw2Hzvai|&Z{H3><*`NHh`edabKP7JT-f>&Fd{@%PCtrY1it}hlsMzEQ>2lG8B>u#UTAeoE(HJ5CC_0?A>-QDJA z9_iMUswfM=i#VB^*R_sc+ih&UzHL;y%j!XQ)cHja9?;9fW^EH~IHPXutr0=lOXamf zmGdhbt^GRb^eROR5A#0LGgNAj)u+K=_@|MP8aca3l9=bqGj*u>t+iUN&r*d zw960*7nx@E^z^c>UP_Lw0*S7`Qzu`Jnc=743FKrp(|WJIHw+vvnREhP`PjW}u&&$| zr+RBIae65h*(ev|mmUCCeu}$&p7&(-CMI6W5W^i?d@f8jDK|v(`#zN6K8ClNhb|yt4l`AwU?}t48Pp|~JTa6wxdSkoNfA&w-b4*q{*@M?&Wx zH2izW8`Qg-OYeiKHEQ#XN!T!s1nI_>!@8QM^L_5f6{XI6xT>7~&@?S~le|&ng<1B~ z6FWQfkC>7PJ2 z1X7~M`z=$M`3^I*px&!!%*D9fwqX+HYELQqyiw@Ys@`<(DLI6(ZIWhxg&wzuueGzwXm+jTlpl=g1v$xnIq z1}~VVWtx?EOaIX3z>by^5CTV)I< zut-FxOY9gWX0|@O7?Pf2rDww0>*D5q=WvrUryRyFHhgNzEvVI)AeDR!z#nhxlzJad-s%i+i)HdZsUdEedR?n0ODaL36l01 zZIVc}h--!RGqk#BfUoduW}x*3%I|JTip27!*(fr`Iu?Yo+Y7UiZj^ zSX6Z=5*@M#ycj4cT2jwt_huQ=E)p|AfNi;Lim>Zs)NX-*VhJ~*K$ruIr6C3Fb?9Q! zl@sh$mbRznvX8OnVEbRbKA&idi`MtS>n>fM$cboA$!^nNF64}6D6(}yo~_&94rpUr zQewDNYtcAhJtO3ulqyHtetarh$1Nq#w&QZ&FBBWES7;Z=bjg`Ct_~r;^=a>c$hXe6 zd4|gGt78w2(Dxaaj|{q0JUDkfCooG~2b4L4-C@QxPyY@Cco|II0^JKq`Q2qmb zenwW4t&CBAM_i9IU2@@`;gY6=3&a>YE^>djTF-AI@FHsP`LM5nURLG~*BkCiJCM!= zlUm)qlL}vvD>f9lxmlRf1~-ZpiCi#nZDq+OMh$d&Ex>Pq+{tj)xG6`E8CyB=y9_wU z=#;^gejOdepP4pdf)u*!bS$YVLI~jrY#fZt?Vz1a>M2^oQ#am%?MK;?Bg48xp`Y2L zZfB!Y_vV3Dpo{$yFnhg2{?z}-G_6;(4WQCPAP8^!1GAZ`NG7y2nj_f`&<^KxQpkyV zC4ol~Fw&N*)jy*}f9Re^!_;w-RID(cXLG6fM0vlSkqf5dDk$ZIxZvnfMU)mTrccjm zNlTALopLS33{*4XI`39yG8Q-8;LWL?CaA}fUbC^hK4C48=hs}T>*m0%s?P(0V5gsj z+uzI)c5AFFgA?d7P4nm>a1LtFSd1=BY_(Ii0JZewe>J ziUAS@ok^V=-Y`Bq?~NAM(qbFlDIr!Gp~K~%`q?k28yNhX2U|ppb?J|;pK9uZWX2mm z4azW29BrC@Eh$6}^3&{0^M?Mirr9_Em2EY%h` z0!;Y_Hi+5Vzcfrs6KqkNg%m=iwvo%m{KAa+(R}II%{KJ|&un`jiqL1F5tzzpt3Vqg zn;Y$7R=zRYN6h9~VQ4mop*!uCCn4p;{xuImvHKkWoDmHeJVEMkP0Vho>ySPZ1)h>a z5;VQD;anprDdKSiWqvw<(X~Lt4p}^9XG8Qgd0&UYr>twpDy-wgoHq zVj1hV=#Yx;A~0V?$U$wDM8SfzxO+*=M9$iZ6F0C>xA5E3EJHa%_horK+Ysm>;*y?n zz1%ZBy4gN+|&6U>V;n{l;blH#PRVj!WN735}s$-O{VWu8R6ii}oceW|}GB zwO{R!0nK&Z+3@mdq3K>mjCoC)Syf>68-N-IyQyLzJBDV_pDuEgB?ZWjE<3u71?|@# zpEr(Z;4EzVWXH|r(fi5m%;MXf4W08P6$qT~pZA-(%f2@fq^%MS%Bo3uS#D#E+z@hy zjG&2C8R`U)di`q$>L}g1w=%KrR?F9xU4_)yV47lq(cEr0Jx!WoquGsuuYE0X{2#vd zF$U76r0NfDn#-dM=I1v1i4ptWp%E1IGpO zxj%v2XJyWZZl4xiq>|9Jqa={QO&c?-kma3zJOb==!Rp;QwCFm4V`CF08r2Cioh#R_ zW$8&jA})kydN z5Jw*&Fx6!Bgq(G=-M6lO;m_C#rnP`3f-5&EM(q8)yK#ghV*LT0^yfzCZ8ky4-SFYT znKh9}DZGHqjcQEb)^djAjC=cSP&88>05Y>&#RgcISfYLpd;GR`#+Psf$wA&UV6o>V zs~mQP@N8*s$Bj*wyLIOqLq2cX`)dMkLz3oi2RPQ+3h->)Jki3EG0loV7n0*jqxj8Y z&nEO3ZbO}d$Z-hCl_ff!=c`(9%1`r$zK-%F_MTze4{5$hWyWQ-gQMMJDhg0KAkk9Z zHFNf^B9ysgaA99a`rsZ_6}cVSn+$kscKSfGS(^4@m^#p!FwCh8BHS%=nSvrL^j<`8 zP|)nm!sU2@7Xsuuk(*5FoDZVXtcA!ZL#~*!HB3zc08|blhG=)$+!zoV8tVrilIgfe z$X7BM-KLe%25$44j&1=4wJ>yOObdUgSb)m)F826!0}}{QTPS@fUKDfmKAwA#)#XGK zDmhM`r2+V6b4sz);_`g{zmq}*@PfcXW|JY@@%$vU3b#mWETs%=u8;RIY1TOmqHBXa z*J!&&X5amgr`j7hZ*(9>_%gc(a%PKOS0D{TIMU`5(0#eI{ww797`lFDz^Ej5d1+F; zOrSAQmnMRjAuWZ}tug(2W(Eg^=)(H4Y_l_QU z?;B*6h?NH>LcGa@kHfKcJ)5=JDov-LC$Qw@*()AEH*xij$})*^mpRr zjXHK3wOL}Z2q>Ya)>JiJOhef6z2wf5`PqrhWBM-~E5~cxhet1!p)|#EEOx@+$`sp0 zHlQ_}Djf8Xrsq90IWWpDYayAoqcv?cR+eLi*1>Zglx2z5rtogZGBu{i8q46@5W-|4 zYLhr!3p`0~?e5Iaju|Ro#Az@lF1DRu5{(2VlZ)wphV*6;Z5&ZPJwTbv2pm?Ik-L!9 z;MlqLXxdV^NDbLDQ8(H0DI|X8&r-tA3cwbG5QuveRiAiB`%dl#N6oiiE;JP(sg7dZ z-lK?&?-$D}Sy#a}MWW!@x{Dv-nR)ls*I(yG?0fsOUxLO|_WVCO>Wv&C5#*;Uzxj2G znoE+pkmY?0xNu6dpABCvY(kbI3Y&Nsec`l)yb9cmsov;&tE1>}qv9)({L1~?qv{wb zJtRFzQ6!SOa7O>9Paoic;Go(q#pUKM)iZscnR@_d7v5sIP{3g@3C?(D| zK%Vt1Jk5Anqv{Y=^P(Xoh08yhWf7B25^23W(ZP^(Yr98F{%GsrQX@Mpj zug4E5-YA`z@XtcS2QHBsl~o{5VluzDx?FTa)w>_WHlaC0SDyRPP0F*+aFwew-TR66 z^`&g=b4x_`mRZ>RZ#Y`Lim@H4lTfE$Ds+EGB5X+}>_ifIJ(jyse3J4$loJ@hxVYd2 ztWl)4M>J68OjD{{Mb^IS!v$5P@-}ul45Z3vSg>(#xzIS1%Ou$PML8L=o4&A(w5dMj zwEFL2PvM5AHg0pLe;PB##)^&hdUfnbISnF+1rsrJ(SBzPK$}8O(ONHi0AQ{Xbs<#tJa+%?pFdp0(=AhQ*#^wou zm%>oxel>;!8WZl&T;V@$$!O|Q$w_U!G-~PV7H&VDJLOb7e=l%ji}((gwQQ^tZH8oU z?ApcF+xpvt(B*Qp-ukl;#&Yz*I`e`y1f+k{M!B>FjymmIgM0rOFY75w3}l8r^+61T z$G`c$Tzru(qS0-?NN4+(k?AfKo96z=2w1fP~=FAlMm}- zsusDXyOWI(XsUMJ(1W43#2xEi#q;RhoNC}Q_Lh&pP=6VNfh|cj&U(&FKHdu_dn*j6 z2EMlu=eVaH$M)$lB+RA`&qaeuK zG(^-rlAqz`-O19j$%cW(A+3Zk(vm@SUElZ_*#=uf!?!@fH)jI~@_&F-_ou`f3zckD{ zLr&WvEiwThrXH6udUerSmXs$lvlop}b&Ei?yx4DY>e7C&6TsK%$T;X$gDy>}r#By; z1YnUoNdC`*l-`}8)ChJC7<1qf*ur$+#tyMy9h5@V!yzN$ni&HJEUQ}2uok>u`vnF9 z-2;<4N=ZVjUEUDpE5i1#4>YEs;*lliP2f4vkL7OmR*Is{+f47f85z#jVrqVqn4WaNCA3-Ja* z_6hfBxX-2yPZMBaN`D~tO5MSrZ6~=#;4a^mdtJuz=wM?t&07ICs+dx!z3`WC&CD=o zB{b__SjUk|2NJ!i3rSp>!fcFa8QjnN5OtVZBl$!-(UN^nalF+^-eECpptFLv-GCY9 z+hS#m1YZ|*P_bpOjLvn((f7g#s^46;oib-arRKdaQFxn~V!dVJh;9<}b_8Fw!^>a& zU@N!XaFzy}0KN6&36^v3SDZZMEl37w1l_fCPs8{VAu#_bK18DwrjDe6;_p7xvN=(!Pzg^l%=-N3Xc?Hw+4u_Vk% z$y1>iBxCcgop_Z=BVXPrM#JC6&?d*?n^WmC94#%Noq}|4&Qr^wa&FURf80JdN>jxS za-Sx57(ob3RdAeJ9u&K8QQzgzTT8obe`-JAsUO}u{~U9J>Q%#jOOw;8Bd@4 z=1TLALpP#Y!$8&I8Ks>kW$ORCp&_s!&em>@NHTQydP%1%WzM+Q)SqfRic-BRVfi)T zUSTtZD?-msA6%qEcpC*GN_wo8V!gvJQ=jt8*09LWbw0O;@!R)C_6{_g2aNk2aoZ6w z!{EIsf18WE#srqQopf5LxJQZ3@l&>q<1TNlppml3+04n@^p`_>utf8>J{{F#o}!ke z0_tb6r;R3rImHYl6|?nSa+G-p<97GR713FH9`UFL&-7*#>G~d@1)+$PPu86hv2Oz^ z51JqQWjt6Q=wDQBS}abkx8B!2%J%uMjSO%#?4c55xEj8R&Pdaxlty13 zb7s%0%y?Z)B)Nw!JP;3!%aF_sz>4(t&aj2Sv3cd3*F|MU#ULwfgnK2Zz2#Bno1A-NOFJ0`xVBK1)Ay@w?6o^y;Ih6M8yB0UMl@kIAx|ggErr0h+z(sI^D3q@ zec)C#Bkg#>NLvF0IQ)1$!9yl~jkz7x&dY;a#ZH$Iq3lCMA5_%KhVgZOLb2hp`^&Gt zHhk0i<+)N(S}T=mXxk0gZ z3`&wXxQuBX={T2}8)Yo^2mPq2Z0c@}FLiJt0cbN~P84sZKYZgc7^Ovy3tE(S^0D0! zdkEndaTvg3C|kwGpq`vL;(w5)>R~tlS!wlmQWBZYyRj`w{T8f`8d}8=_-xO)p0nHN z6qlW&!LXdVBbuAr<(!$RqbQUd)#MWW36OT!N*bt}Vh9v2M?;1oXDX_Bl4*+K0W6Ae zfw$8_#hnbwtL}{j`UrDuRiy31N2}g8{4yX?H#W9*d6a24uzW6Ad*tdg4a)%&I&ZGD zCPV6~_f{xQoY<_;pP?OcE8a!08T?qJzzDB#0L1MCr;wO-5aaH|{Al;IoM_KvdfX}y zfF^bW*?6*TfnVITf?~8}+Tyruag~=|BT&=+0WyQa_M~z$Z8zJ(Ij2!s&g~V;qhbKM zlP%yYExEb!T$I(U`^JNB=)6kNgTZCb7WO*ndmV&FfWjPtd zCe{>g?Rx){pZ=Naf+8i$n6wh=)#cJnJDFgEmx?y?;JC0qsC^Zl$wbHownqy|7oO)X zOtXQ*L49*Yzk_lI?-VjXSf?`z9L6tVv`WHS?r4`4*;5c^=ed9vL8*+*&pN1hCV;Eg zaPy47`ey%t5NO8}@9A`K>J8y*mzIa;sg_`SGNc8CEcae!5BeD5U`@`}L37%MAj3Np z1CgM?KpZsVC+?-%+}!uXWFL;cjulRxx-u{%b7~4($Q-wxrhfN>bN@1=He_fNb z@zlW$l!Ze(k#Zq7I-DsjMCNmlLM%tpurRctt3qpB(!>bd9HPW$)U)INX)vWYL#Lte zuoz);iHQY_st5{(L0bZ7gQ(WhDLVY1nF(tajk|S9AAgzH*j%76{rse8894>@BVpOo z?-NP}7NB8>Y`+sT;XElWEqT|H>BYw8+Uh6{Uh8tI2&N8WyxP%3+VNgE`Pn}4wzQODe1R(eqHk*l;xy6(M3cCw*%ag_B%6O%%nLsT zDTy^a%BO|OD3VBoiY@t81J(mYMQK=mP z^3OSegnQChc_=&a6oVB`nky&NZXMiDNwJC7bhyXmmWC>TVBkPH7>pyHTqPe2H8-_L<nRff(+mS9V;XMqkEX5dE#p!BZPLwnw2!IQcFk8FM!OgHj$XrOOWcEfq z$Z;Vqvdk-^Is+3sS&?DYn}TObRSZa~wbUj6fO*;2eq|O@kkb$0CG>KL;Gi!yhKS8F zp+}?bJUrC;#m9%`diKz6hNS+Q}Go1dcp&uURKu#@pQC z)lt(gk<~?2&tR|EM}Ac{N_Pj1cCH~7fz7(old?j5Jou;;C=mtgP0L2dzuQmk@bHIX z!_FNcV6Frx3MFd=lTVbt5@OCg>0h;H!u(<(@Eb%itaLH1R$UIEczR2-D<@vv05oXB zVyA�?l^qEA_OxAYY1H=*s_Yd7|vI=lAiHi@+AX(ftsiEuX34XaOwtDd+atik@aw z$}aQj&e9gF)g8q{HA?g4Y> zG3nW=^i-xjZAuvQThTVKl-WY0YdfB9$(pXqNa`|k>*;ENi!#92;JuDuwYK%&3$(ue z;$zQ6FyH*!DxRy-{5}jyy!S(RP%ui;;@2~qZTC2KljctDlkfy;UAjyPmS)4kw@ph9TSYwe;vB)(qJq&{Y{*x}SF( z6zw2Y*fQ%?`O#8kS?*k8UdM{iZzXERR(&Ji9&4PHCDRbuFYCtLD0*6px2{n_QYiB_ z(>kMw=ppHYI~TKF+o=@qq~f{J;TZe0T#*NuQjwqn6j^-g%-|T=JO~*Z-I`XYrs(eM zR{f@tkyDNc+7OzPj24+(4Mi+F+Oo1@zJer=^?dWIUkz%!gv6%Gcgno>Jv7r8@8e}) z+VoHr5&n-s@$NR&IYi_=_+iqrPC)$+UaWS6!B>6X7JHEZG-fv!K}^Z23k@`H(5(&` zds>ISp5ZJKVUFGTqWlPG@U(l8de}WDdIAQA<_KT9gsEdIXx=b{ zVW`ISW^jsH%j`3j-QBfO)6IzCeB=I%H7|WmsBGWI^+_eLE$Tjp8fAPS*4tzY+ZYUJ zdC+>%jz`8(3$%7+*(eg11cTTk!8eEF)UW@3{E#`S_su%euk?(erOtNd=PUKB|7)eh*>}*1jMXWfPn%3oV zVTlqJyZ$CoNyVdS`0V|^{^_4l(O`8VGtT>Rg^MwbS9MZ9y<;P_aWUtaW$($A)qk$i zKGqDXTsfaiCfq-Fhee>u(JW6WaZZFcLtN<7$GfZ4K11@6^V=4HoJaSA@Y(9pnz-yt zr+?F{oed-|y0wj<7Vccgn@WXV`n%dL2Z~cjPl4J^86`9?$GnPXmyDiYSdDJlCk!fE^lD)dZBfmr%Um@8rxC5 zTr6Z_w&n}vPp#c{0v);tQ{wf~(dl5P^C;p<(Gzy4^LZughE)kJ-o2LiWQ=4_0uE@3 zK?Ii$M;>O8X~nq@vr$#$0CXvJn$7-!+gPABkAH&-Z1zNM9QB8o-?kmh*=hNwTt#Tx zq^w>17;@FBw&NNzR54X%0 zZe(%QeDOQ?$m>0D+1NbhjO5YC*p>G(W|psV3}hC zn-=-KX<>2fd@;*U*EmhJ7_sJ8iObNa8jdJ9J6j0JOJjbApNx_WY$^;(q2;8UCG*W*bJr sOI2#I^D3l=|0cPyr+>Hq)$ diff --git a/third_party/cal/mcp.json b/third_party/cal/mcp.json deleted file mode 100644 index 44d4117bb..000000000 --- a/third_party/cal/mcp.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "mcpServers": { - "cal": { - "type": "http", - "url": "https://mcp.cal.com/mcp" - } - } -} diff --git a/third_party/deepwiki/.cursor-plugin/plugin.json b/third_party/deepwiki/.cursor-plugin/plugin.json deleted file mode 100644 index 09ab97b46..000000000 --- a/third_party/deepwiki/.cursor-plugin/plugin.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "deepwiki", - "displayName": "DeepWiki", - "version": "1.0.0", - "minClientVersions": { - "cursor": "3.13.0" - }, - "description": "Read AI-generated docs and ask questions about any public repo.", - "author": { - "name": "Cursor", - "email": "plugins@cursor.com" - }, - "homepage": "https://docs.devin.ai/work-with-devin/deepwiki-mcp", - "repository": "https://github.com/cursor/plugins", - "license": "MIT", - "logo": "assets/logo.png", - "keywords": [ - "deepwiki", - "documentation", - "repositories", - "code understanding", - "devin", - "cognition", - "mcp" - ], - "category": "integrations", - "tags": [ - "deepwiki", - "docs", - "github", - "mcp" - ], - "mcpServers": "./mcp.json" -} diff --git a/third_party/deepwiki/CHANGELOG.md b/third_party/deepwiki/CHANGELOG.md deleted file mode 100644 index 0b3e34d1f..000000000 --- a/third_party/deepwiki/CHANGELOG.md +++ /dev/null @@ -1,9 +0,0 @@ -# Changelog - -All notable changes to this plugin will be documented here. - -## 1.0.0 — initial release - -- Added the `deepwiki` MCP server pointing at DeepWiki's hosted Streamable HTTP endpoint (`https://mcp.deepwiki.com/mcp`). -- No auth — the public server needs no credentials. -- Logo: DeepWiki's official mark, from the icon DeepWiki publishes for its connector, on a 192×192 tile. diff --git a/third_party/deepwiki/LICENSE b/third_party/deepwiki/LICENSE deleted file mode 100644 index ca2bba771..000000000 --- a/third_party/deepwiki/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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/deepwiki/README.md b/third_party/deepwiki/README.md deleted file mode 100644 index 1d8fa3be0..000000000 --- a/third_party/deepwiki/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# DeepWiki - -Cursor plugin that connects agents to [DeepWiki](https://docs.devin.ai/work-with-devin/deepwiki-mcp) through DeepWiki's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. - -Read AI-generated docs and ask questions about any public repo. - -## Install - -1. Open **Cursor Settings → Plugins**. -2. Search for **DeepWiki**. -3. Click **Install**. - -Or run `/add-plugin deepwiki` in chat. - -## MCP - -```json -{ - "mcpServers": { - "deepwiki": { - "type": "http", - "url": "https://mcp.deepwiki.com/mcp" - } - } -} -``` - -No authentication is required; the server covers public repositories only. - -## Before you connect - -No account is needed. The server covers public GitHub repositories already indexed on deepwiki.com. - -## What agents can do - -| Category | Capabilities | -| --- | --- | -| Structure | List the documentation topics for a repository | -| Contents | Read the generated wiki pages | -| Questions | Ask a grounded question about one or more repositories | - -The hosted runtime is the source of truth for tool names and schemas. - -## Notes - -- The public server needs no authentication. Private repositories use a different authenticated endpoint (`https://mcp.devin.ai/mcp`) that this plugin does not configure. -- Repositories must already be indexed on deepwiki.com. - -## Docs - -- DeepWiki MCP: https://docs.devin.ai/work-with-devin/deepwiki-mcp -- Server URL: https://mcp.deepwiki.com/mcp - -Logo is DeepWiki's official mark. - -## License - -MIT diff --git a/third_party/deepwiki/assets/logo.png b/third_party/deepwiki/assets/logo.png deleted file mode 100644 index 47246d5bb7f1a30e4ddcd4a603441ad3f3d7a299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33728 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 Bg4zH8 diff --git a/third_party/deepwiki/mcp.json b/third_party/deepwiki/mcp.json deleted file mode 100644 index d5579f4c9..000000000 --- a/third_party/deepwiki/mcp.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "mcpServers": { - "deepwiki": { - "type": "http", - "url": "https://mcp.deepwiki.com/mcp" - } - } -} diff --git a/third_party/google-cloud-sql/.cursor-plugin/plugin.json b/third_party/google-cloud-sql/.cursor-plugin/plugin.json deleted file mode 100644 index ec43ba16c..000000000 --- a/third_party/google-cloud-sql/.cursor-plugin/plugin.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "google-cloud-sql", - "displayName": "Google Cloud SQL", - "version": "1.0.0", - "minClientVersions": { - "cursor": "3.13.0" - }, - "description": "Manage Cloud SQL instances, users, and backups, and run SQL.", - "author": { - "name": "Cursor", - "email": "plugins@cursor.com" - }, - "homepage": "https://docs.cloud.google.com/sql/docs/mysql/use-cloudsql-mcp", - "repository": "https://github.com/cursor/plugins", - "license": "MIT", - "logo": "assets/logo.png", - "keywords": [ - "google cloud sql", - "google cloud", - "cloud sql", - "postgres", - "mysql", - "sql server", - "databases", - "mcp" - ], - "category": "integrations", - "tags": [ - "cloud sql", - "google cloud", - "databases", - "mcp" - ], - "mcpServers": "./mcp.json" -} diff --git a/third_party/google-cloud-sql/CHANGELOG.md b/third_party/google-cloud-sql/CHANGELOG.md deleted file mode 100644 index 340133ae8..000000000 --- a/third_party/google-cloud-sql/CHANGELOG.md +++ /dev/null @@ -1,9 +0,0 @@ -# Changelog - -All notable changes to this plugin will be documented here. - -## 1.0.0 — initial release - -- Added the `google-cloud-sql` MCP server pointing at Google Cloud SQL's hosted Streamable HTTP endpoint (`https://sqladmin.googleapis.com/mcp`). -- Auth uses OAuth with Google Cloud SQL user login — no API key or client ID to configure. -- Logo: Google Cloud SQL's official mark, from the icon Google Cloud SQL publishes for its connector, on a 192×192 tile. diff --git a/third_party/google-cloud-sql/LICENSE b/third_party/google-cloud-sql/LICENSE deleted file mode 100644 index ca2bba771..000000000 --- a/third_party/google-cloud-sql/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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/google-cloud-sql/README.md b/third_party/google-cloud-sql/README.md deleted file mode 100644 index cae05d844..000000000 --- a/third_party/google-cloud-sql/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Google Cloud SQL - -Cursor plugin that connects agents to [Google Cloud SQL](https://docs.cloud.google.com/sql/docs/mysql/use-cloudsql-mcp) through Google Cloud SQL's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. - -Manage Cloud SQL instances, users, and backups, and run SQL. - -## Install - -1. Open **Cursor Settings → Plugins**. -2. Search for **Google Cloud SQL**. -3. Click **Install**, then complete the Google Cloud SQL sign-in prompt. - -Or run `/add-plugin google-cloud-sql` in chat. - -## MCP - -```json -{ - "mcpServers": { - "google-cloud-sql": { - "type": "http", - "url": "https://sqladmin.googleapis.com/mcp" - } - } -} -``` - -Auth is OAuth. Cursor prompts for Google Cloud SQL sign-in when the plugin connects — there is no client ID or personal access token to configure. - -## Before you connect - -You need a Google Cloud project with the Cloud SQL Admin API enabled, and your Google account needs `roles/mcp.toolUser` plus a Cloud SQL viewer, editor, or admin role. - -## What agents can do - -| Category | Capabilities | -| --- | --- | -| Instances | List, get, create, update, and clone instances; poll long-running operations | -| Users | List, create, and update database users | -| Backups | Create and restore backups; import from Cloud Storage | -| SQL | Run SQL on MySQL and PostgreSQL instances that allow the Data API | - -The hosted runtime is the source of truth for tool names and schemas. - -## Notes - -- Google also publishes read-only (`/mcp/readonly`) and instance-management (`/mcp/instance_manage`) endpoints; this plugin uses the full endpoint. -- SQL execution is not available on SQL Server instances. -- Grok also offers this connector with service-identity auth; this plugin configures only the user OAuth flow. - -## Docs - -- Use the Cloud SQL MCP server: https://docs.cloud.google.com/sql/docs/mysql/use-cloudsql-mcp -- Server URL: https://sqladmin.googleapis.com/mcp - -Logo is Google Cloud SQL's official mark. - -## License - -MIT diff --git a/third_party/google-cloud-sql/assets/logo.png b/third_party/google-cloud-sql/assets/logo.png deleted file mode 100644 index a7b18ea3f40a72dbb83691dce68e6d82e85d698f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14199 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 Date: Wed, 9 Sep 2026 16:35:04 -0700 Subject: [PATCH 4/6] Add Excalidraw and Daloopa third-party MCP plugins Both are publicly visible in Grok's catalog (Excalidraw: all, Daloopa: business) and absent from Cursor. Endpoints come from the vendors' own MCP docs and were probed directly: Excalidraw serves tools/list with no auth at https://mcp.excalidraw.com/mcp; Daloopa returns 401 with RFC 9728 resource_metadata at https://mcp.daloopa.com/server/mcp (standard MCP OAuth). --- .cursor-plugin/marketplace.json | 10 +++ README.md | 2 + .../daloopa/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/daloopa/CHANGELOG.md | 9 +++ third_party/daloopa/LICENSE | 21 ++++++ third_party/daloopa/README.md | 61 ++++++++++++++++++ third_party/daloopa/assets/logo.png | Bin 0 -> 19473 bytes third_party/daloopa/mcp.json | 8 +++ .../excalidraw/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/excalidraw/CHANGELOG.md | 9 +++ third_party/excalidraw/LICENSE | 21 ++++++ third_party/excalidraw/README.md | 58 +++++++++++++++++ third_party/excalidraw/assets/logo.png | Bin 0 -> 8049 bytes third_party/excalidraw/mcp.json | 8 +++ 14 files changed, 277 insertions(+) create mode 100644 third_party/daloopa/.cursor-plugin/plugin.json create mode 100644 third_party/daloopa/CHANGELOG.md create mode 100644 third_party/daloopa/LICENSE create mode 100644 third_party/daloopa/README.md create mode 100644 third_party/daloopa/assets/logo.png create mode 100644 third_party/daloopa/mcp.json create mode 100644 third_party/excalidraw/.cursor-plugin/plugin.json create mode 100644 third_party/excalidraw/CHANGELOG.md create mode 100644 third_party/excalidraw/LICENSE create mode 100644 third_party/excalidraw/README.md create mode 100644 third_party/excalidraw/assets/logo.png create mode 100644 third_party/excalidraw/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 2a184a9d2..8171c179a 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -382,6 +382,16 @@ "name": "webull", "source": "third_party/webull", "description": "View accounts, positions, orders, watchlists, and market data." + }, + { + "name": "excalidraw", + "source": "third_party/excalidraw", + "description": "Draw and export hand-drawn diagrams from chat." + }, + { + "name": "daloopa", + "source": "third_party/daloopa", + "description": "Pull source-linked fundamentals, KPIs, filings, and prices." } ] } diff --git a/README.md b/README.md index fb6b6b29c..500f2ad1f 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,8 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `meltwater` | [Meltwater](third_party/meltwater/) | Cursor | Integrations | Search media and social mentions and pull analytics. | | `sp-global` | [S&P Global](third_party/sp-global/) | Cursor | Integrations | Query S&P Capital IQ financials, prices, and transcripts. | | `webull` | [Webull](third_party/webull/) | Cursor | Integrations | View accounts, positions, orders, watchlists, and market data. | +| `excalidraw` | [Excalidraw](third_party/excalidraw/) | Cursor | Integrations | Draw and export hand-drawn diagrams from chat. | +| `daloopa` | [Daloopa](third_party/daloopa/) | Cursor | Integrations | Pull source-linked fundamentals, KPIs, filings, and prices. | 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/daloopa/.cursor-plugin/plugin.json b/third_party/daloopa/.cursor-plugin/plugin.json new file mode 100644 index 000000000..f19e040fd --- /dev/null +++ b/third_party/daloopa/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "daloopa", + "displayName": "Daloopa", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Pull source-linked fundamentals, KPIs, filings, and prices.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://docs.daloopa.com/docs/daloopa-mcp", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "daloopa", + "fundamentals", + "kpis", + "sec filings", + "transcripts", + "equity research", + "financial data", + "mcp" + ], + "category": "integrations", + "tags": [ + "daloopa", + "finance", + "research", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/daloopa/CHANGELOG.md b/third_party/daloopa/CHANGELOG.md new file mode 100644 index 000000000..c37403cc2 --- /dev/null +++ b/third_party/daloopa/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `daloopa` MCP server pointing at Daloopa's hosted Streamable HTTP endpoint (`https://mcp.daloopa.com/server/mcp`). +- Auth uses OAuth with Daloopa user login — no API key or client ID to configure. +- Logo: Daloopa's official mark, from the `daloopa` GitHub organization. diff --git a/third_party/daloopa/LICENSE b/third_party/daloopa/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/daloopa/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/daloopa/README.md b/third_party/daloopa/README.md new file mode 100644 index 000000000..40c17ee94 --- /dev/null +++ b/third_party/daloopa/README.md @@ -0,0 +1,61 @@ +# Daloopa + +Cursor plugin that connects agents to [Daloopa](https://docs.daloopa.com/docs/daloopa-mcp) through Daloopa's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Pull source-linked fundamentals, KPIs, filings, and prices. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Daloopa**. +3. Click **Install**, then complete the Daloopa sign-in prompt. + +Or run `/add-plugin daloopa` in chat. + +## MCP + +```json +{ + "mcpServers": { + "daloopa": { + "type": "http", + "url": "https://mcp.daloopa.com/server/mcp" + } + } +} +``` + +Auth is OAuth. Cursor prompts for Daloopa sign-in when the plugin connects — there is no client ID or personal access token to configure. + +## Before you connect + +You need a Daloopa account and subscription. Coverage is 6,000+ global tickers, and every data point links back to the source filing, presentation, or transcript. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Companies | Find companies by ticker or name and discover their available series | +| Fundamentals | Quarterly and annual values for statements, segments, and KPIs, with source links | +| Documents | List, search, and read filings, transcripts, and presentations | +| Prices | Daily OHLCV history | +| Skills | Run Daloopa's pre-built analyses such as earnings reviews and comps | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- Tool calls run under the Daloopa entitlements of the user who authorizes the connection. +- A separate docs server at `https://docs.daloopa.com/mcp` searches Daloopa's documentation and is not what this plugin connects to. + +## Docs + +- Daloopa MCP: https://docs.daloopa.com/docs/daloopa-mcp +- Client integrations: https://docs.daloopa.com/docs/mcp-integrations +- Server URL: https://mcp.daloopa.com/server/mcp + +Logo is Daloopa's official mark, from the `daloopa` GitHub organization. + +## License + +MIT diff --git a/third_party/daloopa/assets/logo.png b/third_party/daloopa/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2d547938f124534b7bf7f946031d46ce972e4544 GIT binary patch literal 19473 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 U`6VZaEC2ui07*qoM6N<$f<5rzEC2ui literal 0 HcmV?d00001 diff --git a/third_party/daloopa/mcp.json b/third_party/daloopa/mcp.json new file mode 100644 index 000000000..35c9d26ca --- /dev/null +++ b/third_party/daloopa/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "daloopa": { + "type": "http", + "url": "https://mcp.daloopa.com/server/mcp" + } + } +} diff --git a/third_party/excalidraw/.cursor-plugin/plugin.json b/third_party/excalidraw/.cursor-plugin/plugin.json new file mode 100644 index 000000000..d9699ad1b --- /dev/null +++ b/third_party/excalidraw/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "excalidraw", + "displayName": "Excalidraw", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Draw and export hand-drawn diagrams from chat.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://github.com/excalidraw/excalidraw-mcp", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "excalidraw", + "diagrams", + "whiteboard", + "sketch", + "flowchart", + "architecture", + "mcp apps", + "mcp" + ], + "category": "integrations", + "tags": [ + "excalidraw", + "diagrams", + "productivity", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/excalidraw/CHANGELOG.md b/third_party/excalidraw/CHANGELOG.md new file mode 100644 index 000000000..88ed37b98 --- /dev/null +++ b/third_party/excalidraw/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `excalidraw` MCP server pointing at Excalidraw's hosted Streamable HTTP endpoint (`https://mcp.excalidraw.com/mcp`). +- No auth — the public server needs no credentials. +- Logo: Excalidraw's official mark, from the `excalidraw` GitHub organization. diff --git a/third_party/excalidraw/LICENSE b/third_party/excalidraw/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/excalidraw/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/excalidraw/README.md b/third_party/excalidraw/README.md new file mode 100644 index 000000000..6b5e04455 --- /dev/null +++ b/third_party/excalidraw/README.md @@ -0,0 +1,58 @@ +# Excalidraw + +Cursor plugin that connects agents to [Excalidraw](https://github.com/excalidraw/excalidraw-mcp) through Excalidraw's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Draw and export hand-drawn diagrams from chat. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Excalidraw**. +3. Click **Install**. + +Or run `/add-plugin excalidraw` in chat. + +## MCP + +```json +{ + "mcpServers": { + "excalidraw": { + "type": "http", + "url": "https://mcp.excalidraw.com/mcp" + } + } +} +``` + +No authentication is required; the server covers public repositories only. + +## Before you connect + +No account is needed. The hosted server renders diagrams as interactive MCP App views in clients that support them, and can export `.excalidraw` files anywhere. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Draw | Create a diagram view from elements the agent describes | +| Export | Export the current drawing to an `.excalidraw` file | +| Checkpoints | Save and restore drawing checkpoints within a session | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- This is the open-source Excalidraw MCP server. Excalidraw+ workspaces use a separate authenticated endpoint (`https://api.excalidraw.com/api/v1/mcp`) that this plugin does not configure. +- The bare origin `https://mcp.excalidraw.com` redirects to `/mcp`; the plugin uses the final URL. + +## Docs + +- excalidraw-mcp on GitHub: https://github.com/excalidraw/excalidraw-mcp +- Server URL: https://mcp.excalidraw.com/mcp + +Logo is Excalidraw's official mark, from the `excalidraw` GitHub organization. + +## License + +MIT diff --git a/third_party/excalidraw/assets/logo.png b/third_party/excalidraw/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..608b31bd912c3f17f5d90fbd41b47c18f7931f39 GIT binary patch literal 8049 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 MT0#L_D`ph*KNo{}-~a#s literal 0 HcmV?d00001 diff --git a/third_party/excalidraw/mcp.json b/third_party/excalidraw/mcp.json new file mode 100644 index 000000000..55f551ef8 --- /dev/null +++ b/third_party/excalidraw/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "excalidraw": { + "type": "http", + "url": "https://mcp.excalidraw.com/mcp" + } + } +} From c41295502ea8c280f3511fef3366f815cb4177ca Mon Sep 17 00:00:00 2001 From: Minu Palaniappan <> Date: Wed, 9 Sep 2026 16:49:00 -0700 Subject: [PATCH 5/6] Fix BigQuery, Gamma, and S&P Global logos BigQuery showed the generic Google G; now the BigQuery product icon from Google Cloud's architecture icon set on a white tile. Gamma was a blurry 48px upscale; now the 192px mark from the gamma-app GitHub org. S&P Global was Kensho's logo; now the S&P Global mark redrawn at native resolution. --- third_party/gamma/CHANGELOG.md | 2 +- third_party/gamma/README.md | 2 +- third_party/gamma/assets/logo.png | Bin 27920 -> 18847 bytes .../google-cloud-bigquery/CHANGELOG.md | 2 +- third_party/google-cloud-bigquery/README.md | 2 +- .../google-cloud-bigquery/assets/logo.png | Bin 22733 -> 11020 bytes third_party/sp-global/CHANGELOG.md | 2 +- third_party/sp-global/README.md | 2 +- third_party/sp-global/assets/logo.png | Bin 9203 -> 630 bytes 9 files changed, 6 insertions(+), 6 deletions(-) diff --git a/third_party/gamma/CHANGELOG.md b/third_party/gamma/CHANGELOG.md index bcba12392..4af93ece5 100644 --- a/third_party/gamma/CHANGELOG.md +++ b/third_party/gamma/CHANGELOG.md @@ -6,4 +6,4 @@ All notable changes to this plugin will be documented here. - Added the `gamma` MCP server pointing at Gamma's hosted Streamable HTTP endpoint (`https://mcp.gamma.app/mcp`). - Auth uses OAuth with Gamma user login — no API key or client ID to configure. -- Logo: Gamma's official mark, from the icon Gamma publishes for its connector, on a 192×192 tile. +- Logo: Gamma's official mark, from the `gamma-app` GitHub organization. diff --git a/third_party/gamma/README.md b/third_party/gamma/README.md index 6712c661f..57a079154 100644 --- a/third_party/gamma/README.md +++ b/third_party/gamma/README.md @@ -53,7 +53,7 @@ The hosted runtime is the source of truth for tool names and schemas. - Tools reference: https://developers.gamma.app/mcp/mcp-tools-reference.md - Server URL: https://mcp.gamma.app/mcp -Logo is Gamma's official mark. +Logo is Gamma's official mark, from the `gamma-app` GitHub organization. ## License diff --git a/third_party/gamma/assets/logo.png b/third_party/gamma/assets/logo.png index d83db3a76cabc5d5514ba5987d1b9a3309451c19..7fa47a5f22cea2047b2ba1cf22d72bce4bd4faa9 100644 GIT binary patch literal 18847 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

vL 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 Aw*UYD literal 22733 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 Y2VS#Tp^zUGOaK4?07*qoM6N<$g73DLrT_o{ diff --git a/third_party/sp-global/CHANGELOG.md b/third_party/sp-global/CHANGELOG.md index d0b7b9dfe..d46309737 100644 --- a/third_party/sp-global/CHANGELOG.md +++ b/third_party/sp-global/CHANGELOG.md @@ -6,4 +6,4 @@ All notable changes to this plugin will be documented here. - Added the `sp-global` MCP server pointing at S&P Global's hosted Streamable HTTP endpoint (`https://kfinance.kensho.com/integrations/mcp`). - Auth uses OAuth with S&P Global user login — no API key or client ID to configure. -- Logo: S&P Global's official mark, from the `kensho-technologies` GitHub organization. +- Logo: S&P Global's official mark (black rule over red block), redrawn at 192×192 from the icon published on marketplace.spglobal.com. diff --git a/third_party/sp-global/README.md b/third_party/sp-global/README.md index 7e982a8a7..2858e27b7 100644 --- a/third_party/sp-global/README.md +++ b/third_party/sp-global/README.md @@ -53,7 +53,7 @@ The hosted runtime is the source of truth for tool names and schemas. - kfinance on GitHub: https://github.com/kensho-technologies/kfinance - Server URL: https://kfinance.kensho.com/integrations/mcp -Logo is S&P Global's official mark, from the `kensho-technologies` GitHub organization. +Logo is S&P Global's official mark (black rule over red block), redrawn at 192×192 from the icon published on marketplace.spglobal.com. ## License diff --git a/third_party/sp-global/assets/logo.png b/third_party/sp-global/assets/logo.png index d220055ca8cb6afe1be259f25c5b808b5b7389b5..0c566f750684cfba36c6320c5de291b784a7fdb7 100644 GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE4M+yv$zf+;V6ydeaSW-L^Y+e0-opkw4363# z%x>0CIdk}p0DHp6a%PDfxe&$IXU@b3e7z;dV8+>C!Z<;V;S!6(ECvr@hD;^}Uxp<^ zU$D&n?*Yr__LC3rr#-7W#D>RHTdIHSvE^)HB+m14|M@?BG}Gw5caN?0z9rMd!5(sN m&z#BOXN=AvE`nFT;oi<9RJHi8&mmxXV(@hJb6Mw<&;$U0bgJ$E literal 9203 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 Date: Wed, 9 Sep 2026 17:52:07 -0700 Subject: [PATCH 6/6] Fix Meltwater and Coinbase auth to match what their servers actually support Probing each endpoint's OAuth discovery showed two mismatches with the vendor docs the first draft relied on. Meltwater advertises standard MCP OAuth with dynamic client registration, so the apikey header variable is dropped in favour of the plain OAuth flow. Coinbase's authorization server (login.coinbase.com) publishes no registration endpoint, so the plugin now declares CLIENT_ID / CLIENT_SECRET variables and forwards them through MCP auth, the same pattern as gong, hubspot, and docusign. --- .../coinbase/.cursor-plugin/plugin.json | 19 ++++++++++++++++ third_party/coinbase/CHANGELOG.md | 2 +- third_party/coinbase/README.md | 22 ++++++++++++++----- third_party/coinbase/mcp.json | 7 ++++-- .../meltwater/.cursor-plugin/plugin.json | 13 ----------- third_party/meltwater/CHANGELOG.md | 2 +- third_party/meltwater/README.md | 13 +++++------ third_party/meltwater/mcp.json | 5 +---- 8 files changed, 48 insertions(+), 35 deletions(-) diff --git a/third_party/coinbase/.cursor-plugin/plugin.json b/third_party/coinbase/.cursor-plugin/plugin.json index 6082c64ee..bdbca8948 100644 --- a/third_party/coinbase/.cursor-plugin/plugin.json +++ b/third_party/coinbase/.cursor-plugin/plugin.json @@ -31,5 +31,24 @@ "crypto", "mcp" ], + "variables": { + "type": "object", + "properties": { + "CLIENT_ID": { + "type": "string", + "title": "Coinbase OAuth Client ID", + "description": "OAuth client ID from the Coinbase Developer Platform portal (portal.cdp.coinbase.com \u2192 OAuth)." + }, + "CLIENT_SECRET": { + "type": "string", + "title": "Coinbase OAuth Client Secret", + "description": "OAuth client secret from the same Coinbase Developer Platform OAuth client." + } + }, + "required": [ + "CLIENT_ID", + "CLIENT_SECRET" + ] + }, "mcpServers": "./mcp.json" } diff --git a/third_party/coinbase/CHANGELOG.md b/third_party/coinbase/CHANGELOG.md index 217347095..c4a502a27 100644 --- a/third_party/coinbase/CHANGELOG.md +++ b/third_party/coinbase/CHANGELOG.md @@ -5,5 +5,5 @@ All notable changes to this plugin will be documented here. ## 1.0.0 — initial release - Added the `coinbase` MCP server pointing at Coinbase's hosted Streamable HTTP endpoint (`https://agents.coinbase.com/mcp`). -- Auth uses OAuth with Coinbase user login — no API key or client ID to configure. +- Auth uses OAuth with Coinbase user login. Declared `CLIENT_ID` and `CLIENT_SECRET` plugin variables and forwarded them through MCP auth, since `login.coinbase.com` does not support dynamic client registration. - Logo: Coinbase's official mark, from the `coinbase` GitHub organization. diff --git a/third_party/coinbase/README.md b/third_party/coinbase/README.md index 87d24ea0f..5088a9b7a 100644 --- a/third_party/coinbase/README.md +++ b/third_party/coinbase/README.md @@ -8,7 +8,7 @@ Check balances, get quotes, and preview or place trades. 1. Open **Cursor Settings → Plugins**. 2. Search for **Coinbase**. -3. Click **Install**, then complete the Coinbase sign-in prompt. +3. Click **Install**, then follow **Setup** below. Or run `/add-plugin coinbase` in chat. @@ -18,18 +18,28 @@ Or run `/add-plugin coinbase` in chat. { "mcpServers": { "coinbase": { - "type": "http", - "url": "https://agents.coinbase.com/mcp" + "url": "https://agents.coinbase.com/mcp", + "auth": { + "CLIENT_ID": "${CLIENT_ID}", + "CLIENT_SECRET": "${CLIENT_SECRET}" + } } } } ``` -Auth is OAuth. Cursor prompts for Coinbase sign-in when the plugin connects — there is no client ID or personal access token to configure. +## Setup -## Before you connect +Coinbase's authorization server (`login.coinbase.com`) does not support dynamic client registration, so an OAuth client has to be registered before anyone can connect. -You need a Coinbase account with Advanced Trade. Coinbase recommends scoping the agent to a dedicated portfolio. +1. In the [Coinbase Developer Platform portal](https://portal.cdp.coinbase.com/), create an OAuth client and enable the Coinbase for Agents (`mcp:*`) scopes you want to expose. +2. Register both redirect URIs on that client: + - Desktop: `http://localhost:8787/callback` + - Web and Cloud Agents: `https://www.cursor.com/agents/mcp/oauth/callback` +3. In **Dashboard → Plugins → Configure**, set **Coinbase OAuth Client ID** and **Coinbase OAuth Client Secret** from that client. +4. Complete the Coinbase login when Cursor prompts. + +On a team marketplace an admin sets the client ID and secret once for everyone; each member still completes their own Coinbase login, so tool calls run against that member's account. Coinbase recommends scoping the agent to a dedicated portfolio. ## What agents can do diff --git a/third_party/coinbase/mcp.json b/third_party/coinbase/mcp.json index d083aad8b..9b8839e80 100644 --- a/third_party/coinbase/mcp.json +++ b/third_party/coinbase/mcp.json @@ -1,8 +1,11 @@ { "mcpServers": { "coinbase": { - "type": "http", - "url": "https://agents.coinbase.com/mcp" + "url": "https://agents.coinbase.com/mcp", + "auth": { + "CLIENT_ID": "${CLIENT_ID}", + "CLIENT_SECRET": "${CLIENT_SECRET}" + } } } } diff --git a/third_party/meltwater/.cursor-plugin/plugin.json b/third_party/meltwater/.cursor-plugin/plugin.json index 08f7b12ad..4a926181e 100644 --- a/third_party/meltwater/.cursor-plugin/plugin.json +++ b/third_party/meltwater/.cursor-plugin/plugin.json @@ -31,18 +31,5 @@ "pr", "mcp" ], - "variables": { - "type": "object", - "properties": { - "MELTWATER_API_KEY": { - "type": "string", - "title": "Meltwater API token", - "description": "API token from the Meltwater developer portal. Requires the Meltwater MCP package on your subscription." - } - }, - "required": [ - "MELTWATER_API_KEY" - ] - }, "mcpServers": "./mcp.json" } diff --git a/third_party/meltwater/CHANGELOG.md b/third_party/meltwater/CHANGELOG.md index 1cb18de63..81440a306 100644 --- a/third_party/meltwater/CHANGELOG.md +++ b/third_party/meltwater/CHANGELOG.md @@ -5,5 +5,5 @@ All notable changes to this plugin will be documented here. ## 1.0.0 — initial release - Added the `meltwater` MCP server pointing at Meltwater's hosted Streamable HTTP endpoint (`https://api.meltwater.com/v2/mcp`). -- Auth uses a Meltwater API key passed as the `apikey` header via the `MELTWATER_API_KEY` variable. +- Auth uses OAuth with Meltwater user login — no API key or client ID to configure. - Logo: Meltwater's official mark, from the icon Meltwater publishes for its connector, on a 192×192 tile. diff --git a/third_party/meltwater/README.md b/third_party/meltwater/README.md index 7fa228520..b31da7400 100644 --- a/third_party/meltwater/README.md +++ b/third_party/meltwater/README.md @@ -8,7 +8,7 @@ Search media and social mentions and pull analytics. 1. Open **Cursor Settings → Plugins**. 2. Search for **Meltwater**. -3. Click **Install**, then enter your Meltwater API token. +3. Click **Install**, then complete the Meltwater sign-in prompt. Or run `/add-plugin meltwater` in chat. @@ -19,20 +19,17 @@ Or run `/add-plugin meltwater` in chat. "mcpServers": { "meltwater": { "type": "http", - "url": "https://api.meltwater.com/v2/mcp", - "headers": { - "apikey": "${MELTWATER_API_KEY}" - } + "url": "https://api.meltwater.com/v2/mcp" } } } ``` -Auth is an API key sent as the `apikey` header. Cursor asks for `MELTWATER_API_KEY` when you install the plugin and never stores it in the repository. +Auth is OAuth. Cursor prompts for Meltwater sign-in when the plugin connects — there is no client ID or API token to configure. ## Before you connect -You need a Meltwater subscription that includes the Meltwater MCP package and an API token from the developer portal. Available tools depend on the products in your subscription. +You need a Meltwater subscription that includes the Meltwater MCP package. Available tools depend on the products in your subscription. ## What agents can do @@ -47,7 +44,7 @@ The hosted runtime is the source of truth for tool names and schemas. ## Notes -- Meltwater authenticates custom clients with the `apikey` header; OAuth is planned but not available yet. +- Meltwater's server advertises standard MCP OAuth with dynamic client registration; its public docs still describe API-key auth, but the OAuth flow is live. - This is Meltwater MCP (`/v2/mcp`), not the higher-level Mira API endpoint at `/mcp`. ## Docs diff --git a/third_party/meltwater/mcp.json b/third_party/meltwater/mcp.json index fc83fb84e..8d77a11b6 100644 --- a/third_party/meltwater/mcp.json +++ b/third_party/meltwater/mcp.json @@ -2,10 +2,7 @@ "mcpServers": { "meltwater": { "type": "http", - "url": "https://api.meltwater.com/v2/mcp", - "headers": { - "apikey": "${MELTWATER_API_KEY}" - } + "url": "https://api.meltwater.com/v2/mcp" } } }