Repository files navigation

ExportComments CLI & MCP Server

Command-line tool and MCP server for the ExportComments.com API. Export comments and reviews from 40+ social media and review platforms.

Designed for AI agent usage - includes an MCP server for native AI integration (Claude, Cursor, Windsurf) and a CLI with structured JSON output.

Installation

npm install -g exportcomments-cli

Or use directly with npx:

npx exportcomments-cli export https://www.instagram.com/p/ABC123/

Authentication

Get your API token at app.exportcomments.com/user/api.

# Set as environment variable (recommended)export EXPORTCOMMENTS_API_TOKEN="your-token-here"# Or pass with each command
exportcomments --token "your-token-here"export https://...

Commands

export - Create an export job

# Basic export
exportcomments export https://www.instagram.com/p/ABC123/
# With options
exportcomments export https://www.youtube.com/watch?v=dQw4w9WgXcQ --replies --limit 500
# Wait for completion and download
exportcomments export https://www.amazon.com/dp/B08N5WRWNW --wait --download
# Get raw JSON data
exportcomments export https://www.trustpilot.com/review/example.com --wait --download-json
# Filter by date range
exportcomments export https://www.reddit.com/r/sub/comments/abc123/ --min-date 2024-01-01 --max-date 2024-06-30
# Twitter/X specific
exportcomments export https://x.com/username --tweets --followers --limit 1000

Options:

FlagDescription
--repliesInclude replies to comments
--limit <n>Maximum number of items to export
--min-date <date>Start date filter (ISO 8601)
--max-date <date>End date filter (ISO 8601)
--vpn <country>Use VPN with specified country
--cookies <json>Cookies as JSON string
--tweetsInclude tweets (Twitter/X)
--followersExport followers (Twitter/X)
--followingExport following list (Twitter/X)
--likesExport likes
--sharesInclude shares data
--advancedEnable advanced export features
--facebook-adsInclude Facebook ads data
--waitWait for completion (polls every 5s)
--wait-interval <ms>Custom polling interval
--wait-timeout <ms>Custom timeout (default: 600000)
--downloadDownload file when done (implies --wait)
--download-jsonDownload raw JSON when done (implies --wait)

status - Check job status

exportcomments status <guid># Wait for completion
exportcomments status <guid> --wait

list - List export jobs

exportcomments list
exportcomments list --page 2 --limit 10

download - Download export file

# Download formatted file (Excel/CSV)
exportcomments download <guid># Download raw JSON data
exportcomments download <guid> --json

platforms - List supported platforms

# List all platforms
exportcomments platforms
# Detect platform from URL
exportcomments platforms --detect "https://www.youtube.com/watch?v=abc"# Get specific platform info
exportcomments platforms --id instagram

ping - Check API connectivity

exportcomments ping

Output Format

All commands output JSON with a consistent envelope:

// Success
{
"ok": true,
"data": { ... }
}
// Error
{
"ok": false,
"error": "Human-readable error message",
"error_code": "MACHINE_READABLE_CODE",
"detail": "Additional context"
}

Supported Platforms

CategoryPlatforms
Social MediaInstagram, YouTube, TikTok, Facebook, Twitter/X, LinkedIn, Reddit, Threads, VK
VideoYouTube, Vimeo, Twitch
MessagingDiscord
E-commerceAmazon, AliExpress, Shopee, Lazada, Flipkart, Etsy, Walmart, Best Buy, eBay
ReviewsTrustpilot, Yelp, Google Reviews, TripAdvisor, IMDb
App StoresApple App Store, Google Play Store
OtherDisqus, Product Hunt, Airbnb, Steam, Change.org

Job Statuses

StatusDescription
queueingJob is queued for processing
progressJob is being processed
doneJob completed successfully
errorJob failed with an error

MCP Server (for AI Agents)

The MCP server gives AI assistants (Claude, Cursor, Windsurf, etc.) native access to ExportComments tools.

Setup with Claude Desktop

Add to your claude_desktop_config.json:

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

The package ships two binaries — exportcomments-cli (CLI) and exportcomments-mcp (MCP stdio server). The --package … exportcomments-mcp form tells npx to install exportcomments-cli but execute the MCP binary inside it, so the process stays alive and serves MCP over stdio.

Setup with Claude Code

claude mcp add exportcomments -- npx -y --package exportcomments-cli exportcomments-mcp

Available MCP Tools

ToolDescription
export_commentsCreate an export job for a URL (supports wait param)
check_exportCheck job status by GUID
list_exportsList all export jobs with pagination
download_exportDownload a completed export's data — JSON for Premium/Business, CSV for Free/Personal (pass format to override)
detect_platformIdentify platform from a URL and show available options
list_platformsList all 33+ supported platforms

Run Directly

EXPORTCOMMENTS_API_TOKEN="your-token" exportcomments-mcp

CLI Usage

The CLI outputs structured JSON for scripting and automation.

Example AI workflow

# 1. Check what platform a URL belongs to
exportcomments platforms --detect "https://www.instagram.com/p/ABC123/"# 2. Create an export and wait for it
exportcomments export"https://www.instagram.com/p/ABC123/" --replies --wait
# 3. If the export succeeded, download the raw data
exportcomments download <guid> --json

Development

git clone https://github.com/exportcomments/exportcomments-cli.git
cd exportcomments-cli
npm install
npm run build
# Run in development
npx tsx src/cli.ts --help

License

