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

Install 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 -
                    3
                    8
                    JavaScript
                    MIT License
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A Pinterest Model Context Protocol (MCP) server for image search and information retrieval
                    Last updated -
                    4
                    14
                    TypeScript
                    MIT License
                    • Linux
                    • Apple
                  • A
                    security
                    F
                    license
                    A
                    quality
                    A lightweight MCP service that enables programmatic downloading of Instagram videos to a specified local path with progress tracking.
                    Last updated -
                    1
                    2
                    JavaScript
                  • -
                    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 -
                    113
                    Python
                    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