
Get daily profile performance analytics for one or more profiles over a date range. Returns a comprehensive metric set by default (followers, impressions, engagements, reactions, clicks, video views, etc.); pass metrics to narrow it. Provide customerprofileids (from listprofiles) and startdate/end_date (YYYY-MM-DD, max 1 year). Metrics vary by network.
List sent posts with lifetime performance metrics for one or more profiles over a created-time window. Returns a comprehensive default metric set plus post details; pass metrics for gated ones like lifetime.netsentimentscore. Provide customerprofileids (from listprofiles) and startdate/end_date (date or ISO datetime). Also the only way to fetch individual posts.
List inbox messages (comments, mentions, DMs, etc.) for a profile. Requires customerprofileid (from listprofiles). Defaults to the last 7 days when no date range or messageid is given. To filter by date pass startdate AND enddate together (max 1-week window); passing only one errors. Optional messageid, tagid, posttype. Forward-only pagination: pass pageinfo.cursor back as 'cursor'.
List Care cases. Filter by a date range (pass startdate AND enddate together, max 1-week window; passing only one errors) or look up a single caseid, plus optional queueid, status, priority, type, assignedto, or tagid. Forward-only pagination: pass page_info.cursor back as 'cursor' for the next page.
List individual messages (mentions) inside a Listening topic over a date range. Provide topicid (from listtopics) and startdate/enddate (YYYY-MM-DD or ISO datetime). Sprout requires a network filter on this endpoint; pass networks (e.g. ['twitter']) if you get a filter error. Returns a default set of message fields; override with fields.
Get aggregated metrics for a Listening topic over a date range (volume, authors, sentiment, engagements, etc.), optionally bucketed by dimensions (e.g. createdtime.by(day), network, sentiment). Defaults to volume and totaluniqueauthors; pass metrics for more. Provide topicid (from listtopics) and startdate/end_date. Returns all results in one response.
List the Sprout Social accounts (customers) your credentials can access, with their customerid and name. Most credentials map to one account. Use a customerid from here only if you manage multiple accounts.
List the social profiles connected to the account (Twitter/X, Facebook, Instagram, LinkedIn, etc.) with their customerprofileid, network, and handle. Use the customerprofileid for analytics, messages, and posting.
List the groups in the account (group_id and name). Groups organize profiles and are needed when creating posts.
List the users in the account (id, name, email).
List the teams in the account (id, name, description).
List the Care case queues in the account (id, name, description, associated teams).
List the Listening topics in the account (id, name, type, description).
List the message tags (labels and campaigns) in the account, including archived ones (tag_id, text, type, active).
Upload an image or video to Sprout from a public URL and get a mediaid to attach to a post. contenttype (e.g. image/jpeg) is inferred from the URL extension if omitted. Tip: createpost can take mediaurls directly, so you usually don't need this tool.
Create a DRAFT post on one or more profiles. Provide customerprofileids (from listprofiles) and text and/or mediaurls (public image/video URLs, uploaded and attached automatically). Optionally schedule via scheduledtimes (ISO 8601 UTC) and apply tagids. group_id is auto-resolved for single-group accounts. Note: the API only creates drafts, and some networks (e.g. Instagram) require media.
Get a publishing (draft) post by its publishingpostid (returned from create_post). Returns the post's text, media, schedule, and metadata.
Validate Sprout Social credentials by fetching the accessible account. Returns success status and a message. Use this to confirm a connection works.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}A Sprout Social MCP is a server that exposes Sprout Social's publishing, engagement, and analytics functionality to your agents as tools. Your agents can use them to draft and schedule posts, pull engagement metrics, read inbox messages, generate analytics reports, and more.
Sprout Social offers an official MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.
The use cases naturally depend on the agent you've built, but here are a few common ones:
Here are some of the most commonly used tools:
create_draft_post: creates a draft post for one or more profiles. Useful for agents that turn approved copy into ready-to-review contentschedule_post: schedules a post to publish at a set time. Call this when an agent programs a content calendarget_analytics: returns engagement, reach, and impression metrics over a date range. Use this when an agent builds a performance reportlist_messages: returns messages from the social inbox filtered by profile or status. Good for workflows that triage inbound conversationslist_profiles: returns the connected social profiles and their details. Helpful when an agent needs to target the right account before publishingpublish_post: publishes a post immediately to the selected profiles. Useful for agents that handle time-sensitive, pre-approved contentA few things make Merge Agent Handler's Sprout Social MCP server the stronger choice over building one or using an alternative:
You can take the following steps:
1. Create or log into your Merge Agent Handler account.
2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.
3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.
4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Sprout Social and complete the auth flow. Merge stores and manages the credentials going forward.
5. Open a Claude Code session and start querying Sprout Social data directly. The first time you use a Sprout Social tool, a Magic Link may appear to complete connector authentication.
If you want to connect Merge Agent Handler's Sprout Social MCP with internal or customer-facing agentic products, you can follow the steps in our docs.
Yes, Merge for Workforce lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to Sprout Social without bypassing IT governance.
Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Merge and gets individual credentials tied to their identity. A social manager can ask their AI to schedule a post, pull last week's engagement, or triage the inbox, all within the permissions IT has defined.
IT also provisions access by role or group via SCIM. A social media manager, for example, gets Sprout Social access to schedule posts and pull engagement metrics, Canva to source creative, and Slack to route approvals; while a support agent gets Sprout Social access to triage inbound messages, Zendesk to open tickets, and Salesforce to check customer history.
Every tool call an employee's AI makes to Sprout Social is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now