@mcp/openverse
一种MCP(模型上下文协议)服务器,提供从以下位置搜索和获取公开许可图像的工具 Openverse.
特性
- 🔍 搜索CC许可和公共域图像
- 🎨 按许可证类型、来源、文件格式等进行筛选
- 📊 获取包括归因在内的详细图像信息
- 🔗 查找相关图片
- 📝 内容插图的论文特定图像搜索
- ⚡ 使用TypeScript和fastmcp构建,性能卓越
安装
npm install -g @mcp/openverse或者从源代码安装:
git clone https://github.com/yourusername/mcp-openverse.git
cd mcp-openverse
npm install
npm run build
npm link用法
作为MCP服务器
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"openverse": {
"command": "npx",
"args": ["@mcp/openverse"]
}
}
}或者,如果在本地安装:
{
"mcpServers": {
"openverse": {
"command": "node",
"args": ["/path/to/mcp-openverse/dist/index.js"]
}
}
}可用工具
search_images
使用各种过滤器搜索公开许可的图像。
参数:
query(必填):搜索词page:页码(默认值:1)page_size:每页结果数(默认值:20,最大值:500)license:许可证类型(by,by-sa,by-nc,by-nd,cc0等等)license_type:commercial或modificationcreator:按创建者名称筛选source:按来源筛选(flickr,wikimedia,met等等)extension:文件类型(jpg,png,gif,svg)aspect_ratio:tall,wide,或squaresize:small,medium,或largemature:包含成熟内容(默认值:false)
例子:
// Search for nature photos with commercial license
{
"query": "forest landscape",
"page_size": 10,
"license_type": "commercial",
"extension": "jpg",
"aspect_ratio": "wide"
}get_image_details
获取特定图像的详细信息。
参数:
image_id(必填):Openverse图像ID(UUID格式)
get_related_images
查找与特定图像相关的图像。
参数:
image_id(必填):用于查找相关图像的图像IDpage:页码(默认值:1)page_size:每页结果(默认值:10)
get_image_stats
按来源获取可用图像的统计信息。
无需参数。
search_images_for_essay
高级工具,用于查找图像以说明论文或文章。
参数:
essay_topic(必填):文章的主题/标题concepts(必填):查找图像的关键概念数组style:photo,illustration,或any(默认值:any)max_images:要返回的最大图像数(默认值:10)
例子:
{
"essay_topic": "Climate Change",
"concepts": ["global warming", "renewable energy", "carbon emissions"],
"style": "photo",
"max_images": 15
}图像归因
Openverse的所有图片都有归因要求。API提供:
attribution:预格式化的归因文本license:许可证代码(例如“by sa”)license_url:链接到许可证creator:原创创作者/摄影师creator_url:链接到创建者的个人资料
使用图像时,始终包括适当的归因。
速率限制
Openverse API具有以下速率限制:
- 匿名:100个请求/天,5个请求/小时
- 已验证:10000个请求/天,100个请求/分钟
此MCP服务器当前使用匿名访问。对于更高的速率限制,请考虑实施OAuth身份验证。
发展
从源头构建
npm install
npm run build以开发模式运行
npm run dev测试服务器
您可以使用MCP检查器测试服务器:
npx @modelcontextprotocol/inspector dist/index.js例子
为博客文章查找图片
// Using the search_images_for_essay tool
{
"essay_topic": "Sustainable Architecture",
"concepts": ["green building", "solar panels", "eco-friendly design"],
"style": "photo",
"max_images": 10
}根据特定要求进行搜索
// Using the search_images tool
{
"query": "mountain landscape sunrise",
"aspect_ratio": "wide",
"license_type": "commercial",
"extension": "jpg",
"size": "large",
"page_size": 20
}许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
欢迎投稿!请随时提交拉取请求。
开发指南
- 遵循TypeScript的最佳实践
- 为新功能添加测试
- 更新文档
- 确保所有工具都有适当的错误处理
致谢
故障排除
常见问题
- 速率限制错误:您达到了匿名API限制。等待一个小时或实施身份验证。
- 没有结果:尝试更广泛的搜索词或删除过滤器。
- 连接错误:检查您的互联网连接和防火墙设置。
调试模式
设置 DEBUG 环境变量:
DEBUG=mcp:* npx @mcp/openverse