Instagram Server Next Mcp

Instagram Server Next Mcp

🚀 Instagram MCP 服务器

Instagram MCP 服务器是一个借助 Chrome 现有登录会话来抓取 Instagram 帖子的模型上下文协议(MCP)服务器。它能有效利用 Chrome 的登录状态,实现对 Instagram 帖子的抓取操作,为相关数据获取提供了便利。

✨ 主要特性

  • 🌟 模块化架构,实现了明确的关注点分离,让代码结构更清晰,易于维护和扩展。
  • 🔒 使用 TypeScript 实现类型安全,减少潜在的类型错误,提升代码的可靠性。
  • 🛠️ 改进错误处理和日志记录,方便开发者快速定位和解决问题。
  • ⚙️ 通过环境变量进行配置,增强了服务器的灵活性和可配置性。
  • 📡 符合 JSON - RPC 2.0 通信协议,便于与其他系统进行交互。
  • 📥 自动下载媒体文件并生成元数据,为后续的数据处理提供了便利。
  • 🌐 制作 SEO 友好的描述,有助于提高搜索引擎的收录和排名。

📦 安装指南

安装依赖项

npm install

构建服务器

npm run build

运行服务器

CHROME_USER_DATA_DIR=/path/to/chrome/profile npm start

💻 使用示例

基础用法

从 Instagram 个人资料中抓取最近的帖子

{
"jsonrpc": "2.0",
"id": 1,
"method": "call_tool",
"params": {
"name": "get_instagram_posts",
"arguments": {
"username": "example",
"limit": 10
}
}
}

命令行运行示例

$ npm start -- get_instagram_posts --username example --limit 10

示例输出

{
"status": "success",
"result": {
"posts": [
{
"id": "post_id_1",
"url": "https://www.instagram.com/post/1234567890/",
"username": "example",
"caption": "这是一个示例帖子。",
"likes": 123,
"comments": 45
}
// 其他帖子...
]
}
}

📚 详细文档

架构

服务器采用模块化架构,具体结构如下:

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                # 主服务器类

配置

服务器需要以下环境变量:

  • CHROME_USER_DATA_DIR:包含登录会话的 Chrome 用户数据目录路径

此外,通过配置管理器还有其他可用的配置选项:

  • 浏览器设置(视图ports口、超时时间)
  • Instagram 设置(延迟、批量大小)
  • 保存目录和文件路径

可用工具

get_instagram_posts

从 Instagram 个人资料中抓取最近的帖子。 参数

  • username(必填):要抓取的 Instagram 用户名
  • limit(可选):要抓取的帖子数量(1 - 50)或 "all"
  • saveDir(可选):保存媒体文件和元数据的目录
  • delayBetweenPosts(可选):处理帖子之间的等待时间(以毫秒为单位)

错误处理

服务器使用标准化的错误代码和消息:

  • ERR_NO_API_KEY:未设置 API 密钥
  • ERR_INVALID_ARGUMENT:无效参数
  • ERR_DATABASE_ERROR:数据库错误
  • ERR_AUTHENTICATION_FAILED:身份验证失败
  • ERR_NETWORK:网络问题

退出状态

服务器返回以下退出状态:

  • 0:成功
  • 1:一般错误
  • 2:配置错误
  • 3:认证错误
  • 4:数据库错误
  • 5:网络错误

🔧 技术细节

模块化架构

服务器的模块化架构使得各个功能模块相互独立,便于开发和维护。核心 MCP 功能、Instagram 功能以及共享服务都被封装在不同的模块中,通过明确的接口进行交互。

类型安全

使用 TypeScript 为代码添加了类型检查,确保了代码的正确性和可维护性。在不同的模块中,都定义了明确的类型,避免了因类型不匹配而导致的错误。

错误处理和日志记录

服务器对错误进行了统一的处理,使用标准化的错误代码和消息,方便开发者快速定位和解决问题。同时,详细的日志记录也为调试和监控提供了有力的支持。

配置管理

通过环境变量和配置管理器,服务器可以灵活地进行配置。不同的环境可以使用不同的配置,提高了服务器的适应性。

JSON - RPC 2.0 通信协议

服务器遵循 JSON - RPC 2.0 通信协议,使得与其他系统的交互变得更加简单和规范。客户端可以通过发送符合该协议的请求来调用服务器的功能。

媒体文件处理和元数据生成

服务器能够自动下载媒体文件并生成元数据,这一功能通过专门的工具函数实现,确保了数据的完整性和可用性。

SEO 友好描述生成

服务器可以生成 SEO 友好的描述,这有助于提高搜索引擎的收录和排名。通过对帖子内容的分析和处理,生成符合 SEO 规则的描述信息。

📄 注意事项

⚠️ 重要提示

  • 请确保安装了 Node.js 和 npm,这是服务器运行的基础环境。
  • 配置文件可能包含敏感信息,如 API 密钥等,应妥善保管,避免信息泄露。
  • 处理大量数据时,建议启用分页功能,以提高性能和稳定性。
  • 0 关注
  • 0 收藏,7 浏览
  • system 提出于 2025-09-28 09:21

相似服务问题