Instagram MCPサーバー
Chrome の既存のログイン セッションを使用して Instagram の投稿を取得するための Model Context Protocol (MCP) サーバー。
特徴
関心事を明確に分離したモジュラーアーキテクチャ
TypeScriptを使用した型安全な実装
エラー処理とログの改善
環境変数で設定可能
JSON-RPC 2.0準拠の通信
自動メディアダウンロードとメタデータ生成
SEOに適した説明文生成
Related MCP server: mcp-pinterest
建築
サーバーは、次の構造を持つモジュラー アーキテクチャに従います。
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の設定(遅延、バッチサイズ)
ディレクトリとファイルのパスを保存する
使用法
依存関係をインストールします:
npm installサーバーを構築します。
npm run buildサーバーを実行します。
CHROME_USER_DATA_DIR=/path/to/chrome/profile npm start
利用可能なツール
インスタグラムの投稿を取得する
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: サーバー側のエラー
発達
開発モードで開始します:
npm run devリンターを実行します:
npm run lint
オリジナルからの改良点
モジュラーアーキテクチャ
明確な関心の分離
より良いコード構成
メンテナンスと拡張が容易
型安全性
包括的なTypeScript型
より優れたエラーキャッチ
IDEサポートの改善
エラー処理
標準化されたエラーコード
改善されたエラーメッセージ
適切なエラー伝播
構成
集中構成
環境変数の検証
型安全な設定アクセス
コード品質
一貫したコーディングスタイル
より良いドキュメント
ログの改善
テストサポート
モジュール設計によりテストが可能
依存性注入対応
明確なインターフェース
ライセンス
マサチューセッツ工科大学