Serveur MCP

Social Perks

io.github.benzatkulak-collab/socialperks
Entreprise et opérations Marketing et publicité Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Manages marketing campaigns involving influencer actions, proof submissions, reviews, perks, campaign statistics, and industry benchmarks.

createCampaign
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.
Schéma d’entrée
{'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.'}}}
getBenchmarks
Get industry benchmarks (engagement rate, conversion rate, etc.) for a business type.
Schéma d’entrée
{'type': 'object', 'properties': {'businessType': {'type': 'string', 'description': "Industry name or slug (e.g. 'restaurants', 'coffee-shops'). Omit for the full catalog."}}}
getCampaignStats
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.
Schéma d’entrée
{'type': 'object', 'required': ['campaignId'], 'properties': {'campaignId': {'type': 'string', 'description': 'Campaign to fetch stats for.'}}}
getPricing
Get the market-rate pricing for a marketing action. Returns USD value and recommended perk type/value.
Schéma d’entrée
{'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)'}}}
listActions
List the 125 marketing actions available on Social Perks. Filterable by platform, type, and effort.
Schéma d’entrée
{'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'}}}
listCampaigns
List campaigns. Requires auth — returns the caller's campaigns.
Schéma d’entrée
{'type': 'object', 'properties': {'status': {'enum': ['draft', 'active', 'paused', 'completed'], 'type': 'string'}}}
listSubmissions
List submissions for a business or campaign, filterable by state (pending/approved/rejected). Returns paginated results.
Schéma d’entrée
{'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'}}}
reviewSubmission
Approve or reject a submission. Approving releases the perk; rejecting requires a reason. Use this when the business chooses manual review over auto-verification.
Schéma d’entrée
{'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.'}}}
searchInfluencers
Search influencers by platform and follower count.
Schéma d’entrée
{'type': 'object', 'properties': {'platform': {'type': 'string'}, 'minFollowers': {'type': 'integer'}}}
submitProof
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).
Schéma d’entrée
{'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.'}}}
Ajouté
getCampaignStats
17 September 2026 12:40
Ajouté
listSubmissions
17 September 2026 12:40
Ajouté
reviewSubmission
17 September 2026 12:40
Ajouté
submitProof
17 September 2026 12:40
Ajouté
createCampaign
17 September 2026 12:40
Ajouté
searchInfluencers
17 September 2026 12:40
Ajouté
listCampaigns
17 September 2026 12:40
Ajouté
getBenchmarks
17 September 2026 12:40
Ajouté
listActions
17 September 2026 12:40
Ajouté
getPricing
17 September 2026 12:40