mcp安装加载器

安装
pip install mcp-instaloader
# or run directly without installing:
uvx mcp-instaloader特性
- 🔗 通过URL或短代码获取Instagram帖子和转轴
- 📝 从帖子/视频中提取文本内容(字幕)
- 🔐 对私人内容的可选会话cookie支持
- 🔄 自动更新检查
instaloader(缓存,每天刷新) - 🐳 Docker容器化与Docker组合支持
- 🧪 带有示例URL的测试套件
快速开始
使用Docker Compose(推荐)
- 克隆存储库并导航到项目目录。
- 创建一个
.env文件(或复制自.env.example):
cp .env.example .env- 编辑
.env如果需要(端口默认为3336):
MCP_PORT=3336
# COOKIE_FILE=/path/to/cookies.txt # Optional, for private content- 使用docker compose构建并运行:
docker-compose up --build服务器将在以下时间可用 http://localhost:3336 (或您配置的端口)。
本地开发
- 安装UV(如果尚未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh- 安装依赖项:
uv pip install -e .- 创建和配置
.env文件:
cp .env.example .env
# Edit .env as needed- 运行服务器:
python src/server.py配置
环境变量
MCP_PORT:HTTP服务器端口(默认值:3336)COOKIE_FILE:Instagram会话cookie文件的路径(可选,用于私人内容访问)
会话Cookie设置(可选)
要访问私人Instagram帖子/视频,您需要提供会话cookie文件:
- 使用
instaloaderCLI用于登录和保存会话:
instaloader --login your_username这将创建一个会话文件 instaloader 可以使用。
- 设置
COOKIE_FILE环境变量或.env指向您的会话文件。
通过Docker登录
您可以在容器内创建会话并在本地持久化:
docker compose run --rm mcp-instaloader instaloader --login your_username这将会话存储在以下位置 /root/.config/instaloader/session-your_username 在容器中。这 docker-compose.yml 安装文件 ./instaloader_sessions 要持久化这些会话,您可以设置:
COOKIE_FILE=/root/.config/instaloader/session-your_username注意:确切的cookie文件格式取决于您导出Instagram会话的方式。看 instaloader 详细文档。
API使用
服务器公开了两个MCP工具:
fetch_instagram_post
通过URL或短代码获取Instagram帖子。
参数:
url(字符串,必填):Instagram帖子URL(例如。,"https://www.instagram.com/p/DRr-n4XER3x/")或短代码(例如。,"DRr-n4XER3x")
退货:
{
"text": "Post caption text",
"shortcode": "DRr-n4XER3x",
"author": "username",
"timestamp": "2024-01-01T12:00:00",
"likes": 100,
"comments": 10,
"is_video": false,
"update_info": {
"installed_version": "4.10.0",
"latest_version": "4.11.0",
"update_available": true
}
}fetch_instagram_reel
通过URL或短代码获取Instagram卷轴。
参数:
url(字符串,必填):Instagram卷轴URL(例如。,"https://www.instagram.com/reel/ABC123/")或简码
退货: 格式与 fetch_instagram_post.
请求示例
使用curl
curl -X POST http://localhost:3336/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fetch_instagram_post",
"arguments": {
"url": "https://www.instagram.com/p/DRr-n4XER3x/"
}
}
}'注:MCP工具仅接受 url 争论。多余的字段将被拒绝。
测试
使用pytest运行测试:
uv pip install -e ".[dev]"
pytest测试文件
测试的示例URL位于 tests/example_urls.txt。您可以向此文件添加更多URL以进行测试。
所需的测试URL:
https://www.instagram.com/p/DRr-n4XER3x/https://www.instagram.com/p/DTDy4fMDCc4/https://www.instagram.com/p/DQUVv9kANPh/https://www.instagram.com/p/DSNKaEZjIR9/
码头工人
塑造形象
docker build -t mcp-instaloader .运行容器
docker run -p 3336:3336 \
-e MCP_PORT=3336 \
mcp-instaloaderDocker Compose
有关docker compose的使用方法,请参阅上面的“快速入门”部分。
更新检查
服务器会自动检查 instaloader 更新并在响应中包含此信息。更新检查包括:
- 缓存以提高性能
- 每天刷新一次
- 包括当前和最新版本信息
错误处理
服务器处理各种错误情况:
- URL格式无效:返回URL无效的错误消息
- 未找到帖子/卷轴:返回带有详细信息的错误
- 需要认证:如果在没有Cookie的情况下访问私人内容,则返回错误
- 网络错误:返回相应的错误消息
发展
项目结构
.
├── src/
│ ├── __init__.py
│ ├── server.py # FastMCP server implementation
│ ├── instaloader_client.py # Instaloader wrapper
│ ├── url_parser.py # URL parsing utilities
│ └── update_checker.py # Update checking mechanism
├── tests/
│ ├── example_urls.txt # Test URLs
│ ├── test_url_parser.py # URL parser tests
│ └── test_integration.py # Integration tests
├── docker/
├── Dockerfile
├── docker-compose.yml
├── pyproject.toml
└── README.md运行测试
pytest tests/积分
该项目使用并扩展了以下开源库的功能:
- 安装加载器:用于下载Instagram内容的Python库。此MCP服务器封装了instalader,通过模型上下文协议提供Instagram内容访问。
- 版权所有(c)2016-2024亚历山大·格拉夫、安德烈·科赫·克莱默、费德里科·齐沃罗和贡献者 - 根据MIT许可证获得许可 - github:https://github.com/instaloader/instaloader
- FastMCP:用于构建具有HTTP传输支持的MCP服务器的快速Python框架。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请随时提交拉取请求。
支持
如果你觉得这个项目有用,可以考虑给我买杯咖啡!

