Skip to main content
Glama

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

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 -
    7
    MIT License
  • A
    security
    A
    license
    A
    quality
    A Pinterest Model Context Protocol (MCP) server for image search and information retrieval
    Last updated -
    3
    7
    17
    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 -
    142
    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