Skip to main content
Glama

sprout-mcp

An MCP (Model Context Protocol) server that wraps the Sprout Social Public API, letting Claude and other MCP clients interact with your Sprout Social account directly.

Tools

Metadata

Tool

Description

list_customers

List all customers/accounts accessible with your API token

list_profiles

List all social profiles for a customer

list_tags

List all message tags

list_groups

List all profile groups

list_users

List all active users

list_teams

List all teams

Analytics

Tool

Description

get_profile_analytics

Get aggregated metrics by profile (impressions, engagements, follower growth, etc.)

get_post_analytics

Get metrics for individual published posts — also use this for post counts

Listening

Tool

Description

list_listening_topics

List all Listening topics and their IDs

get_listening_messages

Fetch messages from a Listening topic, filterable by network (Reddit, Twitter, etc.)

Smart Inbox

Tool

Description

get_messages

Retrieve inbound inbox messages (mentions, DMs, comments)

Publishing

Tool

Description

list_publishing_posts

List published, scheduled, or draft posts

create_post

Create a draft or scheduled post

get_publishing_post

Retrieve a specific post by ID

Note: All tools return structured JSON error details on failure (HTTP status, endpoint, and API error body) instead of raw exceptions.

Related MCP server: postforme-mcp-pro

Setup

Prerequisites

  • Python 3.11+

  • uv (recommended) or pip

  • A Sprout Social account with API access

Install

git clone https://github.com/jmeserve/sprout-mcp.git
cd sprout-mcp
uv sync

Configure

Copy .env.example to .env and fill in your credentials:

cp .env.example .env
SPROUT_API_TOKEN=your_api_token_here
SPROUT_CUSTOMER_ID=your_customer_id_here
  • SPROUT_API_TOKEN — Generate at Sprout Social → Settings → API → OAuth tokens

  • SPROUT_CUSTOMER_ID — Found in your Sprout Social account URL or via the list_customers tool

Add to Claude Code

Add to your ~/.claude.json MCP servers config:

{
  "mcpServers": {
    "sprout-social": {
      "command": "uv",
      "args": ["--directory", "/path/to/sprout-mcp", "run", "sprout-mcp"],
      "env": {
        "SPROUT_API_TOKEN": "your_api_token_here",
        "SPROUT_CUSTOMER_ID": "your_customer_id_here"
      }
    }
  }
}

Add to Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "sprout-social": {
      "command": "uv",
      "args": ["--directory", "/path/to/sprout-mcp", "run", "sprout-mcp"],
      "env": {
        "SPROUT_API_TOKEN": "your_api_token_here",
        "SPROUT_CUSTOMER_ID": "your_customer_id_here"
      }
    }
  }
}

Development

uv sync
uv run sprout-mcp       # run the server
uv run mcp dev sprout_mcp/server.py  # run with MCP inspector

Available Tools

11 tools
create_postB

Create a draft or scheduled post in Sprout Social.

Args:
    profile_ids: Comma-separated Sprout profile IDs to publish to.
    text: Post content/body text.
    scheduled_send_time: When to publish (ISO 8601). Leave empty to save as draft.
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idsYes
textYes
scheduled_send_timeNo
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
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 the tool can create drafts or scheduled posts, which implies mutation, but fails to disclose critical behavioral traits such as required permissions, rate limits, error handling, or what the output contains. This leaves significant gaps for an agent to understand the tool's behavior.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by a bulleted list of parameters with clear explanations. Every sentence earns its place by providing essential information without redundancy, making it efficient and well-structured.

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

Completeness3/5

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

Given the tool has an output schema (which reduces the need to describe return values) but no annotations and 4 parameters, the description is moderately complete. It covers parameter semantics well but lacks behavioral context (e.g., auth needs, side effects), leaving room for improvement in guiding an agent's understanding of the tool's full operation.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining all 4 parameters: it clarifies 'profile_ids' as comma-separated IDs, 'text' as content, 'scheduled_send_time' as ISO 8601 for scheduling or empty for drafts, and 'customer_id' with a default from an environment variable. This adds substantial meaning beyond the bare schema.

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 action ('Create a draft or scheduled post') and the resource ('in Sprout Social'), making the purpose evident. It distinguishes this as a creation tool among siblings that are mostly retrieval/list operations, though it doesn't explicitly contrast with specific alternatives.

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

Usage Guidelines3/5

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

The description implies usage for creating posts in Sprout Social, with a note about drafts vs. scheduled posts, but provides no explicit guidance on when to use this tool versus alternatives (e.g., no mention of sibling tools like 'get_publishing_post' for retrieval). The context is clear but lacks comparative guidance.

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

