From 8848b21ca7af9b33454f93e602b95a16bf4bf970 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 19 Sep 2026 05:14:28 +0000 Subject: [PATCH] feat(notfair): add NotFair third-party MCP plugin Package NotFair under third_party/notfair with a hosted Streamable HTTP MCP (OAuth 2.1 DCR/PKCE, no client secrets) and register it in the marketplace and README integrations table. Co-authored-by: Yuting Zhong --- .cursor-plugin/marketplace.json | 5 ++ README.md | 1 + .../notfair/.cursor-plugin/plugin.json | 43 ++++++++++ third_party/notfair/CHANGELOG.md | 10 +++ third_party/notfair/LICENSE | 21 +++++ third_party/notfair/README.md | 74 ++++++++++++++++++ third_party/notfair/assets/logo.png | Bin 0 -> 10205 bytes third_party/notfair/mcp.json | 8 ++ 8 files changed, 162 insertions(+) create mode 100644 third_party/notfair/.cursor-plugin/plugin.json create mode 100644 third_party/notfair/CHANGELOG.md create mode 100644 third_party/notfair/LICENSE create mode 100644 third_party/notfair/README.md create mode 100644 third_party/notfair/assets/logo.png create mode 100644 third_party/notfair/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index ed6afb06..f8039725 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -412,6 +412,11 @@ "name": "statsig", "source": "third_party/statsig", "description": "Inspect and manage feature gates, experiments, dynamic configs, and metrics." + }, + { + "name": "notfair", + "source": "third_party/notfair", + "description": "Operate Google, Meta, X, LinkedIn, Reddit, and TikTok Ads plus GA4, Search Console, GoHighLevel, and WordPress through one OAuth MCP." } ] } diff --git a/README.md b/README.md index 21772a15..e49451e4 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc | `excalidraw` | [Excalidraw](third_party/excalidraw/) | Cursor | Integrations | Draw and export hand-drawn diagrams from chat. | | `google-cloud-bigquery` | [Google Cloud BigQuery](third_party/google-cloud-bigquery/) | Cursor | Integrations | Explore datasets and tables and run SQL queries. | | `statsig` | [Statsig](third_party/statsig/) | Cursor | Integrations | Inspect and manage feature gates, experiments, dynamic configs, and metrics. | +| `notfair` | [NotFair](third_party/notfair/) | Notfair | Integrations | Operate Google, Meta, X, LinkedIn, Reddit, and TikTok Ads plus GA4, Search Console, GoHighLevel, and WordPress through one OAuth MCP. | 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/notfair/.cursor-plugin/plugin.json b/third_party/notfair/.cursor-plugin/plugin.json new file mode 100644 index 00000000..24ad67ba --- /dev/null +++ b/third_party/notfair/.cursor-plugin/plugin.json @@ -0,0 +1,43 @@ +{ + "name": "notfair", + "displayName": "NotFair", + "version": "0.27.9", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Operate Google, Meta, X, LinkedIn, Reddit, and TikTok Ads plus GA4, Search Console, GoHighLevel, and WordPress through one OAuth MCP.", + "author": { + "name": "Notfair", + "email": "tong@notfair.co" + }, + "homepage": "https://notfair.co", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "notfair", + "ads", + "advertising", + "analytics", + "google-ads", + "meta-ads", + "x-ads", + "linkedin-ads", + "reddit-ads", + "tiktok-ads", + "ga4", + "search-console", + "wordpress", + "gohighlevel", + "seo", + "mcp" + ], + "category": "integrations", + "tags": [ + "ads", + "analytics", + "mcp", + "marketing" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/notfair/CHANGELOG.md b/third_party/notfair/CHANGELOG.md new file mode 100644 index 00000000..4624935e --- /dev/null +++ b/third_party/notfair/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 0.27.9 — initial Cursor marketplace packaging + +- Added the `NotFair` MCP server pointing at NotFair's hosted Streamable HTTP endpoint (`https://notfair.co/api/mcp/notfair`). +- Auth is OAuth 2.1 with Dynamic Client Registration and PKCE, discovered from the server; no client ID or secrets in the plugin configuration. +- Logo: NotFair's brand mark, from [nowork-studio/notfair-plugin](https://github.com/nowork-studio/notfair-plugin). +- Open-source SEO, GEO, and content skills stay in the source repository (they wrap canonical files outside `skills/` and would make this packaging PR unwieldy). diff --git a/third_party/notfair/LICENSE b/third_party/notfair/LICENSE new file mode 100644 index 00000000..f195b838 --- /dev/null +++ b/third_party/notfair/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Notfair + +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/notfair/README.md b/third_party/notfair/README.md new file mode 100644 index 00000000..3ce8af92 --- /dev/null +++ b/third_party/notfair/README.md @@ -0,0 +1,74 @@ +# NotFair + +Cursor plugin that connects agents to [NotFair](https://notfair.co) through NotFair's hosted [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Operate Google, Meta, X, LinkedIn, Reddit, and TikTok Ads plus GA4, Search Console, GoHighLevel, and WordPress from one OAuth connection. Connect those platforms inside the NotFair workspace selected during sign-in; do not add an MCP server per platform. + +Homepage: https://notfair.co + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **NotFair**. +3. Click **Install**, then complete the NotFair sign-in prompt. + +Or run `/add-plugin notfair` in chat. + +## MCP + +```json +{ + "mcpServers": { + "NotFair": { + "type": "http", + "url": "https://notfair.co/api/mcp/notfair" + } + } +} +``` + +Auth is OAuth 2.1 against NotFair with Dynamic Client Registration (DCR) and PKCE, discovered from the server (`WWW-Authenticate` and protected-resource metadata). Cursor registers itself and opens the Connect to NotFair page on the first tool call. There is no API key or client ID to configure in the plugin. + +Protected-resource metadata: https://notfair.co/.well-known/oauth-protected-resource/api/mcp/notfair + +## Before you connect + +You need a NotFair account at [notfair.co](https://notfair.co). After OAuth, connect the ad, analytics, WordPress, or GoHighLevel accounts you want to use inside that workspace. Tool calls cannot exceed the platforms and permissions of the signed-in workspace. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Google Ads | Review campaigns, search terms, keywords, bids, and budgets, and make approved account changes | +| Meta Ads | Review Facebook and Instagram campaigns, ad sets, creatives, and insights | +| X Ads | Review campaigns and line items, targeting, creative, and conversion performance | +| LinkedIn Ads | Review campaign groups, campaigns, creatives, analytics, targeting, and leads | +| Reddit Ads | Review campaigns, ad groups, ads, audiences, and reporting | +| TikTok Ads | Review advertiser delivery, creative performance, targeting, and budgets | +| Analytics | Query GA4 acquisition, engagement, and conversions, plus Search Console queries, pages, URL inspection, and sitemaps | +| WordPress | Read and update connected site content, media, comments, design, settings, and plugins | +| GoHighLevel | Read contacts, conversations, opportunities, and calendars, then make only explicitly requested CRM changes | + +The hosted runtime is the source of truth for tool names and schemas. Choose tools from the live server's instructions and capability descriptions. + +## Notes + +- This package is MCP-first. Open-source SEO, GEO, and content skills live in the source repository: https://github.com/nowork-studio/notfair-plugin +- Writes stay within the signed-in workspace and the user's authorization. Confirm the target account and intended effect before mutating ads, content, or CRM records. +- One NotFair connection covers every supported platform. Do not add a second NotFair MCP server to reach another channel. +- Revoke access from the NotFair workspace or by disconnecting the plugin in Cursor. + +## Docs + +- Homepage: https://notfair.co +- Privacy: https://notfair.co/privacy +- Terms: https://notfair.co/terms +- Source plugin repository: https://github.com/nowork-studio/notfair-plugin +- Server URL: https://notfair.co/api/mcp/notfair +- Protected-resource metadata: https://notfair.co/.well-known/oauth-protected-resource/api/mcp/notfair + +Logo is NotFair's official mark, from the `nowork-studio/notfair-plugin` GitHub repository. + +## License + +MIT diff --git a/third_party/notfair/assets/logo.png b/third_party/notfair/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2ec4193b1edde01dcb6b84dcd38be75cd8dc5b GIT binary patch literal 10205 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 ThXQ1gM|vj=&K%7=VjKKFBSIR= literal 0 HcmV?d00001 diff --git a/third_party/notfair/mcp.json b/third_party/notfair/mcp.json new file mode 100644 index 00000000..6fe53aea --- /dev/null +++ b/third_party/notfair/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "NotFair": { + "type": "http", + "url": "https://notfair.co/api/mcp/notfair" + } + } +}