If you already use Claude, Cursor, or another AI assistant, ExportComments now plugs in directly — your assistant can run exports, pick giveaway winners, and schedule recurring jobs without you ever leaving the chat.

What is MCP and why use it for ExportComments

The Model Context Protocol (MCP) is an open standard that lets AI assistants talk to external tools in a controlled, auditable way. Think of it like a USB-C port for AI: any compatible client (Claude Desktop, Claude on the web, Cursor, Windsurf, custom agents…) can plug into any MCP server and gain new capabilities instantly.

The ExportComments MCP server exposes the full account surface — exports, status checks, downloads, the giveaway picker, webhooks, scheduled exports — as tools your assistant can call on its own. Instead of pasting URLs into a browser and waiting for an export to finish, you simply tell the assistant what you want:

  • "Export the last 5 000 comments from this Facebook post and tell me the top 3 complaints." — Claude calls export_comments, polls check_export, fetches download_export, and summarises the result itself.
  • "Pick 5 random winners from yesterday's giveaway who mentioned @mybrand." — Claude calls export_comments, then pick_random_winners with your filters.
  • "Every Monday at 09:00 UTC, export the new Trustpilot reviews and POST them to https://my-app.com/webhook." — Claude wires up a webhook and a scheduled export.

Everything still runs on your existing ExportComments account — same plan, same quotas, same export-history page. MCP is just a new front door.

Two ways to install

Pick whichever fits your workflow. Both expose the same 23 tools; the difference is where the MCP server runs.

  • Hosted at mcp.exportcomments.com (recommended). Nothing to install. Your MCP client connects over HTTPS, walks an OAuth sign-in flow in your browser, and stores the access token automatically. Best for Claude on the web, Cursor, Windsurf, and any client that supports remote MCP servers.
  • Self-installed exportcomments-cli. A Node.js MCP server that runs locally over stdio. Authenticates via your existing API token or an OAuth JWT. Best for Claude Desktop and automation scripts.

Path 1: Hosted MCP (no install)

This is the easiest path for Claude Desktop, Cursor, and Claude on the web. Point the client at the URL and let the OAuth flow handle the rest.

Claude Desktop / Cursor — edit your claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json) or mcp_servers setting:

{
  "mcpServers": {
    "exportcomments": {
      "url": "https://mcp.exportcomments.com/mcp"
    }
  }
}

Restart the client. On the first tool call, it'll open exportcomments.com in your browser, ask you to sign in, click Authorize, and you're done. The access token is stored inside your client; you'll never see or copy it.

Claude on the web — go to Settings → Connections → Add custom MCP, paste https://mcp.exportcomments.com/mcp, and walk the OAuth flow.

If you'd rather use a long-lived API token instead of OAuth, swap the URL config for a headers variant:

{
  "mcpServers": {
    "exportcomments": {
      "url": "https://mcp.exportcomments.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN_HERE"
      }
    }
  }
}

Path 2: exportcomments-cli (self-installed stdio)

If your client can spawn a local process (Claude Desktop does this) and you'd rather keep everything on your machine, install the CLI:

npm install -g exportcomments-cli

Then in claude_desktop_config.json:

{
  "mcpServers": {
    "exportcomments": {
      "command": "npx",
      "args": ["-y", "exportcomments-cli"],
      "env": {
        "EXPORTCOMMENTS_API_TOKEN": "your-token-here"
      }
    }
  }
}

For Claude Code (CLI):

claude mcp add exportcomments -- npx -y exportcomments-cli
export EXPORTCOMMENTS_API_TOKEN="your-token-here"

Grab your API token from app.exportcomments.com/user/api. The same token works for the REST API and the CLI.

The full tool catalog

Both the hosted MCP and exportcomments-cli expose 23 tools across six categories:

  • Exportsexport_comments, check_export, list_exports, download_export. Create a new export job, poll it, list past jobs, and download the result as raw JSON.
  • Discoverydetect_platform, list_platforms. Validate a user-supplied URL against the supported-platform catalog before creating an export.
  • Accountget_my_profile, get_my_quota, get_my_limits. Tier, daily-request quota, concurrent slots, rate-limit state — useful before kicking off expensive exports.
  • Pickerpick_random_winners. FTC-compliant random selection from a completed export, with optional filters (require_mention, require_hashtag, require_text) and dedupe-by-user.
  • Webhookslist_webhooks, create_webhook, update_webhook, delete_webhook, toggle_webhook, test_webhook. Subscribe a URL to events like export.finished or export.failed; webhooks are signed via HMAC-SHA256 for verification.
  • Scheduleslist_schedules, create_schedule, update_schedule, delete_schedule, run_schedule, pause_schedule, resume_schedule. Recurring exports on a cron or friendly frequency (hourly, daily, weekly, monthly).

Full parameter reference: docs.exportcomments.com/cli/mcp-tools.

Example workflows

1. Extract Facebook complaints in one prompt

"Use exportcomments to extract the last 2 000 comments from https://www.facebook.com/some-page/posts/1234567890, then tell me the top 5 complaints with example quotes."

Claude will:

  1. Call detect_platform to confirm the URL is a supported Facebook post.
  2. Call export_comments with url, limit=2000, wait=true — single round-trip, no polling code.
  3. Pull download_export to retrieve the comment JSON.
  4. Cluster the complaints itself and return a clean Markdown answer with 5 complaint themes and quotes.

2. Pick giveaway winners

"From the giveaway post at https://www.instagram.com/p/ABC123/, pick 5 random winners who mentioned @mybrand and used the #giveaway tag. Skip duplicates."
  1. Claude calls export_comments on the URL with wait=true to grab every comment.
  2. Then pick_random_winners with count=5, require_mention="@mybrand", require_hashtag="#giveaway", dedupe_by_user=true.
  3. You get a winner list with usernames, comment text, and permalinks — copy-paste-ready for an FTC-compliant public draw video.

3. Recurring weekly Trustpilot export → webhook

"Every Monday at 09:00 UTC, export new Trustpilot reviews for example.com and POST them to https://my-app.com/hooks/trustpilot."
  1. Claude calls create_webhook with event="export.finished", url="https://my-app.com/hooks/trustpilot".
  2. Then create_schedule with url="https://www.trustpilot.com/review/example.com", cron="0 9 * * 1", options.replies=true.
  3. Every Monday, the schedule fires, the export runs, and your endpoint receives a signed POST with the new reviews. No app code on your side beyond receiving the webhook.

Troubleshooting

Unauthorized: missing or invalid Bearer token

You're hitting the hosted MCP without auth. Either complete the OAuth flow (most clients open the browser automatically on the first call) or include Authorization: Bearer <your-token> in your client config.

OAuth access token expired after an hour

OAuth access tokens currently last 60 minutes. Most clients re-run the OAuth flow automatically when they see a 401. If yours doesn't, sign in again from the client's connector settings, or fall back to a long-lived API token from app.exportcomments.com/user/api.

npx exportcomments-cli can't find Node on Claude Desktop

Claude Desktop sometimes can't see Node installed via Homebrew or nvm because its PATH is restricted. Point the command at the absolute Node path instead, e.g. /usr/local/bin/node, with args: ["/path/to/node_modules/exportcomments-cli/dist/mcp.js"].

Visiting mcp.exportcomments.com in a browser redirects to the homepage

That's intentional — mcp.exportcomments.com is a JSON-RPC endpoint, not a website. The MCP path is /mcp (POST). Direct browser visits are bounced to exportcomments.com so you don't get a confusing JSON error page.

Tool returns "Invalid event 'export.completed'"

The valid webhook events are export.created, export.finished, export.failed, and export.requeued. export.finished is the one you want for "the export is done".

Plan limits and pricing

The MCP server runs on your existing ExportComments account. Plan caps apply: Free 100 results / Personal 5 000 / Premium 50 000 / Business 250 000 per export. See pricing.

FAQ

  • Does using the MCP cost extra?
    No. The MCP just lets your AI assistant call the same REST API your account already uses. You pay only for your ExportComments subscription; the assistant runs on your existing Claude / Cursor subscription.
  • Which AI assistants are supported?
    Anything that speaks MCP: Claude Desktop, Claude on the web (custom connectors), Cursor, Windsurf, Claude Code, and any custom agent built on the MCP SDK.
  • Is the OAuth flow safe?
    Yes — standard OAuth 2.0 with PKCE. You sign in at exportcomments.com, approve the scope, and the assistant receives a short-lived bearer token. The token is scoped to your account and revocable.
  • Can I limit which tools the assistant sees?
    Yes — set the EXPORTCOMMENTS_TOOLS env var to a comma-separated list of categories (exports, account, discovery, picker, webhooks, schedules) or individual tool names. Anything not listed is hidden from the assistant.
  • Will my exports show up in my account history?
    Yes. Every export the assistant creates appears in your normal export-history view, can be downloaded as Excel / CSV / JSON, and counts against your usual plan quotas.
  • What about private posts or platforms that need cookies?
    Pass them through the same way you would via the web UI — export_comments accepts a cookies object. See the tool reference for the full parameter list.
  • Where do I report a bug or request a tool?
    Email support@exportcomments.com, or open an issue on github.com/exportcomments/exportcomments-cli.

That's it — point your assistant at the hosted endpoint, ask in plain English, and let it drive the exports for you. Full reference: docs.exportcomments.com/cli/mcp.