Skip to main content
Glama

Search Images

search_images
Read-onlyIdempotent

"Find royalty-free / Creative Commons / public-domain images of [X]" / "CC images of [Y]" / "free-to-use pictures of [topic]" / "stock photos of [subject]" — search Creative-Commons-licensed images across Wikimedia, Flickr, Met Museum, Smithsonian, and many other open repositories via Openverse. Filter by license (cc0, by, by-sa, …), commercial-use, size. Use to find legally-reusable images for slides, blog posts, marketing, education.

Input Schema

NameRequiredDescriptionDefault
pageNo
sizeNo"small" | "medium" | "large"
queryYes
sourceNoProvider id, e.g. "flickr","met","wikimedia"
licenseNocomma-separated, e.g. "cc0,by"
page_sizeNo1-20 (anonymous cap; default 20)
license_typeNo"commercial" | "modification" | "all"

Output Schema

NameRequiredDescriptionDefault
pageNoCurrent page number
resultsNoArray of image results
page_sizeNoResults per page
page_countNoTotal number of pages
result_countNoTotal number of results available

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / page_size / description
      Previous value: -"1-500 (default 20)"New value: +"1-20 (anonymous cap; default 20)"
  2. Changed4 schema fields changed
    • changedOutput schema / properties / results / items / properties / category / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / results / items / properties / filesize / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedOutput schema / properties / results / items / properties / filetype / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / results / items / properties / tags / items / properties / accuracy / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
  3. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "query": "sunset landscape"
      +  },
      +  {
      +    "license": "cc0,by",
      +    "page": 1,
      +    "page_size": 50,
      +    "query": "cat",
      +    "size": "large",
      +    "source": "flickr"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "page": {
      +      "description": "Current page number",
      +      "type": "integer"
      +    },
      +    "page_count": {
      +      "description": "Total number of pages",
      +      "type": "integer"
      +    },
      +    "page_size": {
      +      "description": "Results per page",
      +      "type": "integer"
      +    },
      +    "result_count": {
      +      "description": "Total number of results available",
      +      "type": "integer"
      +    },
      +    "results": {
      +      "description": "Array of image results",
      +      "items": {
      +        "properties": {
      +          "category": {
      +            "description": "Image category",
      +            "type": "string"
      +          },
      +          "creator": {
      +            "description": "Image creator name",
      +            "type": "string"
      +          },
      +          "creator_url": {
      +            "description": "Creator profile URL",
      +            "type": "string"
      +          },
      +          "filesize": {
      +            "description": "File size in bytes",
      +            "type": "integer"
      +          },
      +          "filetype": {
      +            "description": "File format",
      +            "type": "string"
      +          },
      +          "foreign_landing_url": {
      +            "description": "Original source URL",
      +            "type": "string"
      +          },
      +          "height": {
      +            "description": "Image height in pixels",
      +            "type": "integer"
      +          },
      +          "id": {
      +            "description": "Image unique identifier",
      +            "type": "string"
      +          },
      +          "license": {
      +            "description": "License type",
      +            "type": "string"
      +          },
      +          "license_url": {
      +            "description": "License details URL",
      +            "type": "string"
      +          },
      +          "license_version": {
      +            "description": "License version",
      +            "type": "string"
      +          },
      +          "provider": {
      +            "description": "Source provider",
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Source identifier",
      +            "type": "string"
      +          },
      +          "tags": {
      +            "description": "Associated tags",
      +            "items": {
      +              "properties": {
      +                "accuracy": {
      +                  "description": "Tag accuracy score",
      +                  "type": "number"
      +                },
      +                "name": {
      +                  "description": "Tag name",
      +                  "type": "string"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "thumbnail": {
      +            "description": "Thumbnail URL",
      +            "type": "string"
      +          },
      +          "title": {
      +            "description": "Image title",
      +            "type": "string"
      +          },
      +          "url": {
      +            "description": "Image URL",
      +            "type": "string"
      +          },
      +          "width": {
      +            "description": "Image width in pixels",
      +            "type": "integer"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  4. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety burden is light. The description adds meaningful behavior beyond that: federated search across many open repositories, license-based filtering, and commercial-use filtering — the core risk of picking a non-reusable image.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening is a cluttered run of four near-duplicate quoted query patterns before the actual purpose statement, which buries the lead. The trailing sentence is efficient, but the front-loading is weak and some example text is redundant.

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?

For a 7-parameter search tool with an output schema, the description covers the important call decisions — what corpus is searched, which providers, and how to constrain by license and commercial use. Pagination and size-selection behavior are left to the schema, which is acceptable given the output schema exists.

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 coverage is 71%, so most parameters are already documented in the schema. The description adds some meaning by naming license values (cc0, by, by-sa), commercial-use and size filters, but it says nothing about page, page_size limits, or how source interacts with the aggregate search, leaving gaps for the remainder.

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?

States a specific verb (search) and resource (Creative-Commons-licensed images) and enumerates the underlying providers (Wikimedia, Flickr, Met, Smithsonian via Openverse). It is clearly distinguishable from siblings like get_image or image_related, which retrieve images rather than search open repositories.

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?

Gives concrete when-to-use framing: 'Use to find legally-reusable images for slides, blog posts, marketing, education,' and embeds example query phrasings. It never names an alternative tool or states when not to use it, so it stops short of full when/when-not coverage.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.