Veedcrawl MCP Server
Give your AI agent eyes on the entire social video web — not just individual links.
The official Model Context Protocol server for Veedcrawl. Drop it into Claude, Cursor, or any MCP-compatible host and your agent can search social videos, pull metadata and transcripts, run structured extraction, and inspect public creator profiles across YouTube, TikTok, Instagram, X/Twitter, and Facebook.
What your agent can do
| Tool | What it returns |
|---|---|
search_social_videos |
Topic, keyword, creator, or trend search results with normalized video metadata |
get_video_metadata |
Title, description, author, view/like/comment counts, tags, duration, thumbnails |
get_video_transcript |
Full spoken transcript with timestamps — uses native captions or AI-generated speech-to-text |
extract_from_video |
Structured answer to any prompt: hooks, CTAs, sentiment, topics, claims, quotes — guided by optional JSON Schema |
get_tiktok_profile |
Creator bio, total video count, and up to 50 recent TikToks with full engagement stats per video |
get_instagram_profile |
Creator bio, verified status, follower/following/post counts, and up to 50 recent posts (video, image, carousel) with per-post stats |
Why discovery tools change everything
Every other video API requires a public video URL. That leaves an agent stuck doing retrieval for content already found.
search_social_videos, get_tiktok_profile, and get_instagram_profile unlock discovery. Search a category or inspect a creator, select the videos that matter, then chain them into transcripts and extraction without collecting URLs by hand.
Find videos by topic, then analyze the winners:
search_social_videos(query="skincare morning routine", sort="most_liked", timePeriod="past_month")
→ normalized TikTok, Instagram, and YouTube video results
→ get_video_transcript(url=top_video.url)
→ extract_from_video(url=top_video.url, prompt="Extract the hook, claims, and CTA")
Audit a creator from scratch:
get_instagram_profile(username="hubermanlab", limit=50)
→ 283M followers, verified, recent posts with view/like counts
→ get_video_transcript(url=top_video.url)
→ extract_from_video(url=top_video.url, prompt="List every health claim made and the evidence cited")
Competitive analysis with no prep work:
get_tiktok_profile(username=competitor_A, limit=50)
get_tiktok_profile(username=competitor_B, limit=50)
get_tiktok_profile(username=competitor_C, limit=50)
→ Compare posting frequency, avg views, top hashtags, engagement rates across all three
Installation
npm install -g @veedcrawl/mcp
Get your API key at veedcrawl.com.
Setup
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"veedcrawl": {
"command": "veedcrawl-mcp",
"env": {
"VEEDCRAWL_API_KEY": "ma_your_key_here"
}
}
}
}
Restart Claude Desktop. The six tools will appear automatically.
Claude Code
claude mcp add veedcrawl -- env VEEDCRAWL_API_KEY=ma_your_key_here veedcrawl-mcp
Cursor
Add to your Cursor MCP config (~/.cursor/mcp.json):
{
"mcpServers": {
"veedcrawl": {
"command": "veedcrawl-mcp",
"env": {
"VEEDCRAWL_API_KEY": "ma_your_key_here"
}
}
}
}
Windsurf / Codeium
{
"mcpServers": {
"veedcrawl": {
"command": "veedcrawl-mcp",
"env": {
"VEEDCRAWL_API_KEY": "ma_your_key_here"
}
}
}
}
Tools reference
search_social_videos
Search public videos by topic, keyword, creator, or trend. Polling and retries are handled internally so the tool returns the completed search job with normalized video metadata.
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string | ✓ | Search phrase, topic, keyword, creator name, or trend |
platforms |
string[] | — | Any of tiktok, instagram, youtube, facebook; defaults to TikTok, Instagram, and YouTube |
limit |
number | — | Results to return: 1–100, default 25 |
sort |
relevant | latest | most_liked |
— | Result ordering |
timePeriod |
string | — | all, past_24h, past_week, past_month, last_3_months, or last_6_months |
filters |
object | — | Optional country, language, duration, likes, platform feature, or Facebook location filters |
Each result includes a public video URL you can pass directly into get_video_metadata, get_video_transcript, or extract_from_video.
get_video_metadata
Fetch structured metadata for any public video URL.
| Parameter | Type | Required | Description |
|---|---|---|---|
url |
string | ✓ | Public video URL (YouTube, TikTok, Instagram, X/Twitter, Facebook) |
Returns: platform, title, description, author info, view/like/comment/share counts, duration, thumbnails, tags, publish timestamp.
get_video_transcript
Return the complete transcript for a video. Polling and retries are handled internally — your agent gets the finished result.
| Parameter | Type | Required | Description |
|---|---|---|---|
url |
string | ✓ | Public video URL or direct media file URL |
mode |
auto | native | generate |
— | native = platform captions only · generate = AI speech-to-text only · auto = captions with AI fallback (default) |
lang |
string | — | Language hint, e.g. en, es, ur |
extract_from_video
Ask any question about a video and get a structured answer. Optionally enforce output shape with a JSON Schema.
| Parameter | Type | Required | Description |
|---|---|---|---|
url |
string | ✓ | Public video URL or direct media file URL |
prompt |
string | ✓ | What to extract — "List the key claims", "What is the hook?", "Summarize in three sentences" |
lang |
string | — | Language hint for transcription |
schema |
object | — | JSON Schema to constrain the output structure |
Example prompts that work well:
"Extract the hook, main argument, and call to action""List every product mentioned with the timestamp it appears""What claims does the speaker make? Rate each one as factual, opinion, or unverified""Rewrite this as a Twitter thread"
get_tiktok_profile
Fetch a TikTok creator's public profile snapshot. Returns author info, total video count, and their most recent videos with full engagement stats per video.
| Parameter | Type | Required | Description |
|---|---|---|---|
username |
string | ✓ (or url) |
TikTok username, with or without @ |
url |
string | ✓ (or username) |
Full TikTok profile URL |
limit |
number | — | Videos to return: 1–50, default 12 |
Each video in the response is a full object with views, likes, comments, shares, caption, hashtags, thumbnail, and publish timestamp — ready to pass directly into get_video_transcript or extract_from_video.
get_instagram_profile
Fetch an Instagram creator's public profile snapshot. Returns verified status, real follower and following counts, total post count, and recent content.
| Parameter | Type | Required | Description |
|---|---|---|---|
username |
string | ✓ (or url) |
Instagram username, with or without @ |
url |
string | ✓ (or username) |
Full Instagram profile URL |
limit |
number | — | Posts to return: 1–50, default 12 |
Post type is one of video, post (image), or sidecar (carousel). Video posts include a direct video URL you can pass into get_video_transcript.
Platforms supported
YouTube · TikTok · Instagram · X / Twitter · Facebook
Environment variables
| Variable | Required | Default | Description |
|---|---|---|---|
VEEDCRAWL_API_KEY |
✓ | — | Your Veedcrawl API key. X_API_KEY is also accepted. |
VEEDCRAWL_BASE_URL |
— | https://api.veedcrawl.com |
Override for self-hosted or staging |
VEEDCRAWL_POLL_INTERVAL_MS |
— | 1500 |
Milliseconds between job status polls |
VEEDCRAWL_MAX_POLL_ATTEMPTS |
— | 120 |
Max poll attempts before timeout (~3 min) |
No comments yet
Be the first to share your take.