MIT

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ExportComments CLI & MCP Server

Command-line tool and MCP server for the ExportComments.com API. Export comments and reviews from 40+ social media and review platforms.

Designed for AI agent usage - includes an MCP server for native AI integration (Claude, Cursor, Windsurf) and a CLI with structured JSON output.

Installation

npm install -g exportcomments-cli

Or use directly with npx:

npx exportcomments-cli export https://www.instagram.com/p/ABC123/

Authentication

Get your API token at app.exportcomments.com/user/api.

# Set as environment variable (recommended)export EXPORTCOMMENTS_API_TOKEN="your-token-here"# Or pass with each command
exportcomments --token "your-token-here"export https://...

Commands

export - Create an export job

# Basic export
exportcomments export https://www.instagram.com/p/ABC123/
# With options
exportcomments export https://www.youtube.com/watch?v=dQw4w9WgXcQ --replies --limit 500
# Wait for completion and download
exportcomments export https://www.amazon.com/dp/B08N5WRWNW --wait --download
# Get raw JSON data
exportcomments export https://www.trustpilot.com/review/example.com --wait --download-json
# Filter by date range
exportcomments export https://www.reddit.com/r/sub/comments/abc123/ --min-date 2024-01-01 --max-date 2024-06-30
# Twitter/X specific
exportcomments export https://x.com/username --tweets --followers --limit 1000

Options:

FlagDescription
--repliesInclude replies to comments
--limit <n>Maximum number of items to export
--min-date <date>Start date filter (ISO 8601)
--max-date <date>End date filter (ISO 8601)
--vpn <country>Use VPN with specified country
--cookies <json>Cookies as JSON string
--tweetsInclude tweets (Twitter/X)
--followersExport followers (Twitter/X)
--followingExport following list (Twitter/X)
--likesExport likes
--sharesInclude shares data
--advancedEnable advanced export features
--facebook-adsInclude Facebook ads data
--waitWait for completion (polls every 5s)
--wait-interval <ms>Custom polling interval
--wait-timeout <ms>Custom timeout (default: 600000)
--downloadDownload file when done (implies --wait)
--download-jsonDownload raw JSON when done (implies --wait)

status - Check job status

exportcomments status <guid># Wait for completion
exportcomments status <guid> --wait

list - List export jobs

exportcomments list
exportcomments list --page 2 --limit 10

download - Download export file

# Download formatted file (Excel/CSV)
exportcomments download <guid># Download raw JSON data
exportcomments download <guid> --json

platforms - List supported platforms

# List all platforms
exportcomments platforms
# Detect platform from URL
exportcomments platforms --detect "https://www.youtube.com/watch?v=abc"# Get specific platform info
exportcomments platforms --id instagram

ping - Check API connectivity

exportcomments ping

Output Format

All commands output JSON with a consistent envelope:

// Success
{
"ok": true,
"data": { ... }
}
// Error
{
"ok": false,
"error": "Human-readable error message",
"error_code": "MACHINE_READABLE_CODE",
"detail": "Additional context"
}

Supported Platforms

CategoryPlatforms
Social MediaInstagram, YouTube, TikTok, Facebook, Twitter/X, LinkedIn, Reddit, Threads, VK
VideoYouTube, Vimeo, Twitch
MessagingDiscord
E-commerceAmazon, AliExpress, Shopee, Lazada, Flipkart, Etsy, Walmart, Best Buy, eBay
ReviewsTrustpilot, Yelp, Google Reviews, TripAdvisor, IMDb
App StoresApple App Store, Google Play Store
OtherDisqus, Product Hunt, Airbnb, Steam, Change.org

Job Statuses

StatusDescription
queueingJob is queued for processing
progressJob is being processed
doneJob completed successfully
errorJob failed with an error

MCP Server (for AI Agents)

The MCP server gives AI assistants (Claude, Cursor, Windsurf, etc.) native access to ExportComments tools.

Setup with Claude Desktop

Add to your claude_desktop_config.json:

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

The package ships two binaries — exportcomments-cli (CLI) and exportcomments-mcp (MCP stdio server). The --package … exportcomments-mcp form tells npx to install exportcomments-cli but execute the MCP binary inside it, so the process stays alive and serves MCP over stdio.

Setup with Claude Code

claude mcp add exportcomments -- npx -y --package exportcomments-cli exportcomments-mcp

Available MCP Tools

ToolDescription
export_commentsCreate an export job for a URL (supports wait param)
check_exportCheck job status by GUID
list_exportsList all export jobs with pagination
download_exportDownload a completed export's data — JSON for Premium/Business, CSV for Free/Personal (pass format to override)
detect_platformIdentify platform from a URL and show available options
list_platformsList all 33+ supported platforms

Run Directly

EXPORTCOMMENTS_API_TOKEN="your-token" exportcomments-mcp

CLI Usage

The CLI outputs structured JSON for scripting and automation.

Example AI workflow

# 1. Check what platform a URL belongs to
exportcomments platforms --detect "https://www.instagram.com/p/ABC123/"# 2. Create an export and wait for it
exportcomments export"https://www.instagram.com/p/ABC123/" --replies --wait
# 3. If the export succeeded, download the raw data
exportcomments download <guid> --json

Development

git clone https://github.com/exportcomments/exportcomments-cli.git
cd exportcomments-cli
npm install
npm run build
# Run in development
npx tsx src/cli.ts --help

License

