The Metricool MCP connector routes your AI agent's tool calls to Metricool's own MCP server through Scalekit. Each user signs in to Metricool once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 9 tools.
- Tools
- 9
- What they doRead · write · destructive
- 5 · 2 · 25 read2 write2 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
What you can do
- Schedule posts: schedule posts at a set date and time across one or more social networks
- Manage scheduled posts: list and update scheduled posts for a brand
- Send posts for review: route new or already scheduled posts through the approval flow
- Analyze performance: retrieve analytics for selected metrics over a date range and see which metrics each network offers
- Find the best time to post: get recommended posting times for a social network on your account
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Metricool MCP connection
In AgentKit > Connections, create a Metricool MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Metricool MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'metricoolmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Metricool MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'metricoolmcp_getanalyticsavailablemetrics',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "metricoolmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Metricool MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="metricoolmcp_getanalyticsavailablemetrics",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolmetricoolmcp_getanalyticsavailablemetricsGet the available analytics metrics for a specific social network and connector in Metricool.Read-onlyGetAnalyticsAvailableMetrics
Get the available analytics metrics for a specific social network and connector in Metricool.
Inputs
connectorstring- Connector type (e.g. evolution, posts, reels, stories, competitors, hashtags, campaigns, videos)
networkstring- Social network (e.g. instagram, facebook, twitter, youtube, tiktok, linkedin, pinterest, twitch, bluesky, threads, googleBusinessProfile, metaAds, facebookAds, tiktokAds, brandInfo, website, brandSummary)
metricoolmcp_getanalyticsdatabymetricsRetrieve analytical data for a Metricool account over a date range based on selected metrics.Read-onlyGetAnalyticsDataByMetrics
Retrieve analytical data for a Metricool account over a date range based on selected metrics.
Inputs
brandIdstringrequired- Brand id of the Metricool account
fromstringrequired- Start date. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM)
tostringrequired- End date. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM)
metricsarray- List of Data Studio field IDs (e.g. IGPO01)
metricoolmcp_getbesttimetopostbynetworkGet the best time to post for a specific social network on a Metricool account.Read-onlyGetBestTimeToPostByNetwork
Get the best time to post for a specific social network on a Metricool account.
Inputs
brandIdstringrequired- Blog id of the Metricool brand account to get competitor analytics for
fromDatestringrequired- Init date of the period to get the data. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM)
socialNetworkstringrequired- Provider of the post. The format is "twitter", "facebook", "instagram", "linkedin", "youtube", "tiktok". Only these are accepted.
timezonestringrequired- Timezone of the post. Format: IANA identifier. Use the timezone from getBrandSettings tool
toDatestringrequired- End date of the period to get the data. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM)
metricoolmcp_getbrandsettingsGet the list of brands from your Metricool account.Read-onlyGetBrandSettings
Get the list of brands from your Metricool account. Only Instagram, Facebook, Twitch, YouTube, Twitter, and Bluesky support competitors.
Inputs
This tool takes no inputs.
metricoolmcp_getscheduledpostsGet the list of scheduled posts for a specific Metricool brand.Read-onlyGetScheduledPosts
Get the list of scheduled posts for a specific Metricool brand.
Inputs
brandIdstringrequired- Blog id of the Metricool brand account
fromDatestringrequired- Start date. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM)
timezonestringrequired- Timezone of the post. Format: IANA identifier
toDatestringrequired- End date. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM)
extendedRangeboolean- When true, search date range is expanded one day before and after. Default: falsedefault
false
metricoolmcp_createscheduledpostSchedule a post to Metricool at a specific date and time across one or more social networks.WriteCreateScheduledPost
Schedule a post to Metricool at a specific date and time across one or more social networks.
Inputs
blogIdstringrequired- Blog id of the Metricool brand account
datestringrequired- Publication date/time. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM)
infostringrequired- JSON-encoded post data including providers, text, publicationDate, media, networkData, etc.
mediaFilesarray- Files from ChatGPT file picker. Each item has download_url (required), file_id (required), mime_type, file_name.
metricoolmcp_updatescheduledpostUpdate a scheduled post in Metricool.WriteUpdateScheduledPost
Update a scheduled post in Metricool. Requires the post id and uuid from getScheduledPosts.
- Idempotent
Inputs
blogIdstringrequired- Blog id of the Metricool brand account
idstringrequired- Id of the post to update
infostringrequired- JSON-encoded post data with full original content plus modifications
uuidstringrequired- Uuid of the post to update
mediaFilesarray- Files from ChatGPT file picker. Each item has download_url (required), file_id (required), mime_type, file_name.
metricoolmcp_createscheduledpostforreviewSchedule a new post and send it to review (approval flow) in Metricool, replicating the web "Send for review" action.DestructiveCreateScheduledPostForReview
Schedule a new post and send it to review (approval flow) in Metricool, replicating the web "Send for review" action.
Inputs
approvalSystemstringrequired- Approval system: any, all or optional
blogIdstringrequired- Blog id of the Metricool brand account
datestringrequired- Publication date/time once approved. Format: ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM)
infostringrequired- Data of the post to be scheduled. Same JSON structure as createScheduledPost.
reviewersstringrequired- Comma-separated list of reviewer emails
notifyboolean- Notify internal Metricool reviewers by email. Default true. External reviewers are always emailed.
metricoolmcp_sendscheduledpostforreviewSend an already-scheduled post to review (approval flow) in Metricool.DestructiveSendScheduledPostForReview
Send an already-scheduled post to review (approval flow) in Metricool. Requires the post id and uuid from getScheduledPosts.
Inputs
approvalSystemstringrequired- Approval system: any, all or optional
blogIdstringrequired- Blog id of the Metricool brand account
idstringrequired- Id of the already scheduled post
infostringrequired- Full content of the post to send to review, same JSON structure as updateScheduledPost
reviewersstringrequired- Comma-separated list of reviewer emails
uuidstringrequired- Uuid of the already scheduled post
notifyboolean- Notify internal Metricool reviewers by email. Default true. External reviewers are always emailed.
No tools match.