get_messagesA

Retrieve inbound inbox messages (Smart Inbox) with optional filtering.

This endpoint returns INBOUND messages only (mentions, DMs, comments).
For OUTBOUND post counts and performance metrics, use get_post_analytics instead.

Args:
    profile_ids: Comma-separated Sprout profile IDs.
    start_time: Start datetime (ISO 8601, e.g. '2024-01-01T00:00:00').
    end_time: End datetime (ISO 8601).
    tag_ids: Comma-separated tag IDs to filter by (optional).
    limit: Number of messages to return (default 50).
    page_cursor: Pagination cursor from a previous response (optional).
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idsYes
start_timeYes
end_timeYes
tag_idsNo
limitNo
page_cursorNo
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses the tool's read-only nature implicitly through 'retrieve' and specifies the data scope (inbound messages). However, it doesn't mention rate limits, authentication requirements, error conditions, or pagination behavior beyond cursor parameter existence. Some behavioral context is missing for a tool with 7 parameters.

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 and well-structured with purpose statement, usage guidance, and parameter documentation. The Args section is organized but could be more front-loaded with critical information. Every sentence adds value, though some parameter explanations could be more concise.

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

Completeness4/5

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

Given the tool's complexity (7 parameters, filtering capabilities) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers purpose, differentiation, and parameter semantics well. The main gap is insufficient behavioral context about rate limits, errors, or response structure details not covered by the output schema.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates well by providing semantic meaning for all 7 parameters in the Args section. It explains what each parameter represents (e.g., 'Comma-separated Sprout profile IDs', 'Start datetime (ISO 8601)'), includes format examples, and notes optional/default values. This adds significant value beyond the bare schema.

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

Purpose5/5

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

The description clearly states the tool's purpose with specific verbs ('retrieve inbound inbox messages') and resources ('Smart Inbox'), including scope details ('inbound messages only - mentions, DMs, comments'). It distinguishes itself from sibling get_post_analytics by specifying inbound vs outbound focus.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('for inbound messages only') and when to use an alternative ('for outbound post counts and performance metrics, use get_post_analytics instead'). This gives clear context for tool selection among siblings.

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

get_post_analyticsA

Get analytics metrics for individual published posts.

Post-level metrics use the 'lifetime.' prefix (e.g. 'lifetime.impressions').
Common metrics: lifetime.impressions, lifetime.reactions, lifetime.engagements,
                lifetime.clicks, lifetime.shares, lifetime.comments, lifetime.video_views.

Args:
    profile_ids: Comma-separated Sprout profile IDs.
    start_time: Start of period (ISO 8601, e.g. '2024-01-01T00:00:00').
    end_time: End of period (ISO 8601, e.g. '2024-01-31T23:59:59').
    metrics: Comma-separated metric names with lifetime. prefix.
    limit: Number of posts to return (default 50, max 100).
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idsYes
start_timeYes
end_timeYes
metricsNolifetime.impressions,lifetime.reactions,lifetime.engagements,lifetime.clicks
limitNo
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's function and parameter usage, but lacks details on permissions, rate limits, error conditions, or pagination behavior. The mention of default values and environment variable fallback adds some context.

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 well-structured with a clear purpose statement, metric examples, and a parameter breakdown. It is appropriately sized but could be slightly more concise by integrating the metric examples into the parameter description for metrics.

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

Completeness4/5

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

Given the tool's complexity (6 parameters, no annotations) and the presence of an output schema, the description is largely complete. It covers parameter semantics thoroughly and provides usage context, though additional behavioral details (e.g., error handling) would enhance completeness.

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

Parameters5/5

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

The description provides comprehensive parameter semantics beyond the input schema, which has 0% description coverage. It explains the purpose of each parameter (e.g., 'Comma-separated Sprout profile IDs'), format requirements (ISO 8601), naming conventions ('lifetime.' prefix), default values, and environment variable fallback for customer_id.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get analytics metrics for individual published posts.' It specifies the verb ('Get'), resource ('analytics metrics'), and scope ('individual published posts'), distinguishing it from sibling tools like get_profile_analytics (which likely focuses on profile-level metrics).

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

Usage Guidelines3/5

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

The description implies usage context by specifying 'individual published posts' and listing common metrics, but does not explicitly state when to use this tool versus alternatives like get_profile_analytics or other sibling tools. No guidance on prerequisites or exclusions is provided.

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

get_profile_analyticsA

Get analytics metrics aggregated by social profile.

