Agent-native marketing platform: create campaigns, submit proofs, review submissions.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create and launch a new campaign for the calling business. Returns the campaign id, name, and dashboard URL. The campaign goes live immediately — no separate publish step.
Customer-facing campaign name
Action IDs the campaign accepts (e.g. ['ig_st'] for an Instagram Story Tag).
The business owning this campaign. Must match the API key's business.
Discount denomination: 'pct' for percentage, 'dol' for dollars off.
Discount amount. Capped at 100 for pct, 10000 for dol.
Optional internal description
Days until the campaign auto-expires. Default 60.
Optional cap on total completions. Null = no cap.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create and launch a new campaign for the calling business. Returns the campaign id, name, and dashboard URL. The campaign goes live immediately — no separate publish step.
| Argument | Type | Description |
|---|---|---|
| name* | string | Customer-facing campaign name |
| actions* | array | Action IDs the campaign accepts (e.g. ['ig_st'] for an Instagram Story Tag). |
| businessId* | string | The business owning this campaign. Must match the API key's business. |
| description | string | Optional internal description |
| discountType* | string | Discount denomination: 'pct' for percentage, 'dol' for dollars off. |
| discountValue* | number | Discount amount. Capped at 100 for pct, 10000 for dol. |
| expiresInDays | integer | Days until the campaign auto-expires. Default 60. |
| maxCompletions | integer | null | Optional cap on total completions. Null = no cap. |
{
"type": "object",
"required": [
"businessId",
"name",
"actions",
"discountValue",
"discountType"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"description": "Customer-facing campaign name"
},
"actions": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Action IDs the campaign accepts (e.g. ['ig_st'] for an Instagram Story Tag)."
},
"businessId": {
"type": "string",
"description": "The business owning this campaign. Must match the API key's business."
},
"description": {
"type": "string",
"description": "Optional internal description"
},
"discountType": {
"enum": [
"pct",
"dol"
],
"type": "string",
"description": "Discount denomination: 'pct' for percentage, 'dol' for dollars off."
},
"discountValue": {
"type": "number",
"minimum": 0.01,
"description": "Discount amount. Capped at 100 for pct, 10000 for dol."
},
"expiresInDays": {
"type": "integer",
"maximum": 365,
"minimum": 1,
"description": "Days until the campaign auto-expires. Default 60."
},
"maxCompletions": {
"type": [
"integer",
"null"
],
"description": "Optional cap on total completions. Null = no cap."
}
}
}Get industry benchmarks (engagement rate, conversion rate, etc.) for a business type.
| Argument | Type | Description |
|---|---|---|
| businessType | string | Industry name or slug (e.g. 'restaurants', 'coffee-shops'). Omit for the full catalog. |
{
"type": "object",
"properties": {
"businessType": {
"type": "string",
"description": "Industry name or slug (e.g. 'restaurants', 'coffee-shops'). Omit for the full catalog."
}
}
}Get summary stats for a single campaign — total submissions, approved count, conversion rate, perks issued, and time-to-first-submission. Useful for an agent reporting back to its user.
| Argument | Type | Description |
|---|---|---|
| campaignId* | string | Campaign to fetch stats for. |
{
"type": "object",
"required": [
"campaignId"
],
"properties": {
"campaignId": {
"type": "string",
"description": "Campaign to fetch stats for."
}
}
}Get the market-rate pricing for a marketing action. Returns USD value and recommended perk type/value.
| Argument | Type | Description |
|---|---|---|
| actionId | string | Action ID (e.g. ig_post, google_review) |
| platformId | string | Platform ID (e.g. instagram, google) |
| businessType | string | Business type modifier (default: general) |
{
"type": "object",
"properties": {
"actionId": {
"type": "string",
"description": "Action ID (e.g. ig_post, google_review)"
},
"platformId": {
"type": "string",
"description": "Platform ID (e.g. instagram, google)"
},
"businessType": {
"type": "string",
"description": "Business type modifier (default: general)"
}
}
}List the 125 marketing actions available on Social Perks. Filterable by platform, type, and effort.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| type | string | |
| perPage | integer | |
| maxEffort | integer | |
| platformId | string |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1
},
"type": {
"enum": [
"content",
"review",
"engage",
"share",
"referral"
],
"type": "string"
},
"perPage": {
"type": "integer",
"default": 50
},
"maxEffort": {
"type": "integer",
"maximum": 5,
"minimum": 0
},
"platformId": {
"type": "string"
}
}
}List campaigns. Requires auth — returns the caller's campaigns.
| Argument | Type | Description |
|---|---|---|
| status | string |
{
"type": "object",
"properties": {
"status": {
"enum": [
"draft",
"active",
"paused",
"completed"
],
"type": "string"
}
}
}List submissions for a business or campaign, filterable by state (pending/approved/rejected). Returns paginated results.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| state | string | |
| perPage | integer | |
| businessId | string | |
| campaignId | string |
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1
},
"state": {
"enum": [
"pending",
"approved",
"rejected"
],
"type": "string"
},
"perPage": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"businessId": {
"type": "string"
},
"campaignId": {
"type": "string"
}
}
}Approve or reject a submission. Approving releases the perk; rejecting requires a reason. Use this when the business chooses manual review over auto-verification.
| Argument | Type | Description |
|---|---|---|
| reason | string | Required when decision='reject'. 1-500 chars. |
| decision* | string | Approve releases the perk. Reject explains why the proof was insufficient. |
| submissionId* | string | Submission id from a prior submitProof call. |
{
"type": "object",
"required": [
"submissionId",
"decision"
],
"properties": {
"reason": {
"type": "string",
"maxLength": 500,
"description": "Required when decision='reject'. 1-500 chars."
},
"decision": {
"enum": [
"approve",
"reject"
],
"type": "string",
"description": "Approve releases the perk. Reject explains why the proof was insufficient."
},
"submissionId": {
"type": "string",
"description": "Submission id from a prior submitProof call."
}
}
}Search influencers by platform and follower count.
| Argument | Type | Description |
|---|---|---|
| platform | string | |
| minFollowers | integer |
{
"type": "object",
"properties": {
"platform": {
"type": "string"
},
"minFollowers": {
"type": "integer"
}
}
}Submit proof of completion for a campaign action — a public URL to a post, a screenshot, a video, or platform-verified data. The submission enters a review queue (or auto-approves depending on the campaign's verification mode).
| Argument | Type | Description |
|---|---|---|
| actionId* | string | Specific action being completed (must be allowed by the campaign). |
| metadata | object | Optional bag of context (poster handle, post timestamp, etc.). |
| proofUrl* | string | Public URL of the proof. For url-type submissions, the platform verifier will fetch this. |
| proofType* | string | How the proof was captured. 'url' triggers automated verification. |
| campaignId* | string | Campaign the submission applies to. |
{
"type": "object",
"required": [
"campaignId",
"actionId",
"proofUrl",
"proofType"
],
"properties": {
"actionId": {
"type": "string",
"description": "Specific action being completed (must be allowed by the campaign)."
},
"metadata": {
"type": "object",
"description": "Optional bag of context (poster handle, post timestamp, etc.).",
"additionalProperties": true
},
"proofUrl": {
"type": "string",
"maxLength": 2048,
"description": "Public URL of the proof. For url-type submissions, the platform verifier will fetch this."
},
"proofType": {
"enum": [
"screenshot",
"url",
"video",
"api_verified"
],
"type": "string",
"description": "How the proof was captured. 'url' triggers automated verification."
},
"campaignId": {
"type": "string",
"description": "Campaign the submission applies to."
}
}
}