wikimedia-image-search-mcp

wikimedia-image-search-mcp

Enables AI assistants to search for images on Wikimedia Commons, returning structured metadata and a composite thumbnail grid for visual comparison.

Category
Visit Server

README

Wikimedia Image Search MCP Server

This MCP (Model Context Protocol) server enables AI assistants to search for images on Wikimedia Commons. It provides detailed metadata and optional thumbnail composites to help AI models visually compare results.

Overview

This server is designed to give AI assistants "eyes" when searching for visual content. Instead of guessing based on filenames or text descriptions alone, the AI can retrieve a structured list of image metadata and a composite image containing thumbnails of the search results.

This capability is particularly useful when an AI assistant needs to:

  • Find suitable images for creating websites, articles, or presentations.
  • Select images for educational materials or books.
  • Verify the visual content of an image before recommending it.
  • Compare multiple images to choose the most relevant one for a specific context.

By providing both metadata (license, author, description, dimensions) and a visual preview, the AI can make informed decisions about which images to use or download.

Setup

Prerequisites

  • Node.js: Version 18 or higher.
  • MCP Client: A compatible client such as VS Code, Cursor, Claude Code, Windsurf, Cline, Claude Desktop...

Installation

To use this server, configure your MCP client to run it using npx.

<details> <summary>VS Code</summary>

Add the following configuration to your MCP settings file (typically located at %APPDATA%\Code\User\globalStorage\mcp-servers.json on Windows or ~/Library/Application Support/Code/User/globalStorage/mcp-servers.json on macOS).

{
  "mcpServers": {
    "wikimedia-image-search": {
      "command": "npx",
      "args": [
        "-y",
        "wikimedia-image-search-mcp"
      ]
    }
  }
}

</details>

<details> <summary>Cursor</summary>

Go to Cursor Settings > MCP > Add new MCP Server.

  • Name: wikimedia-image-search
  • Type: command
  • Command: npx -y wikimedia-image-search-mcp

Alternatively, edit your .cursor/mcp.json file:

{
  "mcpServers": {
    "wikimedia-image-search": {
      "command": "npx",
      "args": [
        "-y",
        "wikimedia-image-search-mcp"
      ]
    }
  }
}

</details>

<details> <summary>Claude Desktop</summary>

Edit your claude_desktop_config.json file (typically located at %APPDATA%\Claude\claude_desktop_config.json on Windows or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS).

{
  "mcpServers": {
    "wikimedia-image-search": {
      "command": "npx",
      "args": [
        "-y",
        "wikimedia-image-search-mcp"
      ]
    }
  }
}

</details>

<details> <summary>Claude Code</summary>

Run the following command in your terminal:

claude mcp add wikimedia-image-search -- npx -y wikimedia-image-search-mcp

</details>

Tool Usage

This server exposes a single tool: wikimedia_search_images.

Tool Schema

The tool accepts the following parameters:

  • query (string, required): The search terms (e.g., "sunset ocean", "eiffel tower").
  • limit (number, optional): Maximum number of results to return (default: 9, max: 50).
  • offset (number, optional): Number of results to skip for pagination.
  • license (string, optional): Filter by license. Options: "all" (default) or "no_restrictions" (CC0/Public Domain).
  • include_thumbnails (boolean, optional): Whether to generate and return a composite image of thumbnails (default: true).

How It Works

  1. Fetching: The tool queries the Wikimedia Commons API using the provided search terms and filters. It retrieves raw JSON data containing image URLs, metadata, and license information.
  2. Processing: The raw JSON response is parsed and transformed into a clean, structured list of ImageMetadata objects.
  3. Formatting:
    • Text: The metadata list is converted into a YAML-formatted string. This provides the AI with a readable, structured text overview of the results (including file size, dimensions, author, and license).
    • Visual: If include_thumbnails is true, the tool downloads the thumbnail for each result. It then uses the sharp library to composite these thumbnails into a single grid image, with index numbers overlaid on each image.
  4. Response: The tool returns a multi-content message containing the YAML text and the composite image (MIME type image/jpeg).

You can view examples of the output files in the test-output/ directory:

Demonstration

Development

To contribute to this project or run it locally from source:

  1. Clone the repository:

    git clone https://github.com/yanexr/wikimedia-image-search-mcp.git
    cd wikimedia-image-search-mcp
    
  2. Install dependencies:

    npm install
    # or
    pnpm install
    
  3. Build the project:

    npm run build
    # or
    pnpm run build
    
  4. Local Configuration: To test the server locally with an MCP client, point the configuration to your built file.

    {
      "mcpServers": {
        "wikimedia-local": {
          "command": "node",
          "args": [
            "C:/path/to/wikimedia-image-search-mcp/dist/index.js"
          ]
        }
      }
    }
    
  5. Testing and Debugging: You can use the MCP Inspector to test the server interactively:

    npm run inspect
    # or
    pnpm run inspect
    

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured