图像服务MCP服务器
一种模型上下文协议(MCP)服务器,提供用于与图像服务API交互的工具。该服务器使AI助手(如Cursor)能够上传图像、检索图像元数据,并通过标准化的MCP接口获取调整大小的图像URL。
特性
此MCP服务器提供以下工具:
list_categories:列出所有可用的图像类别及其支持的大小(有助于确定有效的类别和大小选项)get_image_metadata:通过UUID检索图像的元数据(返回格式化的markdown以便于LLM解析)get_resized_image:获取具有格式化输出的特定大小(缩略图、小、中、大)的图像的下载URLupload_image:上传图像文件,不立即调整大小upload_and_resize_image:上传图像文件并立即调整其大小
所有工具都包括全面的日志记录和错误处理,以帮助调试API交互。
安装
npm install发展
# Build the project
npm run build
# Run in development mode
npm run dev
# Run the built server
npm start使用npx
在构建并发布到npm后,您可以使用以下命令运行服务器:
npx @hikari-systems/image-service-mcp 例子:
npx @hikari-systems/image-service-mcp http://localhost:3001 sdflkjghwiuryt32452345命令行参数
- `
(必需):图像服务API的基本URL(例如。,http://localhost:3001`) - `` (必需):用于与图像服务进行身份验证的API密钥
添加到光标
要将此MCP服务器与Cursor一起使用,您需要将其添加到Cursor设置中。方法如下:
步骤1:打开光标设置
- 打开光标
- 首选 设置 (或按
Cmd/Ctrl + ,) - 引导到 特性 → 模型上下文协议 → 服务器
步骤2:添加服务器配置
将以下配置添加到光标MCP设置中:
{
"mcpServers": {
"image-service": {
"command": "npx",
"args": [
"@hikari-systems/image-service-mcp",
"http://localhost:3001",
"your-api-key-here"
]
}
}
}注: 替换 http://localhost:3001 使用您的实际图像服务URL和 your-api-key-here 使用您的实际API密钥。
替代方案:使用环境变量
如果您希望将敏感信息排除在设置文件之外,可以使用环境变量:
{
"mcpServers": {
"image-service": {
"command": "npx",
"args": ["@hikari-systems/image-service-mcp"],
"env": {
"image-service__url": "http://localhost:3001",
"image-service__apiKey": "your-api-key-here"
}
}
}
}步骤3:重新启动游标
添加配置后,重新启动Cursor以加载MCP服务器。
步骤4:验证安装
Cursor重新启动后,映像服务工具应该可用。您可以通过要求Cursor使用其中一个工具进行验证,例如:
- “获取图像UUID abc123的元数据”
- “上传此图像文件:/path/to/image.jpg”
- “获取图像UUID xyz789的缩略图URL”
地方发展与npx
要在发布前使用npx进行本地测试,请执行以下操作:
# Build the project
npm run build
# Link the package locally
npm link
# Run with npx (using the scoped package name)
npx @hikari-systems/image-service-mcp http://localhost:3001 your-api-key出版
要将此作用域包发布到npm:
# Make sure you're logged in to npm
npm login
# Publish with public access (required for scoped packages by default)
npm publish --access publicMCP工具
列表_类别
列出所有可用的图像类别及其支持的大小。此工具有助于确定上传图像时可以使用哪些类别,以及可以调整大小的大小选项。
参数:
- 无(无需参数)
例子:
{
"name": "list_categories",
"arguments": {}
}响应格式:
该工具返回一个格式化的markdown响应,其中包括:
- 类别列表:所有可用类别及其名称
- 可用尺寸:对于每个类别,列出所有支持的尺寸,包括:
- 尺寸名称(例如,“小”、“中”、“大”) - 尺寸(宽×高,像素) - MIME类型
- 原始JSON响应:完整的JSON响应以供参考
示例响应:
## Available Image Categories
Found 1 category:
### default
**Available Sizes:**
- **small**: 100×100 pixels (image/jpg)
- **medium**: 200×200 pixels (image/jpg)
- **large**: 400×400 pixels (image/png)
---
**Raw JSON Response:**
The complete JSON response is also included at the end for programmatic access.get_image-metadata
通过UUID检索图像的元数据。返回一个格式化的markdown响应,其中清晰地显示了关键信息,使LLM易于解析和理解。
参数:
uuid(必需):映像服务UUID
例子:
{
"name": "get_image_metadata",
"arguments": {
"uuid": "abc123-def456-ghi789"
}
}响应格式:
该工具返回一个格式化的markdown响应,其中包括:
- 图像ID:图像的唯一标识符
- 类别:图像类别
- S3路径:映像的S3存储路径
- 原始图像URL:访问原始图像的签名URL(带过期通知)
- 附加信息:API返回的任何其他字段
- 原始JSON响应:完整的JSON响应以供参考
示例响应:
## Image Metadata
**Image ID:** abc123-def456-ghi789
**Category:** products
**S3 Path:** products-abc123-def456-ghi789.png
**Original Image URL:** https://images.preview.hikari-systems.com/...
> This is a signed URL that can be used to access the original image. The URL includes authentication parameters and may expire.
---
**Raw JSON Response:**
The complete JSON response is also included at the end for programmatic access.get_resized_image
获取用于下载特定大小图像的URL。返回一个格式化的markdown响应,其中清晰地显示了下载URL,使LLM能够轻松提取和使用该URL。
参数:
uuid(必需):映像服务UUIDsize(必填):首选大小(例如,“缩略图”、“小”、“中”、“大”)
例子:
{
"name": "get_resized_image",
"arguments": {
"uuid": "abc123-def456-ghi789",
"size": "thumbnail"
}
}响应格式:
该工具返回一个格式化的markdown响应,其中包括:
- 图像UUID:请求中使用的图像标识符
- 请求的大小:要求的尺寸
- 下载链接:一个签名的URL,用于按请求的大小下载图像(带过期通知)
- 附加信息:API返回的任何其他字段
- 原始JSON响应:完整的JSON响应以供参考
示例响应:
## Resized Image URL
**Image UUID:** abc123-def456-ghi789
**Requested Size:** thumbnail
**Download URL:** https://images.preview.hikari-systems.com/...
> This is a signed URL that can be used to download the image at the requested size. The URL includes authentication parameters and may expire.
---
**Raw JSON Response:**
The complete JSON response is also included at the end for programmatic access.upload_image
上传图像文件,无需立即调整大小。获取图像类别和本地文件名,读取文件,并将其上传到图像服务 forceImmediateResize 着手 false.
参数:
category(必填):图像类别filename(必填):要上传的本地文件路径
例子:
{
"name": "upload_image",
"arguments": {
"category": "products",
"filename": "/path/to/image.jpg"
}
}upload_and_resize_image
上传图像文件并立即调整其大小。获取图像类别和本地文件名,读取文件并将其上传到图像服务 forceImmediateResize 着手 true.
参数:
category(必填):图像类别filename(必填):要上传的本地文件路径
例子:
{
"name": "upload_and_resize_image",
"arguments": {
"category": "products",
"filename": "/path/to/image.jpg"
}
}许可证
阿帕奇-2.0
