BeeIMG exposes its image hosting API through the Model Context Protocol (MCP) so AI assistants, coding tools, and agents can upload, host, and delete images directly.
The endpoint speaks MCP v2 (protocol version 2026-07-28, Streamable HTTP
transport) and automatically falls back to the legacy initialize-based protocol
(2025-11-25 and earlier) for older clients.
Listed in the official
MCP Registry
as com.beeimg/mcp — registry-aware clients can find and connect to it by that name.
A single URL, used by every MCP client:
https://beeimg.com/mcp
POST.application/json); no SSE streams are used by this server.2026-07-28 requires the MCP-Protocol-Version, Mcp-Method,
and (for tools/call) Mcp-Name headers on each request. MCP client SDKs send these automatically.initialize are served the legacy protocol automatically.Add to claude_desktop_config.json (Settings > Developer):
{
"mcpServers": {
"beeimg": {
"url": "https://beeimg.com/mcp"
}
}
}
Add to ~/.cursor/mcp.json (Settings > MCP):
{
"mcpServers": {
"beeimg": {
"url": "https://beeimg.com/mcp"
}
}
}
Add to opencode.json (project or global config):
{
"mcp": {
"beeimg": {
"type": "remote",
"url": "https://beeimg.com/mcp",
"enabled": true
}
}
}
Install the beeimg-mcp Agent Skill to teach Claude Code, Cursor, opencode, or any skill-aware agent how to connect to and use this MCP server.
# opencode: add to opencode.json
"skills": { "urls": ["https://beeimg.com/.well-known/skills/"] }
# other clients: copy skills/beeimg-mcp/ into your skill directory,
# or fetch the canonical file directly
Hosted for agent auto-discovery:
https://beeimg.com/.well-known/skills/index.json (opencode index) and
https://beeimg.com/.well-known/skills/beeimg-mcp/SKILL.md (skill body).
In the beeimg repo, copy skills/beeimg-mcp/ from the
skills/ directory — the canonical source is
skills/beeimg-mcp/SKILL.md.
beeimg-mcp)
Prefer a local server? Install beeimg-mcp from npm — a stdio MCP server
that calls the BeeIMG API directly (no hosted endpoint, free forever). It exposes the
same eight tools.
# stdio transport — use this command in any MCP client
npx beeimg-mcp
Point your client at the stdio command npx beeimg-mcp. Config examples
and publish/directory-submission notes:
internal/mcp/npm/README.md in the beeimg repo, or
npmjs.com/package/beeimg-mcp.
| Tool | What it does | Key parameters |
|---|---|---|
upload_url |
Fetch an image from a remote URL and host it on BeeIMG. | url (required); apikey, albumid, privacy, title (optional) |
upload_file |
Upload an image file (base64 or data URI) to BeeIMG. | image (required); filename, apikey, albumid, privacy, title (optional) |
delete_image |
Delete a hosted image by ID. | image_id, apikey, delete_key (all required) |
beeimg_premium_info |
Free-plan limits, premium perks, and upgrade links. Useful when an upload hits a rate/storage/size limit. | — (no parameters) |
list_albums |
List all albums owned by the authenticated user. | apikey (required) |
create_album |
Create a new album; returns the album ID for uploads. | title, apikey (required); privacy (optional) |
get_album |
Get album details, sub-folders, and contained images. | id, apikey (required) |
create_folder |
Create a sub-folder in an album; returns the 9-char folder ID. | main_album_id, parent_id, apikey (required); name (optional) |
Uploads return the hosted image URL, thumbnail URL, view page, and delete URL. Add albumid (a
5-char master album ID or 9-char folder ID) to file images into an album; see the
Albums API for how to create albums and get folder IDs.
delete_key returned at upload time.apikey argument to upload_url / upload_file to attach images to albums.delete_image takes apikey + delete_key together; uploads made with an apikey return "#" as a placeholder delete_key, so use your account dashboard or the delete URL for those.When an upload fails, the server returns the raw API error plus a hint pointing at premium if it would help:
| API code | Meaning | Premium hint |
|---|---|---|
4 | File too large | Premium raises the max file size |
40 | Storage limit exceeded | Premium raises your storage limit |
223 | Upload rate limit reached | Premium removes upload rate limits |
503 | Uploader temporarily disabled | Premium members get priority upload access |
The full error-code list lives in the API docs.
A modern (v2) request needs the three headers below; _meta carries the protocol version:
curl -sk https://beeimg.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/call' \
-H 'Mcp-Name: upload_url' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "upload_url",
"arguments": {
"url": "https://example.com/photo.jpg",
"title": "My photo"
},
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}'
-k skips TLS verification — only needed for local/dev testing with self-signed certificates; drop it against the public endpoint.initialize request; the server falls back to the legacy protocol automatically.