MIT

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ExportComments CLI & MCP Server

Command-line tool and MCP server for the ExportComments.com API. Export comments and reviews from 40+ social media and review platforms.

Designed for AI agent usage - includes an MCP server for native AI integration (Claude, Cursor, Windsurf) and a CLI with structured JSON output.

Installation

npm install -g exportcomments-cli

Or use directly with npx:

npx exportcomments-cli export https://www.instagram.com/p/ABC123/

Authentication

Get your API token at app.exportcomments.com/user/api.

# Set as environment variable (recommended)export EXPORTCOMMENTS_API_TOKEN="your-token-here"# Or pass with each command
exportcomments --token "your-token-here"export https://...

Commands

export - Create an export job

# Basic export
exportcomments export https://www.instagram.com/p/ABC123/
# With options
exportcomments export https://www.youtube.com/watch?v=dQw4w9WgXcQ --replies --limit 500
# Wait for completion and download
exportcomments export https://www.amazon.com/dp/B08N5WRWNW --wait --download
# Get raw JSON data
exportcomments export https://www.trustpilot.com/review/example.com --wait --download-json
# Filter by date range
exportcomments export https://www.reddit.com/r/sub/comments/abc123/ --min-date 2024-01-01 --max-date 2024-06-30
# Twitter/X specific
exportcomments export https://x.com/username --tweets --followers --limit 1000

Options:

FlagDescription
--repliesInclude replies to comments
--limit <n>Maximum number of items to export
--min-date <date>Start date filter (ISO 8601)
--max-date <date>End date filter (ISO 8601)
--vpn <country>Use VPN with specified country
--cookies <json>Cookies as JSON string
--tweetsInclude tweets (Twitter/X)
--followersExport followers (Twitter/X)
--followingExport following list (Twitter/X)
--likesExport likes
--sharesInclude shares data
--advancedEnable advanced export features
--facebook-adsInclude Facebook ads data
--waitWait for completion (polls every 5s)
--wait-interval <ms>Custom polling interval
--wait-timeout <ms>Custom timeout (default: 600000)
--downloadDownload file when done (implies --wait)
--download-jsonDownload raw JSON when done (implies --wait)

status - Check job status

exportcomments status <guid># Wait for completion
exportcomments status <guid> --wait

list - List export jobs

exportcomments list
exportcomments list --page 2 --limit 10

download - Download export file

# Download formatted file (Excel/CSV)
exportcomments download <guid># Download raw JSON data
exportcomments download <guid> --json

platforms - List supported platforms

# List all platforms
exportcomments platforms
# Detect platform from URL
exportcomments platforms --detect "https://www.youtube.com/watch?v=abc"# Get specific platform info
exportcomments platforms --id instagram

ping - Check API connectivity

exportcomments ping

Output Format

All commands output JSON with a consistent envelope:

// Success
{
"ok": true,
"data": { ... }
}
// Error
{
"ok": false,
"error": "Human-readable error message",
"error_code": "MACHINE_READABLE_CODE",
"detail": "Additional context"
}

Supported Platforms

CategoryPlatforms
Social MediaInstagram, YouTube, TikTok, Facebook, Twitter/X, LinkedIn, Reddit, Threads, VK
VideoYouTube, Vimeo, Twitch
MessagingDiscord
E-commerceAmazon, AliExpress, Shopee, Lazada, Flipkart, Etsy, Walmart, Best Buy, eBay
ReviewsTrustpilot, Yelp, Google Reviews, TripAdvisor, IMDb
App StoresApple App Store, Google Play Store
OtherDisqus, Product Hunt, Airbnb, Steam, Change.org

Job Statuses

StatusDescription
queueingJob is queued for processing
progressJob is being processed
doneJob completed successfully
errorJob failed with an error

MCP Server (for AI Agents)

The MCP server gives AI assistants (Claude, Cursor, Windsurf, etc.) native access to ExportComments tools.

Setup with Claude Desktop

Add to your claude_desktop_config.json:

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

The package ships two binaries — exportcomments-cli (CLI) and exportcomments-mcp (MCP stdio server). The --package … exportcomments-mcp form tells npx to install exportcomments-cli but execute the MCP binary inside it, so the process stays alive and serves MCP over stdio.

Setup with Claude Code

claude mcp add exportcomments -- npx -y --package exportcomments-cli exportcomments-mcp

Available MCP Tools

ToolDescription
export_commentsCreate an export job for a URL (supports wait param)
check_exportCheck job status by GUID
list_exportsList all export jobs with pagination
download_exportDownload a completed export's data — JSON for Premium/Business, CSV for Free/Personal (pass format to override)
detect_platformIdentify platform from a URL and show available options
list_platformsList all 33+ supported platforms

Run Directly

EXPORTCOMMENTS_API_TOKEN="your-token" exportcomments-mcp

CLI Usage

The CLI outputs structured JSON for scripting and automation.

Example AI workflow

# 1. Check what platform a URL belongs to
exportcomments platforms --detect "https://www.instagram.com/p/ABC123/"# 2. Create an export and wait for it
exportcomments export"https://www.instagram.com/p/ABC123/" --replies --wait
# 3. If the export succeeded, download the raw data
exportcomments download <guid> --json

Development

git clone https://github.com/exportcomments/exportcomments-cli.git
cd exportcomments-cli
npm install
npm run build
# Run in development
npx tsx src/cli.ts --help

License

