View as Markdown

Instagram Integration

Instagram Graph API for professional accounts — pages, media, comments, insights, stories, and publishing.

The Instagram integration provides access to instagram Graph API for professional accounts — pages, media, comments, insights, stories, and publishing. through the Integrate MCP server.

Installation

The Instagram integration is included with the SDK:

import { instagramIntegration } from "integrate-sdk/server";

Setup

1. Create an Instagram OAuth App

  1. Go to Facebook Developer Portal
  2. Create a new OAuth application
  3. Configure your redirect URI
  4. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Instagram integration to your server configuration. The integration automatically reads INSTAGRAM_CLIENT_ID and INSTAGRAM_CLIENT_SECRET from your environment variables:

import { createMCPServer, instagramIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    instagramIntegration({
      scopes: ["pages_show_list", "pages_read_engagement", "instagram_basic", "instagram_manage_insights", "instagram_manage_comments", "instagram_content_publish"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

instagramIntegration({
  clientId: process.env.CUSTOM_INSTAGRAM_ID,
  clientSecret: process.env.CUSTOM_INSTAGRAM_SECRET,
      scopes: ["pages_show_list", "pages_read_engagement", "instagram_basic", "instagram_manage_insights", "instagram_manage_comments", "instagram_content_publish"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("instagram");
const result = await client.instagram.listPages({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, instagramIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [instagramIntegration()],
});

Configuration Options

export interface InstagramIntegrationConfig {
  /** Meta app OAuth client ID (defaults to INSTAGRAM_CLIENT_ID env var) */
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • pages_show_list
  • pages_read_engagement
  • instagram_basic
  • instagram_manage_insights
  • instagram_manage_comments
  • instagram_content_publish

Tools

instagram_list_pages

List pages

export interface InstagramListPagesParams { fields?: string }

instagram_get_profile

Get profile

export interface InstagramGetProfileParams {
    ig_user_id: string;

instagram_list_media

List media

export interface InstagramListMediaParams {
    ig_user_id: string;

instagram_get_media

Get media

export interface InstagramGetMediaParams {
    media_id: string;

instagram_list_comments

List comments

export interface InstagramListCommentsParams {
    media_id: string;

instagram_reply_comment

Reply comment

export interface InstagramReplyCommentParams {
    comment_id: string;

instagram_delete_comment

Delete comment

export interface InstagramDeleteCommentParams { comment_id: string }

instagram_hide_comment

Hide comment

export interface InstagramHideCommentParams {
    comment_id: string;

instagram_get_media_insights

Get media insights

export interface InstagramGetMediaInsightsParams {
    media_id: string;

instagram_get_user_insights

Get user insights

export interface InstagramGetUserInsightsParams {
    ig_user_id: string;

instagram_create_media_container

Create media container

export interface InstagramCreateMediaContainerParams {
    ig_user_id: string;

instagram_publish_media

Publish media

export interface InstagramPublishMediaParams {
    ig_user_id: string;

instagram_list_stories

List stories

export interface InstagramListStoriesParams {
    ig_user_id: string;

instagram_list_tagged_media

List tagged media

export interface InstagramListTaggedMediaParams {
    ig_user_id: string;

Notes

  • Category: Social Media
  • Authentication mode: OAuth