A keyless MCP server and research skill for Instagram Reels. It hears what's said, sees what's on screen, and breaks down how every Reel opens, on your Mac.
instagram.com/reel/DNkpzuaRy-52 pagesfrom a marketing blog's “Reels best practices” guide
instagram.com/reel/DFIWSVoy1UQ1 pagefrom the same guide's examples
instagram.com/reel/DHGk1Cux33S1 page14 more Reels across the other pages…
Instagram has no anonymous search, so the web is the index. The agent searches the web for articles, roundups and newsletters on your topic, and reels_links pulls every embedded or linked Reel out of them in one call. Or just paste your own links.
reels_fetch · parts: transcript · on-device
0:000:150:300:45
[0:00]So there is no perfect length for a reel, but generally we recommend reels under three minutes.
[0:11]One, think about what your hook is.
[0:13]How are you going to get someone's attention in the first three seconds?
Instagram doesn't share its captions without a login, so the server listens itself. It fetches only the Reel's audio and transcribes it on your Mac with Parakeet Redux: 178 MB, 25 European languages, timestamps per sentence. Nothing is sent to a cloud.
reels_fetch · parts: frames · start 0 · end 5
0:00
0:01
0:02
0:03
Real frames, vertical, at any second. Burned-in subtitles, text overlays, b-roll and cuts become readable for the agent. ffmpeg reads only the bytes around each frame.
Every row says where it came from: the transcript or a frame, cited as @handle, Reel URL and second, and every answer ends with what was found, read and skipped.
Private by design
The listening happens on your Mac.
Public Reel data in, a cited answer out. Speech-to-text runs locally on Apple silicon or any CPU; no account, no API key, no cloud transcription.
One Reel
Reel linkyours, or found on the web
Public datacaption, likes, audio, video stream
Parakeet Reduxon-device speech-to-text
A cited answerspoken hook, on-screen text, type
No login, ever
Only what Instagram shows any logged-out visitor. Your account is never involved, so it can't be flagged.
Hear and see
Transcript for what's said, real frames for what's written and shown. Music-only Reels are reported as such, not guessed.
Proof over claims
Verbatim quotes with their source and second, a coverage line, and spot-checks by the skill.
0logins, keys or cookies
178 MBspeech model, 25 languages
~50×real time on Apple silicon
20Reels per fetch call
The tools
Three tools. Everything a Reel holds.
reels_fetch
Read up to 20 Reels: exactly the slice and the channels you need.
Author, caption, hashtags, likes, comments, date
Timestamped transcript, or only passages matching a query
Research skill: hooks taxonomy, subagents, spot-checks
Install
One prompt. Installed.
Paste one prompt into your agent. It installs the server and the skill, sets up on-device speech-to-text, and checks that everything works.
Paste into Claude Code, Codex, Cursor or any agent
Install Reels Research MCP for me from https://github.com/jindratilk/reels-research-mcp. Follow the “Install instructions for AI agents” in its README for the client you are running in: the plugin (MCP server + research skill) in Claude Code or Codex, otherwise the MCP server config. Run its --setup step for local speech-to-text, then run the doctor and tell me whether everything works, and if I need to restart anything.
Prefer the terminal? Manual install
$ claude plugin marketplace add jindratilk/reels-research-mcp
$ claude plugin install reels-research@reels-research
$ npx -y github:jindratilk/reels-research-mcp --setup
Instagram offers logged-out visitors no search, hashtag pages or profile listings. Reels come from your links or from web pages via reels_links.
No Instagram captions
Instagram's own auto-captions are only served to logged-in users, so transcripts come from on-device speech-to-text. It can mishear names; noisy audio lowers accuracy.
Likes, not views
View counts are hidden from logged-out visitors. The server reports likes, likes per day and comment counts.
Rate limits and private Reels
Instagram throttles anonymous lookups; the server spaces them and says when to wait. Private, age-restricted or blocked Reels are skipped with a reason.
Questions.
Does it need my Instagram login?
No. It reads only what Instagram shows any logged-out visitor of a public Reel. No login, cookies or API key, so your account is never involved.
Where does the transcript come from?
From the Reel's audio, transcribed on your machine with Moondream's Parakeet Redux, a 178 MB version of NVIDIA's Parakeet TDT v3. Instagram's own captions are only served to logged-in users. Audio is processed locally and deleted right after.
Which languages work?
The 25 European languages of Parakeet v3, with automatic detection: English, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Czech, Slovak, Ukrainian, Russian, Swedish, Danish, Finnish, Estonian, Latvian, Lithuanian, Hungarian, Romanian, Bulgarian, Croatian, Slovenian, Greek and Maltese.
How does the agent find Reels on a topic?
Instagram has no logged-out search, so the skill searches the web for pages that embed or list Reels on your topic, such as articles, roundups and newsletters, and reels_links collects the Reels from them. You can always paste your own links.
What does setup install?
--setup creates a private Python environment in ~/.cache/reels-research-mcp with Moondream's Photon runtime (it brings PyTorch, about 1 GB in total) and downloads the 178 MB model. yt-dlp and ffmpeg are needed for Reel data and frames.
Is it affiliated with Instagram or Meta?
No. It is an independent open-source project. Use it in line with Instagram's terms and respect creators' rights when you quote or reuse their content.
Let your agent study Reels.
Free, open source, no login. Claude Code, Codex and any MCP client.