Skip to main content
Glama

DoomScroll MCP

CI PyPI Python License: MIT

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: views is 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 Web

Technology

  • 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 ideas

Install

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

From a git clone instead of PyPI, swap uvx --from doomscroll-mcp for uv 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-mcp

Cursor

~/.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 profile

  • login_status() — is the session logged in?

  • logout() — clear the profile

  • doctor() — browser/profile/auth diagnostics + next action

  • scroll_reels(limit=50, sort_by=None, top=None, mode=None) — feed, stop at a reel count

  • doomscroll(duration_seconds, sort_by=None, top=None, mode=None) — feed, stop after a wall-clock time

  • search_reels(query, limit=50, sort_by=None, top=None, mode=None) — keyword search → matching reels

  • hashtag_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_byviews | 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 views are null — use min_likes on the feed, min_views on search/hashtag.

  • The home feed mixes fresh and evergreen reels, so a tight posted_within_hours returns only the fresh minority (a longer doomscroll catches more).

  • contains is keyword matching, not topic understanding. For real topic relevance use search_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 tools
doctorA

Diagnose setup: browser availability, profile path, auth state, next action.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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//.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYes
modeNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 7 tool updatesv0.1.0
    • First observeddoctor
    • First observedhashtag_reels
    • First observedlogin
    • First observedlogin_status
    • First observedlogout
    • First observedscroll_reels
    • First observedsearch_reels

TDQS

A4/5.0
Disambiguation5/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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