Free Image Library — Free CC Images & Audio MCP 🖼️
Free images for any project: millions of openly-licensed, royalty-free Creative Commons images and audio (Flickr, Wikimedia, museums) — every result with ready-to-paste attribution. Zero API keys, zero configuration.
The visual sibling of the Free Music Library for the same content-creator audience: the agent finds the image AND the credit line in one call, so the attribution never gets lost between copy and paste.
Why this exists
- Models suggest random stock images (license unknown, credit never written). This returns license-safe images with the credit the user MUST paste — built into the same result.
- License intelligence, not just labels: every row carries a
credit_notestating the actual obligation — CC BY-NC rows are loudly flagged non-commercial-only before your client ships them into a paid campaign. - Serendipity:
image_roulettepicks from deep in the result set, not the first hit everyone has seen. - Built on Openverse — keyless (anonymous limits:
20 requests/min, 200/day, verified; a free registered key raises them via
OPENVERSE_API_KEY). A 5-minute TTL cache makes repeat searches free.
Tools
| Tool | What it does |
|---|---|
find_images |
Free CC image search with filters (license, aspect_ratio, size, extension) + attribution on every row |
image_roulette |
One random license-safe pick, honest about how it was chosen |
find_audio |
Free CC music / sound effects / field recordings from Openverse's audio index |
skills_list / skill_read |
Updatable playbooks: CC license briefs in plain language, error recovery |
Plus prompts: hero-image, license-safe-images.
Quickstart
# 1-Line Universal Installer (auto-configures Claude Desktop, Cursor, Claude Code, VS Code, ...)
curl -fsSL "https://free-image-library.builditwithai.xyz/install" | bash
# Or run directly via your preferred runtime:
uvx free-image-library
npx -y free-image-library
Example
User: I need a hero image for my climate blog post
find_images(query="melting glacier", aspect_ratio="wide", count=3,
intent="hero image for a climate blog post")
→ images: [{
title: "Glacier calving", creator: "…", license: "CC BY 2.0",
image_url: "https://…", width: 2048, height: 1152,
attribution: "\"Glacier calving\" image by … (flickr), licensed CC BY 2.0 (…)",
credit_note: "Credit REQUIRED — paste the attribution verbatim." }]
Telemetry & privacy
Anonymous usage telemetry (no PII, no queries, no paths) via the fleet
standard (schema v2, dual-endpoint fallback). Opt out any time:
FREE_IMAGE_LIBRARY_TELEMETRY=false or DO_NOT_TRACK=1.
Development
uv venv && uv pip install -e ".[dev]"
DO_NOT_TRACK=1 .venv/bin/python -m pytest tests/ -q # unit + live + e2e
Live tests hit the real Openverse API; they skip themselves when offline or rate-limited.
License
MIT
Metadata
Release files for free-image-library 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| free_image_library-0.1.1.tar.gz | 27.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| free_image_library-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.1 kB
Release files / free_image_library-0.1.1.tar.gz
| Download URL | free_image_library-0.1.1.tar.gz |
|---|---|
| Size | 27.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b3c30ee1ba98b4c46bb1d71d723e04612bfcabd7cd8aeb081a5306d92104664
|
|
BLAKE2b-256 checksum How to use checksums |
6fce2ff248e4f89d3732e8d5400cf0406a3b7e71bf7a6e30804633984b050237
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / free_image_library-0.1.1-py3-none-any.whl
| Download URL | free_image_library-0.1.1-py3-none-any.whl |
|---|---|
| Size | 23.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
025262b2e2641641d85b11c1274a692727ec5b0649c785df6713c0c96e1d01f7
|
|
BLAKE2b-256 checksum How to use checksums |
b098555d4f46ee14d272e898fea7fe5f48b5bc9897e339c0af68473d5853192c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|