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
Install dependencies:
npm installBuild the server:
npm run buildRun 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 fromlimit(optional): Number of posts to fetch (1-50) or “all”saveDir(optional): Directory to save media files and metadatadelayBetweenPosts(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 parametersINVALID_PARAMS: Missing or invalid parametersMETHOD_NOT_FOUND: Unknown method or toolINTERNAL_ERROR: Server-side errors
Development
Start in development mode:
npm run devRun linter:
npm run lint
Improvements Over Original
Modular Architecture
- Clear separation of concerns
- Better code organization
- Easier to maintain and extend
Type Safety
- Comprehensive TypeScript types
- Better error catching
- Improved IDE support
Error Handling
- Standardized error codes
- Better error messages
- Proper error propagation
Configuration
- Centralized configuration
- Environment variable validation
- Type-safe config access
Code Quality
- Consistent coding style
- Better documentation
- Improved logging
Testing Support
- Modular design enables testing
- Dependency injection ready
- Clear interfaces
License
MIT
Instagram MCP Server
Project Details
- duhlink/instagram-server-next-mcp
- Last Updated: 4/21/2025
Recomended MCP Servers
Execute a secure shell in Claude Desktop using the Model Context Protocol.
Simple solution to give Claude ability to check current time via MCP
A powerful Model Context Protocol (MCP) server providing comprehensive Google Maps API integration with LLM processing capabilities.
🌎 ✨ Earthdata MCP Server
📢 Instagram MCP Server – A powerful Model Context Protocol (MCP) server for tracking Instagram engagement, generating leads,...
An mcp server to inject raw chain of thought tokens from a reasoning model.
A Model Context Protocol (MCP) server that provides tools for fetching Reddit content, including frontpage posts, subreddit information...
A Model Context Protocol (MCP) server for interacting with the Canvas API. This server allows you to manage...
Claude Server is an MCP implementation that enhances Claude's capabilities by providing sophisticated context management across sessions, enabling...





