article
README
🚀 Instagram MCP 服务器
Instagram MCP 服务器是一个借助 Chrome 现有登录会话来获取 Instagram 帖子的 Model Context Protocol (MCP) 服务器,能有效解决从 Instagram 自动化获取和处理帖子内容的问题,为相关业务提供便利。
✨ 主要特性
- 模块化架构,职责分离明确,提升代码的可维护性和扩展性。
- 使用 TypeScript 实现类型安全,避免运行时类型错误。
- 改进的错误处理和日志记录,提供更详细的错误信息和处理机制。
- 通过环境变量配置,方便灵活调整服务器参数。
- 符合 JSON - RPC 2.0 的通信协议,确保通信的规范性。
- 自动下载媒体文件并生成元数据,提高数据处理效率。
- 生成对 SEO 友好的描述,有助于提升搜索引擎优化效果。
🏗️ 架构
服务器采用模块化架构,结构如下:
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
get_instagram_posts 工具使用
从 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 用户数据目录路径
此外,通过配置管理器还可以设置其他配置选项:
- 浏览器设置(视图ports 口、超时时间)
- Instagram 设置(延迟时间、批量大小)
- 保存目录和文件路径
错误处理
服务器使用以下标准错误代码和信息:
INVALID_REQUEST:请求格式无效或缺少必需参数。AUTHENTICATION_ERROR:无法验证用户身份。RATE_LIMITED:达到 Instagram 的速率限制。INTERNAL_SERVER_ERROR:服务器内部错误。
开发模式
启动开发模式
npm run dev
检查代码格式
npm run lint
执行单元测试
npm test
🔧 技术细节
对比原始版本,主要改进如下:
- 模块化架构:提高了代码的可维护性和扩展性。
- 类型安全:通过 TypeScript 避免了运行时类型错误。
- 错误处理:提供了更详细的错误信息和处理机制。
- 代码质量:遵循最佳实践,确保代码的一致性和可读性。
总体而言,该项目结构清晰,功能完善,适合用于自动化获取和处理 Instagram 帖子内容。
扫码联系在线客服