mcpField
I
Instagram MCP Server

Instagram MCP Server

本地服务
github.com/duhlink社交媒体5094 周前更新

关于 Instagram MCP Server

Instagram MCP Server 是一个 MCP 服务,用于借助 Chrome 已有的登录会话抓取 Instagram 帖子。它使用 TypeScript 实现,采用模块化结构,适合需要读取账号公开帖子并保存媒体与元数据的开发者。

主要功能

  1. 01使用 Chrome 现有登录会话
  2. 02模块化架构,职责分离
  3. 03基于 TypeScript 的类型安全实现
  4. 04通过环境变量进行配置
  5. 05兼容 JSON-RPC 2.0 通信
  6. 06自动下载媒体并生成元数据

适用场景

  1. 01按用户名批量获取 Instagram 帖子
  2. 02将帖子媒体与元数据保存到本地目录
  3. 03为社交内容分析准备数据

MCP 相关

该项目是一个 MCP 服务,通过 get_instagram_posts 工具向 MCP 客户端暴露抓取帖子的能力,调用时传入用户名、数量上限和保存目录等参数。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Instagram MCP Server

一个用于通过 Chrome 现有登录会话获取 Instagram 帖子的模型上下文协议(MCP)服务。

功能

  • 模块化架构,职责划分清晰
  • 使用 TypeScript 实现类型安全
  • 改进错误处理和日志记录
  • 可通过环境变量进行配置
  • 符合 JSON-RPC 2.0 的通信规范
  • 自动下载媒体并生成元数据
  • 生成适合 SEO 的描述

架构

该服务采用模块化架构,结构如下:

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

配置

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

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

还可以通过配置管理器使用其他配置选项:

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

用法

  1. 安装依赖项:

    npm install
    
  2. 构建服务:

    npm run build
    
  3. 运行服务:

    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": {
    "name": "get_instagram_posts",
    "arguments": {
      "username": "example",
      "limit": 10
    }
  }
}

错误处理

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

  • INVALID_REQUEST:请求格式或参数无效
  • INVALID_PARAMS:缺少参数或参数无效
  • METHOD_NOT_FOUND:方法或工具未知
  • INTERNAL_ERROR:服务端错误

开发

  1. 以开发模式启动:

    npm run dev
    
  2. 运行代码检查器:

    npm run lint
    

相较于原始版本的改进

  1. 模块化架构

    • 职责划分清晰
    • 代码组织更合理
    • 更易于维护和扩展
  2. 类型安全

    • 完善的 TypeScript 类型
    • 更好地捕获错误
    • 改进 IDE 支持
  3. 错误处理

    • 标准化的错误代码
    • 更清晰的错误消息
    • 正确传递错误
  4. 配置

    • 集中管理配置
    • 验证环境变量
    • 类型安全地访问配置
  5. 代码质量

    • 统一的编码风格
    • 更完善的文档
    • 改进日志记录
  6. 测试支持

    • 模块化设计便于测试
    • 支持依赖注入
    • 接口清晰

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。