Instagram MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Enables fetching and processing Instagram posts using Chrome's existing login session, with support for media downloading, metadata generation, and SEO-friendly description creation.

Servidor MCP de Instagram

Un servidor de Protocolo de contexto de modelo (MCP) para obtener publicaciones de Instagram utilizando la sesión de inicio de sesión existente de Chrome.

Características

  • Arquitectura modular con clara separación de preocupaciones
  • Implementación segura de tipos usando TypeScript
  • Manejo y registro de errores mejorados
  • Configurable a través de variables de entorno
  • Comunicación compatible con JSON-RPC 2.0
  • Descarga automática de medios y generación de metadatos
  • Generación de descripciones optimizadas para SEO

Arquitectura

El servidor sigue una arquitectura modular con la siguiente estructura:

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

Configuración

El servidor requiere las siguientes variables de entorno:

  • CHROME_USER_DATA_DIR : Ruta al directorio de datos de usuario de Chrome que contiene la sesión de inicio de sesión

Hay opciones de configuración adicionales disponibles a través del administrador de configuración:

  • Configuración del navegador (ventana gráfica, tiempos de espera)
  • Configuración de Instagram (retrasos, tamaños de lotes)
  • Guardar directorios y rutas de archivos

Uso

  1. Instalar dependencias:
    npm install
  2. Construir el servidor:
    npm run build
  3. Ejecutar el servidor:
    CHROME_USER_DATA_DIR=/path/to/chrome/profile npm start

Herramientas disponibles

obtener publicaciones de Instagram

Obtiene publicaciones recientes de un perfil de Instagram.

Parámetros:

  • username (obligatorio): Nombre de usuario de Instagram del cual obtener publicaciones
  • limit (opcional): Número de publicaciones a recuperar (1-50) o "todas"
  • saveDir (opcional): Directorio para guardar archivos multimedia y metadatos
  • delayBetweenPosts (opcional): milisegundos de espera entre el procesamiento de publicaciones

Ejemplo:

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

Manejo de errores

El servidor utiliza códigos y mensajes de error estandarizados:

  • INVALID_REQUEST : Formato o parámetros de solicitud no válidos
  • INVALID_PARAMS : Parámetros faltantes o no válidos
  • METHOD_NOT_FOUND : Método o herramienta desconocidos
  • INTERNAL_ERROR : Errores del lado del servidor

Desarrollo

  1. Iniciar en modo de desarrollo:
    npm run dev
  2. Ejecutar linter:
    npm run lint

Mejoras respecto al original

  1. Arquitectura modular
    • Separación clara de preocupaciones
    • Mejor organización del código
    • Más fácil de mantener y ampliar
  2. Seguridad de tipos
    • Tipos de TypeScript completos
    • Mejor detección de errores
    • Compatibilidad IDE mejorada
  3. Manejo de errores
    • Códigos de error estandarizados
    • Mejores mensajes de error
    • Propagación adecuada de errores
  4. Configuración
    • Configuración centralizada
    • Validación de variables de entorno
    • Acceso a configuración de tipo seguro
  5. Calidad del código
    • Estilo de codificación consistente
    • Mejor documentación
    • Registro mejorado
  6. Soporte de pruebas
    • El diseño modular permite realizar pruebas
    • Listo para inyección de dependencia
    • Interfaces claras

Licencia

Instituto Tecnológico de Massachusetts (MIT)

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Un servidor que permite obtener publicaciones de Instagram utilizando la sesión de inicio de sesión existente de Chrome a través del Protocolo de contexto de modelo (MCP).

  1. Features
    1. Architecture
      1. Configuration
        1. Usage
          1. Available Tools
            1. get_instagram_posts
          2. Error Handling
            1. Development
              1. Improvements Over Original
                1. License
                  ID: g28gwod2z7