Skip to main content
Glama
MediaShareORG

YourImageShare

Official

yourimageshare-mcp

npm version npm downloads yourimageshare MCP server

MCP (Model Context Protocol) server for YourImageShare. Built for AI coding agents (Claude Code, Cursor, and other MCP-compatible tools) - paste a screenshot into a bug report, a PR description, or a support thread as a real URL instead of a base64 blob or a manual upload step. Works the same way with Claude Desktop and any other MCP client.

Install / run

No install needed - run directly with npx:

npx yourimageshare-mcp

Also listed on Smithery, if your MCP client installs from there instead.

Claude Desktop / Claude Code config

Add to your MCP client's config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "yourimageshare": {
      "command": "npx",
      "args": ["-y", "yourimageshare-mcp"],
      "env": {
        "YIS_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Related MCP server: uploadthing-mcp

Environment variables

Variable

Required

Purpose

YIS_API_KEY

yes

Your YourImageShare API key.

YIS_BASE_URL

no

Override the API base URL (default https://yourimageshare.com/api). For testing only.

Tools

upload_image

Upload a file. Provide either:

  • path - a local file path this server process can read, or

  • base64 + filename - inline file contents, for MCP clients with no local filesystem access.

Optional expiresIn (seconds, 60 to 2,592,000 = 30 days) auto-deletes the upload later. Returns the same JSON shape as the HTTP API's upload response (id, type, path, src, direct, expires_at).

list_uploads

Optional page (defaults to 1, 50 per page). Returns your uploads newest first.

delete_upload

Requires id (from upload_image/list_uploads). Permanently deletes the upload.

Notes

  • This server only ever acts as the account tied to YIS_API_KEY - there's no way for a connected agent to act as any other account.

  • Errors from the API (bad key, rate limit, file rejected by moderation, etc.) come back as a tool error result with the API's own message, not a crashed tool call.

  • Built as a small, self-contained client rather than depending on the separate yourimageshare npm package, so this server's releases aren't coupled to that package's.

License

MIT

Support

yourimageshare.com/contact

Available Tools

3 tools
delete_uploadDelete an uploadA
DestructiveIdempotent

Permanently delete one of your YourImageShare uploads by id - irreversible, the file and its links stop working immediately. Get the id from upload_image's response right after uploading, or from list_uploads if you no longer have it. Errors (not found, already deleted, wrong owner) come back as a normal tool error.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe upload id to delete (the `id` field returned by upload_image/list_uploads).

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
deletedYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the destructiveHint annotation by stating the deletion is irreversible, the file and its links stop working immediately, and errors such as not found, already deleted, or wrong owner surface as normal tool errors. This gives an agent useful behavioral expectations.

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 three sentences with the main action and consequence front-loaded. Every sentence contributes: what it does, how to get the id, and what error behavior to expect. There is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter destructive tool with output schema and annotations, this description is complete. It covers purpose, side effects, id provenance, and error behavior. An agent has everything needed to select and invoke it correctly.

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?

The schema already documents `id` at 100% coverage, and the description adds retrieval guidance: use the response from upload_image right after uploading, or list_uploads if the id is no longer available. This is genuinely useful beyond the schema's parameter description.

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 opens with a specific action and resource: 'Permanently delete one of your YourImageShare uploads by `id`'. It clearly distinguishes itself from siblings by present itself as the deletion tool while upload_image/list_uploads are framed as id sources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: use when you intend a permanent deletion, and it explains how to obtain the id from upload_image or list_uploads. It doesn't explicitly state when not to use, but since the siblings are upload/list tools, there is no deletion alternative needing exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_uploadsList your uploadsA
Read-onlyIdempotent

List your YourImageShare uploads, newest first, 50 per page - use this to find an upload's id (needed by delete_upload) when you only have its URL or remember it by content, since there's no lookup-by-URL endpoint. Each result includes the same three link fields upload_image returns, plus title and created_at. An out-of-range page number returns an empty data array, not an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number. Defaults to 1.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds genuinely useful behavioral traits beyond those: pagination behavior ('50 per page'), the out-of-range page behavior ('returns an empty `data` array, not an error'), and the exact composition of results ('same three link fields `upload_image` returns, plus `title` and `created_at`'). These are not derivable from annotations or schema.

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?

Three sentences, each earning its place: purpose+scoping, result-shape, and edge-case behavior. Core purpose is front-loaded in the first sentence. No filler, no repetition of schema or annotation content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter read-only tool with an output schema and safety annotations, the description covers everything an agent needs to invoke it correctly: what it returns, how pagination works, when to prefer it, and how errors manifest. The output schema handles return structure, so nothing material is missing.

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?

Schema coverage is 100% (the `page` parameter is already documented with type, minimum, and default), so the baseline is 3. The description adds value by explaining what page means in operation: pages are 50 items each, and an out-of-range page yields an empty array rather than an error. This enriches the schema's bare parameter definition without contradicting it.

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 uses a specific verb+resource ('List your YourImageShare uploads') and adds concrete scoping details: 'newest first, 50 per page'. It also differentiates from siblings by tying the tool to finding an upload's `id` for `delete_upload`, and by contrast with `upload_image`. An agent can distinguish this from both siblings without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'use this to find an upload's `id` (needed by `delete_upload`) when you only have its URL or remember it by content'. It also states the limiting constraint that should trigger this tool: 'there's no lookup-by-URL endpoint'. This is exactly the kind of routing information an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_imageUpload an image or videoA

Upload an image or video to YourImageShare and get back a shareable link. Accepts JPG, PNG, GIF, WEBP, AVIF, BMP, TIFF, HEIC/HEIF images and MP4, WEBM, AVI video, 100KB-200MB. Provide path for a file on disk this server can read, or base64 + filename for in-memory content (e.g. no local filesystem access) - never both. Returns three different URLs for the same upload (see output fields): a raw storage link, a direct embeddable link, and a shareable page link - pick whichever fits where it's going. Errors (oversized/unsupported file, bad API key, rate limit) come back as a normal tool error, not a thrown exception.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoLocal file path to upload.
base64NoBase64-encoded file contents. Requires `filename`.
filenameNoFilename to use. Required with `base64`; inferred from `path` otherwise.
expiresInNoAuto-delete after this many seconds (60 to 2,592,000 = 30 days). Omit for a permanent upload.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesUnique identifier for this upload. Pass to delete_upload to remove it.
srcYesDirect/embeddable file URL - use this for <img>/<video> src attributes.
pathYesRaw storage URL - the literal file, e.g. i.yourimageshare.com/xxx.webp.
typeYes
directYesThe shareable page URL (title, description, comments, share buttons). Despite the field name, this is NOT a direct file link - use `src` for that.
expires_atYesISO 8601 auto-delete timestamp, or null if the upload never expires.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false), the description discloses important behavior: it creates an upload, returns three distinct URL types, supports optional auto-deletion via expiresIn, and returns errors as normal tool errors rather than exceptions. This gives the agent a clear behavioral model without contradicting the annotations.

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 dense but every sentence contributes: accepted types, size limits, input modes, mutual exclusivity, return URL purposes, and error behavior. It is front-loaded with the core purpose and then details the constraints. No filler or redundant restating of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 optional-looking parameters, practical constraints, an output schema, and no explicit required fields, the description fully compensates. It clarifies the real requirement (either path or base64+filename), describes what the agent can expect as output, and covers failure modes. The agent can invoke this tool correctly with minimal additional inference.

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?

Although schema description coverage is 100%, the description adds critical semantic constraints not visible in the schema: path and base64+filename are mutually exclusive, filename is required with base64 but inferred from path, and expiresIn controls auto-deletion. It also explains what the return URLs mean, adding value beyond the raw parameter definitions.

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 states a specific verb and resource: 'Upload an image or video to YourImageShare and get back a shareable link.' It clearly distinguishes this tool from its siblings list_uploads and delete_upload by focusing on the creation/upload action rather than listing or deleting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use this tool: uploading images/videos, with accepted formats and size range. It also explains the two input modes (path vs base64+filename) and when each is appropriate, including the 'never both' rule. It doesn't explicitly name sibling alternatives for when-not-to-use, but the upload vs list/delete distinction is obvious.

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. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.6
    • First observeddelete_upload
    • First observedlist_uploads
    • First observedupload_image

TDQS

A4.7/5.0
Disambiguation5/5

The three tools have clearly distinct operations: upload creates a shareable upload, list enumerates existing uploads, and delete removes one by ID. There is no overlap or ambiguity in their purposes.

Naming Consistency5/5

All tools follow the same verb_noun pattern: upload_image, list_uploads, delete_upload. The minor singular/plural difference is not confusing and the naming style is consistent across the set.

Tool Count5/5

Three tools is well-scoped for a simple image-sharing server. Each tool covers a necessary core operation and no redundant tools are present.

Completeness5/5

The tool set covers the full lifecycle of a hosted upload: create via upload_image, read/search via list_uploads, and delete via delete_upload. There are no dead ends or missing core operations for this domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for UploadThing that lets AI assistants upload, list, and delete files on UploadThing's CDN via natural language. Runs as a Cloudflare Worker for always-on serverless access.
    18
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Enables AI agents and users to upload and download files via MCP, generating shareable links and identifier codes. Files are automatically deleted after 24 hours.
    9
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MediaShareORG/yourimageshare'

If you have feedback or need assistance with the MCP directory API, please join our Discord server