Args:
    profile_ids: Comma-separated Sprout profile IDs.
    start_time: Start of period (ISO 8601, e.g. '2024-01-01T00:00:00').
    end_time: End of period (ISO 8601, e.g. '2024-01-31T23:59:59').
    metrics: Comma-separated metric names. Common options:
             impressions, engagements, net_follower_growth, engagement_rate,
             video_views, reactions, comments, shares, clicks.
    timezone: Timezone for the report (e.g. 'America/Chicago'). Default: UTC.
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idsYes
start_timeYes
end_timeYes
metricsNoimpressions,engagements,net_follower_growth
timezoneNoUTC
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the tool's function and parameters but lacks critical behavioral details such as whether this is a read-only operation, rate limits, authentication requirements, or error handling. The description doesn't compensate for the absence of annotations.

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 well-structured and appropriately sized, with a clear opening sentence followed by a parameter breakdown. Each parameter explanation is concise and adds value, though the list format could be slightly more front-loaded for immediate clarity.

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

Completeness4/5

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

Given the tool's complexity (6 parameters, no annotations) and the presence of an output schema, the description is mostly complete. It thoroughly documents parameters and their semantics, which is critical since the schema lacks descriptions. However, it misses behavioral context like rate limits or authentication, slightly reducing completeness.

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

Parameters5/5

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

The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains each parameter's purpose, format (e.g., 'comma-separated', 'ISO 8601'), provides examples for 'start_time' and 'end_time', lists common metric options with details, and notes defaults for 'timezone' and 'customer_id'. This fully compensates for the schema's lack of descriptions.

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

Purpose5/5

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

The description clearly states the specific action ('Get analytics metrics aggregated by social profile') with the resource ('social profile'), distinguishing it from siblings like 'get_post_analytics' which focuses on posts rather than profiles. The verb 'Get' combined with 'analytics metrics' and 'aggregated by social profile' provides precise purpose.

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?

No guidance is provided on when to use this tool versus alternatives like 'get_post_analytics' or other analytics-related tools. The description lists parameters but doesn't explain the tool's context or prerequisites, leaving the agent without usage direction.

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

get_publishing_postB

Retrieve a specific publishing post by ID.

Args:
    post_id: The publishing post ID to retrieve.
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYes
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a retrieval operation, implying it's likely read-only, but doesn't confirm this or describe other behavioral traits like error handling, authentication needs, rate limits, or what happens if the post ID doesn't exist. The description is minimal and lacks necessary context for safe use.

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

Conciseness5/5

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

The description is appropriately sized and front-loaded, with the core purpose stated first in a clear sentence. The parameter explanations are concise and directly relevant, with no wasted words or redundant information. The structure effectively communicates essential information efficiently.

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

Completeness3/5

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

Given the tool has an output schema (which handles return values) and no annotations, the description is moderately complete but has gaps. It covers the basic purpose and parameter semantics adequately, but lacks usage guidelines and behavioral transparency, which are important for a retrieval tool with sibling alternatives and potential authentication implications.

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

Parameters4/5

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

The description adds meaningful context for both parameters beyond what the schema provides. For 'post_id', it clarifies this is 'The publishing post ID to retrieve,' and for 'customer_id', it explains the default behavior ('Defaults to SPROUT_CUSTOMER_ID env var'). With 0% schema description coverage, this compensates well, though it doesn't cover format details like ID structure.

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 tool's purpose with a specific verb ('Retrieve') and resource ('a specific publishing post by ID'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_post_analytics' or 'create_post', which would require more specific language about what makes this retrieval unique.

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. For example, it doesn't explain when to choose 'get_publishing_post' over 'get_post_analytics' or 'get_messages', nor does it mention any prerequisites or contextual constraints for usage.

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

list_customersA

List all customers/accounts accessible with the current API token.

Returns customer IDs and names needed for other API calls.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool lists items 'accessible with the current API token', which hints at authentication scope, and mentions the return format ('customer IDs and names'). However, it doesn't cover potential behaviors like pagination, rate limits, or error handling, leaving gaps in transparency for a read operation.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose and followed by a brief note on returns. Every sentence adds value without waste, making it highly efficient and well-structured for quick comprehension.

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

Completeness4/5

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

Given the tool's low complexity (0 parameters, read-only operation) and the presence of an output schema (which handles return values), the description is mostly complete. It covers the purpose and basic usage context. However, it could be more robust by addressing sibling tool differentiation or behavioral aspects like data scope, slightly reducing completeness.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of inputs. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is applied as it compensates by not introducing unnecessary information, aligning with the zero-parameter context.

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 ('List') and resource ('customers/accounts'), making the purpose understandable. It specifies 'accessible with the current API token' which adds useful context, but it doesn't explicitly differentiate from sibling tools like 'list_users' or 'list_groups', preventing a perfect score.

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