MIT

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ExportComments CLI & MCP Server

Command-line tool and MCP server for the ExportComments.com API. Export comments and reviews from 40+ social media and review platforms.

Designed for AI agent usage - includes an MCP server for native AI integration (Claude, Cursor, Windsurf) and a CLI with structured JSON output.

Installation

npm install -g exportcomments-cli

Or use directly with npx:

npx exportcomments-cli export https://www.instagram.com/p/ABC123/

Authentication

Get your API token at app.exportcomments.com/user/api.

# Set as environment variable (recommended)export EXPORTCOMMENTS_API_TOKEN="your-token-here"# Or pass with each command
exportcomments --token "your-token-here"export https://...

Commands

export - Create an export job

# Basic export
exportcomments export https://www.instagram.com/p/ABC123/
# With options
exportcomments export https://www.youtube.com/watch?v=dQw4w9WgXcQ --replies --limit 500
# Wait for completion and download
exportcomments export https://www.amazon.com/dp/B08N5WRWNW --wait --download
# Get raw JSON data
exportcomments export https://www.trustpilot.com/review/example.com --wait --download-json
# Filter by date range
exportcomments export https://www.reddit.com/r/sub/comments/abc123/ --min-date 2024-01-01 --max-date 2024-06-30
# Twitter/X specific
exportcomments export https://x.com/username --tweets --followers --limit 1000

Options:

FlagDescription
--repliesInclude replies to comments
--limit <n>Maximum number of items to export
--min-date <date>Start date filter (ISO 8601)
--max-date <date>End date filter (ISO 8601)
--vpn <country>Use VPN with specified country
--cookies <json>Cookies as JSON string
--tweetsInclude tweets (Twitter/X)
--followersExport followers (Twitter/X)
--followingExport following list (Twitter/X)
--likesExport likes
--sharesInclude shares data
--advancedEnable advanced export features
--facebook-adsInclude Facebook ads data
--waitWait for completion (polls every 5s)
--wait-interval <ms>Custom polling interval
--wait-timeout <ms>Custom timeout (default: 600000)
--downloadDownload file when done (implies --wait)
--download-jsonDownload raw JSON when done (implies --wait)

status - Check job status

exportcomments status <guid># Wait for completion
exportcomments status <guid> --wait

list - List export jobs

exportcomments list
exportcomments list --page 2 --limit 10

download - Download export file

# Download formatted file (Excel/CSV)
exportcomments download <guid># Download raw JSON data
exportcomments download <guid> --json

platforms - List supported platforms

# List all platforms
exportcomments platforms
# Detect platform from URL
exportcomments platforms --detect "https://www.youtube.com/watch?v=abc"# Get specific platform info
exportcomments platforms --id instagram

ping - Check API connectivity

exportcomments ping

Output Format

All commands output JSON with a consistent envelope:

// Success
{
"ok": true,
"data": { ... }
}
// Error
{
"ok": false,
"error": "Human-readable error message",
"error_code": "MACHINE_READABLE_CODE",
"detail": "Additional context"
}

Supported Platforms

CategoryPlatforms
Social MediaInstagram, YouTube, TikTok, Facebook, Twitter/X, LinkedIn, Reddit, Threads, VK
VideoYouTube, Vimeo, Twitch
MessagingDiscord
E-commerceAmazon, AliExpress, Shopee, Lazada, Flipkart, Etsy, Walmart, Best Buy, eBay
ReviewsTrustpilot, Yelp, Google Reviews, TripAdvisor, IMDb
App StoresApple App Store, Google Play Store
OtherDisqus, Product Hunt, Airbnb, Steam, Change.org

Job Statuses

StatusDescription
queueingJob is queued for processing
progressJob is being processed
doneJob completed successfully
errorJob failed with an error

MCP Server (for AI Agents)

The MCP server gives AI assistants (Claude, Cursor, Windsurf, etc.) native access to ExportComments tools.

Setup with Claude Desktop

Add to your claude_desktop_config.json:

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

The package ships two binaries — exportcomments-cli (CLI) and exportcomments-mcp (MCP stdio server). The --package … exportcomments-mcp form tells npx to install exportcomments-cli but execute the MCP binary inside it, so the process stays alive and serves MCP over stdio.

Setup with Claude Code

claude mcp add exportcomments -- npx -y --package exportcomments-cli exportcomments-mcp

Available MCP Tools

ToolDescription
export_commentsCreate an export job for a URL (supports wait param)
check_exportCheck job status by GUID
list_exportsList all export jobs with pagination
download_exportDownload a completed export's data — JSON for Premium/Business, CSV for Free/Personal (pass format to override)
detect_platformIdentify platform from a URL and show available options
list_platformsList all 33+ supported platforms

Run Directly

EXPORTCOMMENTS_API_TOKEN="your-token" exportcomments-mcp

CLI Usage

The CLI outputs structured JSON for scripting and automation.

Example AI workflow

# 1. Check what platform a URL belongs to
exportcomments platforms --detect "https://www.instagram.com/p/ABC123/"# 2. Create an export and wait for it
exportcomments export"https://www.instagram.com/p/ABC123/" --replies --wait
# 3. If the export succeeded, download the raw data
exportcomments download <guid> --json

Development

git clone https://github.com/exportcomments/exportcomments-cli.git
cd exportcomments-cli
npm install
npm run build
# Run in development
npx tsx src/cli.ts --help

License

