sprout-mcp
Enables retrieval of Reddit messages via Sprout Social's Listening topics, allowing for the monitoring and analysis of social conversations and mentions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sprout-mcp Show me the engagement analytics for my social profiles"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 all customers/accounts accessible with your API token |
| List all social profiles for a customer |
| List all message tags |
| List all profile groups |
| List all active users |
| List all teams |
Analytics
Tool | Description |
| Get aggregated metrics by profile (impressions, engagements, follower growth, etc.) |
| Get metrics for individual published posts — also use this for post counts |
Listening
Tool | Description |
| List all Listening topics and their IDs |
| Fetch messages from a Listening topic, filterable by network (Reddit, Twitter, etc.) |
Smart Inbox
Tool | Description |
| Retrieve inbound inbox messages (mentions, DMs, comments) |
Publishing
Tool | Description |
| List published, scheduled, or draft posts |
| Create a draft or scheduled 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: so-easy-mcp
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 syncConfigure
Copy .env.example to .env and fill in your credentials:
cp .env.example .envSPROUT_API_TOKEN=your_api_token_here
SPROUT_CUSTOMER_ID=your_customer_id_hereSPROUT_API_TOKEN — Generate at Sprout Social → Settings → API → OAuth tokens
SPROUT_CUSTOMER_ID — Found in your Sprout Social account URL or via the
list_customerstool
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 inspectorAvailable Tools
11 toolscreate_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.
Inputs: profile_ids (required), text (required), scheduled_send_time, customer_id. Returns: result
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.
Inputs: profile_ids (required), start_time (required), end_time (required), tag_ids, +3 more. Returns: result
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.
Inputs: profile_ids (required), start_time (required), end_time (required), metrics, +2 more. Returns: result
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.
Inputs: profile_ids (required), start_time (required), end_time (required), metrics, +2 more. Returns: result
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.
Inputs: post_id (required), customer_id. Returns: result
list_customersA
List all customers/accounts accessible with the current API token.
Returns customer IDs and names needed for other API calls.
Inputs: no named parameters. Returns: result
list_groupsB
List all profile groups for a customer.
Args:
customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
Inputs: customer_id. Returns: result
list_profilesB
List all social profiles for a customer.
Args:
customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
Inputs: customer_id. Returns: result
list_tagsB
List all message tags for a customer.
Args:
customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
Inputs: customer_id. Returns: result
list_teamsB
List all teams for a customer.
Args:
customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
Inputs: customer_id. Returns: result
list_usersB
List all active users for a customer.
Args:
customer_id: Sprout customer ID. Defaults to SPROUT_CUSTOMER_ID env var.
Inputs: customer_id. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
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.
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.
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.
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
Related MCP Connectors
Agent-first social media publishing, scheduling, analytics, and unified inbox API + 16-tool MCP server across 18 social platforms (X, LinkedIn, Instagram, YouTube, TikTok, Threads, Bluesky, Reddit, Telegram, Discord, Mastodon, Facebook, Pinterest).
PostHero MCP server — schedule and publish social media posts from any MCP-compatible AI tool
Draft and schedule social media posts on your connected channels from Claude or any MCP client.
Hosted MCP server for AI agents to post to LinkedIn profiles and X and upload to YouTube.
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server that enables AI assistants to access Sprout Social data including analytics, publishing, messages, and listening through a standardized interface.188 npmMIT
- AlicenseNot gradedqualityCmaintenanceA 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
- AlicenseAqualityCmaintenanceMCP server to manage social media accounts from AI assistants, enabling post creation, scheduling, publishing, and media uploads across multiple platforms.1311 npm1MIT
- FlicenseAqualityDmaintenanceRead-only MCP server for the Sprout Social public API, exposing profile and post analytics as tools with raw JSON passthrough.5-