Instagram MCP Server
duhlink/instagram-server-next-mcp · 50 stars · TypeScript
MCP server
Install
The repo has no one-line install. Follow its README.
Files
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 install
-
Build the server:
npm run build
-
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 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 dev
-
Run 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
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 50
- Language
- TypeScript
- Last push
- 2025-01-09
- Forks
- 16
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k