Social Perks

Agent-native marketing platform: create campaigns, submit proofs, review submissions.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
86%
이름 품질
100%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~1,223토큰 (도구 정의)
~1.0 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 0.96%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "socialperks": {
      "url": "https://socialperks.app/api/mcp"
    }
  }
}

원격 엔드포인트

https://socialperks.app/api/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (10)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢getPricing(actionId, platformId, businessType)

Get the market-rate pricing for a marketing action. Returns USD value and recommended perk type/value.

입력 스키마

{
  "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(platformId, type, maxEffort, page, perPage)

List the 125 marketing actions available on Social Perks. Filterable by platform, type, and effort.

입력 스키마

{
  "type": "object",
  "properties": {
    "platformId": {
      "type": "string"
    },
    "type": {
      "type": "string",
      "enum": [
        "content",
        "review",
        "engage",
        "share",
        "referral"
      ]
    },
    "maxEffort": {
      "type": "integer",
      "minimum": 0,
      "maximum": 5
    },
    "page": {
      "type": "integer",
      "default": 1
    },
    "perPage": {
      "type": "integer",
      "default": 50
    }
  }
}
🟢getBenchmarks(businessType)

Get industry benchmarks (engagement rate, conversion rate, etc.) for a business type.

입력 스키마

{
  "type": "object",
  "properties": {
    "businessType": {
      "type": "string",
      "description": "Industry name or slug (e.g. 'restaurants', 'coffee-shops'). Omit for the full catalog."
    }
  }
}
🟢listCampaigns(status)

List campaigns. Requires auth — returns the caller's campaigns.

입력 스키마

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "active",
        "paused",
        "completed"
      ]
    }
  }
}
🟢searchInfluencers(platform, minFollowers)

Search influencers by platform and follower count.

입력 스키마

{
  "type": "object",
  "properties": {
    "platform": {
      "type": "string"
    },
    "minFollowers": {
      "type": "integer"
    }
  }
}
🟡createCampaign(businessId, name, description, actions, discountValue, ...)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "businessId": {
      "type": "string",
      "description": "The business owning this campaign. Must match the API key's business."
    },
    "name": {
      "type": "string",
      "description": "Customer-facing campaign name",
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "description": "Optional internal description"
    },
    "actions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Action IDs the campaign accepts (e.g. ['ig_st'] for an Instagram Story Tag)."
    },
    "discountValue": {
      "type": "number",
      "minimum": 0.01,
      "description": "Discount amount. Capped at 100 for pct, 10000 for dol."
    },
    "discountType": {
      "type": "string",
      "enum": [
        "pct",
        "dol"
      ],
      "description": "Discount denomination: 'pct' for percentage, 'dol' for dollars off."
    },
    "maxCompletions": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Optional cap on total completions. Null = no cap."
    },
    "expiresInDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 365,
      "description": "Days until the campaign auto-expires. Default 60."
    }
  },
  "required": [
    "businessId",
    "name",
    "actions",
    "discountValue",
    "discountType"
  ]
}
🟡submitProof(campaignId, actionId, proofUrl, proofType, metadata)

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).

입력 스키마

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign the submission applies to."
    },
    "actionId": {
      "type": "string",
      "description": "Specific action being completed (must be allowed by the campaign)."
    },
    "proofUrl": {
      "type": "string",
      "description": "Public URL of the proof. For url-type submissions, the platform verifier will fetch this.",
      "maxLength": 2048
    },
    "proofType": {
      "type": "string",
      "enum": [
        "screenshot",
        "url",
        "video",
        "api_verified"
      ],
      "description": "How the proof was captured. 'url' triggers automated verification."
    },
    "metadata": {
      "type": "object",
      "description": "Optional bag of context (poster handle, post timestamp, etc.).",
      "additionalProperties": true
    }
  },
  "required": [
    "campaignId",
    "actionId",
    "proofUrl",
    "proofType"
  ]
}
⚪reviewSubmission(submissionId, decision, reason)

Approve or reject a submission. Approving releases the perk; rejecting requires a reason. Use this when the business chooses manual review over auto-verification.

입력 스키마

{
  "type": "object",
  "properties": {
    "submissionId": {
      "type": "string",
      "description": "Submission id from a prior submitProof call."
    },
    "decision": {
      "type": "string",
      "enum": [
        "approve",
        "reject"
      ],
      "description": "Approve releases the perk. Reject explains why the proof was insufficient."
    },
    "reason": {
      "type": "string",
      "description": "Required when decision='reject'. 1-500 chars.",
      "maxLength": 500
    }
  },
  "required": [
    "submissionId",
    "decision"
  ]
}
🟢listSubmissions(businessId, campaignId, state, page, perPage)

List submissions for a business or campaign, filterable by state (pending/approved/rejected). Returns paginated results.

입력 스키마

{
  "type": "object",
  "properties": {
    "businessId": {
      "type": "string"
    },
    "campaignId": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "enum": [
        "pending",
        "approved",
        "rejected"
      ]
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "perPage": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  }
}
🟢getCampaignStats(campaignId)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "description": "Campaign to fetch stats for."
    }
  },
  "required": [
    "campaignId"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 10개
검증됨버전이 기록되지 않음도구 10개
검증됨버전이 기록되지 않음도구 10개