MIT

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ExportComments CLI & MCP Server

Command-line tool and MCP server for the ExportComments.com API. Export comments and reviews from 40+ social media and review platforms.

Designed for AI agent usage - includes an MCP server for native AI integration (Claude, Cursor, Windsurf) and a CLI with structured JSON output.

Installation

npm install -g exportcomments-cli

Or use directly with npx:

npx exportcomments-cli export https://www.instagram.com/p/ABC123/

Authentication

Get your API token at app.exportcomments.com/user/api.

# Set as environment variable (recommended)export EXPORTCOMMENTS_API_TOKEN="your-token-here"# Or pass with each command
exportcomments --token "your-token-here"export https://...

Commands

export - Create an export job

# Basic export
exportcomments export https://www.instagram.com/p/ABC123/
# With options
exportcomments export https://www.youtube.com/watch?v=dQw4w9WgXcQ --replies --limit 500
# Wait for completion and download
exportcomments export https://www.amazon.com/dp/B08N5WRWNW --wait --download
# Get raw JSON data
exportcomments export https://www.trustpilot.com/review/example.com --wait --download-json
# Filter by date range
exportcomments export https://www.reddit.com/r/sub/comments/abc123/ --min-date 2024-01-01 --max-date 2024-06-30
# Twitter/X specific
exportcomments export https://x.com/username --tweets --followers --limit 1000

Options:

FlagDescription
--repliesInclude replies to comments
--limit <n>Maximum number of items to export
--min-date <date>Start date filter (ISO 8601)
--max-date <date>End date filter (ISO 8601)
--vpn <country>Use VPN with specified country
--cookies <json>Cookies as JSON string
--tweetsInclude tweets (Twitter/X)
--followersExport followers (Twitter/X)
--followingExport following list (Twitter/X)
--likesExport likes
--sharesInclude shares data
--advancedEnable advanced export features
--facebook-adsInclude Facebook ads data
--waitWait for completion (polls every 5s)
--wait-interval <ms>Custom polling interval
--wait-timeout <ms>Custom timeout (default: 600000)
--downloadDownload file when done (implies --wait)
--download-jsonDownload raw JSON when done (implies --wait)

status - Check job status

exportcomments status <guid># Wait for completion
exportcomments status <guid> --wait

list - List export jobs

exportcomments list
exportcomments list --page 2 --limit 10

download - Download export file

# Download formatted file (Excel/CSV)
exportcomments download <guid># Download raw JSON data
exportcomments download <guid> --json

platforms - List supported platforms

# List all platforms
exportcomments platforms
# Detect platform from URL
exportcomments platforms --detect "https://www.youtube.com/watch?v=abc"# Get specific platform info
exportcomments platforms --id instagram

ping - Check API connectivity

exportcomments ping

Output Format

All commands output JSON with a consistent envelope:

// Success
{
"ok": true,
"data": { ... }
}
// Error
{
"ok": false,
"error": "Human-readable error message",
"error_code": "MACHINE_READABLE_CODE",
"detail": "Additional context"
}

Supported Platforms

CategoryPlatforms
Social MediaInstagram, YouTube, TikTok, Facebook, Twitter/X, LinkedIn, Reddit, Threads, VK
VideoYouTube, Vimeo, Twitch
MessagingDiscord
E-commerceAmazon, AliExpress, Shopee, Lazada, Flipkart, Etsy, Walmart, Best Buy, eBay
ReviewsTrustpilot, Yelp, Google Reviews, TripAdvisor, IMDb
App StoresApple App Store, Google Play Store
OtherDisqus, Product Hunt, Airbnb, Steam, Change.org

Job Statuses

StatusDescription
queueingJob is queued for processing
progressJob is being processed
doneJob completed successfully
errorJob failed with an error

MCP Server (for AI Agents)

The MCP server gives AI assistants (Claude, Cursor, Windsurf, etc.) native access to ExportComments tools.

Setup with Claude Desktop

Add to your claude_desktop_config.json:

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

The package ships two binaries — exportcomments-cli (CLI) and exportcomments-mcp (MCP stdio server). The --package … exportcomments-mcp form tells npx to install exportcomments-cli but execute the MCP binary inside it, so the process stays alive and serves MCP over stdio.

Setup with Claude Code

claude mcp add exportcomments -- npx -y --package exportcomments-cli exportcomments-mcp

Available MCP Tools

ToolDescription
export_commentsCreate an export job for a URL (supports wait param)
check_exportCheck job status by GUID
list_exportsList all export jobs with pagination
download_exportDownload a completed export's data — JSON for Premium/Business, CSV for Free/Personal (pass format to override)
detect_platformIdentify platform from a URL and show available options
list_platformsList all 33+ supported platforms

Run Directly

EXPORTCOMMENTS_API_TOKEN="your-token" exportcomments-mcp

CLI Usage

The CLI outputs structured JSON for scripting and automation.

Example AI workflow

# 1. Check what platform a URL belongs to
exportcomments platforms --detect "https://www.instagram.com/p/ABC123/"# 2. Create an export and wait for it
exportcomments export"https://www.instagram.com/p/ABC123/" --replies --wait
# 3. If the export succeeded, download the raw data
exportcomments download <guid> --json

Development

git clone https://github.com/exportcomments/exportcomments-cli.git
cd exportcomments-cli
npm install
npm run build
# Run in development
npx tsx src/cli.ts --help

License

MIT

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ExportComments CLI & MCP Server

