通过令人惊叹的视觉效果增强您的AI代理,无需任何麻烦。
这是一个强大的FastMCP服务器,使AI代理能够无缝地搜索、推荐并交付来自Unsplash的专业库存照片,具有智能上下文感知和自动归属管理功能。
在视觉内容集成领域,我们的Unsplash智能MCP服务器作为AI驱动图像获取的权威解决方案脱颖而出:
stock_photo工具处理整个图像工作流程,消除工具垃圾信息。git clone https://github.com/drumnation/unsplash-smart-mcp-server.git
cd unsplash-smart-mcp-server
npm install
配置您的Cursor MCP设置:
~/.cursor/mcp.json%USERPROFILE%\.cursor\mcp.json~/.cursor/mcp.json添加以下配置:
{
"servers": {
"unsplash": {
"command": "npx",
"args": ["tsx", "src/server.ts"],
"cwd": "/绝对路径到/unsplash-smart-mcp-server",
"env": {
"UNSPLASH_ACCESS_KEY": "您的API密钥"
}
}
}
}
替换:
/绝对路径到/unsplash-smart-mcp-server为实际克隆仓库的路径您的API密钥为您自己的Unsplash API密钥保存文件并重启Cursor。
重要:与其他许多MCP服务器不同,此服务器需要直接进程管道,并且不能通过TCP端口或直接通过npm访问,因为其处理FastMCP的I/O交互方式。本地安装方法是最可靠的方法。
如果您更喜欢使用Cursor的CLI:
claude mcp add unsplash npx tsx /路径到/unsplash-smart-mcp-server/src/server.ts --cwd /路径到/unsplash-smart-mcp-server
claude mcp config set unsplash UNSPLASH_ACCESS_KEY=您的API密钥
替换路径和API密钥为实际值。
git clone https://github.com/drumnation/unsplash-smart-mcp-server.git
cd unsplash-smart-mcp-server
docker-compose.yml文件:services:
unsplash-mcp:
build: .
image: unsplash-mcp-server
restart: always
stdin_open: true
tty: true
environment:
- UNSPLASH_ACCESS_KEY=您的API密钥
docker-compose up -d
配置您的Cursor MCP设置:
~/.cursor/mcp.json%USERPROFILE%\.cursor\mcp.json~/.cursor/mcp.json添加以下配置:
{
"servers": {
"unsplash": {
"command": "docker",
"args": ["exec", "-i", "unsplash-mcp-unsplash-mcp-1", "tsx", "src/server.ts"],
"env": {}
}
}
}
此设置将:
如果您偏好云部署,可以使用Smithery:
npx @smithery/cli install @drumnation/unsplash-smart-mcp-server --client cursor --key 您的API密钥
注意:对于Windows用户,Smithery部署包括特殊的Windows兼容处理。
详细的说明和故障排除,请参阅Smithery部署指南。
我们的Unsplash智能MCP服务器旨在让通过AI代理获取图像变得轻松直观:
stock_photo工具这一过程消除了传统的流程:
使用自然语言提示向Cursor中的Claude请求图像,例如:
“找到一张适合科技初创公司着陆页英雄部分的专业图片”
如果您正在使用Windows并且在Cursor中运行MCP服务器时遇到“客户端关闭”错误,请遵循这些特殊配置步骤:
在.cursor目录中创建一个名为mcp.json的文件(通常位于%USERPROFILE%\.cursor\mcp.json),并使用以下配置之一:
{
"mcpServers": {
"stock_photo": {
"command": "node",
"args": ["./node_modules/.bin/tsx", "路径到/unsplash-mcp/src/server.ts"],
"disabled": false,
"env": {
"UNSPLASH_ACCESS_KEY": "您的API密钥"
},
"shell": false
}
}
}
{
"mcpServers": {
"stock_photo": {
"command": "powershell",
"args": ["-Command", "npx tsx 路径到/unsplash-mcp/src/server.ts"],
"disabled": false,
"env": {
“UNSPLASH_ACCESS_KEY”: “您的API密钥”
}
}
}
}
关于Windows兼容性的完整文档,请参阅Windows兼容性指南。
我们的架构采用URL优先方法而不是直接嵌入图像,原因如下:
这种策略使AI代理能够基于项目上下文智能建议最优下载位置,而不受自身环境限制。
与其他需要多次工具调用来搜索、过滤、下载和归属图像的解决方案不同,我们的服务器:
stock_photo工具。这种设计显著减少了API调用和工具调用的数量,从而加快了结果并降低了运营成本。
使用Unsplash的图像需要遵守其服务条款。我们的服务器自动处理这一点:
通过使用我们的Unsplash智能MCP服务器,您将自动符合Unsplash的要求,无需额外努力。
服务器包括一个全面的归属管理系统:
// 为您的项目检索归属数据
const attributions = await fetch('http://localhost:3000/api/unsplash', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
method: 'get_attributions',
params: {
format: 'json', // 选项:json, html, react
projectPath: '/路径到/您的项目'
}
})
}).then(res => res.json());
// attributions 包含每个使用图像的完整数据
API可以生成三种类型的归属文件:
我们的Unsplash智能MCP服务器无缝集成到您的开发工作流程中:
图像会根据您的项目类型自动组织:
| 框架 | 默认图像路径 | 备选路径 |
|---|---|---|
| Next.js | /public/images/ | /public/assets/images/ |
| React | /src/assets/images/ | /assets/images/ |
| Vue | /src/assets/images/ | /public/images/ |
| Angular | /src/assets/images/ | /assets/images/ |
| 通用 | /assets/images/ | ~/Downloads/stock-photos/ |
| 功能 | Unsplash智能MCP服务器 | 替代方案 |
|---|---|---|
| AI代理集成 | ✅ 专门针对AI代理工作流程设计 | ❌ 通常需要手动设置参数 |
| 上下文感知 | ✅ 智能解释模糊请求 | ❌ 依赖精确关键词匹配 |
| 工具效率 | ✅ 单一工具处理整个工作流程 | ❌ 经常需要多个独立工具 |
| 归属管理 | ✅ 全面系统,多种格式 | ❌ 手动跟踪或基本文本输出 |
| 项目组织 | ✅ 框架感知文件夹结构 | ❌ 通用下载到单个位置 |
| 安装复杂度 | ✅ 简单的一行命令 | ❌ 通常需要多个配置步骤 |
| 响应格式 | ✅ AI优化,带有相关上下文 | ❌ 通用JSON,需要进一步处理 |
| 下载灵活性 | ✅ URL优先,智能建议 | ❌ 要么直接下载,要么仅URL |
| 变量 | 描述 | 默认值 |
|---|---|---|
UNSPLASH_ACCESS_KEY | 您的Unsplash API访问密钥 | - |
PORT | 服务器监听的端口 | 3000 |
HOST | 服务器主机 | localhost |
ATTRIBUTION_DB_PATH | 存储归属数据库的路径 | ~/.unsplash-mcp |
| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
query | string | 搜索什么(如果未指定,AI将选择) | - |
purpose | string | 图像将用于何处(例如,英雄,背景) | - |
count | number | 返回的图像数量 | 1 |
orientation | string | 偏好的方向(任意,横向,纵向,方形) | 任意 |
width | number | 目标宽度(像素) | - |
height | number | 目标高度(像素) | - |
minWidth | number | 过滤结果的最小宽度 | - |
minHeight | number | 过滤结果的最小高度 | - |
outputDir | string | 保存照片的目录 | ~/Downloads/stock-photos |
projectType | string | 用于文件夹结构的项目类型(next,react,vue,angular) | - |
category | string | 用于组织图像的类别(例如,英雄,背景) | - |
downloadMode | string | 是否下载图像或返回URL | 仅URL |
| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
format | string | 输出格式(json,html,react) | json |
projectPath | string | 过滤特定项目路径的归属 | - |
outputPath | string | 保存归属文件的位置 | - |
| 问题 | 解决办法 |
|---|---|
| 连接拒绝 | 确保服务器正在配置的端口上运行 |
| 身份验证错误 | 验证您的Unsplash API密钥是否正确设置 |
| 未找到图像 | 尝试更广泛的搜索词或检查您的搜索查询 |
| 下载权限问题 | 使用downloadMode: '仅URL'和手动下载命令 |
| Docker容器过早退出 | 确保您在Dockerfile中使用CMD ["npm", "start"]而不是直接运行TypeScript文件,这确保了服务器在Docker环境中持续运行。 |
| 超时错误 | 默认MCP超时为60秒,可能不足以下载较大的图像或处理多张图像。对于图像密集的操作:1) 每次请求处理较少的图像,2) 使用较小的图像尺寸,3) 考虑使用仅URL模式而不是自动下载,4) 检查网络连接 |
| 归属未找到 | 验证图像是否通过MCP服务器下载 |
| 未处理的MCP错误 | 如果您看到"McpError: MCP错误-32001: 请求超时"错误,您的请求可能花费太长时间。将其分解为较小的操作或使用仅URL的方法 |
欢迎贡献!请随时