Pixabay MCP Server
Provides access to Pixabay's API for searching and retrieving royalty-free images and videos, with advanced filtering options for category, orientation, color, size, and quality.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pixabay MCP Serversearch for sunset photos with horizontal orientation and warm colors"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pixabay MCP Server
A Model Context Protocol (MCP) server that provides access to the Pixabay API for searching and retrieving royalty-free images and videos.
📖 Complete Setup and Usage Guide - Step-by-step tutorial with examples and troubleshooting
Features
Image Search: Search through millions of royalty-free images
Video Search: Find high-quality stock videos
Advanced Filtering: Filter by category, orientation, color, size, and more
Individual Lookup: Get specific images or videos by ID
Multiple Formats: Access different image sizes and video qualities
Related MCP server: Pixabay MCP Server
Installation
Clone this repository:
git clone <your-repo-url>
cd pixabay-mcp-serverInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
API Key Setup
You'll need a Pixabay API key to use this server:
Sign up at Pixabay
Go to Pixabay API page
Get your API key
Set the system environment variable (recommended for security):
For bash/zsh (add to ~/.bashrc, ~/.zshrc, or ~/.bash_profile):
export PIXABAY_API_KEY="your-api-key-here"For fish (add to ~/.config/fish/config.fish):
set -gx PIXABAY_API_KEY "your-api-key-here"For Windows (Command Prompt):
setx PIXABAY_API_KEY "your-api-key-here"After setting the environment variable, restart your terminal or run:
source ~/.zshrc # or your shell's config fileClaude Desktop Configuration
Add the server to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Recommended (using system environment variable):
{
"mcpServers": {
"pixabay": {
"command": "node",
"args": ["/path/to/pixabay-mcp-server/dist/index.js"]
}
}
}Alternative (less secure - API key in config file):
{
"mcpServers": {
"pixabay": {
"command": "node",
"args": ["/path/to/pixabay-mcp-server/dist/index.js"],
"env": {
"PIXABAY_API_KEY": "your-api-key-here"
}
}
}
}Security Note: The recommended approach uses your system environment variable, keeping the API key out of configuration files.
Available Tools
search_images
Search for royalty-free images with various filters:
q: Search term (max 100 characters)lang: Language code (default: "en")image_type: "all", "photo", "illustration", "vector"orientation: "all", "horizontal", "vertical"category: Category filter (nature, business, etc.)min_width/min_height: Minimum dimensionscolors: Color filter (red, blue, grayscale, etc.)editors_choice: Editor's Choice awards onlysafesearch: Safe for all agesorder: "popular" or "latest"page: Page number (default: 1)per_page: Results per page (3-200, default: 20)
search_videos
Search for royalty-free videos with similar filtering options:
q: Search termvideo_type: "all", "film", "animation"All other parameters similar to image search
get_image_by_id
Retrieve a specific image by its Pixabay ID:
id: Pixabay image ID (required)
get_video_by_id
Retrieve a specific video by its Pixabay ID:
id: Pixabay video ID (required)
Usage Examples
Basic Image Search
Search for "mountain landscape" photosAdvanced Image Search
Search for horizontal nature photos with minimum width 1920px, editors choice onlyVideo Search
Find animation videos about "space exploration"API Rate Limits
100 requests per 60 seconds by default
Responses must be cached for 24 hours
Systematic mass downloads are not allowed
Response Format
The server returns JSON responses with image/video metadata including:
URLs for different sizes
Dimensions and file sizes
View/download/like counts
User information
Tags and categories
Development
Running in Development Mode
npm run devBuilding
npm run buildTesting
npm testContributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
Author
Created by UnlockMCP - Your guide to mastering Model Context Protocol implementations.
License
MIT License - see LICENSE file for details
Disclaimer
This server provides access to Pixabay's API. Please comply with:
Pixabay's Terms of Service
Content License requirements
Attribution requirements when displaying search results
Rate limiting and caching requirements
Images and videos are subject to Pixabay's Content License. Always check individual image/video licenses before use.
Available Tools
4 toolsget_image_by_idB
Retrieve a specific image by its Pixabay ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pixabay image ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool retrieves an image, implying a read-only operation, but doesn't mention any behavioral traits like authentication requirements, rate limits, error handling, or what happens if the ID is invalid. This leaves significant gaps for an agent to understand how to use it safely and effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized for a simple retrieval tool and front-loaded with the essential information, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no annotations, no output schema), the description is minimally adequate. It covers the basic purpose but lacks details on behavior, error cases, or output format, which could hinder an agent's ability to use it correctly in all scenarios. Without annotations or output schema, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'id' clearly documented as 'Pixabay image ID'. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve') and resource ('a specific image by its Pixabay ID'), making the purpose immediately understandable. It distinguishes from sibling tools like 'search_images' by focusing on retrieval of a single known item rather than searching. However, it doesn't explicitly contrast with 'get_video_by_id' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific Pixabay ID for an image, suggesting it's for known-item retrieval rather than discovery. However, it doesn't explicitly state when NOT to use it (e.g., vs. 'search_images' for unknown IDs) or name alternatives, leaving some ambiguity about tool selection in edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_by_idB
Retrieve a specific video by its Pixabay ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Pixabay video ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool retrieves a video, implying a read-only operation, but doesn't mention any behavioral traits like authentication needs, rate limits, error handling, or what happens if the ID is invalid. This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., video metadata, URL, or full details), error conditions, or other contextual details needed for effective use. For a tool with no structured support, this description leaves too many gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'id' fully documented in the schema as 'Pixabay video ID'. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('retrieve') and resource ('specific video by its Pixabay ID'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_image_by_id' or 'search_videos', which would require mentioning it's for videos only (not images) and for direct ID lookup (not search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific video ID, but doesn't provide explicit guidance on when to use this vs. alternatives like 'search_videos' for broader queries or 'get_image_by_id' for images. It lacks clear when-not-to-use statements or named alternatives, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_imagesC
Search for royalty-free images on Pixabay
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search term (URL encoded). Max 100 characters. | |
| lang | No | Language code (e.g., 'en', 'de', 'fr') | en |
| image_type | No | Filter by image type | all |
| orientation | No | Image orientation | all |
| category | No | Filter by category (backgrounds, fashion, nature, etc.) | |
| min_width | No | Minimum image width | |
| min_height | No | Minimum image height | |
| colors | No | Color filter (grayscale, red, blue, etc.) | |
| editors_choice | No | Editor's Choice award images only | |
| safesearch | No | Safe for all ages | |
| order | No | Sort order | popular |
| page | No | Page number | |
| per_page | No | Results per page (3-200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'royalty-free' which hints at licensing, but fails to describe critical behaviors like pagination (implied by 'page' and 'per_page' parameters but not explained), rate limits, authentication requirements, or what the search results actually return. For a search tool with 13 parameters, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 13 parameters and no output schema, the description is inadequate. It doesn't explain what the search returns (e.g., image metadata, URLs, licensing details), how results are structured, or any behavioral constraints. With no annotations and no output schema, the description should provide more context about the tool's operation and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing detailed documentation for all 13 parameters including defaults, constraints, and enums. The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search for') and resource ('royalty-free images on Pixabay'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'search_videos', which searches for videos on the same platform, leaving some ambiguity about when to choose one over the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_videos' or 'get_image_by_id'. There's no mention of prerequisites, typical use cases, or any context that would help an agent decide between this and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_videosC
Search for royalty-free videos on Pixabay
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search term (URL encoded). Max 100 characters. | |
| lang | No | Language code (e.g., 'en', 'de', 'fr') | en |
| video_type | No | Filter by video type | all |
| category | No | Filter by category (backgrounds, fashion, nature, etc.) | |
| min_width | No | Minimum video width | |
| min_height | No | Minimum video height | |
| editors_choice | No | Editor's Choice award videos only | |
| safesearch | No | Safe for all ages | |
| order | No | Sort order | popular |
| page | No | Page number | |
| per_page | No | Results per page (3-200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'royalty-free videos on Pixabay,' which hints at licensing and source, but lacks critical details like rate limits, authentication needs, pagination behavior, error handling, or what the response format includes (e.g., video metadata). For a search tool with 11 parameters, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It's appropriately sized for a search tool, with every part earning its place by specifying the action, resource, and platform concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, no annotations, no output schema), the description is incomplete. It lacks information on behavioral traits (e.g., rate limits, response format), usage guidelines, and output expectations. For a search tool with many filtering options, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what's in the input schema, which has 100% coverage with detailed descriptions for all 11 parameters. The baseline is 3 because the schema adequately documents parameters, and the description doesn't compensate with additional context like default behaviors or usage examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for royalty-free videos on Pixabay.' It specifies the action (search), resource (videos), and platform (Pixabay), distinguishing it from sibling tools like search_images. However, it doesn't explicitly differentiate from get_video_by_id beyond the search vs. get distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like search_images or get_video_by_id, nor does it specify any prerequisites, exclusions, or contextual cues for selection. Usage is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no ambiguity: two tools retrieve specific media by ID (image vs. video), and two tools search for media (images vs. videos). The resource type (image/video) and action (get/search) are consistently differentiated, making misselection unlikely.
Tool names follow a perfect verb_noun pattern throughout: all use snake_case with consistent verbs ('get' for retrieval, 'search' for searching) and clear nouns ('image_by_id', 'video_by_id', 'images', 'videos'). There are no deviations or mixed conventions.
With 4 tools, this server is well-scoped for its Pixabay media retrieval purpose. Each tool earns its place by covering essential operations: retrieval and search for both images and videos, which is appropriate and not overly complex or thin.
The tool surface is complete for the domain of accessing Pixabay media. It provides full coverage for both images and videos with retrieval (get) and discovery (search) operations, leaving no obvious gaps or dead ends for an agent working with this API.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Semantic search over free-to-use stock photos from 9 libraries: by words, image, or similar.
Search the web, images, videos, news, and local businesses with robust filters, freshness controls…
Create images and videos from prompts, with options for image mixing, reference images, and start/…
Upload, organize, search, and transform images, videos, and files with AI-powered tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables searching and retrieving high-quality stock photos from Pexels with advanced filtering options including orientation, size, color, and localization support.32ISC
- AlicenseBqualityDmaintenanceEnables AI assistants to search for and retrieve images, illustrations, and videos directly from Pixabay. It provides specialized tools for discovering diverse media content like photos and animations using the Pixabay API.2MIT
- AlicenseBqualityCmaintenanceEnables users to search for high-quality photos on Unsplash with support for advanced filtering by orientation and content safety. It provides formatted photo metadata and images in either base64-encoded format or as JSON with URLs via stdio transport.131MIT
- AlicenseAqualityCmaintenanceSearch and find free images and videos from Pexels.com. (free api key required)32MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Unlock-MCP/pixabay-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server