Skip to main content
Glama
metricool

mcp-metricool

Official
by metricool

get_metrics

Retrieve available metrics for a specific network using the MCP server mcp-metricool to analyze and monitor network performance effectively.

Instructions

Retrieve the available metrics for a specific network. Args: network: Specific network to get the available metrics.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
networkYes

Implementation Reference

  • The handler function implementing the get_metrics tool logic, including registration via @mcp.tool() decorator. It retrieves available metrics for a given network using the network_subject_metrics dictionary.
    @mcp.tool()
    async def get_metrics(network: str) -> str | dict[str, Any]:
        """
        Retrieve the available metrics for a specific network.
        Args:
            network: Specific network to get the available metrics.
        """
        if network not in network_subject_metrics:
            return f"Incorrect network '{network}'. The available networks are: {', '.join(network_subject_metrics.keys())}"
        else:
            metrics = {}
            subjects = list(network_subject_metrics[network].keys())
            for subj in subjects:
                metrics[subj] = network_subject_metrics[network][subj]
            return {"metrics": metrics,
                    "instructions": "Stop the chat, show the metrics and let the user choose the metrics they want to analyze before going again to get_analytics, the user must choose before you continue."}
  • Supporting dictionary that maps networks to subjects and available metrics, directly used in the get_metrics handler to list metrics.
    network_subject_metrics = {
            "tiktok": {
                "videos": [
                    "videos", "views", "comments", "shares", "interactions", "likes",
                    "reach", "engagement", "impressionSources", "averageVideoViews"
                ],
                "account": [
                    "video_views", "profile_views", "followers_count", "followers_delta_count",
                    "likes", "comments", "shares"
                ]
            },
            "pinterest": {
                "pins": [
                    "impression", "save", "pin_click", "outbound_click", "video_mrc_view",
                    "video_avg_watch_time", "video_v50_watch_time", "quartile_95_percent_view", "pins"
                ],
                "account": [
                    "followers", "following", "delta followers", "IMPRESSION", "ENGAGEMENT_RATE",
                    "ENGAGEMENT", "PIN_CLICK", "OUTBOUND_CLICK", "SAVE"
                ],
                "posts": [
                    "PINS"
                ]
            },
            "youtube": {
                "videos": [
                    "views", "interactions", "likes", "dislikes", "comments", "shares"
                ],
                "account": [
                    "yttotalSubscribers", "ytestimatedRevenue", "ytVideos", "ytsubscribersGained",
                    "ytsubscribersLost"
                ]
            },
            "facebook": {
                "stories": [
                    "storiesCount"
                ],
                "posts": [
                    "count", "interactions", "engagement", "impressionsunique", "impressions",
                    "clicks", "comments", "shares", "reactions"
                ],
                "reels": [
                    "blue_reels_play_count", "post_impressions_unique", "post_video_likes_by_reaction_type",
                    "post_video_social_actions", "engagement", "count"
                ],
                "account": [
                    "page_posts_impressions", "page_actions_post_reactions_total", "postsCount", "postsInteractions",
                    "likes", "pageFollows", "pageImpressions", "pageImpressions.M", "pageImpressions.F",
                    "pageImpressions.U", "pageImpressions.13-17", "pageImpressions.18-24", "pageImpressions.25-34",
                    "pageImpressions.35-44", "pageImpressions.45-54", "pageImpressions.55-64",
                    "pageImpressions.65+", "pageViews"
                ]
            },
            "gmb": {
                "business": [
                    "business_impressions_maps", "business_impressions_search", "business_impressions_total",
                    "business_direction_requests", "call_clicks", "website_clicks", "clicks_total",
                    "business_conversations", "business_bookings", "business_food_orders", "business_actions_total"
                ]
            },
            "instagram": {
                "account": [
                    "email_contacts", "get_directions_clicks", "phone_call_clicks", "text_message_clicks",
                    "clicks_total", "postsCount", "postsInteractions", "followers", "friends"
                ],
                "posts": [
                    "count", "interactions", "engagement", "reach", "impressions", "likes",
                    "comments", "saves", "shares"
                ],
                "reels": [
                    "count", "comments", "likes", "saved", "shares", "engagement", "impressions",
                    "reach", "interactions", "videoviews"
                ]
            },
            "linkedin": {
                "account": [
                    "followers", "paidFollowers", "companyImpressions", "deltaFollowers"
                ],
                "posts": [
                    "posts", "clicks", "likes", "comments", "shares", "engagement",
                    "impressions", "interactions"
                ],
                "stories": [
                    "inStoriesEngagement", "inStoriesInteractions", "inStoriesImpressions",
                    "inStoriesCliks", "inStories"
                ]
            },
            "threads": {
                "posts": [
                    "count", "views", "likes", "replies", "reposts", "engagement",
                    "quotes", "interactions"
                ],
                "account": [
                    "followers_count", "delta_followers"
                ]
            },
            "bluesky": {
                "posts": [
                    "posts_count", "interactions", "likes", "replies", "reposts", "quotes"
                ],
                "account": [
                    "followers_count", "follows_count", "count", "follow_event", "unfollow_event"
                ]
            },
            "webpage": {
                "account": [
                    "PageViews", "SessionsCount", "Visitors", "DailyPosts", "DailyComments"
                ]
            },
            "twitter": {
                "account": [
                    "twitterFollowers", "twFriends", "twTweets", "follows", "unfollows",
                    "twEngagement", "twImpressions", "twInteractions", "twFavorites",
                    "twRetweets", "twReplies", "twQuotes", "twProfileClicks",
                    "twLinkClicks"
                ]
            },
            "twitch": {
                "account": [
                    "TotalFollowers", "TotalSubscribers", "TotalVideos", "DeltaFollowers",
                    "TotalTier1", "TotalTier2", "TotalTier3", "TotalGifts", "TotalViews",
                    "TotalDuration"
    
                ]
            }
        }
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'retrieve' which implies a read operation, but doesn't disclose behavioral traits such as authentication needs, rate limits, error handling, or what 'available metrics' entails (e.g., format, scope). This is a significant gap for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences, front-loaded with the main purpose. However, the 'Args:' section is redundant since the schema already documents the parameter, making it slightly less efficient than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (1 parameter, no annotations, no output schema), the description is incomplete. It lacks details on what 'available metrics' returns, how to interpret results, or any behavioral context, making it inadequate for an agent to use the tool effectively without additional information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal meaning beyond the input schema: it specifies that the 'network' parameter is for a 'specific network to get the available metrics'. With 0% schema description coverage and 1 parameter, this provides some context but doesn't fully compensate for the lack of schema details (e.g., network format, examples). Baseline is 3 as the description adds marginal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'retrieve' and the resource 'available metrics for a specific network', making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'get_analytics' or 'get_network_competitors', which might retrieve related but different data, so it misses full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools that seem related (e.g., 'get_analytics', 'get_network_competitors'), there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/metricool/mcp-metricool'

If you have feedback or need assistance with the MCP directory API, please join our Discord server