Usage Guidelines3/5

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

The description implies usage by mentioning that returns are 'needed for other API calls', suggesting a prerequisite or preparatory role. However, it lacks explicit guidance on when to use this tool versus alternatives like 'list_users' or 'list_groups', and doesn't state any exclusions or specific contexts for application.

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

list_groupsB

List all profile groups for a customer.

Args:
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a listing operation, implying it's read-only, but doesn't specify permissions required, pagination behavior, rate limits, or what 'all' means in terms of scope. The description adds minimal behavioral context beyond the basic action.

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

Conciseness5/5

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

The description is efficiently structured with a clear purpose statement followed by parameter details in a labeled 'Args' section. Every sentence adds value, and there's no redundant or verbose content, making it easy to parse.

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

Completeness3/5

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

Given the tool's low complexity (one optional parameter) and the presence of an output schema, the description is minimally adequate. It covers the purpose and parameter semantics but lacks behavioral details like permissions or pagination, which would be helpful even with an output schema.

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

Parameters4/5

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

The description adds meaningful context for the single parameter: it explains that customer_id is a 'Sprout customer ID' and mentions a default from an environment variable. With 0% schema description coverage and only one parameter, this adequately compensates by providing practical usage details not in the schema.

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 tool's purpose: 'List all profile groups for a customer.' It specifies the verb ('List') and resource ('profile groups'), and distinguishes it from siblings like list_customers or list_profiles. However, it doesn't explicitly differentiate from similar listing tools beyond the resource type.

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. It doesn't mention prerequisites, exclusions, or compare it to sibling tools like list_profiles or list_teams, leaving the agent to infer usage context solely from the tool name and description.

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

list_profilesB

List all social profiles for a customer.

Args:
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states it's a list operation (implied read-only) but doesn't mention pagination, rate limits, authentication needs, or what the output contains. This leaves significant behavioral gaps for a tool with an output schema.

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 brief and front-loaded with the core purpose. The parameter explanation is concise but necessary. No wasted sentences, though the structure could be slightly improved by integrating the parameter note more seamlessly.

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

Completeness3/5

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

For a simple list tool with one parameter and an output schema, the description covers the basics but lacks context about sibling differentiation and behavioral details. The presence of an output schema reduces the need to describe return values, but more usage guidance would enhance completeness.

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

Parameters4/5

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

