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

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

Output Schema

TableJSON 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. 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"
      +]
  2. 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"
      +}
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover safe reads, and the description adds meaningful behavioral context: it searches external open repositories via Openverse, restricts results to certain licenses, and supports commercial-use filtering. This goes beyond what the annotations alone disclose.

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?

The description is front-loaded with query examples and then gives the provider context, filter options, and use cases. It is slightly repetitive ('royalty-free / Creative Commons / public-domain' followed by 'Creative-Commons-licensed'), but every major section earns its place and there is no filler.

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?

Given seven parameters and an output schema, the description covers purpose, scope, filtering behavior, and practical use cases. It does not need to explain return values because the output schema exists, and licensing/safety context is sufficiently conveyed.

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 description coverage is 71%, so the schema already documents most parameters. The description adds natural-language query patterns and mentions filtering by license, commercial-use, and size, but it does not clarify all parameters like page, and it largely restates filter concepts already present in 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?

The description uses a specific verb and resource: searching Creative-Commons-licensed images via Openverse, with named providers like Wikimedia, Flickr, Met Museum, and Smithsonian. It also distinguishes itself from siblings by emphasizing legally-reusable image search rather than audio or specific image retrieval.

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 clearly states when to use the tool: 'Use to find legally-reusable images for slides, blog posts, marketing, education.' It does not explicitly mention when not to use it or name alternatives, but the context is strong and exclusion-free.

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.