Command-line tool and MCP server for the ExportComments.com API. Export comments and reviews from 40+ social media and review platforms.

Designed for AI agent usage - includes an MCP server for native AI integration (Claude, Cursor, Windsurf) and a CLI with structured JSON output.

Installation

npm install -g exportcomments-cli

Or use directly with npx:

npx exportcomments-cli export https://www.instagram.com/p/ABC123/

Authentication

Get your API token at app.exportcomments.com/user/api.

# Set as environment variable (recommended)export EXPORTCOMMENTS_API_TOKEN="your-token-here"# Or pass with each command
exportcomments --token "your-token-here"export https://...

Commands

export - Create an export job

# Basic export
exportcomments export https://www.instagram.com/p/ABC123/
# With options
exportcomments export https://www.youtube.com/watch?v=dQw4w9WgXcQ --replies --limit 500
# Wait for completion and download
exportcomments export https://www.amazon.com/dp/B08N5WRWNW --wait --download
# Get raw JSON data
exportcomments export https://www.trustpilot.com/review/example.com --wait --download-json
# Filter by date range
exportcomments export https://www.reddit.com/r/sub/comments/abc123/ --min-date 2024-01-01 --max-date 2024-06-30
# Twitter/X specific
exportcomments export https://x.com/username --tweets --followers --limit 1000

Options:

FlagDescription
--repliesInclude replies to comments
--limit <n>Maximum number of items to export
--min-date <date>Start date filter (ISO 8601)
--max-date <date>End date filter (ISO 8601)
--vpn <country>Use VPN with specified country
--cookies <json>Cookies as JSON string
--tweetsInclude tweets (Twitter/X)
--followersExport followers (Twitter/X)
--followingExport following list (Twitter/X)
--likesExport likes
--sharesInclude shares data
--advancedEnable advanced export features
--facebook-adsInclude Facebook ads data
--waitWait for completion (polls every 5s)
--wait-interval <ms>Custom polling interval
--wait-timeout <ms>Custom timeout (default: 600000)
--downloadDownload file when done (implies --wait)
--download-jsonDownload raw JSON when done (implies --wait)

status - Check job status

exportcomments status <guid># Wait for completion
exportcomments status <guid> --wait

list - List export jobs

exportcomments list
exportcomments list --page 2 --limit 10

download - Download export file

# Download formatted file (Excel/CSV)
exportcomments download <guid># Download raw JSON data
exportcomments download <guid> --json

platforms - List supported platforms

# List all platforms
exportcomments platforms
# Detect platform from URL
exportcomments platforms --detect "https://www.youtube.com/watch?v=abc"# Get specific platform info
exportcomments platforms --id instagram

ping - Check API connectivity

exportcomments ping

Output Format

All commands output JSON with a consistent envelope:

// Success
{
"ok": true,
"data": { ... }
}
// Error
{
"ok": false,
"error": "Human-readable error message",
"error_code": "MACHINE_READABLE_CODE",
"detail": "Additional context"
}

Supported Platforms

CategoryPlatforms
Social MediaInstagram, YouTube, TikTok, Facebook, Twitter/X, LinkedIn, Reddit, Threads, VK
VideoYouTube, Vimeo, Twitch
MessagingDiscord
E-commerceAmazon, AliExpress, Shopee, Lazada, Flipkart, Etsy, Walmart, Best Buy, eBay
ReviewsTrustpilot, Yelp, Google Reviews, TripAdvisor, IMDb
App StoresApple App Store, Google Play Store
OtherDisqus, Product Hunt, Airbnb, Steam, Change.org

Job Statuses

StatusDescription
queueingJob is queued for processing
progressJob is being processed
doneJob completed successfully
errorJob failed with an error

MCP Server (for AI Agents)

The MCP server gives AI assistants (Claude, Cursor, Windsurf, etc.) native access to ExportComments tools.

Setup with Claude Desktop

Add to your claude_desktop_config.json:

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

The package ships two binaries — exportcomments-cli (CLI) and exportcomments-mcp (MCP stdio server). The --package … exportcomments-mcp form tells npx to install exportcomments-cli but execute the MCP binary inside it, so the process stays alive and serves MCP over stdio.

Setup with Claude Code

claude mcp add exportcomments -- npx -y --package exportcomments-cli exportcomments-mcp

Available MCP Tools

ToolDescription
export_commentsCreate an export job for a URL (supports wait param)
check_exportCheck job status by GUID
list_exportsList all export jobs with pagination
download_exportDownload a completed export's data — JSON for Premium/Business, CSV for Free/Personal (pass format to override)
detect_platformIdentify platform from a URL and show available options
list_platformsList all 33+ supported platforms

Run Directly

EXPORTCOMMENTS_API_TOKEN="your-token" exportcomments-mcp

CLI Usage

The CLI outputs structured JSON for scripting and automation.

Example AI workflow

# 1. Check what platform a URL belongs to
exportcomments platforms --detect "https://www.instagram.com/p/ABC123/"# 2. Create an export and wait for it
exportcomments export"https://www.instagram.com/p/ABC123/" --replies --wait
# 3. If the export succeeded, download the raw data
exportcomments download <guid> --json

Development

git clone https://github.com/exportcomments/exportcomments-cli.git
cd exportcomments-cli
npm install
npm run build
# Run in development
npx tsx src/cli.ts --help

License

MIT

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ExportComments CLI & MCP Server

