Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Metricool MCP server

Vendor MCP
Open markdown

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 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

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. 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>
  3. Create the Metricool MCP connection

    In AgentKit > Connections, create a Metricool MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Metricool MCP server, so you don't need to register an OAuth app.

  4. 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.actions
    const connector = 'metricoolmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { 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 call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'metricoolmcp_getanalyticsavailablemetrics',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • metricoolmcp_getanalyticsavailablemetricsGet the available analytics metrics for a specific social network and connector in Metricool.Read-only

    GetAnalyticsAvailableMetrics

    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-only

    GetAnalyticsDataByMetrics

    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-only

    GetBestTimeToPostByNetwork

    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-only

    GetBrandSettings

    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-only

    GetScheduledPosts

    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.Write

    CreateScheduledPost

    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.Write

    UpdateScheduledPost

    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.Destructive

    CreateScheduledPostForReview

    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.