🚀 小红书MCP Python版
🐍 小红书MCPのPythonバージョン - Model Context Protocolに基づく小红书の自動コンテンツ投稿ツール
🚀 クイックスタート
xiaohongshu-mcp-pythonは、Pythonで開発された小红书のコンテンツ投稿自動化ツールです。このツールは、Model Context Protocol (MCP) を介してAIクライアントに小红书の操作機能を提供します。
📋 環境要件
- Python 3.8以上
- uvパッケージマネージャー
- サポートされるオペレーティングシステム:Linux、macOS、Windows
🔧 インストール手順
-
プロジェクトをクローンする
git clone https://github.com/your-username/xiaohongshu-mcp-python.git
cd xiaohongshu-mcp-python
-
uvパッケージマネージャーをインストールする
curl -LsSf https://astral.sh/uv/install.sh | sh
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
-
国内ミラーソースを設定する(オプション)
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
-
依存関係をインストールする
uv sync
-
Playwrightブラウザをインストールする
uv run playwright install chromium
⚙️ 環境設定
このプロジェクトは、開発環境と本番環境の2つのモードをサポートしており、環境変数または .env ファイルを使用して設定できます。
📋 環境モードの説明
| 環境モード |
ブラウザモード |
ログレベル |
デバッグモード |
適用シナリオ |
| development (開発) |
ヘッド付きモード(ブラウザを表示) |
DEBUG |
有効 |
ローカル開発、デバッグ |
| production (本番) |
ヘッドレスモード(バックグラウンドで実行) |
INFO |
無効 |
サーバーデプロイ、本番環境 |
🔧 設定方法
方法1:.env ファイルを使用する(推奨)
-
サンプル設定ファイルをコピーする:
cp .env.example .env
-
.env ファイルを編集する:
# ============ 環境設定 ============
# 選択可能な値: development, production
# development: 開発環境(ヘッド付きブラウザ、DEBUGログ)
# production: 本番環境(ヘッドレスブラウザ、INFOログ)
ENV=development
# ============ ブラウザ設定 ============
# ヘッドレスブラウザモードを使用するかどうか
# true: ヘッドレスモード(ブラウザウィンドウを表示しない)
# false: ヘッド付きモード(ブラウザウィンドウを表示する)
# 設定されていない場合、ENVに応じて自動的に決定されます(開発環境=ヘッド付き、本番環境=ヘッドレス)
# BROWSER_HEADLESS=false
# ============ ログ設定 ============
# ログレベル: DEBUG, INFO, WARNING, ERROR, CRITICAL
# 開発環境のデフォルト: DEBUG
# 本番環境のデフォルト: INFO
# LOG_LEVEL=DEBUG
# ログファイルのパス(オプション、設定するとログがファイルに書き込まれます)
# LOG_FILE=logs/xiaohongshu-mcp.log
# ============ サーバー設定 ============
# サーバーのリッスンアドレス
SERVER_HOST=127.0.0.1
# サーバーのポート
SERVER_PORT=8000
# ============ ユーザー設定 ============
# デフォルトのユーザー名
GLOBAL_USER=luyike
# ============ タイムアウト設定 ============
# ページロードのタイムアウト時間(ミリ秒)
PAGE_LOAD_TIMEOUT=60000
# 要素の待機タイムアウト時間(ミリ秒)
ELEMENT_TIMEOUT=30000
方法2:環境変数を使用する
export ENV=development
export BROWSER_HEADLESS=false
export LOG_LEVEL=DEBUG
export ENV=production
export BROWSER_HEADLESS=true
export LOG_LEVEL=INFO
方法3:コマンドライン引数を使用する(最も優先度が高い)
uv run python -m xiaohongshu_mcp_python.main
uv run python -m xiaohongshu_mcp_python.main --env production
uv run python -m xiaohongshu_mcp_python.main --env development --headless
uv run python -m xiaohongshu_mcp_python.main --env production --no-headless
uv run python -m xiaohongshu_mcp_python.main --env development --log-level DEBUG
uv run python -m xiaohongshu_mcp_python.main --log-file logs/app.log
🎛️ 利用可能な設定項目
| 設定項目 |
環境変数 |
デフォルト値 |
説明 |
| 環境モード |
ENV |
development |
development または production |
| ブラウザモード |
BROWSER_HEADLESS |
ENVに応じて自動的に決定 |
true/false、設定されていない場合は自動的に決定されます |
| ログレベル |
LOG_LEVEL |
ENVに応じて自動的に決定 |
DEBUG/INFO/WARNING/ERROR |
| ログファイル |
LOG_FILE |
None |
ログファイルのパス、設定すると同時にファイルに書き込まれます |
| サーバーアドレス |
SERVER_HOST |
127.0.0.1 |
HTTPサーバーのリッスンアドレス |
| サーバーポート |
SERVER_PORT |
8000 |
HTTPサーバーのポート |
| デフォルトユーザー |
GLOBAL_USER |
luyike |
使用するデフォルトのユーザー名 |
| ページタイムアウト |
PAGE_LOAD_TIMEOUT |
60000 |
ページロードのタイムアウト(ミリ秒) |
| 要素タイムアウト |
ELEMENT_TIMEOUT |
30000 |
要素の待機タイムアウト(ミリ秒) |
📝 ログシステム
ログシステムは以下の特性をサポートしています:
- コンソール出力:デフォルトでコンソールに出力され、カラー表示をサポートしています。
- ファイル出力:
LOG_FILE を設定することで、同時にファイルに書き込むことができます。
- ログローテーション:ファイルログは自動的にローテーションされます(10MB)。
- ログ保持:直近7日間のログが保持されます。
- 自動圧縮:古いログは自動的にzip形式で圧縮されます。
ログフォーマット:
{time:YYYY-MM-DD HH:mm:ss} | {level:<8} | {name}:{function}:{line} - {message}
🎯 サービスの起動
uv run python -m xiaohongshu_mcp_python.main
uv run python -m xiaohongshu_mcp_python.main --env production
uv run python -m xiaohongshu_mcp_python.main --help
起動後、サービスは http://localhost:8000(または設定されたポート)で起動します。
起動時には環境設定情報が表示されます:
============================================================
小红书MCPサーバーが起動しました
実行環境: 開発環境 (development)
ブラウザモード: ヘッド付きモード
ログレベル: DEBUG
サーバーアドレス: http://127.0.0.1:8000
デフォルトユーザー: luyike
============================================================
✨ 主な機能
🚀 現代的なPythonアーキテクチャ
Python 3.8+ と非同期プログラミングに基づいています。
🎯 MCPプロトコルのサポート
Model Context Protocol 仕様を完全に実装しています。
🌐 Playwrightドライバー
Seleniumの代わりにPlaywrightを使用しており、パフォーマンスが向上しています。
📦 uvパッケージ管理
現代的なPythonパッケージ管理ツールであるuvを採用しています。
🔧 環境設定
開発/本番環境の切り替えと、.envファイルによる設定管理をサポートしています。
📊 ログシステム
コンソールとファイルの両方への出力をサポートし、自動ローテーションと圧縮機能があります。
🛡️ 型安全
完全な型注釈をサポートしています。
📦 インストール
上述の「🔧 インストール手順」に従ってインストールしてください。
💻 使用例
1️⃣ 小红书にログインする
初回使用時は、小红书アカウントにログインする必要があります:
uv run python -m src.xiaohongshu_mcp_python.login
2️⃣ MCP接続を検証する
MCP Inspectorを使用して接続を検証します:
npx @modelcontextprotocol/inspector
ブラウザで http://localhost:18060/mcp にアクセスして接続テストを行います。
3️⃣ コンテンツ投稿の例
画像付きの文章を投稿する:
{
"tool": "publish_content",
"parameters": {
"title": "春日美景",
"content": "今日撮影した美しい春の景色を共有します。皆さんが気に入ってくれることを願っています!",
"images": [
"/path/to/spring1.jpg",
"/path/to/spring2.jpg"
],
"tags": ["春", "写真撮影", "美しい景色"]
}
}
📚 ドキュメント
📝 コンテンツ投稿機能
🖼️ 画像付きの文章を投稿する
小红书に画像付きの文章を投稿することができます。以下の機能がサポートされています:
- 📄 タイトルと内容の説明(タイトルは20文字以内)
- 🖼️ 複数の画像のアップロード(ローカルパスとHTTPリンクをサポート)
- 🏷️ タグ管理
- 📊 投稿状態の監視
サポートされる画像形式:
- ローカルファイルパス:
/path/to/image.jpg
- HTTP/HTTPSリンク:
https://example.com/image.png
- サポートされる形式:JPG、PNG、GIF、WebP
🎬 動画を投稿する
小红书に動画を投稿することができます:
- 🎥 ローカルの動画ファイルのアップロード
- 📝 動画のタイトルと説明
- ⏱️ 動画の処理が完了するまで自動的に待機
- 🏷️ 動画のタグ設定
サポートされる動画形式:
- ローカルファイル:
/path/to/video.mp4
- サポートされる形式:MP4、MOV、AVI
- ファイルサイズ:1GB以下を推奨
🔍 コンテンツ管理機能
🔐 アカウント管理
- ログイン状態のチェック
- Cookie管理
- セッションの保持
- 自動再ログイン
🔍 コンテンツの検索と取得
- キーワードで小红书のコンテンツを検索する
- トップページの推薦リストを取得する
- 投稿の詳細を取得する(インタラクションデータを含む)
- ユーザーのプロフィール情報を取得する
💬 インタラクション機能
- 指定の投稿にコメントを投稿する
- コメントリストを取得する
- インタラクションデータの統計
🔌 MCPクライアントの接続
Claude Code CLI
claude mcp add --transport http xiaohongshu-mcp-python http://localhost:18060/mcp
claude mcp list
Cursor IDE
プロジェクトのルートディレクトリに .cursor/mcp.json を作成します:
{
"mcpServers": {
"xiaohongshu-mcp-python": {
"url": "http://localhost:18060/mcp",
"description": "小红书Python MCPサービス"
}
}
}
VSCode
プロジェクトのルートディレクトリに .vscode/mcp.json を作成します:
{
"servers": {
"xiaohongshu-mcp-python": {
"url": "http://localhost:18060/mcp",
"type": "http"
}
}
}
🛠️ 開発ガイド
📁 プロジェクト構造
xiaohongshu-mcp-python/
├── src/
│ └── xiaohongshu_mcp_python/
│ ├── __init__.py
│ ├── main.py # メインプログラムのエントリーポイント
│ ├── mcp_server.py # MCPサーバーの実装
│ ├── xiaohongshu/ # 小红书の操作モジュール
│ ├── utils/ # ユーティリティ関数
│ └── config/ # 設定管理
├── tests/ # テストファイル
├── docs/ # ドキュメント
├── pyproject.toml # プロジェクト設定
├── .env.example # 環境変数のサンプル(開発/本番環境設定)
├── .env # 環境変数ファイル(自分で作成する必要があり、.gitignoreに追加されています)
└── README.md
🧪 テストの実行
uv run pytest
uv run pytest tests/test_mcp_server.py
uv run pytest --cov=src
🔍 コード品質のチェック
uv run black src tests
uv run mypy src
uv run flake8 src tests
🔧 利用可能なMCPツール
| ツール名 |
機能説明 |
必須パラメータ |
オプションパラメータ |
xiaohongshu_start_login_session |
ログインセッションを開始する |
なし |
username |
xiaohongshu_check_login_session |
ログイン状態をチェックする |
なし |
username |
xiaohongshu_cleanup_login_session |
ログインセッションをクリーンアップする |
なし |
username |
xiaohongshu_publish_content |
画像付きの文章を投稿する |
title, content, images |
tags, username |
xiaohongshu_publish_video |
動画を投稿する |
title, content, video |
tags, username |
xiaohongshu_search_feeds |
小红书のコンテンツを検索する |
keyword |
username |
xiaohongshu_get_feeds |
推薦リストを取得する |
なし |
username |
xiaohongshu_get_user_profile |
ユーザーのプロフィールを取得する |
user_id |
username |
xiaohongshu_get_feed_detail |
投稿の詳細を取得する |
feed_id |
username |
📝 ツールの詳細説明
xiaohongshu_publish_video - 動画投稿ツール
小红书プラットフォームに動画を投稿します。
パラメータの説明:
title (必須): 動画のタイトル、最大20文字の中国語または英単語。
content (必須): 動画の説明内容、#で始まるタグを含みません。
video (必須): 動画ファイルのパス、ローカルの動画ファイルの絶対パスをサポートします。
tags (オプション): トピックタグのリスト、例: ["美食", "旅行", "生活"]
username (オプション): ユーザー名、指定しない場合はグローバルユーザーが使用されます。
使用例:
result = await xiaohongshu_publish_video(
title="私の旅行動画",
content="素敵な旅行の時間を共有します",
video="/path/to/my_video.mp4",
tags=["旅行", "生活", "素敵な時間"]
)
戻り値:
{
"success": true,
"message": "動画の投稿が完了しました",
"result": {
"note_id": "動画投稿のID",
"success": true
}
}
⚠️ 注意事項
🔒 アカウントセキュリティ
- 同じアカウントで複数のブラウザで同時にログインしないでください。
- 定期的にログイン状態を確認し、Cookieの有効期限切れを適切に処理してください。
- 自動化操作には専用の小红书アカウントを使用することをお勧めします。
📊 投稿制限
- タイトルは20文字以内にしてください。
- 1日の投稿量は適切な範囲に抑えることをお勧めします。
- 画像形式:JPG、PNG、GIF、WebP
- 動画形式:MP4、MOV、AVI(1GB以下を推奨)
🔐 環境モードのベストプラクティス
開発環境(development)
- ✅ ヘッド付きブラウザを使用して、デバッグと観察を容易にします。
- ✅ DEBUGレベルのログを使用して、詳細な実行過程を確認します。
- ✅ ローカル開発と問題のトラブルシューティングに適しています。
本番環境(production)
- ✅ ヘッドレスブラウザを使用して、リソースを節約します。
- ✅ INFOレベルのログを使用して、ログ量を減らします。
- ✅ サーバーデプロイと自動化実行に適しています。
環境切り替えの提案
ENV=development python -m xiaohongshu_mcp_python.main
ENV=production python -m xiaohongshu_mcp_python.main
🛡️ リスク注意
このプロジェクトは学習と研究目的でのみ使用されることを想定しています。小红书のプラットフォーム規則と関連する法律を遵守してください。このツールを使用して生じた損害については、ユーザー自身が責任を負います。
🤝 貢献ガイド
IssueとPull Requestの提出を歓迎します!
- このプロジェクトをForkする
- 機能ブランチを作成する:
git checkout -b feature/amazing-feature
- 変更をコミットする:
git commit -m 'Add amazing feature'
- ブランチをプッシュする:
git push origin feature/amazing-feature
- Pull Requestを提出する
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細は LICENSE ファイルを参照してください。
🙏 謝辞
⭐ このプロジェクトが役に立った場合は、Starをしてください!