flin-imgbb-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@flin-imgbb-mcpUpload image /home/user/photo.png"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
flin-imgbb-mcp
MCP server for uploading images to ImgBB from Claude-compatible clients.
Quick Start
The recommended setup uses uvx — no repository clone or virtual environment required.
Add this to your Claude MCP configuration:
{
"mcpServers": {
"imgbb": {
"command": "uvx",
"args": ["flin-imgbb-mcp@latest"],
"env": {
"IMGBB_API_KEY": "your-imgbb-api-key"
}
}
}
}Get your API key at api.imgbb.com.
Related MCP server: kimi-read-image-mcp
Tools
upload_image
Upload a single image file to ImgBB and get its public URL.
Parameter | Type | Required | Description |
| string | yes | Absolute or relative path to the image file |
| string | no | Optional name for the image on ImgBB |
| number | no | Expiration in seconds (60–15552000) |
Returns: url, display_url, delete_url, title
list_images
List all image files in a local folder (png, jpg, jpeg, gif, webp, bmp).
Parameter | Type | Required | Description |
| string | yes | Absolute path to the folder |
upload_all_images
Upload all images from a local folder to ImgBB.
Parameter | Type | Required | Description |
| string | yes | Absolute path to the folder |
| number | no | Expiration in seconds (60–15552000) for all images |
Configuration
Environment Variable | Required | Description |
| yes | Your ImgBB API key |
Troubleshooting
Server does not start / "IMGBB_API_KEY is not set"
Make sure IMGBB_API_KEY is set in the env block of your MCP configuration. The server checks for it at startup and will exit with a clear error if it is missing.
Upload fails with HTTP 400 The file path must point to a valid image file. Supported formats: png, jpg, jpeg, gif, webp, bmp.
uvx command not found
Install uv from docs.astral.sh/uv.
Development
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync --group dev
# Run tests
uv run pytest tests/ -v
# Lint
uv run ruff check src/ tests/
# Build distribution artifacts
uv buildRelease
Releases are published to PyPI automatically when a version tag is pushed:
git tag v1.0.2
git push origin v1.0.2The GitHub Actions release workflow builds the package and publishes it via PyPI Trusted Publishing.
License
MIT
Available Tools
3 toolslist_imagesC
List all image files in a local folder (png, jpg, jpeg, gif, webp, bmp).
Args: folder_path: Absolute path to the folder containing images.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. Does not mention recursion depth, whether absolute path is required (though noted in Args), or if the tool reads metadata. Assumed read-only but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and direct, with an Args section. Every sentence adds value. Could be slightly more structured but is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the main purpose and parameter, but lacks details on edge cases (empty folder, hidden files, symlinks). Output schema exists, so return details are not required. Overall adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so description adds 'Absolute path' for folder_path, which clarifies the expected format. However, it does not explain that the path must exist or that it should be a directory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List all image files in a local folder' and specifies supported extensions (png, jpg, etc.). Distinguishes from siblings 'upload_all_images' and 'upload_image' which are for uploading, not listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives, nor any prerequisites such as folder existence or permissions. Agent must infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_all_imagesA
Upload all images from a local folder to ImgBB.
Args: folder_path: Absolute path to the folder containing images. expiration: Optional expiration time in seconds (60-15552000) for all images.
| Name | Required | Description | Default |
|---|---|---|---|
| expiration | No | ||
| folder_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the basic upload action and optional expiration. It lacks details on error handling, file type validation, non-image file behavior, rate limits, or transactional guarantees, which are important for a batch operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a clear action sentence followed by parameter bullet points. Every sentence earns its place, and the structure is front-loaded with the tool purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of batch operations and the absence of annotations, the description is adequate but incomplete. It defines the parameters but does not cover error scenarios, success conditions, or behavior for non-image files. An output schema exists, so return values need not be explained, but overall context could be richer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining folder_path as an absolute path and expiration with a valid range (60-15552000 seconds). This adds meaningful guidance beyond the schema, though it could clarify accepted image formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it uploads all images from a local folder to ImgBB. This is a specific verb-resource combination that distinguishes itself from sibling tools (upload_image for single, list_images for listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies batch use via 'all images', it does not explicitly state when to use this tool versus the sibling upload_image tool, nor does it provide exclusion criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_imageA
Upload a single image file to ImgBB and return its public URL.
Args: file_path: Absolute or relative path to the image file. name: Optional name for the image on ImgBB. expiration: Optional expiration time in seconds (60-15552000). After this time the image is automatically deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| file_path | Yes | ||
| expiration | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses the return of a public URL and the auto-deletion behavior via the 'expiration' parameter. However, it does not mention file size limits, supported formats, or error handling, which are important for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with only two sentences and a clear bulleted parameter list. Every sentence serves a purpose, and the structure is easy to parse. There is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (mentioned in context), so the description does not need to detail return values beyond mentioning the public URL. The description covers the main purpose, parameters, and a behavioral trait (expiration). Minor gaps include missing file size or format constraints, but overall it is sufficiently complete for an upload tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning the description provides all parameter meaning. It explains 'file_path' as an absolute or relative path, 'name' as an optional image name, and 'expiration' with a numeric range (60-15552000) and its effect (auto-deletion). This adds significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Upload a single image file to ImgBB and return its public URL.' This provides a specific verb and resource, and the result is mentioned. It distinguishes from siblings 'list_images' and 'upload_all_images' by emphasizing 'single' and the service (ImgBB).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not explicitly state when to use it versus siblings. While it implies use for single images, it does not mention alternatives like 'upload_all_images' for batch uploads or 'list_images' for viewing. Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.2- First observed
list_images - First observed
upload_all_images - First observed
upload_image
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: one lists local images, one uploads all, one uploads a single. No overlap or ambiguity.
All tools use consistent snake_case verb_noun naming: list_images, upload_all_images, upload_image. Pattern is predictable.
With 3 tools, the server is well-scoped for its purpose of listing and uploading images to ImgBB. No unnecessary tools.
Core upload and list functionality is present, but there are notable gaps: no tool to delete images or retrieve info about previously uploaded images beyond the upload response.
Maintenance
Related MCP Connectors
MCP server for Qwen Image 3 AI image generation
Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.
MCP server for Flux AI image generation
MCP server for NanoBanana AI image generation and editing
Related MCP Servers
- AlicenseAqualityDmaintenanceA simple MCP server that reads local images and returns them as ImageContent for LLM vision analysis.1MIT
- AlicenseBqualityBmaintenanceMinimal MCP server for Kimi-compatible image analysis, allowing local images to be sent as inline base64 to any compatible endpoint.1492MIT
- FlicenseNot gradedqualityCmaintenanceRemote MCP server (Streamable HTTP) for generating and editing images via Google Gemini, usable as a custom connector in Claude.-
- AlicenseAqualityBmaintenanceA local (stdio) MCP server for PixelVault — agent-first image hosting, enabling upload of local files by path without base64.64MIT