npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@veedcrawl/mcp

v0.1.3

Published

Official VEEDCRAWL MCP server for social video search, metadata, transcripts, extraction, and creator profile tools.

Downloads

70

Readme

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


Links