SocialMCP
Allows fetching Instagram Reels and post metadata, captions, stats, carousel items, direct CDN media links, creator posts, and transcripts via Whisper audio transcription and OCR for screenshots and image slides.
Provides tools for reading Threads posts, replies/comments, searching public posts by keyword or hashtag, retrieving creator feeds, accessing direct media links, and optionally transcribing or OCR-ing post media.
Enables retrieval of TikTok video and photo-carousel metadata, engagement stats, creator feeds, direct stream URLs, captions, Whisper audio transcription, and OCR for screenshot videos and slide carousels.
Provides tools for retrieving YouTube transcripts and caption tracks with Whisper and OCR fallback, listing transcript languages, searching videos, fetching batch video metadata, and managing playlists via the YouTube Data API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SocialMCPtranscribe this TikTok video: https://vm.tiktok.com/ZM123456/"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SocialMCP
Unified Model Context Protocol (MCP) server for YouTube, TikTok, Instagram, and Threads.
It extracts video and post metadata, creator feeds, comments, direct media streams, and full transcripts. For videos without captions or videos made of screenshots and text slides, SocialMCP combines local Faster-Whisper audio transcription with keyframe & carousel OCR (ffmpeg + Pillow + Tesseract).
What it does
TikTok (no API key or login needed): video and photo-carousel metadata, view/like/comment/share/save counts, creator feeds, closed captions, Whisper audio transcription, and OCR for screenshot videos and slide carousels.
Instagram (no API key needed; anonymous embed fallback included): Reels, photo posts, multi-slide carousels, creator feeds, direct CDN links, Whisper speech transcription, and OCR for screenshot Reels and image slides.
Threads (no login needed): post content, replies/comments, topic/hashtag search, creator feeds, direct media links, and optional video/image transcription.
YouTube:
Transcripts and caption tracks work without any API key (multi-tier caption fetcher + Whisper + keyframe OCR fallback).
Search, batch video details, and playlist management use the YouTube Data API v3 (OAuth credentials optional, only needed for these tools).
Related MCP server: Video Transcriber MCP Server
System requirements
Python 3.11+
ffmpeg(for audio extraction and video keyframe sampling)tesseractwith Russian and English language packs (tesseract-ocr,tesseract-ocr-rus,tesseract-ocr-eng) for transcribing screenshots and on-screen text
Installing system dependencies
macOS (Homebrew):
brew install ffmpeg tesseract tesseract-langUbuntu / Debian:
sudo apt update && sudo apt install -y ffmpeg tesseract-ocr tesseract-ocr-rus tesseract-ocr-engQuick start (local stdio)
You can run SocialMCP directly with uvx without cloning the repository. Add this to your MCP client configuration (claude_desktop_config.json, Cursor, Windsurf, or Antigravity mcp_config.json):
{
"mcpServers": {
"social": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/bledny1099/social-mcp.git",
"social-mcp"
]
}
}
}Or install it into a local environment with pip / uv:
git clone https://github.com/bledny1099/social-mcp.git
cd social-mcp
pip install -e .
social-mcp --transport stdioSelf-hosting via Docker (remote HTTP MCP)
SocialMCP also runs as a remote Streamable HTTP server with Bearer token authentication and OAuth 2.1 support (compatible with Claude web/mobile connectors).
git clone https://github.com/bledny1099/social-mcp.git
cd social-mcp
cp .env.example .env
# Edit .env and set MCP_BEARER_TOKEN (e.g. openssl rand -hex 32)
docker compose up -d --buildThe server listens on 127.0.0.1:8087 (mapped to container port 8080, path /mcp). Put Nginx or Caddy in front of it with TLS (see Caddyfile.snippet).
Available MCP tools (18)
TikTok
Tool | Description |
| Metadata, stats (views, likes, comments, shares, saves), music info, direct stream URLs, and carousel slides |
| Transcript from subtitles, Whisper audio, and keyframe/carousel OCR for screenshot and slide videos |
| Recent videos from a TikTok creator handle or profile URL |
Tool | Description |
| Metadata, caption, stats, direct video/audio URLs, and carousel items for Reels and posts |
| Whisper audio transcription + keyframe and carousel slide OCR for Reels and image posts |
| Recent posts from an Instagram profile |
Threads
Tool | Description |
| Full post text, stats, media URLs, optional media OCR/transcription, and top replies |
| Public search by keyword, phrase, or hashtag |
| Profile details and recent posts from a Threads user |
YouTube
Tool | Description | Quota cost |
| Captions + Whisper/OCR fallback, paged by character | 0 |
| List manual and auto-generated caption tracks | 0 |
| Search videos with channel, date, duration, and sort filters | 100 (+1) |
| Batch metadata for up to 50 video IDs or URLs | 1 |
| List your playlists | 1 |
| Read items in a playlist | 1 (+1) |
| Append videos to a playlist | 50 per video |
| Remove items by | 50 per video |
| Estimated daily YouTube Data API quota usage | 0 |
How screenshot and slide video transcription works
Short-form videos on TikTok, Reels, and Shorts often have background music instead of speech while showing screenshots, chat logs, or text slides on screen.
When tiktok_get_transcript, instagram_get_transcript, or youtube_get_transcript runs:
If the post is an image carousel or photo-mode slideshow, SocialMCP downloads the slides concurrently and runs OCR on each image.
If the post is a video,
ffmpegextracts scene changes and time-spaced keyframes.Consecutive frames are compared using a 256-bit perceptual difference hash on the central 80% region (ignoring animated corner watermarks) so identical frames are skipped before OCR.
Pillowchecks frame luminance, inverts dark-mode screenshots so white-on-dark text becomes sharp black-on-white, applies contrast normalization, and passes the result totesseract(rus+eng) in TSV mode.Low-confidence noise tokens are filtered out, scrolling screenshots are deduplicated line-by-line across frames, and the extracted on-screen text is merged with the Whisper speech transcript.
Optional YouTube Data API setup
You only need Google OAuth credentials if you want to use youtube_search, youtube_get_videos, or the playlist tools (youtube_get_transcript works without them).
Create a project in Google Cloud Console and enable YouTube Data API v3.
Create OAuth 2.0 Web Application credentials and add
http://localhost:8765/to Authorized redirect URIs.Run the local helper script to get your refresh token:
python scripts/get_refresh_token.py --client-id YOUR_ID --client-secret YOUR_SECRETPaste
YT_CLIENT_ID,YT_CLIENT_SECRET, andYT_REFRESH_TOKENinto.env.
Environment variables
Variable | Default | Description |
|
| Set to |
|
| HTTP server port |
|
| HTTP endpoint path |
| unset | Static bearer token for HTTP mode |
|
| Faster-Whisper model ( |
|
|
|
|
| Quantization type ( |
|
| Tesseract language packs for screenshot/frame OCR |
| unset | Optional HTTP/SOCKS5 proxy URL for scraping from datacenter IPs |
| unset | Google OAuth credentials for YouTube Data API tools |
| unset | Default playlist ID for playlist tools |
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Transcribe, read and download public Reels, TikToks and YouTube videos, plus sourced creator data
Fetch transcripts, subtitles, chapters, metadata and frames from YouTube and 10+ video platforms
Get transcripts from YouTube, TikTok, X, Instagram and more - even when captions are off.
Download video and audio from TikTok, YouTube, Instagram and 1800+ sites; get transcripts.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables video text extraction using multiple speech recognition providers including local Whisper, JianYing/CapCut, and Bilibili Cut services. Supports video downloading, audio extraction, and automatic speech-to-text transcription with configurable providers.7MIT
- AlicenseAqualityCmaintenanceTranscribes videos from 1000+ platforms (YouTube, TikTok, Vimeo, etc.) and local video files using OpenAI's Whisper model, with support for 90+ languages and multiple output formats.821 npm7MIT
- FlicenseBqualityNot gradedmaintenanceEnables extraction and processing of YouTube video transcripts from individual videos, channels, and playlists. Supports transcript search, batch processing, multiple output formats (JSON, text, SRT, VTT), and bulk operations across multiple videos.1134 npm-
- AlicenseBqualityDmaintenanceEnables downloading videos from platforms like YouTube and converting them to text using OpenAI Whisper and ffmpeg. It supports multiple output formats including TXT, JSON, SRT, and VTT for transcriptions.12212 npmISC