Instagram MCP 服务器是一个借助 Chrome 现有登录会话来获取 Instagram 帖子的 Model Context Protocol (MCP) 服务器,能有效解决从 Instagram 自动化获取和处理帖子内容的问题,为相关业务提供便利。
服务器采用模块化架构,结构如下:
src/
├── core/ # 核心 MCP 功能
│ ├── mcp/ # MCP 服务器实现
│ │ ├── server.ts # 服务器类
│ │ ├── stdio.ts # StdioServerTransport
│ │ └── index.ts # 导出桶
│ ├── types/ # 核心类型定义
│ │ └── mcp.ts # MCP 类型
│ └── utils/ # 工具函数
│ ├── config.ts # 配置管理
│ └── errors.ts # 错误处理
├── features/ # 功能模块
│ └── instagram/ # Instagram 功能
│ ├── types.ts # Instagram 类型
│ ├── utils/ # 功能工具
│ │ ├── media.ts # 媒体处理
│ │ ├── post.ts # 帖子处理
│ │ └── seo.ts # SEO 生成
│ └── instagram.service.ts # Instagram 服务
├── services/ # 共享服务
│ └── browser/ # 浏览器服务
│ ├── types.ts # 浏览器类型
│ └── browser.service.ts # 浏览器服务
├── index.ts # 入口点
└── server.ts # 主服务器类
npm install
npm run build
CHROME_USER_DATA_DIR=/path/to/chrome/profile npm start
从 Instagram 个人资料中获取近期帖子。 参数:
username
(必需):要获取帖子的 Instagram 用户名limit
(可选):获取的帖子数量(1 - 50)或 "all"saveDir
(可选):保存媒体文件和元数据的目录delayBetweenPosts
(可选):处理帖子之间的延迟时间(以毫秒为单位)示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "call_tool",
"params": {
"tool": "get_instagram_posts",
"username": "target_user",
"limit": 10,
"saveDir": "/path/to/save",
"delayBetweenPosts": 1000
}
}
服务器需要以下环境变量:
CHROME_USER_DATA_DIR
:包含登录会话的 Chrome 用户数据目录路径此外,通过配置管理器还可以设置其他配置选项:
服务器使用以下标准错误代码和信息:
INVALID_REQUEST
:请求格式无效或缺少必需参数。AUTHENTICATION_ERROR
:无法验证用户身份。RATE_LIMITED
:达到 Instagram 的速率限制。INTERNAL_SERVER_ERROR
:服务器内部错误。npm run dev
npm run lint
npm test
对比原始版本,主要改进如下:
总体而言,该项目结构清晰,功能完善,适合用于自动化获取和处理 Instagram 帖子内容。