From 8eefd32e90060c28ae7effb6660a320220538dc9 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 10 Nov 2026 00:46:48 +0000 Subject: [PATCH] feat(third_party): add Metricool plugin Co-authored-by: Danny Jiang --- .cursor-plugin/marketplace.json | 5 ++ .../metricool/.cursor-plugin/plugin.json | 35 ++++++++++ third_party/metricool/CHANGELOG.md | 9 +++ third_party/metricool/LICENSE | 21 ++++++ third_party/metricool/README.md | 63 ++++++++++++++++++ third_party/metricool/assets/logo.png | Bin 0 -> 1089 bytes third_party/metricool/mcp.json | 9 +++ 7 files changed, 142 insertions(+) create mode 100644 third_party/metricool/.cursor-plugin/plugin.json create mode 100644 third_party/metricool/CHANGELOG.md create mode 100644 third_party/metricool/LICENSE create mode 100644 third_party/metricool/README.md create mode 100644 third_party/metricool/assets/logo.png create mode 100644 third_party/metricool/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 7e4aa377f1..e1dfa7dfa4 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -498,6 +498,11 @@ "source": "third_party/buffer", "description": "Manage social media with Buffer: draft, schedule, and publish posts across connected channels, manage the queue and ideas, and review post performance." }, + { + "name": "metricool", + "source": "third_party/metricool", + "description": "Plan and schedule social media posts with Metricool, find the best time to post, and pull analytics across your brands and networks." + }, { "name": "plaud", "source": "third_party/plaud", diff --git a/third_party/metricool/.cursor-plugin/plugin.json b/third_party/metricool/.cursor-plugin/plugin.json new file mode 100644 index 0000000000..291a777fd1 --- /dev/null +++ b/third_party/metricool/.cursor-plugin/plugin.json @@ -0,0 +1,35 @@ +{ + "name": "metricool", + "displayName": "Metricool", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Plan and schedule social media posts with Metricool, find the best time to post, and pull analytics across your brands and networks.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://metricool.com", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "metricool", + "social media", + "scheduling", + "planner", + "analytics", + "reports", + "ads", + "mcp" + ], + "category": "integrations", + "tags": [ + "metricool", + "social media", + "analytics", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/metricool/CHANGELOG.md b/third_party/metricool/CHANGELOG.md new file mode 100644 index 0000000000..bae7132341 --- /dev/null +++ b/third_party/metricool/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog + +All notable changes to this plugin will be documented here. + +## 1.0.0 — initial release + +- Added the `metricool` MCP server pointing at Metricool's hosted Streamable HTTP endpoint (`https://ai.metricool.com/mcp`), with `"placement": "server"` so Grok Bot dials it through the hosted MCP path. +- Auth uses OAuth 2.0 (authorization code + PKCE) with Metricool user login — no API key to configure. +- Logo: Metricool's official app icon (dark infinity mark on the brand lime tile), 180×180. diff --git a/third_party/metricool/LICENSE b/third_party/metricool/LICENSE new file mode 100644 index 0000000000..ca2bba771c --- /dev/null +++ b/third_party/metricool/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/metricool/README.md b/third_party/metricool/README.md new file mode 100644 index 0000000000..6d3518fb8d --- /dev/null +++ b/third_party/metricool/README.md @@ -0,0 +1,63 @@ +# Metricool + +Cursor plugin that connects agents to [Metricool](https://metricool.com) through Metricool's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +List your brands, review the planner, schedule and update posts, find the best time to post, and pull analytics across Instagram, Facebook, X, LinkedIn, TikTok, YouTube, Pinterest, Twitch, Bluesky, Threads, Google Business Profile, Facebook Ads, and TikTok Ads — all from chat. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Metricool**. +3. Click **Install**, then complete the Metricool sign-in prompt. + +Or run `/add-plugin metricool` in chat. + +## MCP + +```json +{ + "mcpServers": { + "metricool": { + "type": "http", + "url": "https://ai.metricool.com/mcp" + } + } +} +``` + +Auth is OAuth 2.0 (authorization code + PKCE). Cursor prompts for Metricool sign-in when the plugin connects — there is no API key to configure. Each user signs in with their own Metricool account. The server requests `mcp:read` (brands, planner, analytics) and `mcp:write` (create and update scheduled posts). + +## Before you connect + +You need a Metricool account ([sign up](https://metricool.com)) with at least one brand and connected social network. Tools act on every brand the signed-in user can access, so multi-brand and agency accounts should name the brand they mean. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Brands | `get_brand_settings` lists the account's brands with their connected networks, timezone, and competitor tracking | +| Planner | `get_scheduled_posts` returns published, pending, and draft posts for a brand in a date range (up to a month) | +| Scheduling | `create_scheduled_post` schedules a post to one or more networks, including Reels, Stories, carousels, Shorts, LinkedIn polls, and TikTok videos; `update_scheduled_post` edits an existing scheduled post. Both return a `plannerUrl` to open the post in Metricool | +| Best time | `get_best_time_to_post_by_network` scores hours and days by past audience engagement for a network | +| Analytics | `get_analytics_available_metrics` lists valid metric IDs for a network and connector; `get_analytics_data_by_metrics` pulls those metrics for a brand over a date range, including Facebook Ads and TikTok Ads | + +The hosted runtime is the source of truth for tool names and schemas. + +## Notes + +- **Scheduled posts go live on real social accounts.** Confirm the brand, networks, text, media, and time before letting the agent schedule or update a post, and leave Cursor's tool-approval prompts on for write tools. +- Scheduled dates cannot be in the past, and character limits are enforced per network; the server reports a limit error rather than truncating or splitting posts into threads. +- Call `get_analytics_available_metrics` before `get_analytics_data_by_metrics` — metric IDs are network- and connector-specific. + +## Docs + +- Metricool: https://metricool.com +- Help center: https://help.metricool.com +- Privacy policy: https://metricool.com/privacy-policy/ +- Server URL: https://ai.metricool.com/mcp + +Logo is Metricool's official app icon from https://metricool.com. + +## License + +MIT diff --git a/third_party/metricool/assets/logo.png b/third_party/metricool/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..712b3b073c7483d4051ecf522800149a1cbd798d GIT binary patch literal 1089 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nF8AzUgEX@d{bOU@sT%Z3BgQExELM}fKJaWZ% z%R#RtYuqMHbF8hkNr*Icv(z_J)z+2L%=(ig4%En8666n+{l5S6tc||$+?lhwLpRUj-l%mm z)Jb^Og%&lFg`B<_7|bv6j^esrLh1xw1do`6yp67~u@x46xj2uJqxl_B0W##6csIWUN-Dt7? zN9k^Dov7-^tT~7OJNgIQzwW$f_S%Hth3i}=T?ylXr zvHVY_xNEnHnA_L+{`_Yhl;S_kOF#GZTaM~Pi(S`}blq=ENk6~s9sl&-7wrr0>WSPv zG;5i5oX-aF!%Nle_`f%8jCa52Y?I4qel1nrrk&qtUaFw;#Yn@9G~qRxhZzF&xy{=8 zqH_WgxNfF$ZPuJ1d)(nd>COBmG@%u zeR4q-G3t)RC#G~-TwL$z`0io0Rzzt3g{PcmxuP#jUZ?q9{HoWK7x?F*Z&6X)b8kVJ zb5c#~zE>n3-c+_+TT@r-+GkCcv$Jlstv65my+_`%pL6n4_P@7TZy%1^C@SXc(=2hz zkmoE@^&0QljA_y~8xHAiyldrpajngoByQ!5MM9Sk+J5G160=^<#2q{N<^6zTzW*H+ z56&rSH{7zKz4_gxNbSRNl^sD-opk1&mYV*vt94Pb{?E!nv&#B8ljojV@vg8|@21%d z!Rl(6*!+)1c9w$Nm*>S~2b3>2FtJfRxcFg7vABkQl{54tax3zMrz82ZeZ4C@O1TaS?83{1OU$r B_?7?w literal 0 HcmV?d00001 diff --git a/third_party/metricool/mcp.json b/third_party/metricool/mcp.json new file mode 100644 index 0000000000..3ac94f1d20 --- /dev/null +++ b/third_party/metricool/mcp.json @@ -0,0 +1,9 @@ +{ + "mcpServers": { + "metricool": { + "type": "http", + "url": "https://ai.metricool.com/mcp", + "placement": "server" + } + } +}