# MCP 图像抠图服务器
这是一个基于Model Context Protocol (MCP)的服务器,专门提供火山引擎图像抠图功能。
## 功能特性
- **智能抠图**: 使用火山引擎的显著性分割技术,自动识别并抠出图像中的主要对象
- **批量处理**: 支持同时处理多张图像
- **自动上传**: 抠图结果自动上传到服务器并返回URL链接
- **本地保存**: 可选择保存抠图结果到本地文件
- **高精度**: 基于显著性检测的精确分割算法
## 安装
### 从 PyPI 安装
```bash
pip install mcp-image-cutout
```
### 从源码安装
```bash
git clone https://github.com/fengjinchao/mcp-image-cutout.git
cd mcp-image-cutout
pip install -e .
```
### 2. 配置API密钥
推荐使用环境变量设置API密钥:
```bash
export VOLC_ACCESS_KEY="your_access_key"
export VOLC_SECRET_KEY="your_secret_key"
```
或者在代码中直接设置(不推荐用于生产环境)。
### 3. 运行服务器
```bash
# 使用命令行工具
mcp-image-cutout
# 或直接运行模块
python -m mcp_image_cutout.server
```
## 在Claude Desktop中使用
在Claude Desktop的配置文件中添加以下配置:
**macOS/Linux**: `~/Library/Application Support/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"抠图工具": {
"command": "mcp-image-cutout",
"env": {
"VOLC_ACCESS_KEY": "your_access_key",
"VOLC_SECRET_KEY": "your_secret_key"
}
}
}
}
```
## 可用工具
### image_cutout
智能图像抠图,使用显著性分割自动识别并抠出图像中的主要对象,自动上传到服务器并返回图片URL。
**参数**:
- `image_urls`: 图像URL列表,支持多张图像同时处理
**返回**:
- 单张图片:直接返回图片URL
- 多张图片:返回所有图片URL的列表
**示例**:
```
请帮我抠出这张图片中的主要对象:https://example.com/image.jpg
```
```
批量抠图这些图片:
- https://example.com/image1.jpg
- https://example.com/image2.jpg
```
## 抠图原理
使用的 `saliency_seg` 显著性分割算法:
- 基于视觉显著性检测图像中最重要的区域
- 精确分割显著对象的轮廓
- 生成高质量的抠图结果
- 适用于各种复杂背景的图像处理
## 上传功能
抠图完成后,系统会自动:
1. 将base64编码的图像数据转换为PNG文件
2. 上传到指定服务器:`https://www.mcpcn.cc/api/fileUploadAndDownload/uploadMcpFile`
3. 返回可访问的图片URL链接
4. 支持批量上传多张抠图结果
**上传接口返回格式**:
```json
{
"code": 0,
"data": {
"url": "https://juezhi.oss-cn-shanghai.aliyuncs.com/file/uploads/mcp/xxx.webp"
},
"msg": "成功"
}
```
## 注意事项
1. 确保图像URL可以公开访问
2. 处理结果会以base64格式返回,大图像可能需要较长处理时间
3. API调用有频率限制,请合理使用
4. 生产环境中请使用环境变量设置API密钥
## 故障排除
### 常见问题
1. **服务器无法启动**
- 检查Python版本(需要3.10+)
- 确认所有依赖已正确安装
2. **API调用失败**
- 验证API密钥是否正确
- 检查网络连接
- 确认图像URL可访问
3. **Claude Desktop中看不到工具**
- 检查配置文件语法
- 确认路径是绝对路径
- 重启Claude Desktop
### 日志查看
服务器日志会输出到stderr,可以通过以下方式查看:
```bash
# 查看Claude Desktop的MCP日志
tail -f ~/Library/Logs/Claude/mcp-server-图像编辑.log
```
## 开发
如需修改或扩展功能,请参考:
- [MCP官方文档](https://modelcontextprotocol.io/)
- [API文档](https://www.volcengine.com/docs/6791/65681)
Raw data
{
"_id": null,
"home_page": null,
"name": "mcp-image-cutout",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "ai, computer-vision, cutout, image, mcp, volcengine",
"author": null,
"author_email": "fengjinchao <fengjinchao@example.com>",
"download_url": "https://files.pythonhosted.org/packages/cd/77/1c906fe4b04759c9af17cbaa52febd6314585d6dbdfca6c162aba09bffbb/mcp_image_cutout-0.1.0.tar.gz",
"platform": null,
"description": "# MCP \u56fe\u50cf\u62a0\u56fe\u670d\u52a1\u5668\n\n\u8fd9\u662f\u4e00\u4e2a\u57fa\u4e8eModel Context Protocol (MCP)\u7684\u670d\u52a1\u5668\uff0c\u4e13\u95e8\u63d0\u4f9b\u706b\u5c71\u5f15\u64ce\u56fe\u50cf\u62a0\u56fe\u529f\u80fd\u3002\n\n## \u529f\u80fd\u7279\u6027\n\n- **\u667a\u80fd\u62a0\u56fe**: \u4f7f\u7528\u706b\u5c71\u5f15\u64ce\u7684\u663e\u8457\u6027\u5206\u5272\u6280\u672f\uff0c\u81ea\u52a8\u8bc6\u522b\u5e76\u62a0\u51fa\u56fe\u50cf\u4e2d\u7684\u4e3b\u8981\u5bf9\u8c61\n- **\u6279\u91cf\u5904\u7406**: \u652f\u6301\u540c\u65f6\u5904\u7406\u591a\u5f20\u56fe\u50cf\n- **\u81ea\u52a8\u4e0a\u4f20**: \u62a0\u56fe\u7ed3\u679c\u81ea\u52a8\u4e0a\u4f20\u5230\u670d\u52a1\u5668\u5e76\u8fd4\u56deURL\u94fe\u63a5\n- **\u672c\u5730\u4fdd\u5b58**: \u53ef\u9009\u62e9\u4fdd\u5b58\u62a0\u56fe\u7ed3\u679c\u5230\u672c\u5730\u6587\u4ef6\n- **\u9ad8\u7cbe\u5ea6**: \u57fa\u4e8e\u663e\u8457\u6027\u68c0\u6d4b\u7684\u7cbe\u786e\u5206\u5272\u7b97\u6cd5\n\n## \u5b89\u88c5\n\n### \u4ece PyPI \u5b89\u88c5\n\n```bash\npip install mcp-image-cutout\n```\n\n### \u4ece\u6e90\u7801\u5b89\u88c5\n\n```bash\ngit clone https://github.com/fengjinchao/mcp-image-cutout.git\ncd mcp-image-cutout\npip install -e .\n```\n\n### 2. \u914d\u7f6eAPI\u5bc6\u94a5\n\n\u63a8\u8350\u4f7f\u7528\u73af\u5883\u53d8\u91cf\u8bbe\u7f6eAPI\u5bc6\u94a5\uff1a\n\n```bash\nexport VOLC_ACCESS_KEY=\"your_access_key\"\nexport VOLC_SECRET_KEY=\"your_secret_key\"\n```\n\n\u6216\u8005\u5728\u4ee3\u7801\u4e2d\u76f4\u63a5\u8bbe\u7f6e\uff08\u4e0d\u63a8\u8350\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff09\u3002\n\n### 3. \u8fd0\u884c\u670d\u52a1\u5668\n\n```bash\n# \u4f7f\u7528\u547d\u4ee4\u884c\u5de5\u5177\nmcp-image-cutout\n\n# \u6216\u76f4\u63a5\u8fd0\u884c\u6a21\u5757\npython -m mcp_image_cutout.server\n```\n\n## \u5728Claude Desktop\u4e2d\u4f7f\u7528\n\n\u5728Claude Desktop\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a\n\n**macOS/Linux**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n\n```json\n{\n \"mcpServers\": {\n \"\u62a0\u56fe\u5de5\u5177\": {\n \"command\": \"mcp-image-cutout\",\n \"env\": {\n \"VOLC_ACCESS_KEY\": \"your_access_key\",\n \"VOLC_SECRET_KEY\": \"your_secret_key\"\n }\n }\n }\n}\n```\n\n## \u53ef\u7528\u5de5\u5177\n\n### image_cutout\n\u667a\u80fd\u56fe\u50cf\u62a0\u56fe\uff0c\u4f7f\u7528\u663e\u8457\u6027\u5206\u5272\u81ea\u52a8\u8bc6\u522b\u5e76\u62a0\u51fa\u56fe\u50cf\u4e2d\u7684\u4e3b\u8981\u5bf9\u8c61\uff0c\u81ea\u52a8\u4e0a\u4f20\u5230\u670d\u52a1\u5668\u5e76\u8fd4\u56de\u56fe\u7247URL\u3002\n\n**\u53c2\u6570**:\n- `image_urls`: \u56fe\u50cfURL\u5217\u8868\uff0c\u652f\u6301\u591a\u5f20\u56fe\u50cf\u540c\u65f6\u5904\u7406\n\n**\u8fd4\u56de**:\n- \u5355\u5f20\u56fe\u7247\uff1a\u76f4\u63a5\u8fd4\u56de\u56fe\u7247URL\n- \u591a\u5f20\u56fe\u7247\uff1a\u8fd4\u56de\u6240\u6709\u56fe\u7247URL\u7684\u5217\u8868\n\n**\u793a\u4f8b**:\n```\n\u8bf7\u5e2e\u6211\u62a0\u51fa\u8fd9\u5f20\u56fe\u7247\u4e2d\u7684\u4e3b\u8981\u5bf9\u8c61\uff1ahttps://example.com/image.jpg\n```\n\n```\n\u6279\u91cf\u62a0\u56fe\u8fd9\u4e9b\u56fe\u7247\uff1a\n- https://example.com/image1.jpg\n- https://example.com/image2.jpg\n```\n\n## \u62a0\u56fe\u539f\u7406\n\n\u4f7f\u7528\u7684 `saliency_seg` \u663e\u8457\u6027\u5206\u5272\u7b97\u6cd5\uff1a\n- \u57fa\u4e8e\u89c6\u89c9\u663e\u8457\u6027\u68c0\u6d4b\u56fe\u50cf\u4e2d\u6700\u91cd\u8981\u7684\u533a\u57df\n- \u7cbe\u786e\u5206\u5272\u663e\u8457\u5bf9\u8c61\u7684\u8f6e\u5ed3\n- \u751f\u6210\u9ad8\u8d28\u91cf\u7684\u62a0\u56fe\u7ed3\u679c\n- \u9002\u7528\u4e8e\u5404\u79cd\u590d\u6742\u80cc\u666f\u7684\u56fe\u50cf\u5904\u7406\n\n## \u4e0a\u4f20\u529f\u80fd\n\n\u62a0\u56fe\u5b8c\u6210\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\uff1a\n1. \u5c06base64\u7f16\u7801\u7684\u56fe\u50cf\u6570\u636e\u8f6c\u6362\u4e3aPNG\u6587\u4ef6\n2. \u4e0a\u4f20\u5230\u6307\u5b9a\u670d\u52a1\u5668\uff1a`https://www.mcpcn.cc/api/fileUploadAndDownload/uploadMcpFile`\n3. \u8fd4\u56de\u53ef\u8bbf\u95ee\u7684\u56fe\u7247URL\u94fe\u63a5\n4. \u652f\u6301\u6279\u91cf\u4e0a\u4f20\u591a\u5f20\u62a0\u56fe\u7ed3\u679c\n\n**\u4e0a\u4f20\u63a5\u53e3\u8fd4\u56de\u683c\u5f0f**\uff1a\n```json\n{\n \"code\": 0,\n \"data\": {\n \"url\": \"https://juezhi.oss-cn-shanghai.aliyuncs.com/file/uploads/mcp/xxx.webp\"\n },\n \"msg\": \"\u6210\u529f\"\n}\n```\n\n## \u6ce8\u610f\u4e8b\u9879\n\n1. \u786e\u4fdd\u56fe\u50cfURL\u53ef\u4ee5\u516c\u5f00\u8bbf\u95ee\n2. \u5904\u7406\u7ed3\u679c\u4f1a\u4ee5base64\u683c\u5f0f\u8fd4\u56de\uff0c\u5927\u56fe\u50cf\u53ef\u80fd\u9700\u8981\u8f83\u957f\u5904\u7406\u65f6\u95f4\n3. API\u8c03\u7528\u6709\u9891\u7387\u9650\u5236\uff0c\u8bf7\u5408\u7406\u4f7f\u7528\n4. \u751f\u4ea7\u73af\u5883\u4e2d\u8bf7\u4f7f\u7528\u73af\u5883\u53d8\u91cf\u8bbe\u7f6eAPI\u5bc6\u94a5\n\n## \u6545\u969c\u6392\u9664\n\n### \u5e38\u89c1\u95ee\u9898\n\n1. **\u670d\u52a1\u5668\u65e0\u6cd5\u542f\u52a8**\n - \u68c0\u67e5Python\u7248\u672c\uff08\u9700\u89813.10+\uff09\n - \u786e\u8ba4\u6240\u6709\u4f9d\u8d56\u5df2\u6b63\u786e\u5b89\u88c5\n\n2. **API\u8c03\u7528\u5931\u8d25**\n - \u9a8c\u8bc1API\u5bc6\u94a5\u662f\u5426\u6b63\u786e\n - \u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\n - \u786e\u8ba4\u56fe\u50cfURL\u53ef\u8bbf\u95ee\n\n3. **Claude Desktop\u4e2d\u770b\u4e0d\u5230\u5de5\u5177**\n - \u68c0\u67e5\u914d\u7f6e\u6587\u4ef6\u8bed\u6cd5\n - \u786e\u8ba4\u8def\u5f84\u662f\u7edd\u5bf9\u8def\u5f84\n - \u91cd\u542fClaude Desktop\n\n### \u65e5\u5fd7\u67e5\u770b\n\n\u670d\u52a1\u5668\u65e5\u5fd7\u4f1a\u8f93\u51fa\u5230stderr\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u67e5\u770b\uff1a\n\n```bash\n# \u67e5\u770bClaude Desktop\u7684MCP\u65e5\u5fd7\ntail -f ~/Library/Logs/Claude/mcp-server-\u56fe\u50cf\u7f16\u8f91.log\n```\n\n## \u5f00\u53d1\n\n\u5982\u9700\u4fee\u6539\u6216\u6269\u5c55\u529f\u80fd\uff0c\u8bf7\u53c2\u8003\uff1a\n- [MCP\u5b98\u65b9\u6587\u6863](https://modelcontextprotocol.io/)\n- [API\u6587\u6863](https://www.volcengine.com/docs/6791/65681)",
"bugtrack_url": null,
"license": "MIT",
"summary": "MCP\u670d\u52a1\u5668\uff1a\u706b\u5c71\u5f15\u64ce\u56fe\u50cf\u7f16\u8f91\u5de5\u5177\uff0c\u63d0\u4f9b\u663e\u8457\u6027\u5206\u5272\u3001\u80cc\u666f\u79fb\u9664\u7b49\u56fe\u50cf\u5904\u7406\u529f\u80fd",
"version": "0.1.0",
"project_urls": {
"Documentation": "https://github.com/fengjinchao/mcp-image-cutout#readme",
"Homepage": "https://github.com/fengjinchao/mcp-image-cutout",
"Issues": "https://github.com/fengjinchao/mcp-image-cutout/issues",
"Repository": "https://github.com/fengjinchao/mcp-image-cutout"
},
"split_keywords": [
"ai",
" computer-vision",
" cutout",
" image",
" mcp",
" volcengine"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "828ce7c08bffc4987e887a4c94483ba70850d73153b6161ce811392a6b20ed8a",
"md5": "8db3160fb9db7b3e768315099496332f",
"sha256": "2948613ce115a4646dc56290f3a9c29851206254895b54fd6cb5146a05df8a30"
},
"downloads": -1,
"filename": "mcp_image_cutout-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8db3160fb9db7b3e768315099496332f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 7274,
"upload_time": "2025-08-05T13:24:12",
"upload_time_iso_8601": "2025-08-05T13:24:12.296586Z",
"url": "https://files.pythonhosted.org/packages/82/8c/e7c08bffc4987e887a4c94483ba70850d73153b6161ce811392a6b20ed8a/mcp_image_cutout-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cd771c906fe4b04759c9af17cbaa52febd6314585d6dbdfca6c162aba09bffbb",
"md5": "475d8a8f583c6dc1b4ef9b98bc0610b1",
"sha256": "6194bbca163b262b36a7eb1f1af7f4c072a2f4570e435c5e95a034e75018ec46"
},
"downloads": -1,
"filename": "mcp_image_cutout-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "475d8a8f583c6dc1b4ef9b98bc0610b1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 73962,
"upload_time": "2025-08-05T13:24:15",
"upload_time_iso_8601": "2025-08-05T13:24:15.110638Z",
"url": "https://files.pythonhosted.org/packages/cd/77/1c906fe4b04759c9af17cbaa52febd6314585d6dbdfca6c162aba09bffbb/mcp_image_cutout-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-05 13:24:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fengjinchao",
"github_project": "mcp-image-cutout#readme",
"github_not_found": true,
"lcname": "mcp-image-cutout"
}