返回市场
Instagram服务器下一版-MCP

Instagram服务器下一版-MCP

作者:duhlink45 星标更新:2025-01-09

项目介绍

Instagram MCP 服务器

这是一个使用 Chrome 现有登录会话抓取 Instagram 帖子的 Model Context Protocol (MCP) 服务器。

特性

  • 模块化架构,职责分明
  • 使用 TypeScript 实现类型安全
  • 改进的错误处理和日志记录
  • 通过环境变量进行配置
  • 遵循 JSON-RPC 2.0 的通信协议
  • 自动下载媒体文件并生成元数据
  • 生成对搜索引擎友好的描述

架构

服务器遵循模块化架构,结构如下:

src/
├── core/                      # 核心 MCP 功能
│   ├── mcp/                  # MCP 服务器实现
│   │   ├── server.ts        # 服务器类
│   │   ├── stdio.ts         # StdioServerTransport
│   │   └── index.ts         # Barrel 导出
│   ├── 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 用户数据目录路径

通过配置管理器可获得其他配置选项:

  • 浏览器设置(视口、超时)
  • 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