doomscroll-mcp
The doomscroll-mcp server lets AI agents browse, search, and extract structured metadata from Instagram Reels for content research and trend analysis.
Authentication & Session Management
login()— Open a visible browser to sign in manually (only the browser profile is persisted, not credentials)login_status()— Check if the current session is still activelogout()— Clear the persisted browser profiledoctor()— Diagnose setup: verify browser, profile path, and auth state
Reel Discovery
scroll_reels(limit, mode)— Scroll the default Instagram Reels feedsearch_reels(query, limit, mode)— Search by keyword (includes view counts)hashtag_reels(tag, limit, mode)— Browse a specific hashtag page
Extracted Metadata (per reel)
URL, creator username, caption, visual description (IG alt-text)
Likes, comments, views, shares/reposts
Date posted (ISO 8601 & Unix timestamp)
Audio information and source metadata
Filtering & Sorting
Filter by recency (
posted_within_hours), engagement (min_views,min_likes,min_reposts), and caption keywords (contains)Sort and retrieve top reels by views, likes, reposts, or recent activity
Browsing Modes & Humanization
fast_test,normal_passive, andconservativemodes to control delay behavior and rate-limit riskRandomized delays, scroll jitter, and watch pauses to simulate human behavior
Session Persistence — Browser profile is saved locally so login is only required once across multiple runs.
Allows AI agents to browse Instagram Reels, search by keyword or hashtag, scroll through reels, and extract metadata such as URL, creator, caption, likes, comments, shares, audio, and date posted. The server interacts with Instagram Web via Playwright to collect structured reel data for content research.
Click on "Install 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., "@doomscroll-mcpFind reels about yoga"
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.
DoomScroll MCP
An MCP server that allows AI agents to browse Instagram Reels and perform content research.
Instead of manually scrolling through Instagram, agents can discover, inspect, filter, and analyze reels directly from the feed.
⚠️ Use at your own risk. Automating Instagram violates its Terms of Service and may get an account rate-limited, locked, or banned. Use a secondary / throwaway account — never your main account.
Features
Login to Instagram once
Persist browser session between runs
Browse the default Reels feed based on your algorithm
Search by keyword
Search by hashtag
Scroll through reels
Extract reel metadata
Filter and rank content before sending it to an AI model
Humanized browsing (randomized delays, scroll jitter, watch pauses)
Optional, opt-in account interactions (e.g. likes)
Related MCP server: Instagram Complete MCP Server
Extracted Data
For each reel, DoomScroll MCP attempts to collect:
Reel URL
Creator username
Caption / description
Audio information
Likes
Comments
Shares / reposts (when available)
Date posted
Note:
viewsis always null — Instagram does not expose reel view counts on the web (why).
The MCP returns structured data so the AI agent can decide what is interesting and what should be ignored.
Architecture
AI Agent
↓
DoomScroll MCP
↓
Playwright
↓
Instagram WebTechnology
Python
MCP
Playwright
uv
uv is used for fast dependency management and execution.
Session Persistence
Instagram login is only required once.
The Playwright browser profile is persisted locally and reused between runs.
First Run
---------
login()
→ User signs in
→ Session saved
Second Run
----------
login_status()
→ Logged In
No additional login required.MVP Scope
1. Login
login()
login_status()
logout()2. Scroll
scroll_reels(limit=50)Supports:
Default Reels feed
Search results
Hashtag pages
Examples:
scroll_reels()
scroll_reels(
search="yoga"
)
scroll_reels(
hashtag="yoga"
)3. Return Results
[
{
"url": "...",
"creator": "...",
"caption": "...",
"likes": 12345,
"comments": 123,
"date_posted": "...",
"audio": "...",
}
]The MCP does not perform analysis.
Its job is to collect and return reel data.
The AI agent is responsible for:
Trend detection
Content analysis
Ranking
Content recommendations
Content generation
Example Workflow
User:
Find content ideas for beginner yoga.
Agent:
→ login_status()
Agent:
→ scroll_reels(
search="beginner yoga",
limit=100
)
MCP:
→ Returns reel metadata
Agent:
→ Filters high-engagement reels
→ Analyzes hooks and formats
→ Returns top content ideasInstall
Requires uv. Two one-time setup steps before any
agent can use it:
# 1. Install the headless browser (shared cache, done once per machine)
uvx --from doomscroll-mcp playwright install chromium
# 2. Log in to Instagram by hand (opens a visible browser; no credentials stored)
uvx --from doomscroll-mcp doomscroll-loginFrom a git clone instead of PyPI, swap
uvx --from doomscroll-mcpforuv run --directory /path/to/doomscroll-mcp.
Then add it to your agent. The server speaks MCP over stdio.
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) /
%APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"doomscroll": {
"command": "uvx",
"args": ["doomscroll-mcp"]
}
}
}Claude Code
claude mcp add doomscroll -- uvx doomscroll-mcpCursor
~/.cursor/mcp.json (or any MCP client using the standard schema):
{
"mcpServers": {
"doomscroll": {
"command": "uvx",
"args": ["doomscroll-mcp"]
}
}
}From a local clone (no PyPI)
{
"mcpServers": {
"doomscroll": {
"command": "uv",
"args": ["run", "--directory", "/path/to/doomscroll-mcp", "doomscroll-mcp"]
}
}
}After it's wired up, have the agent call doctor() to confirm it sees your
logged-in profile. If login_status() ever reports logged out (expired session
or a checkpoint), run doomscroll-login again.
Tools
login(force=False)— headful sign-in, persist profilelogin_status()— is the session logged in?logout()— clear the profiledoctor()— browser/profile/auth diagnostics + next actionscroll_reels(limit=50, sort_by=None, top=None, mode=None)— feed, stop at a reel countdoomscroll(duration_seconds, sort_by=None, top=None, mode=None)— feed, stop after a wall-clock timesearch_reels(query, limit=50, sort_by=None, top=None, mode=None)— keyword search → matching reelshashtag_reels(tag, limit=50, sort_by=None, top=None, mode=None)— hashtag → matching reels
search_reels / hashtag_reels hit Instagram's top_serp search API directly
(relevance-filtered, paginated), not the explore UI.
doomscroll scrolls for a fixed time instead of a fixed count — e.g.
doomscroll(600) doomscrolls for 10 minutes. Add sort_by="views" + top=10
to get "the best reels from N minutes of scrolling". Duration is clamped to
DOOMSCROLL_MAX_DURATION_S (default 30 min). sort_by ∈
views | likes | reposts | recent (descending; None = discovery order).
Responses include stopped_reason (limit | duration | dry | capped).
Filters
All four collection tools accept filters, applied after collection, before sort/top:
posted_within_hours— recency window (e.g.24= last day)min_views/min_likes/min_reposts— engagement floors ("viral")contains— caption keyword, case-insensitive
Example — "best fresh reels from 10 minutes of doomscrolling":
doomscroll(600, posted_within_hours=24, sort_by="likes", top=10).
Responses include filtered_out (how many were dropped) and echo the active
filters. An empty result purely because filters excluded everything is a valid
response (reels: []), not an error.
Notes:
The feed's
viewsare null — usemin_likeson the feed,min_viewson search/hashtag.The home feed mixes fresh and evergreen reels, so a tight
posted_within_hoursreturns only the fresh minority (a longerdoomscrollcatches more).containsis keyword matching, not topic understanding. For real topic relevance usesearch_reels(Instagram's own ranking); semantic topic is the agent's job, not the server's.
Errors come back as structured dicts (code, retry_after, requires_headful,
suggested_tool) so an agent can recover instead of stalling.
See docs/sample-output.md for a real scroll_reels
run against the live feed.
Vision
Turn Instagram into a structured data source for AI-powered content research.
Login once. Scroll automatically. Return structured reel data. Let the AI decide what matters.
Available Tools
7 toolsdoctorA
Diagnose setup: browser availability, profile path, auth state, next action.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description states it diagnoses setup but does not explicitly declare the tool as read-only or non-destructive. 'Diagnose' implies safety, but more clarity would help.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, efficiently listing key diagnostic areas. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema (though not shown), the description covers the tool's purpose. It could mention expected return values, but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters are defined, and schema coverage is 100% trivially. The description adds no param info but baseline is 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as diagnosing setup aspects: browser availability, profile path, auth state, and next action. It is specific and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are provided. The phrase 'Diagnose setup' implies usage before actions like login or reels, but guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hashtag_reelsB
Browse a hashtag page and return its reels.
tag with or without a leading '#'. Same reel shape and errors as
scroll_reels, sourced from instagram.com/explore/tags//.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | ||
| mode | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the only source. It discloses the source URL and references a sibling for shape and errors, but does not explicitly state that the operation is read-only, rate limits, or other behavioral traits. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with only two sentences. It delivers essential information without extra fluff. However, it could be slightly more structured with bullet points for parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values are covered. However, the parameter documentation is incomplete. The description lacks details on 'mode' and 'limit', making it insufficient for an agent to use the tool correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only explains the 'tag' parameter format. The 'mode' and 'limit' parameters are not described at all, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Browse' and the resource 'hashtag page', and distinguishes itself from siblings like scroll_reels and search_reels by specifying the source URL. It also mentions the tag format without leading '#', adding clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over siblings like scroll_reels or search_reels. It references scroll_reels for similar output shape, implying familiarity but not providing criteria for choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginA
Open a visible browser so you can sign in to Instagram by hand.
Credentials are never stored — only the browser profile is persisted, so you log in once. Use force=True to re-auth an expired session or clear a checkpoint. WARNING: automating Instagram violates its ToS and risks the account. Use a secondary/throwaway account, never your main.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description covers credential persistence, interactive login, and force behavior. However, does not mention session validity detection or return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences with main action front-loaded. Warnings are important but could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers login flow and warnings, but does not describe output or what happens after success. Given interactive nature, still missing some context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter 'force' is explained with concrete use cases (re-auth/clear checkpoint), adding value beyond the schema's default value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Open and sign in' to resource 'Instagram via browser', distinguishing from sibling tools like login_status and logout.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (first login) and when to use force=True (re-auth/clear checkpoint). Provides warning about ToS risk. Lacks explicit when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
login_statusA
Report whether the persisted Instagram session is currently logged in.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must fully disclose behavior. It describes the output (report login status) but does not mention that it is read-only, side-effect-free, or any potential latency. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 10-word sentence that is efficient and to the point. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema, the description is minimal but covers the core function. However, it could better contextualize usage among siblings (e.g., checking before login/logout). Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the input schema, so the description adds no parameter-specific info. Baseline for 0 params is 4, and the description does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports login status for the Instagram session, using a specific verb and noun. It distinguishes from sibling tools like login and logout.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for checking login status but does not explicitly state when to use this tool over alternatives like trying login or calling doctor. No 'when not' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logoutA
Clear the persisted browser profile. Next run requires login() again.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description adequately discloses the destructive behavior of clearing the profile. It is straightforward for a logout action, though it could mention any side effects or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste. The action and consequence are presented front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no annotations, the description fully explains the tool's effect and what happens next. It is complete for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so baseline is 4. The description adds no parameter information, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Clear' and explicitly names the resource 'persisted browser profile'. It clearly distinguishes from sibling tools like login and login_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the consequence that next run requires login() again, providing clear context for when to use this tool. However, it does not explicitly mention when not to use it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scroll_reelsA
Scroll the default Instagram Reels feed and return structured reel metadata.
Returns {reels: [...], count, timing, fill_rate}. Each reel: url, creator, caption, description (= caption), visual_description (IG auto alt-text), likes, comments, views, shares, reposts, date_posted (ISO 8601), date_posted_ts (unix), audio, _source. Engagement fields are best-effort — missing ones come back null rather than failing.
Note on views: the home feed omits view/play counts, so views is null here.
Use search_reels/hashtag_reels for reels WITH view counts. See
docs/views-investigation.md. shares and reposts are the same metric.
mode (optional): one of fast_test, normal_passive, conservative. Controls
humanized delay/cap. Defaults to the server's configured mode.
This call drives the default feed only. For a topic use search_reels;
for a tag use hashtag_reels.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes return structure, explains best-effort engagement fields and null views, clarifies shares/reposts equivalence, and details mode behavior. No contradictions with missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficiently organized with main purpose, return structure, caveats, mode explanation, and alternatives; no superfluous sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essential aspects: what it does, return format, parameter semantics, usage guidance, and edge cases; appropriate given output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning for mode parameter (enum options and purpose) beyond schema; limit is self-explanatory but not expanded upon, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'scroll' and resource 'default Instagram Reels feed'; distinguishes from sibling tools search_reels and hashtag_reels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use this tool (default feed only) and when to use search_reels or hashtag_reels; also provides a note on views using alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_reelsA
Search Instagram by keyword and return matching reels.
Same reel shape and error handling as scroll_reels, sourced from the explore
search results for query (e.g. "beginner yoga"). Unlike the feed, search
results DO include views (play counts). comments is not in this payload
(comes back null).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses data source (explore search results), that views are included unlike feed, and that comments are null. Mentions same error handling as scroll_reels. Adequate behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs, front-loaded with main purpose. Every sentence adds value: purpose, data shape, key differences. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered elsewhere. Description provides behavioral context and differences from siblings but omits parameter details for 'limit' and 'mode'. Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 3 parameters with 0% description coverage. Description only explains 'query' with an example. 'limit' and 'mode' are not explained, leaving gaps for proper invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Search Instagram by keyword and return matching reels', specifying verb, resource, and scope. Distinguishes from siblings like scroll_reels and hashtag_reels by noting data source (explore search) and inclusion of views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (keyword search) and contrasts with feed and scroll_reels. Notes that comments are null in this payload. Could be more explicit about when not to use, but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v0.1.0- First observed
doctor - First observed
hashtag_reels - First observed
login - First observed
login_status - First observed
logout - First observed
scroll_reels - First observed
search_reels
TDQS
Each tool has a clearly distinct purpose: authentication (login, login_status, logout), setup diagnostics (doctor), and three different reels retrieval methods (scroll_reels for default feed, search_reels for keyword search, hashtag_reels for hashtag browsing). Descriptions explicitly note differences in view count availability, preventing confusion.
Tool names mix patterns: 'doctor' is a noun not following verb_noun, 'hashtag_reels' is noun_noun, while 'scroll_reels' and 'search_reels' are verb_noun. 'login', 'login_status', 'logout' are verb-based but not consistent with the others. The inconsistency makes naming less predictable.
Seven tools is well-scoped for an Instagram reels browsing server: three for authentication lifecycle, three for reels retrieval (feed, search, hashtag), and one for diagnostics. Each tool serves a clear function without redundancy.
The tool surface covers all essential operations for browsing Instagram reels: authentication setup, status checks, logout, and three distinct retrieval paths. Given the warning against automation beyond ToS, omitting write actions (like, comment) is appropriate. No obvious gaps for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
Scrape Instagram hashtag posts and Reels — get captions, likes, comments, views, media URLs, and…
- ReelDropOAuthio.reeldrop
Schedule Instagram reels, manage comment-to-DM automations, and read analytics
Get social media data from Instagram and TikTok: profiles, posts, videos, comments, and more.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables LLMs to interact with Instagram through a comprehensive toolkit for account management, content creation, messaging, social graph analysis, and content discovery.10-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Instagram Business accounts by automating content publishing, scheduling posts, and analyzing performance metrics. Supports posts, stories, reels, and carousels with detailed audience insights and hashtag discovery.-
- FlicenseBqualityDmaintenanceEnables AI agents to control Instagram accounts programmatically, supporting profile management, media interaction, direct messaging, and follower management.132-
- AlicenseAqualityFmaintenanceEnables AI assistants to interact with Instagram by scraping profiles, posts, reels, DMs, and business insights through a robust, DOM-agnostic browser orchestration engine that bypasses Instagram's anti-automation measures.281Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sho0pi/doomscroll-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server