I

Instagram-MCP服务器

@duhlink/instagram-server-next-mcp
0 Stars 502 次浏览 duhlink 更新于 2026-08-23

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

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Instagram MCP 服务器

一个使用 Chrome 现有登录会话获取 Instagram 帖子的 Model Context Protocol (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. 运行 linter:

    npm run lint
    

相对于原始版本的改进

  1. 模块化架构

    • 职责分离清晰
    • 更好的代码组织
    • 更容易维护和扩展
  2. 类型安全

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

    • 标准化的错误代码
    • 更好的错误消息
    • 正确的错误传播
  4. 配置

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

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

    • 模块化设计便于测试
    • 准备好依赖注入
    • 清晰的接口

许可证

MIT

相关 MCP 服务