
Captapi
- Updated July 27, 2026
- CDCStream/captapi
Social media data from YouTube, TikTok, Instagram & Facebook.
About
Social media data from YouTube, TikTok, Instagram & Facebook. 62 tools, one API key. Exposes 62 MCP tools including io.github.CDCStream/captapi, CAPTAPI_API_KEY, CAPTAPI_BASE_URL. Social media data from YouTube, TikTok, Instagram & Facebook. 62 tools, one API key. Social media data from YouTube, TikTok, Instagram & Facebook. 62 tools, one API key. "$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json", Install via Claude Desktop, Cursor, or any MCP-compatible client using the server manifest from the upstream repository.
- DB / Auth: Supabase (Postgres + Auth + Storage)
- Cache / Rate limit: Upstash Redis
- Scraping: Apify Actors
- AI: OpenAI (gpt-4o-mini + Whisper)
- Billing: Stripe (subscriptions + top-up credits)
Captapi by the numbers
- Exposes 62 verified tools (MCP introspection)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
claude mcp add --env CAPTAPI_API_KEY=YOUR_CAPTAPI_API_KEY --env CAPTAPI_BASE_URL=YOUR_CAPTAPI_BASE_URL captapi -- npx -y @captapi/mcpAdd your badge
Show developers this MCP server is listed on Skillselion. Paste this into your README.
| Package | @captapi/mcp |
|---|---|
| Transport | STDIO, HTTP |
| Auth | Required |
| Tools | 62 |
| Last updated | July 27, 2026 |
| Repository | CDCStream/captapi ↗ |
How do I connect Captapi to my MCP client?
Social media data from YouTube, TikTok, Instagram & Facebook. 62 tools, one API key.
Who is it for?
Teams wiring Captapi into Claude, Cursor, or custom agents for data analytics.
Skip if: Skip when you need a non-MCP SDK or hosted API without stdio/SSE transport.
What you get
Working Captapi MCP server with verified tool registration and client config.
- Agent-callable social fetches across four platforms via 62 MCP tools
- Repeatable content and audience research prompts grounded in Captapi responses
By the numbers
- [object Object]
Captapi capabilities & compatibility
- Capabilities
- captapi mcp tool registration · captapi client configuration · captapi agent workflow integration
- Use cases
- data analysis
- Runs
- Runs locally
What Captapi says it does
Social media data from YouTube, TikTok, Instagram & Facebook. 62 tools, one API key.
"name": "io.github.CDCStream/captapi",
Tools 62
Public tool metadata - what this server can do for an agent.
youtube_transcript2 paramsExtract the full timestamped transcript of a YouTube video. Costs ~2 credits; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube video URL, e.g. https://youtube.com/watch?v=ID.languagestringPreferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
youtube_summarize2 paramsAI summary (key points, topics, sentiment) of a YouTube video. Costs ~4 credits; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube video URL, e.g. https://youtube.com/watch?v=ID.languagestringPreferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
youtube_video_details1 paramMetadata + engagement stats for a YouTube video. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube video URL, e.g. https://youtube.com/watch?v=ID.
youtube_comments2 paramsComments on a YouTube video. Costs ~20 credits; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube video URL, e.g. https://youtube.com/watch?v=ID.limitintegerMax items to return. Default 50, max 500. Billed per result.
youtube_channel_details1 paramChannel info & subscriber/stats for a YouTube channel. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredYouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC...
youtube_search2 paramsSearch YouTube videos by keyword. Costs ~20 credits; cached results are free, failures are never charged.
qstringrequiredSearch query or keywords (min 2 chars).limitintegerMax items to return. Default 20, max 200. Billed per result.
youtube_channel_videos2 paramsList a channel's uploaded videos. Costs ~20 credits; cached results are free, failures are never charged.
urlstringrequiredYouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC...limitintegerMax items to return. Default 20, max 200. Billed per result.
youtube_playlist_videos2 paramsList videos in a YouTube playlist. Costs ~50 credits; cached results are free, failures are never charged.
urlstringrequiredYouTube playlist URL, e.g. https://youtube.com/playlist?list=ID.limitintegerMax items to return. Default 50, max 500. Billed per result.
youtube_video_download1 paramDirect download URLs for a YouTube video. Costs ~3 credits; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube video URL, e.g. https://youtube.com/watch?v=ID.
youtube_shorts_transcript2 paramsTranscript of a YouTube Short. Costs ~2 credits; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube Shorts URL, e.g. https://youtube.com/shorts/ID.languagestringPreferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
youtube_shorts_summarize2 paramsAI summary of a YouTube Short. Costs ~4 credits; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube Shorts URL, e.g. https://youtube.com/shorts/ID.languagestringPreferred caption language as an ISO code, e.g. "en". Defaults to auto-detect.
youtube_shorts_details1 paramMetadata + stats for a YouTube Short. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube Shorts URL, e.g. https://youtube.com/shorts/ID.
youtube_shorts_comments2 paramsComments on a YouTube Short. Costs ~20 credits; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube Shorts URL, e.g. https://youtube.com/shorts/ID.limitintegerMax items to return. Default 50, max 500. Billed per result.
youtube_channel_shorts2 paramsList a channel's Shorts. Costs ~20 credits; cached results are free, failures are never charged.
urlstringrequiredYouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC...limitintegerMax items to return. Default 20, max 200. Billed per result.
youtube_channel_streams2 paramsList a channel's live/past streams. Costs ~20 credits; cached results are free, failures are never charged.
urlstringrequiredYouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC...limitintegerMax items to return. Default 20, max 200. Billed per result.
youtube_hashtag_search2 paramsSearch YouTube videos by hashtag. Costs ~20 credits; cached results are free, failures are never charged.
qstringrequiredHashtag with or without the # (min 2 chars).limitintegerMax items to return. Default 20, max 200. Billed per result.
youtube_comment_replies3 paramsReplies to a specific YouTube comment. Costs ~20 credits; cached results are free, failures are never charged.
urlstringrequiredPublic YouTube video URL, e.g. https://youtube.com/watch?v=ID.comment_idstringrequiredID of the parent comment to fetch replies for (from the comments endpoint).limitintegerMax items to return. Default 50, max 500. Billed per result.
youtube_channel_playlists2 paramsList a channel's playlists. Costs ~20 credits; cached results are free, failures are never charged.
urlstringrequiredYouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC...limitintegerMax items to return. Default 20, max 200. Billed per result.
youtube_community_posts2 paramsList a channel's community (posts) tab. Costs ~10 credits; cached results are free, failures are never charged.
urlstringrequiredYouTube channel URL, e.g. https://youtube.com/@handle or /channel/UC...limitintegerMax items to return. Default 20, max 200. Billed per result.
tiktok_transcript1 paramTranscript of a TikTok video (via captions). Costs ~2 credits; cached results are free, failures are never charged.
urlstringrequiredPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID.
tiktok_summarize1 paramAI summary of a TikTok video. Costs ~4 credits; cached results are free, failures are never charged.
urlstringrequiredPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID.
tiktok_video_details1 paramMetadata + stats for a TikTok video. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID.
tiktok_comments2 paramsComments on a TikTok video. Costs ~10 credits; cached results are free, failures are never charged.
urlstringrequiredPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID.limitintegerMax items to return. Default 50, max 500. Billed per result.
tiktok_channel_details1 paramProfile info & stats for a TikTok user. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredTikTok profile URL, e.g. https://tiktok.com/@username.
tiktok_search2 paramsSearch TikTok videos by keyword/hashtag. Costs ~14 credits; cached results are free, failures are never charged.
qstringrequiredSearch query or keywords (min 2 chars).limitintegerMax items to return. Default 20, max 200. Billed per result.
tiktok_video_download1 paramNo-watermark download URL for a TikTok video. Costs ~3 credits; cached results are free, failures are never charged.
urlstringrequiredPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID.
tiktok_channel_posts2 paramsLatest posts from a TikTok profile. Costs ~14 credits; cached results are free, failures are never charged.
urlstringrequiredTikTok profile URL, e.g. https://tiktok.com/@username.limitintegerMax items to return. Default 20, max 200. Billed per result.
tiktok_comment_replies3 paramsReplies to a specific TikTok comment. Costs ~50 credits; cached results are free, failures are never charged.
urlstringrequiredPublic TikTok video URL, e.g. https://tiktok.com/@user/video/ID.comment_idstringrequiredID of the parent comment to fetch replies for (from the comments endpoint).limitintegerMax items to return. Default 50, max 500. Billed per result.
tiktok_user_followers2 paramsList a TikTok user's followers. Costs ~20 credits; cached results are free, failures are never charged.
urlstringrequiredTikTok profile URL, e.g. https://tiktok.com/@username.limitintegerMax items to return. Default 50, max 500. Billed per result.
tiktok_user_followings2 paramsList who a TikTok user follows. Costs ~20 credits; cached results are free, failures are never charged.
urlstringrequiredTikTok profile URL, e.g. https://tiktok.com/@username.limitintegerMax items to return. Default 50, max 500. Billed per result.
tiktok_music_posts2 paramsPosts using a specific TikTok sound/music. Costs ~32 credits; cached results are free, failures are never charged.
urlstringrequiredTikTok music/sound URL, e.g. https://tiktok.com/music/name-ID.limitintegerMax items to return. Default 20, max 200. Billed per result.
tiktok_hashtag_search2 paramsSearch TikTok videos by hashtag. Costs ~14 credits; cached results are free, failures are never charged.
qstringrequiredHashtag with or without the # (min 2 chars).limitintegerMax items to return. Default 20, max 200. Billed per result.
tiktok_top_search2 paramsTop mixed TikTok results for a keyword. Costs ~14 credits; cached results are free, failures are never charged.
qstringrequiredSearch query or keywords (min 2 chars).limitintegerMax items to return. Default 20, max 200. Billed per result.
tiktok_user_search2 paramsSearch TikTok users/creators by keyword. Costs ~8 credits; cached results are free, failures are never charged.
qstringrequiredSearch query or keywords (min 2 chars).limitintegerMax items to return. Default 20, max 100. Billed per result.
tiktok_song_details1 paramDetails of a TikTok sound/song. Costs ~2 credits; cached results are free, failures are never charged.
urlstringrequiredTikTok music/sound URL, e.g. https://tiktok.com/music/name-ID.
tiktok_trending_feed2 paramsTikTok trending (For You) videos by region. Costs ~14 credits; cached results are free, failures are never charged.
countrystringTwo-letter ISO country code, e.g. US, GB, TR. Default US.limitintegerMax items to return. Default 20, max 200. Billed per result.
tiktok_popular_hashtags2 paramsTrending TikTok hashtags for a topic/keyword. Costs ~14 credits; cached results are free, failures are never charged.
querystringTopic or keyword to discover trending hashtags for. Default "trending".limitintegerMax items to return. Default 20, max 100. Billed per result.
instagram_transcript1 paramTranscript of an Instagram Reel. Costs ~2 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram Reel URL, e.g. https://instagram.com/reel/ID/.
instagram_summarize1 paramAI summary of an Instagram Reel. Costs ~4 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram Reel URL, e.g. https://instagram.com/reel/ID/.
instagram_details1 paramDetails for an Instagram post or reel. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredInstagram post or reel URL, e.g. https://instagram.com/reel/ID/.
instagram_comments2 paramsComments on an Instagram post or reel. Costs ~45 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram post or reel URL, e.g. https://instagram.com/reel/ID/.limitintegerMax items to return. Default 50, max 500. Billed per result.
instagram_channel_details1 paramProfile info & stats for an Instagram account. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredInstagram profile URL, e.g. https://instagram.com/username/.
instagram_channel_posts2 paramsLatest posts from an Instagram profile. Costs ~12 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram profile URL, e.g. https://instagram.com/username/.limitintegerMax items to return. Default 20, max 200. Billed per result.
instagram_channel_reels2 paramsLatest Reels from an Instagram profile. Costs ~12 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram profile URL, e.g. https://instagram.com/username/.limitintegerMax items to return. Default 20, max 200. Billed per result.
instagram_reels_search2 paramsSearch Instagram Reels by hashtag/keyword. Costs ~12 credits; cached results are free, failures are never charged.
qstringrequiredHashtag (without #) or keyword (min 2 chars).limitintegerMax items to return. Default 20, max 200. Billed per result.
instagram_video_download1 paramDirect video URL for an Instagram Reel. Costs ~3 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram Reel URL, e.g. https://instagram.com/reel/ID/.
instagram_tagged_posts2 paramsPosts an Instagram user is tagged in. Costs ~18 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram profile URL, e.g. https://instagram.com/username/.limitintegerMax items to return. Default 20, max 200. Billed per result.
instagram_music_posts2 paramsPosts/Reels using an Instagram audio. Costs ~18 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram audio/music page URL.limitintegerMax items to return. Default 20, max 200. Billed per result.
instagram_hashtag_search2 paramsSearch Instagram posts by hashtag. Costs ~12 credits; cached results are free, failures are never charged.
qstringrequiredHashtag without the # (min 2 chars).limitintegerMax items to return. Default 20, max 200. Billed per result.
instagram_profile_search2 paramsSearch Instagram profiles by keyword. Costs ~12 credits; cached results are free, failures are never charged.
qstringrequiredSearch query or keywords (min 2 chars).limitintegerMax items to return. Default 20, max 100. Billed per result.
instagram_story_highlights1 paramList a profile's story highlight covers. Costs ~5 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram profile URL, e.g. https://instagram.com/username/.
instagram_highlights_details2 paramsItems inside a profile's story highlights. Costs ~9 credits; cached results are free, failures are never charged.
urlstringrequiredInstagram profile URL, e.g. https://instagram.com/username/.limitintegerMax highlights to expand. Default 10, max 50.
instagram_embed1 paramEmbed HTML for an Instagram post/reel. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredInstagram post or reel URL, e.g. https://instagram.com/reel/ID/.
facebook_details1 paramDetails for a Facebook video or post. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredPublic Facebook video or post URL.
facebook_transcript1 paramTranscript of a Facebook video. Costs ~2 credits; cached results are free, failures are never charged.
urlstringrequiredPublic Facebook video or post URL.
facebook_summarize1 paramAI summary of a Facebook video or post. Costs ~4 credits; cached results are free, failures are never charged.
urlstringrequiredPublic Facebook video or post URL.
facebook_comments2 paramsComments on a Facebook post. Costs ~30 credits; cached results are free, failures are never charged.
urlstringrequiredPublic Facebook video or post URL.limitintegerMax items to return. Default 50, max 500. Billed per result.
facebook_page_details1 paramInfo & stats for a Facebook page. Costs ~1 credit; cached results are free, failures are never charged.
urlstringrequiredFacebook page URL, e.g. https://facebook.com/PageName.
facebook_profile_posts2 paramsLatest posts from a Facebook profile/page. Costs ~12 credits; cached results are free, failures are never charged.
urlstringrequiredFacebook profile or page URL.limitintegerMax items to return. Default 20, max 200. Billed per result.
facebook_profile_reels2 paramsLatest Reels from a Facebook profile/page. Costs ~36 credits; cached results are free, failures are never charged.
urlstringrequiredFacebook profile or page URL.limitintegerMax items to return. Default 20, max 200. Billed per result.
facebook_group_posts2 paramsPosts from a public Facebook group. Costs ~12 credits; cached results are free, failures are never charged.
urlstringrequiredPublic Facebook group URL, e.g. https://facebook.com/groups/ID.limitintegerMax items to return. Default 20, max 200. Billed per result.
facebook_comment_replies3 paramsReplies to a specific Facebook comment. Costs ~30 credits; cached results are free, failures are never charged.
urlstringrequiredFacebook post URL the comment belongs to.comment_idstringrequiredID of the parent comment to fetch replies for (from the comments endpoint).limitintegerMax items to return. Default 50, max 500. Billed per result.
README.md
Captapi
API-as-a-Service that extracts transcripts, AI summaries, comments, engagement metrics, and channel analytics from YouTube, TikTok, Instagram, and Facebook videos.
Architecture
- Backend: FastAPI (Python 3.12) — Apify scraping + OpenAI summarization
- Frontend: Next.js 15 + Tailwind + shadcn/ui — landing, dashboard, billing
- DB / Auth: Supabase (Postgres + Auth + Storage)
- Cache / Rate limit: Upstash Redis
- Scraping: Apify Actors
- AI: OpenAI (gpt-4o-mini + Whisper)
- Billing: Stripe (subscriptions + top-up credits)
Quick Start
Prerequisites
- Python 3.12+
- Node.js 20+
- Supabase project (free tier)
- Apify account + API token
- OpenAI API key
- Stripe account (test mode)
- Upstash Redis (free tier)
1. Supabase Setup
# Install Supabase CLI
npm i -g supabase
# Login and link your project
supabase login
supabase link --project-ref YOUR_PROJECT_REF
# Push schema
supabase db push
2. Backend Setup
cd backend
cp .env.example .env
# Fill in env vars
# Install dependencies (using uv)
pip install uv
uv pip install -e .
# Run dev server
uvicorn app.main:app --reload --port 8000
3. Frontend Setup
cd frontend
cp .env.example .env.local
# Fill in env vars
npm install
npm run dev
Open http://localhost:3000.
Project Structure
socialkit-clone/
├── backend/ FastAPI service
│ ├── app/
│ │ ├── main.py App entry
│ │ ├── core/ Config, auth, credits, security
│ │ ├── routers/ Endpoint handlers per platform
│ │ ├── services/ Apify, OpenAI, Supabase, Cache, Stripe
│ │ ├── schemas/ Pydantic models
│ │ └── utils/ Helpers
│ ├── pyproject.toml
│ └── Dockerfile
├── frontend/ Next.js 15 app
│ ├── app/ App Router
│ ├── components/ UI components
│ └── lib/ Supabase + API client
└── supabase/
└── migrations/ SQL schema
API Endpoints
All endpoints require Authorization: Bearer capt_live_... header.
YouTube
GET /v1/youtube/transcript?url=...GET /v1/youtube/summarize?url=...GET /v1/youtube/video-details?url=...GET /v1/youtube/comments?url=...&limit=...GET /v1/youtube/channel-details?url=...GET /v1/youtube/channel-videos?url=...&limit=...GET /v1/youtube/playlist-videos?url=...&limit=...GET /v1/youtube/search?q=...&limit=...GET /v1/youtube/video-download?url=...
TikTok
GET /v1/tiktok/transcript|summarize|video-details|comments|channel-details|search|video-download
GET /v1/instagram/transcript|summarize|details|comments|channel-details|channel-posts|channel-reels|reels-search|video-download
GET /v1/facebook/transcript|summarize|details|comments|page-details
Video Files
POST /v1/video/transcript— multipart upload, Whisper transcriptionPOST /v1/video/summarize— transcription + AI summary
Account
GET /v1/account/usage— credit balance + recent requestsGET /v1/account/limits— plan + remaining quota
Pricing
| Plan | Price/mo | Credits/mo | $/Credit |
|---|---|---|---|
| Free | $0 | 100 lifetime | — |
| Starter | $9 | 1,500 | $0.006 |
| Pro | $29 | 6,000 | $0.0048 |
| Business | $99 | 25,000 | $0.0039 |
| Top-up | $5 | 500 | $0.01 |
License
MIT
Recommended MCP Servers
How it compares
MCP social-data integration, not a hosted analytics dashboard or a single-purpose scraping script.
FAQ
What does captapi MCP do?
Social media data from YouTube, TikTok, Instagram & Facebook.
When should I use captapi?
User asks about Captapi mcp, social media data from youtube, tiktok, instagram & facebook. 62 tools.
Is this MCP server safe to install?
Review the Security Audits panel and upstream source before connecting in production.