Skip to main content
Glama

Instagram MCP Server

by duhlink

Instagram MCP Server

A Model Context Protocol (MCP) server for fetching Instagram posts using Chrome's existing login session.

Features

  • Modular architecture with clear separation of concerns

  • Type-safe implementation using TypeScript

  • Improved error handling and logging

  • Configurable through environment variables

  • JSON-RPC 2.0 compliant communication

  • Automatic media downloading and metadata generation

  • SEO-friendly description generation

Architecture

The server follows a modular architecture with the following structure:

src/ ├── core/ # Core MCP functionality │ ├── mcp/ # MCP server implementation │ │ ├── server.ts # Server class │ │ ├── stdio.ts # StdioServerTransport │ │ └── index.ts # Barrel exports │ ├── types/ # Core type definitions │ │ └── mcp.ts # MCP types │ └── utils/ # Utility functions │ ├── config.ts # Configuration management │ └── errors.ts # Error handling ├── features/ # Feature modules │ └── instagram/ # Instagram feature │ ├── types.ts # Instagram types │ ├── utils/ # Feature utilities │ │ ├── media.ts # Media handling │ │ ├── post.ts # Post processing │ │ └── seo.ts # SEO generation │ └── instagram.service.ts # Instagram service ├── services/ # Shared services │ └── browser/ # Browser service │ ├── types.ts # Browser types │ └── browser.service.ts # Browser service ├── index.ts # Entry point └── server.ts # Main server class

Configuration

The server requires the following environment variables:

  • CHROME_USER_DATA_DIR: Path to Chrome user data directory containing login session

Additional configuration options are available through the config manager:

  • Browser settings (viewport, timeouts)

  • Instagram settings (delays, batch sizes)

  • Save directory and file paths

Usage

  1. Install dependencies:

    npm install
  2. Build the server:

    npm run build
  3. Run the server:

    CHROME_USER_DATA_DIR=/path/to/chrome/profile npm start

Available Tools

get_instagram_posts

Fetches recent posts from an Instagram profile.

Parameters:

  • username (required): Instagram username to fetch posts from

  • limit (optional): Number of posts to fetch (1-50) or "all"

  • saveDir (optional): Directory to save media files and metadata

  • delayBetweenPosts (optional): Milliseconds to wait between processing posts

Example:

{ "jsonrpc": "2.0", "id": 1, "method": "call_tool", "params": { "name": "get_instagram_posts", "arguments": { "username": "example", "limit": 10 } } }

Error Handling

The server uses standardized error codes and messages:

  • INVALID_REQUEST: Invalid request format or parameters

  • INVALID_PARAMS: Missing or invalid parameters

  • METHOD_NOT_FOUND: Unknown method or tool

  • INTERNAL_ERROR: Server-side errors

Development

  1. Start in development mode:

    npm run dev
  2. Run linter:

    npm run lint

Improvements Over Original

  1. Modular Architecture

    • Clear separation of concerns

    • Better code organization

    • Easier to maintain and extend

  2. Type Safety

    • Comprehensive TypeScript types

    • Better error catching

    • Improved IDE support

  3. Error Handling

    • Standardized error codes

    • Better error messages

    • Proper error propagation

  4. Configuration

    • Centralized configuration

    • Environment variable validation

    • Type-safe config access

  5. Code Quality

    • Consistent coding style

    • Better documentation

    • Improved logging

  6. Testing Support

    • Modular design enables testing

    • Dependency injection ready

    • Clear interfaces

License

MIT

Deploy Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

A server that allows fetching Instagram posts using Chrome's existing login session via Model Context Protocol (MCP).

  1. Features
    1. Architecture
      1. Configuration
        1. Usage
          1. Available Tools
            1. get_instagram_posts
          2. Error Handling
            1. Development
              1. Improvements Over Original
                1. License

                  Related MCP Servers

                  • A
                    security
                    A
                    license
                    A
                    quality
                    A Model Context Protocol (MCP) server for managing social media posts, currently supporting X (formerly Twitter).
                    Last updated -
                    8
                    MIT License
                  • A
                    security
                    A
                    license
                    A
                    quality
                    A Pinterest Model Context Protocol (MCP) server for image search and information retrieval
                    Last updated -
                    3
                    5
                    16
                    MIT License
                    • Linux
                    • Apple
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A Model Context Protocol server that enables Claude or Cursor to send direct messages on Instagram, allowing AI assistants to interact with Instagram's messaging system.
                    Last updated -
                    135
                    MIT License
                    • Apple

                  View all related MCP servers

                  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/duhlink/instagram-server-next-mcp'

                  If you have feedback or need assistance with the MCP directory API, please join our Discord server