sprout-mcp
Click on "Install 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-mcplist my 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
Read-only MCP server over the Sprout Social public API. Exposes profile and post analytics as tools, returning the API's own JSON unmodified so downstream inject skills do the shaping.
No write tools. Nothing here can create, schedule, edit, or delete a post.
Tools
Tool | Method | Endpoint |
| GET |
|
| GET |
|
| POST |
|
| POST |
|
| — | local catalog, no API call |
list_profiles is the entry point: every analytics call is scoped by
customer_profile_id, and that is the only place those IDs come from.
list_metrics was added beyond the original build list because Sprout's metric
keys are network-specific and not guessable (impressions on Instagram is
labelled "Views"; TikTok profile counters are *_total; a handful require
Premium Analytics). It serves a catalog generated from the published docs so
calls don't fail on invented key names. Drop it if you'd rather keep the
surface at four tools.
Related MCP server: meta-mcp
Setup
python -m venv .venv && .venv/Scripts/python.exe -m pip install -e .Set two environment variables (see .env.example):
SPROUT_API_TOKEN— generate in Sprout under Settings > Global Features > APISPROUT_CUSTOMER_ID— optional; if unset the server calls/v1/metadata/clientand infers it, which only works when the token sees exactly one customer
Claude Desktop
Copy claude_desktop_config.example.json into
%APPDATA%\Claude\claude_desktop_config.json, fill in the token, and restart
Claude Desktop. The command path already points at this checkout's venv.
Behavior worth knowing
Raw passthrough. Responses are returned exactly as Sprout sent them. The one
structural change is pagination: with all_pages=true (default) the data
arrays from each page are concatenated and paging is annotated with
pages_fetched, pages_available, and truncated. Individual records are
never touched. Set all_pages=false for a single page.
Rates are not returned by the API. Sprout's engagement rate, engagements,
and similar figures are calculated metrics — the API returns only the raw
counts they're derived from. list_metrics includes the formulas Sprout uses
under calculated_profile_metrics / calculated_post_metrics. Compute them
downstream; don't expect them in a response.
Rate limits. Sprout allows 60 requests/minute and 250,000/month. The client
holds itself under 60/min with a sliding window, so long paginated pulls
throttle rather than 429. On a 429 or 5xx it retries up to 5 times with
exponential backoff, honoring Retry-After. 4xx responses are not retried —
they're returned as ERROR: ... including the status code and Sprout's own
response body, so a bad metric key tells you which key.
Documented request caps, enforced client-side before a call is spent:
max 100 profiles per request; max 1-year reporting_period for profile
analytics. Profile analytics pages at 1000 records, post analytics at 50.
Date formats differ by endpoint and are validated:
get_profile_metrics takes YYYY-MM-DD (end exclusive);
get_post_performance takes YYYY-MM-DDTHH:MM:SS (both inclusive).
Tests
.venv/Scripts/python.exe test_server.py41 offline checks — tool registration, request-body and filter-syntax
construction, input validation, pagination merging and capping, 429 retry, 4xx
error surfacing, customer-ID discovery, and metric-catalog integrity. httpx is
stubbed with MockTransport, so no live API calls and no token needed.
.venv/Scripts/python.exe stdio_check.pyLaunches the server as a real MCP stdio subprocess and lists its tools.
Regenerating the metric catalog
sprout_mcp/metrics.json was scraped from the docs on the date in its
_retrieved field. Sprout deprecates metrics periodically (Meta dropped several
Facebook impression metrics in 2025–2026), so re-scrape if keys start failing.
The catalog is reference data only — it never gates a request, so an out-of-date
entry can't block a valid call.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/shauryasa0/Sprout-Social-API---MCP-Connection'
If you have feedback or need assistance with the MCP directory API, please join our Discord server