Skip to main content
Glama

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

file_path

string

yes

Absolute or relative path to the image file

name

string

no

Optional name for the image on ImgBB

expiration

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

folder_path

string

yes

Absolute path to the folder

upload_all_images

Upload all images from a local folder to ImgBB.

Parameter

Type

Required

Description

folder_path

string

yes

Absolute path to the folder

expiration

number

no

Expiration in seconds (60–15552000) for all images

Configuration

Environment Variable

Required

Description

IMGBB_API_KEY

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 build

Release

Releases are published to PyPI automatically when a version tag is pushed:

git tag v1.0.2
git push origin v1.0.2

The GitHub Actions release workflow builds the package and publishes it via PyPI Trusted Publishing.

License

MIT

Available Tools

3 tools
list_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
expirationNo
folder_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
file_pathYes
expirationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv1.0.2
    • First observedlist_images
    • First observedupload_all_images
    • First observedupload_image

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: one lists local images, one uploads all, one uploads a single. No overlap or ambiguity.

Naming Consistency5/5

All tools use consistent snake_case verb_noun naming: list_images, upload_all_images, upload_image. Pattern is predictable.

Tool Count5/5

With 3 tools, the server is well-scoped for its purpose of listing and uploading images to ImgBB. No unnecessary tools.

Completeness3/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers