Image Search
HTTP-SSEMCP image search and icon generation service with multiple APIs
MCP image search and icon generation service with multiple APIs
基于多个图片API的搜索服务和图标生成功能,专门设计用于与 Cursor MCP 服务集成。支持图片搜索、下载和AI生成图标。

本工具通过MCP (Model Control Protocol) 为Cursor IDE提供图像搜索和图标生成功能:
用户 (在Cursor中) → 向Claude/大模型提问 → 大模型调用MCP工具 → 工具处理请求 → 返回结果 → 大模型展示结果
比如,你可以在Cursor中向Claude询问"帮我找5张关于太空的图片",Claude会通过MCP工具搜索并展示图片,然后你可以进一步要求下载或生成特定图标。
# macOS 安装 pyenv brew install pyenv # 安装 Python pyenv install 3.13.2 pyenv global 3.13.2
uv 是一个快速的 Python 包管理器,需要先安装:
# macOS 安装 uv brew install uv # 或者使用 pip 安装 pip install uv
git clone https://github.com/yanjunz/mcp_search_images.git
python3 -m pip install fastmcp requests
出现证书问题可以使用:
python3 -m pip install fastmcp requests --trusted-host pypi.org --trusted-host files.pythonhosted.org --upgrade --force-reinstall --no-cache-dir
从模板创建配置文件:
# 复制模板文件作为配置文件 cp config.json.template config.json # 编辑配置文件,设置API密钥 nano config.json # 或使用其他编辑器
在 config.json 中修改以下配置:
{ "api": { "unsplash_access_key": "你的Unsplash访问密钥", "pexels_api_key": "你的Pexels API密钥", "pixabay_api_key": "你的Pixabay API密钥", "together_api_key": "你的Together API密钥", "timeout": 30, "max_retries": 3, "retry_delay": 5 }, // ...其他配置... }
注意:请确保不要将包含API密钥的配置文件提交到版本控制系统中。 项目中的
.gitignore文件已配置为忽略config.json,但保留config.json.template。
这是最简单的方式,直接使用Python运行服务:
python3.11 main.py
服务启动后会显示以下信息:
启动图片搜索服务 - 端口: 5173
提供的工具: search_images, download_image, generate_icon
INFO: Started server process [xxxxx]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:5173 (Press CTRL+C to quit)
如果您安装了fastmcp包,也可以使用fastmcp命令运行:
fastmcp dev main.py
fastmcp run main.py
PORT=5174 fastmcp dev main.py
如果您使用uv作为包管理器:
uv run --with fastmcp fastmcp run main.py
或者在开发模式下:
uv run --with fastmcp fastmcp dev main.py
为了更好地理解和解决连接问题,以下是Cursor与MCP服务交互的基本工作原理:
MCP服务启动流程:
python3.11 main.py时,服务初始化并创建SSE(Server-Sent Events)应用/sse路径上正确处理SSE请求Cursor连接流程:
诊断连接问题:
lsof -i :5173curl http://localhost:5173完整的测试流程:
# 1. 停止任何可能正在运行的服务 pkill -f "python.*main.py" # 2. 启动服务(在前台运行以查看日志) python3.11 main.py # 3. 在新的终端窗口中,测试连接 curl http://localhost:5173 # 4. 测试SSE端点(用于ServerLink方式) curl http://localhost:5173/sse # 5. 在Cursor中添加MCP工具并测试
如果按照以上步骤操作后仍然无法连接,可能需要检查Python版本兼容性或依赖包是否正确安装。有时重新安装依赖包也有帮助:
python3.11 -m pip uninstall fastmcp mcp uvicorn starlette -y python3.11 -m pip install fastmcp mcp uvicorn starlette
确保服务正在运行
# 直接运行Python脚本 python3.11 main.py
服务启动后会显示以下信息:
启动图片搜索服务 - 端口: 5173
提供的工具: search_images, download_image, generate_icon
INFO: Started server process [xxxxx]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:5173 (Press CTRL+C to quit)
在Cursor中添加MCP服务:
备选配置方法:
注意: 如果出现"Fail to create client"错误,请检查以下几点:
- 确认服务正在运行 (通过
lsof -i :5173检查端口是否被监听)- 尝试在浏览器中访问
http://localhost:5173测试连接性- 确保URL没有多余的斜杠或空格
- 对于ServerLink方式,确保使用正确的端点路径
/sse- 重启服务后再次尝试添加
- 有时需要重启Cursor IDE以清除之前的连接缓存
开始使用MCP工具:
在开发过程中随时使用:
查看图标保存位置:
icons文件夹中ls -la icons
可以直接向大模型描述需求:
搜索关键词为"technology"的图片
或更具体的描述:
请在Unsplash上搜索5张关于"artificial intelligence"的图片
当大模型显示搜索结果后,你可以要求下载特定图片:
下载第2张图片并保存为tech-icon.png
或者指定保存路径:
将第3张图片下载到/Users/username/Desktop/,文件名为ai-image.jpg
可以提供详细的描述来生成符合需求的图标:
生成一个蓝色科技风格的图标,保存为blue-tech.png
或者更详细的描述:
请创建一个扁平化设计的邮件图标,红色轮廓,白色背景,图标尺寸为256x256,保存为email-icon.png
查看示例对话了解如何在实际使用中与Claude/大模型交互来搜索和生成图标。
在项目初始阶段批量生成图标:
开发过程中按需搜索:
项目完善阶段定制图标:
category-name-size.png如果在Cursor中添加MCP服务时遇到"Fail to create client"错误,请尝试以下解决方法:
检查服务状态:
# 检查服务是否正在运行 lsof -i :5173 # 如果没有输出,表示服务未运行,请启动服务 python3.11 main.py
测试连接:
# 使用curl测试API连接 curl -v http://localhost:5173
修改连接设置:
http://127.0.0.1:5173http://localhost:5173而非http://localhost:5173/重启组件:
检查日志:
尝试其他端口:
uvicorn.run(sse_app, host="0.0.0.0", port=5174)
如果遇到问题,请检查:
欢迎提交问题和拉取请求来改进项目。