MCP Tool Reference
All 23 tools exposed by mcp.exportcomments.com and the local exportcomments-mcp stdio server. Tools work identically across both transports.
For setup instructions and the OAuth flow, see the MCP Server overview.
Exports
export_comments
Create a new export job. Supports 33+ platforms (Instagram, YouTube, TikTok, Facebook, Twitter/X, Reddit, Trustpilot, Amazon, etc.). Returns a job GUID for tracking. Use wait=true to poll until completion in a single call (up to 10 minutes).
urlrequiredstringThe URL to export comments/reviews from repliesbooleanInclude replies to comments limitnumberMaximum number of items to export min_datestringMinimum date filter (ISO 8601, e.g. 2024-01-15) max_datestringMaximum date filter (ISO 8601, e.g. 2024-06-30) vpnstringUse VPN with a specified country (e.g. "Norway") cookiesobjectCookies for authenticated access (e.g. {"sessionid": "abc"}) tweetsbooleanInclude tweets (Twitter/X only) followersbooleanExport followers list (Twitter/X only) followingbooleanExport following list (Twitter/X only) likesbooleanExport likes data sharesbooleanInclude shares data advancedbooleanEnable advanced export features facebook_adsbooleanInclude Facebook ads data waitbooleanWait for completion before returning (polls every 5s, 10-min timeout) realtimebooleanUse WebSocket for real-time updates (implies wait=true)
check_export
Check the status of an export job by its GUID. Returns full job details: status, progress, download URLs, error info. Job statuses: queueing → progress → done | error.
guidrequiredstringThe job GUID returned by export_comments waitbooleanWait for export to complete before returning realtimebooleanUse WebSocket for real-time updates (implies wait=true)
list_exports
List the authenticated account's export jobs with pagination.
pagenumberPage number (default: 1) limitnumberItems per page (default: 20)
download_export
Download the raw JSON data for a completed export. Returns the actual exported comments/reviews as structured JSON. The job must have status done.
guidrequiredstringThe job GUID to download data for
Discovery
detect_platform
Detect which platform a URL belongs to and return supported options. Use before export_comments to understand what options are available for a URL.
urlrequiredstringThe URL to detect the platform for
list_platforms
List all 33+ supported platforms with URL patterns, export options, and example URLs. No parameters.
Account
get_my_profile
Authenticated account profile: email, plan tier, account ID, registration date. No parameters.
get_my_quota
Current usage vs. allowance: requests today / this month, comments exported, concurrent exports in flight. No parameters.
get_my_limits
Plan tier limits (Premium / Business): daily request cap, rate limit, concurrent exports, max comments per export, webhook count. No parameters.
Random Comment Picker (Giveaways)
pick_random_winners
Pick N random winners from a completed export. Downloads the export's JSON payload, optionally filters by @-mention, #hashtag, or substring, dedupes by commenter username, then picks N uniformly using a Fisher-Yates shuffle.
Returns the winner list with usernames, comment text, and permalinks — suitable for FTC-compliant public verification.
guidrequiredstringCompleted export GUID (status=done) countnumberNumber of winners (1-100, default 1) require_mentionstringOnly consider comments mentioning this @-handle (e.g. "@brand") require_hashtagstringOnly consider comments containing this #hashtag require_textstringSubstring the comment must contain (case-insensitive) dedupe_by_userbooleanLimit each commenter to one entry (default true)
Webhooks
list_webhooks
List the account's webhook subscriptions: event, URL, enabled state, last delivery status. No parameters.
create_webhook
Subscribe a URL to a webhook event. Valid events: export.created, export.finished, export.failed, export.requeued. The URL receives POSTs with a JSON body (signed via X-Webhook-Signature for verification — see webhooks docs).
eventrequiredstringEvent name (e.g. "export.finished") urlrequiredstringHTTPS endpoint that will receive the event POSTs
update_webhook
Change the event or target URL of an existing webhook.
uuidrequiredstringWebhook UUID from list_webhooks eventstringNew event name urlstringNew target URL
delete_webhook
Permanently remove a webhook subscription. Use toggle_webhook to disable without deleting.
uuidrequiredstringWebhook UUID from list_webhooks
toggle_webhook
Enable or disable a webhook (30-second cooldown between toggles).
uuidrequiredstringWebhook UUID from list_webhooks
test_webhook
Fire a test event at the configured URL to verify delivery. Returns the receiving server's response.
uuidrequiredstringWebhook UUID from list_webhooks
Scheduled Exports
list_schedules
List scheduled (recurring) export jobs for this account. No parameters.
create_schedule
Create a recurring export. Pass either a cron expression or a friendly frequency. options accepts the same fields as export_comments (replies, limit, vpn, cookies, etc.).
urlrequiredstringURL to export on each run cronstringCron expression in UTC (e.g. "0 9 * * 1" = Mondays 09:00 UTC) frequencystringOne of: hourly, daily, weekly, monthly optionsobjectSame options object as export_comments
At least one of cron or frequency is required.
update_schedule
Edit an existing schedule's URL, cron, frequency, or options.
uuidrequiredstringSchedule UUID from list_schedules urlstringNew URL cronstringNew cron expression frequencystringNew frequency name optionsobjectNew options object (replaces existing)
delete_schedule
Permanently remove a scheduled export. Use pause_schedule to suspend without deleting.
uuidrequiredstringSchedule UUID from list_schedules
run_schedule
Trigger a scheduled export to run immediately (in addition to its normal cadence).
uuidrequiredstringSchedule UUID from list_schedules
pause_schedule
Suspend a scheduled export. No new runs until resume_schedule is called.
uuidrequiredstringSchedule UUID from list_schedules
resume_schedule
Resume a paused scheduled export.
uuidrequiredstringSchedule UUID from list_schedules
Response format
Every tool returns a structured JSON envelope:
{"ok": true,"data": { /* tool-specific payload */ }}
Errors:
{"ok": false,"error": "Human-readable message","error_code": "MACHINE_READABLE_CODE","detail": "Optional extra context"}
The envelope is uniform across tools so an AI can branch on ok without parsing tool-specific shapes. Use wait=true on export_comments / check_export and you'll often get the entire workflow back in one tool call.
