Skip to main content
Glama
anas7272

Instagram MCP Server

by anas7272

Instagram MCP Server

A professional, well-structured MCP (Model Context Protocol) server for managing and posting Instagram content — PDF to images, carousel batches, auto-posting, and Cloudinary hosting.

Features

  • šŸ“ø Content management — list, view, delete, archive local images

  • āœļø Metadata — captions & hashtags per content item

  • šŸ“± Post to Instagram — single image or carousel posts via Graph API

  • šŸ–¼ļø PDF → Images — convert PDF pages to PNGs (poppler)

  • šŸŽ  Carousel batches — group images into 2-10 image carousels

  • ā˜ļø Cloudinary — temporary image hosting + auto-cleanup

  • šŸ”‘ Token diagnostics — debug token expiry, scopes, and meta error codes

Related MCP server: instagram-mcp

Project Structure

instagram-mcp/
ā”œā”€ā”€ src/instagram_mcp/          # Main package
│   ā”œā”€ā”€ config.py               # Env, constants, paths
│   ā”œā”€ā”€ logging_setup.py        # Console + file logging
│   ā”œā”€ā”€ errors.py               # Meta error parsing + guidance
│   ā”œā”€ā”€ server.py               # FastMCP registration (thin)
│   ā”œā”€ā”€ __main__.py             # python -m instagram_mcp
│   ā”œā”€ā”€ services/               # External integrations
│   │   ā”œā”€ā”€ instagram.py        #   Graph API client
│   │   ā”œā”€ā”€ cloudinary.py       #   Upload/delete/verify
│   │   └── pdf.py              #   PDF → images
│   ā”œā”€ā”€ storage/                # Local data access
│   │   ā”œā”€ā”€ content.py          #   File resolution
│   │   └── metadata.py         #   JSON load/save
│   └── tools/                  # MCP tool implementations
│       ā”œā”€ā”€ content_tools.py
│       ā”œā”€ā”€ metadata_tools.py
│       ā”œā”€ā”€ instagram_tools.py
│       ā”œā”€ā”€ cloudinary_tools.py
│       └── carousel_tools.py
ā”œā”€ā”€ scripts/                    # CLI utilities
│   ā”œā”€ā”€ check_token.py          #   Validate token + scopes
│   └── refresh_token.py        #   Extend long-lived token
ā”œā”€ā”€ tests/                      # pytest suite (mocked HTTP)
ā”œā”€ā”€ content/                    # Your media files (unchanged)
ā”œā”€ā”€ archive/                    # Archived content
ā”œā”€ā”€ logs/                       # Log files
ā”œā”€ā”€ server.py                   # Backward-compatible entry point
└── pyproject.toml              # Package config

Installation

# Create & activate venv (Windows)
python -m venv .venv
.\.venv\Scripts\Activate.ps1

# Install package (editable)
pip install -e .

Configuration

Copy .env.example → .env and fill in:

# Instagram (required for posting)
INSTAGRAM_ACCESS_TOKEN=your_token_here
INSTAGRAM_BUSINESS_ACCOUNT_ID=your_account_id_here

# Cloudinary (required for publish_image / carousels)
CLOUDINARY_CLOUD_NAME=...
CLOUDINARY_API_KEY=...
CLOUDINARY_API_SECRET=...

# Optional
INSTAGRAM_API_VERSION=v23.0
LOG_LEVEL=INFO
DELETE_LOCAL_AFTER_PUBLISH=false

Running the Server

# Option 1: Backward-compatible (Claude Desktop config)
python server.py

# Option 2: As a package
python -m instagram_mcp

# Option 3: Console script (after pip install -e .)
instagram-mcp

CLI Utilities

# Check your token's validity, expiry, and scopes
python scripts/check_token.py

# Info on refreshing a long-lived token (60 days)
python scripts/refresh_token.py

Testing

pip install -e ".[dev]"
pytest

MCP Tools

Tool

Purpose

list_content

List local images in content dir

get_content

Get file metadata (mime, size)

manage_content

list / delete / archive content

manage_metadata

Update / view / clear captions & hashtags

test_instagram_connection

Test Graph API connection

debug_instagram_token

Debug token expiry + scopes

post_to_instagram

Post single image (direct upload)

test_cloudinary_upload

Upload to Cloudinary, verify URL

cleanup_cloudinary_asset

Delete a Cloudinary asset

publish_image

Publish via Cloudinary HTTPS URL

convert_pdf_to_images

PDF → PNG images

create_carousel_batch

Group images into carousels

post_carousel_to_instagram

Post a carousel + auto-cleanup

list_carousel_batches

List carousels + status

Resource

  • instagram://content/{filename} — access images as base64 blobs for visual analysis.

Troubleshooting: Daily "API access blocked (code 200)"

Run test_instagram_connection and debug_instagram_token to diagnose.

Common causes & fixes:

  1. App in Development Mode → switch to Live in Meta Developer dashboard.

  2. Missing approved permissions → submit App Review for instagram_basic + instagram_content_publish.

  3. Token expired/revoked (60 days) → generate a fresh long-lived token.

  4. App flagged by Meta → check the app review status / appeal.

Logs are written to logs/instagram_mcp.log for diagnosis.

Install Server
F
license - not found
B
quality
C
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    F
    maintenance
    An MCP server that integrates with Instagram's Graph API to enable AI-driven management of Instagram Business accounts. It provides tools for fetching profile data, publishing media, analyzing engagement metrics, and managing direct messages.
    173
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    MCP server providing seamless integration with Instagram's Graph API for business account management, content publishing, and analytics.
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    MCP server for Instagram Graph API providing 25 tools for publishing photos, reels, carousels, and stories, managing comments, viewing insights, and searching hashtags.
    9
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • PostKing MCP server for managing brands, generating posts, scheduling content, and publishing blogs.

  • Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.

  • Cloud MCP for project data, analytics, research, content planning, media generation, and growth.

View all MCP Connectors

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/anas7272/Instagram-mcp'

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