The description adds meaningful context for the single parameter by explaining that 'customer_id' is a 'Sprout customer ID' and defaults to an environment variable. Since schema description coverage is 0%, this compensates well, though it doesn't fully document format or validation rules.

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 ('List') and resource ('all social profiles for a customer'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_customers' or 'list_users', which prevents a perfect score.

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 like 'list_customers' or 'get_profile_analytics'. It mentions a default environment variable but doesn't explain usage contexts or prerequisites, leaving the agent with minimal direction.

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

list_tagsB

List all message tags for a customer.

Args:
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
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 of behavioral disclosure. It mentions that 'customer_id' defaults to an environment variable, which adds some context about parameter handling. However, it lacks details on permissions, rate limits, pagination, or what the output looks like (though an output schema exists, the description doesn't hint at behavioral traits like read-only nature or potential side effects).

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 and front-loaded, starting with the core purpose in the first sentence and following with parameter details. There is no wasted text, and the structure is clear, though it could be slightly more polished (e.g., by integrating the parameter explanation more seamlessly).

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

Completeness3/5

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

Given the tool's low complexity (1 parameter, no annotations, but with an output schema), the description is minimally adequate. It covers the purpose and parameter semantics but lacks usage guidelines and behavioral context. The existence of an output schema means the description doesn't need to explain return values, but it should still address when to use the tool and any behavioral traits.

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

Parameters4/5

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

The description adds meaningful semantics for the single parameter 'customer_id', explaining it as a 'Sprout customer ID' and noting it defaults to an environment variable. With schema description coverage at 0% (the schema only provides a title and type), this compensates well by clarifying the parameter's purpose and default behavior, making it highly valuable beyond the basic schema.

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 'List' and the resource 'message tags for a customer', making the purpose specific and understandable. However, it does not explicitly differentiate this tool from sibling tools like 'list_customers' or 'list_groups', which would require more context about what 'message tags' are versus other listable entities.

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. It does not mention prerequisites, such as needing a customer ID, or compare it to other list tools (e.g., 'list_customers' for customers vs. 'list_tags' for tags). The only implicit context is the customer focus, but no explicit usage rules are given.

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

list_teamsB

List all teams for a customer.

Args:
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a list operation (implying read-only) but doesn't mention pagination, rate limits, authentication requirements, sorting, filtering capabilities, or what happens when no customer_id is provided. The default behavior is mentioned but not fully explained.

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 concise with two sentences that each serve a clear purpose. The first states the tool's function, and the second explains the parameter. There's no unnecessary information, though the structure could be slightly improved by front-loading the most critical information more explicitly.

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

Completeness3/5

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

Given that this is a simple list operation with one optional parameter and an output schema exists, the description is minimally adequate. However, with no annotations and incomplete behavioral disclosure, there are gaps in understanding authentication, pagination, and error handling that would help an agent use this tool effectively.

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

Parameters4/5

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

The description adds significant value beyond the input schema, which has 0% description coverage. It explains that 'customer_id' is a 'Sprout customer ID' and mentions the default behavior of using the SPROUT_CUSTOMER_ID environment variable. This provides crucial context that the schema alone doesn't convey.

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 ('List') and resource ('all teams for a customer'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'list_customers', 'list_groups', or 'list_users', which all follow similar list patterns for different resources.

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. It doesn't mention any prerequisites, constraints, or relationships with sibling tools like 'list_customers' (which might provide the customer_id needed here) or 'list_groups' (which might list a different type of organizational unit).

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

list_usersB

List all active users for a customer.

Args:
    customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
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 states the tool lists 'active users,' which implies a read-only operation, but doesn't disclose behavioral traits like pagination, rate limits, authentication needs, or what 'active' means. For a tool with zero annotation coverage, this is a significant gap in transparency.

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 and front-loaded with the core purpose in the first sentence. The parameter explanation is concise and adds necessary detail without waste. However, the structure could be slightly improved by integrating the parameter info more seamlessly.

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

Completeness3/5

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

Given the tool has an output schema (which handles return values), 1 parameter with low schema coverage, and no annotations, the description is moderately complete. It covers the purpose and parameter semantics adequately but lacks behavioral context and usage guidelines, leaving gaps for an AI agent.

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

Parameters4/5

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

The description adds meaningful context beyond the input schema. The schema has 0% description coverage, but the description explains that 'customer_id' is a 'Sprout customer ID' and defaults to an environment variable. This compensates well for the low schema coverage, though it doesn't detail format or validation rules.

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 tool's purpose: 'List all active users for a customer.' It specifies the verb ('List') and resource ('active users'), and distinguishes it from siblings like list_customers or list_groups. However, it doesn't explicitly differentiate from other user-related tools (none exist in siblings), so it's not a perfect 5.

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. It doesn't mention any prerequisites, exclusions, or comparisons to sibling tools like list_customers or list_profiles. The only context is the customer scope, but this is implied by the parameter, not explicit usage advice.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 11 tool updatesv0.1.0
    • First observedcreate_post
    • First observedget_messages
    • First observedget_post_analytics
    • First observedget_profile_analytics
    • First observedget_publishing_post
    • First observedlist_customers
    • First observedlist_groups
    • First observedlist_profiles
    • First observedlist_tags
    • First observedlist_teams
    • First observedlist_users

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. The tools cover separate domains like publishing (create_post, get_publishing_post), analytics (get_post_analytics, get_profile_analytics), inbox management (get_messages), and listing resources (list_* functions). Descriptions explicitly differentiate similar tools, such as get_messages for inbound messages versus get_post_analytics for outbound metrics.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case throughout. The naming is highly predictable: 'create_post', 'get_messages', 'list_profiles', etc. There are no deviations in style or convention, making the set easy to navigate and understand at a glance.

Tool Count5/5

With 11 tools, the count is well-scoped for a social media management server. Each tool earns its place by covering essential operations like publishing, analytics, and resource listing. This number is typical for such a domain (3-15 tools), providing comprehensive functionality without being overwhelming.

Completeness4/5

The tool surface is nearly complete for social media management, covering key areas like post creation, retrieval, analytics, and resource listing. Minor gaps exist, such as no update_post or delete_post tools for post lifecycle management, but agents can likely work around this by creating new posts or using existing tools for basic operations.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for the Post for Me API, enabling publishing, scheduling, editing, deleting, and analyzing social media posts across 9 platforms from any MCP client.
    27
    47
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A full social media management MCP server enabling post, read, schedule, and analyze across Facebook, Instagram, LinkedIn, X/Twitter, Pinterest, and YouTube from any MCP-compatible AI client.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server to manage social media accounts from AI assistants, enabling post creation, scheduling, publishing, and media uploads across multiple platforms.
    13
    193
    1
    MIT

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/jmeserve/sprout-mcp'

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