Command-line tool and MCP server for the ExportComments.com API. Export comments and reviews from 40+ social media and review platforms.

Designed for AI agent usage - includes an MCP server for native AI integration (Claude, Cursor, Windsurf) and a CLI with structured JSON output.

Installation

npm install -g exportcomments-cli

Or use directly with npx:

npx exportcomments-cli export https://www.instagram.com/p/ABC123/

Authentication

Get your API token at app.exportcomments.com/user/api.

# Set as environment variable (recommended)export EXPORTCOMMENTS_API_TOKEN="your-token-here"# Or pass with each command
exportcomments --token "your-token-here"export https://...

Commands

export - Create an export job

# Basic export
exportcomments export https://www.instagram.com/p/ABC123/
# With options
exportcomments export https://www.youtube.com/watch?v=dQw4w9WgXcQ --replies --limit 500
# Wait for completion and download
exportcomments export https://www.amazon.com/dp/B08N5WRWNW --wait --download
# Get raw JSON data
exportcomments export https://www.trustpilot.com/review/example.com --wait --download-json
# Filter by date range
exportcomments export https://www.reddit.com/r/sub/comments/abc123/ --min-date 2024-01-01 --max-date 2024-06-30
# Twitter/X specific
exportcomments export https://x.com/username --tweets --followers --limit 1000

Options:

FlagDescription
--repliesInclude replies to comments
--limit <n>Maximum number of items to export
--min-date <date>Start date filter (ISO 8601)
--max-date <date>End date filter (ISO 8601)
--vpn <country>Use VPN with specified country
--cookies <json>Cookies as JSON string
--tweetsInclude tweets (Twitter/X)
--followersExport followers (Twitter/X)
--followingExport following list (Twitter/X)
--likesExport likes
--sharesInclude shares data
--advancedEnable advanced export features
--facebook-adsInclude Facebook ads data
--waitWait for completion (polls every 5s)
--wait-interval <ms>Custom polling interval
--wait-timeout <ms>Custom timeout (default: 600000)
--downloadDownload file when done (implies --wait)
--download-jsonDownload raw JSON when done (implies --wait)

status - Check job status

exportcomments status <guid># Wait for completion
exportcomments status <guid> --wait

list - List export jobs

exportcomments list
exportcomments list --page 2 --limit 10

download - Download export file

# Download formatted file (Excel/CSV)
exportcomments download <guid># Download raw JSON data
exportcomments download <guid> --json

platforms - List supported platforms

# List all platforms
exportcomments platforms
# Detect platform from URL
exportcomments platforms --detect "https://www.youtube.com/watch?v=abc"# Get specific platform info
exportcomments platforms --id instagram

ping - Check API connectivity

exportcomments ping

Output Format

All commands output JSON with a consistent envelope:

// Success
{
"ok": true,
"data": { ... }
}
// Error
{
"ok": false,
"error": "Human-readable error message",
"error_code": "MACHINE_READABLE_CODE",
"detail": "Additional context"
}

Supported Platforms

CategoryPlatforms
Social MediaInstagram, YouTube, TikTok, Facebook, Twitter/X, LinkedIn, Reddit, Threads, VK
VideoYouTube, Vimeo, Twitch
MessagingDiscord
E-commerceAmazon, AliExpress, Shopee, Lazada, Flipkart, Etsy, Walmart, Best Buy, eBay
ReviewsTrustpilot, Yelp, Google Reviews, TripAdvisor, IMDb
App StoresApple App Store, Google Play Store
OtherDisqus, Product Hunt, Airbnb, Steam, Change.org

Job Statuses

StatusDescription
queueingJob is queued for processing
progressJob is being processed
doneJob completed successfully
errorJob failed with an error

MCP Server (for AI Agents)

The MCP server gives AI assistants (Claude, Cursor, Windsurf, etc.) native access to ExportComments tools.

Setup with Claude Desktop

Add to your claude_desktop_config.json:

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

The package ships two binaries — exportcomments-cli (CLI) and exportcomments-mcp (MCP stdio server). The --package … exportcomments-mcp form tells npx to install exportcomments-cli but execute the MCP binary inside it, so the process stays alive and serves MCP over stdio.

Setup with Claude Code

claude mcp add exportcomments -- npx -y --package exportcomments-cli exportcomments-mcp

Available MCP Tools

ToolDescription
export_commentsCreate an export job for a URL (supports wait param)
check_exportCheck job status by GUID
list_exportsList all export jobs with pagination
download_exportDownload a completed export's data — JSON for Premium/Business, CSV for Free/Personal (pass format to override)
detect_platformIdentify platform from a URL and show available options
list_platformsList all 33+ supported platforms

Run Directly

EXPORTCOMMENTS_API_TOKEN="your-token" exportcomments-mcp

CLI Usage

The CLI outputs structured JSON for scripting and automation.

Example AI workflow

# 1. Check what platform a URL belongs to
exportcomments platforms --detect "https://www.instagram.com/p/ABC123/"# 2. Create an export and wait for it
exportcomments export"https://www.instagram.com/p/ABC123/" --replies --wait
# 3. If the export succeeded, download the raw data
exportcomments download <guid> --json

Development

git clone https://github.com/exportcomments/exportcomments-cli.git
cd exportcomments-cli
npm install
npm run build
# Run in development
npx tsx src/cli.ts --help

License

MIT

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ExportComments CLI & MCP Server

Command-line tool and MCP server for the ExportComments.com API. Export comments and reviews from 40+ social media and review platforms.

Designed for AI agent usage - includes an MCP server for native AI integration (Claude, Cursor, Windsurf) and a CLI with structured JSON output.

Installation

npm install -g exportcomments-cli

Or use directly with npx:

npx exportcomments-cli export https://www.instagram.com/p/ABC123/

Authentication

Get your API token at app.exportcomments.com/user/api.

# Set as environment variable (recommended)export EXPORTCOMMENTS_API_TOKEN="your-token-here"# Or pass with each command
exportcomments --token "your-token-here"export https://...

Commands

export - Create an export job

# Basic export
exportcomments export https://www.instagram.com/p/ABC123/
# With options
exportcomments export https://www.youtube.com/watch?v=dQw4w9WgXcQ --replies --limit 500
# Wait for completion and download
exportcomments export https://www.amazon.com/dp/B08N5WRWNW --wait --download
# Get raw JSON data
exportcomments export https://www.trustpilot.com/review/example.com --wait --download-json
# Filter by date range
exportcomments export https://www.reddit.com/r/sub/comments/abc123/ --min-date 2024-01-01 --max-date 2024-06-30
# Twitter/X specific
exportcomments export https://x.com/username --tweets --followers --limit 1000

Options:

FlagDescription
--repliesInclude replies to comments
--limit <n>Maximum number of items to export
--min-date <date>Start date filter (ISO 8601)
--max-date <date>End date filter (ISO 8601)
--vpn <country>Use VPN with specified country
--cookies <json>Cookies as JSON string
--tweetsInclude tweets (Twitter/X)
--followersExport followers (Twitter/X)
--followingExport following list (Twitter/X)
--likesExport likes
--sharesInclude shares data
--advancedEnable advanced export features
--facebook-adsInclude Facebook ads data
--waitWait for completion (polls every 5s)
--wait-interval <ms>Custom polling interval
--wait-timeout <ms>Custom timeout (default: 600000)
--downloadDownload file when done (implies --wait)
--download-jsonDownload raw JSON when done (implies --wait)

status - Check job status

exportcomments status <guid># Wait for completion
exportcomments status <guid> --wait

list - List export jobs

exportcomments list
exportcomments list --page 2 --limit 10

download - Download export file

# Download formatted file (Excel/CSV)
exportcomments download <guid># Download raw JSON data
exportcomments download <guid> --json

platforms - List supported platforms

# List all platforms
exportcomments platforms
# Detect platform from URL
exportcomments platforms --detect "https://www.youtube.com/watch?v=abc"# Get specific platform info
exportcomments platforms --id instagram

ping - Check API connectivity

exportcomments ping

Output Format

All commands output JSON with a consistent envelope:

// Success
{
"ok": true,
"data": { ... }
}
// Error
{
"ok": false,
"error": "Human-readable error message",
"error_code": "MACHINE_READABLE_CODE",
"detail": "Additional context"
}

Supported Platforms

CategoryPlatforms
Social MediaInstagram, YouTube, TikTok, Facebook, Twitter/X, LinkedIn, Reddit, Threads, VK
VideoYouTube, Vimeo, Twitch
MessagingDiscord
E-commerceAmazon, AliExpress, Shopee, Lazada, Flipkart, Etsy, Walmart, Best Buy, eBay
ReviewsTrustpilot, Yelp, Google Reviews, TripAdvisor, IMDb
App StoresApple App Store, Google Play Store
OtherDisqus, Product Hunt, Airbnb, Steam, Change.org

Job Statuses

StatusDescription
queueingJob is queued for processing
progressJob is being processed
doneJob completed successfully
errorJob failed with an error

MCP Server (for AI Agents)

The MCP server gives AI assistants (Claude, Cursor, Windsurf, etc.) native access to ExportComments tools.

Setup with Claude Desktop

Add to your claude_desktop_config.json:

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

The package ships two binaries — exportcomments-cli (CLI) and exportcomments-mcp (MCP stdio server). The --package … exportcomments-mcp form tells npx to install exportcomments-cli but execute the MCP binary inside it, so the process stays alive and serves MCP over stdio.

Setup with Claude Code

claude mcp add exportcomments -- npx -y --package exportcomments-cli exportcomments-mcp

Available MCP Tools

ToolDescription
export_commentsCreate an export job for a URL (supports wait param)
check_exportCheck job status by GUID
list_exportsList all export jobs with pagination
download_exportDownload a completed export's data — JSON for Premium/Business, CSV for Free/Personal (pass format to override)
detect_platformIdentify platform from a URL and show available options
list_platformsList all 33+ supported platforms

Run Directly

EXPORTCOMMENTS_API_TOKEN="your-token" exportcomments-mcp

CLI Usage

The CLI outputs structured JSON for scripting and automation.

Example AI workflow

# 1. Check what platform a URL belongs to
exportcomments platforms --detect "https://www.instagram.com/p/ABC123/"# 2. Create an export and wait for it
exportcomments export"https://www.instagram.com/p/ABC123/" --replies --wait
# 3. If the export succeeded, download the raw data
exportcomments download <guid> --json

Development

git clone https://github.com/exportcomments/exportcomments-cli.git
cd exportcomments-cli
npm install
npm run build
# Run in development
npx tsx src/cli.ts --help

License

MIT

Releases

Packages

Contributors

Languages