Skip to main content
Glama
fkilter

pexels-mcp-pro

by fkilter

pexels-mcp-pro

License: MIT

A Model Context Protocol server for the Pexels API, built for fast, low-token stock media selection in Claude and other MCP clients.

Most Pexels MCP servers return raw JSON and leave the model to guess from alt text whether a photo fits. This one is designed around how an agent actually picks stock media: look at the candidates, judge, download the winner.

What it does differently

Inline visual previews. Search results include small thumbnails as images in the tool response, so the model sees every candidate and judges fit immediately. A thumbnail costs about 75 tokens of vision input; a wrong download costs far more.

Video storyboards. video_storyboard returns a clip's poster plus frames sampled evenly across its runtime. An agent can check the motion and framing of a 30-second video for a few hundred tokens instead of downloading 50 MB to find out it pans the wrong way.

Compact results. One line per item: #id 4000x6000 portrait | Photographer | "alt text" | #avgcolor. Search results contain no URLs. The #id drives previews, downloads, and attribution, and get_media returns full URLs on the rare occasion you need them.

Careful with quota. API responses are cached, and every media object seen in a search is remembered for the session, so previews, storyboards, downloads, and attribution for seen items cost no further API calls. Thumbnail and file fetches never count against the Pexels rate limit. api_status reports remaining quota and reset time.

Batch operations. batch_search runs up to 6 queries in parallel in one call and dedupes results across them, which suits multi-scene videos and article layouts. download_media streams up to 20 files to disk with selectable quality and returns paths with ready-to-paste attribution.

Related MCP server: imagebank-mcp

Tools

Tool

What it does

search_photos

Search photos: compact lines plus inline thumbnails, with orientation/size/color/locale filters

search_videos

Search videos: compact lines plus inline posters, with duration filters

batch_search

Up to 6 queries in parallel, one call, deduped

preview_photos

Re-inspect specific #ids at a larger size before deciding

video_storyboard

Poster plus sampled in-clip frames as inline images

curated_photos

Pexels' hand-curated feed

popular_videos

Popular videos with minimum-resolution and duration constraints

featured_collections

Browse featured collections

collection_media

Media inside a collection

get_media

Full metadata and all URLs for one item

download_media

Stream up to 20 photos/videos to disk, returns paths and attribution

get_attribution

Attribution lines in plain text, Markdown, or HTML

api_status

Remaining quota and session cache stats

A typical session

search_photos "cozy cabin interior warm light"
  → 6 result lines + 6 thumbnails; the model looks and picks #2932401

download_media [{"type": "photo", "id": 2932401}]
  → ✓ pexels-photo-2932401.jpg (4.1 MB) — Photo by Jane Doe — https://www.pexels.com/photo/...

Setup

Requires Node 18+ and a free Pexels API key.

git clone https://github.com/fkilter/pexels-mcp-pro.git
cd pexels-mcp-pro
npm install && npm run build

Claude Code

claude mcp add pexels --env PEXELS_API_KEY=your_key -- node /path/to/pexels-mcp-pro/dist/index.js

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "pexels": {
      "command": "node",
      "args": ["/path/to/pexels-mcp-pro/dist/index.js"],
      "env": {
        "PEXELS_API_KEY": "your_key"
      }
    }
  }
}

You can also put the key in a .env file next to the package (see .env.example); .env is gitignored. The optional PEXELS_DOWNLOAD_DIR variable sets the default target directory for download_media.

Debugging

npm run inspect

This opens the MCP Inspector against the built server.

License

MIT for this server. Media from Pexels is covered by the Pexels license: free to use, attribution appreciated but not required. get_attribution generates the credit line.

Available Tools

13 tools
api_statusAPI statusA

Pexels quota remaining, reset time, and this session's cache stats. Thumbnails and downloads never consume quota.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that 'thumbnails and downloads never consume quota', a behavioral trait, but does not mention read-only status, auth needs, or side effects.

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

Conciseness5/5

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

Two sentences, front-loaded with the most important information, no wasted words.

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 no parameters and no output schema, the description adequately explains the return values (quota, reset time, cache stats) and provides a helpful note about non-quota consumption. Slightly lacking in behavioral detail but sufficient for a simple status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description adds meaning by explaining what the tool returns, compensating for the lack of parameters.

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 clearly states the tool returns 'Pexels quota remaining, reset time, and this session's cache stats', specifying the exact resource and purpose. It distinguishes itself from sibling tools focused on media search and retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While the purpose is obvious, there is no mention of use cases or when to avoid it.

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

collection_mediaCollection mediaB

List media inside a collection (photos and/or videos), compact format + inline thumbnails.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCollection id from featured_collections
pageNo
typeNoFilter to one media type
per_pageNo
previewsNo
preview_heightNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description provides some behavioral context: it lists media in compact format with inline thumbnails. However, it does not disclose whether the operation is read-only, how pagination works, or any other side effects. It adds value beyond a bare 'list' but leaves gaps.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. It efficiently communicates the core function and output format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters, no output schema, and no annotations, the description is insufficient. It does not explain return values, pagination, filtering (e.g., the 'type' parameter), or error conditions. A user or agent would need to infer or experiment to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, and the description adds no information about parameters. It does not explain the purpose of fields like 'page', 'per_page', 'previews', or 'preview_height'. The tool has 6 parameters, and the description offers no help in understanding them beyond what the sparse schema provides.

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 clearly states 'List media inside a collection (photos and/or videos), compact format + inline thumbnails', specifying the action, resource, and output format, distinguishing it from siblings like search_photos or featured_collections.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a collection ID from featured_collections) or situations where other tools would be more appropriate. The input schema mentions the ID source, but the description itself does not.

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

curated_photosCurated photosB

Pexels' hand-curated photo feed (fresh, high quality). Same compact format + inline thumbnails as search_photos.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo
previewsNo
preview_heightNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only mentions 'compact format + inline thumbnails' but omits details on pagination, rate limits, data freshness, or whether it supports any filtering beyond the provided parameters.

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

Conciseness5/5

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

The description is two sentences long, front-loads the core purpose, and contains no filler. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters, no output schema, and no annotations, the description is too sparse. It lacks details on return format, pagination behavior, and how this curated feed differs from other similar tools, making it inadequate for informed use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should explain parameters. It only hints at preview behavior via 'inline thumbnails' but does not clarify 'page', 'per_page', or 'preview_height' beyond what the schema already provides.

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 clearly states it provides a curated feed of photos from Pexels, using 'hand-curated' and 'fresh, high quality' to specify the resource. It also distinguishes itself from the sibling 'search_photos' by referencing its format and content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for browsing curated content instead of searching, with the comparison to 'search_photos'. However, it does not explicitly state when to use this tool versus other siblings like 'popular_videos' or 'featured_collections', nor does it provide exclusions.

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

download_mediaDownload mediaA

Download one or more photos/videos by #id to a local directory (default ./pexels-media, override with directory or the PEXELS_DOWNLOAD_DIR env var). Streams to disk, returns file paths, sizes, and ready-to-use attribution lines. Downloads don't consume API quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes
directoryNoTarget directory (absolute path recommended)
photo_sizeNooriginal=full resolution, large2x≈1880px wide, large≈940px, medium=350px tall, small=130px tall. Use original/large2x for real content work.original
video_qualityNohd

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses streaming to disk, return format (file paths, sizes, attribution lines), and non-quota usage. It does not mention overwrite behavior or error handling, but the key behavioral traits are covered.

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

Conciseness5/5

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

Three sentences: one for purpose and defaults, one for behavior and return, one for quota note. No fluff, front-loaded with the key action.

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 4 parameters, no output schema, and moderate complexity, the description covers purpose, behavior, and param details reasonably well. It lacks explicit output structure but mentions return fields. Could mention maxItems limit from schema.

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 50%; the description adds context for photo_size (explaining resolution mapping) and directory (mentioning env var override). Items parameter is described as 'photos/videos by #id', which aligns with schema. It does not fully compensate for undocumented parameters but adds some value.

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?

Description clearly states the verb 'download' and resource 'photos/videos by #id', distinguishing it from sibling tools that search or retrieve metadata. It specifies the action, target (local directory), and default location.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that downloads don't consume API quota, providing a usage incentive. However, it lacks explicit guidance on when to use this tool versus alternatives like get_media (which likely returns URLs) or search tools. The context is implied but not fully explicit.

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

get_attributionGet attributionA

Generate attribution lines for used media (Pexels license: free to use, attribution appreciated but not required). Styles: plain, markdown, html.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes
styleNoplain

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must carry full behavioral burden. It only covers license and style options, but omits key traits: whether it is read-only, what happens on invalid IDs, rate limits, or output format details. The safe nature is implied but not confirmed.

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

Conciseness5/5

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

Two concise sentences with no fluff. The core action and options are front-loaded, and every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, yet the description lacks output format details (e.g., structure of attribution lines) and error handling. It is minimally adequate but omits context like whether items must be from Pexels or how invalid items are treated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It mentions 'used media' and styles but does not clarify the items parameter structure (id/type pairs) or constraints (max/min items). The schema's enum for style is repeated but not explained.

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 clearly states the verb 'Generate' and the resource 'attribution lines for used media'. It also lists the styles (plain, markdown, html) and mentions the Pexels license, distinguishing it from sibling tools like search_photos or download_media.

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?

The description implies usage after obtaining media IDs (items), and mentions three output styles. However, it does not explicitly state when to use this tool versus alternatives (e.g., get_media) or when not to use it.

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

get_mediaGet full media detailsA

Full metadata for one photo or video by #id: all source/download URLs, video files with fps and resolutions, Pexels page URL. Use only when you need URLs or exact file variants — search lines + previews are enough for choosing.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
typeYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It describes the return content accurately but does not explicitly state side-effects or idempotency. However, as a 'get' operation, the read-only nature is implied, and the description offers sufficient transparency for safe usage.

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

Conciseness5/5

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

Two concise sentences, front-loaded with core purpose and outputs, followed by a usage guideline. Every sentence adds value with no redundancy or fluff.

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 the simple tool (2 required params, no output schema), the description covers what it does, when to use, and what it returns. It lacks information on error conditions or response structure, but the return description is sufficiently detailed for most use cases.

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 0% (no parameter descriptions in schema), so the description must compensate. It mentions 'by #id' and 'photo or video' which loosely maps to the 'id' and 'type' params, but does not formally describe each parameter's purpose, format, or constraints beyond the schema definition.

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 clearly states the tool retrieves 'full metadata for one photo or video by #id' and lists specific outputs (source/download URLs, video files with fps/resolutions, Pexels page URL). It distinguishes itself from sibling tools by noting that search/preview are sufficient for selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('when you need URLs or exact file variants') and when not to ('search lines + previews are enough for choosing'), providing clear decision criteria relative to sibling tools.

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

preview_photosPreview photos by idA

Fetch inline thumbnails for specific photo #ids (from earlier searches — costs no API quota for already-seen ids). Use a larger height for a closer look at finalists.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYes
heightNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations, description adds key behavior: 'costs no API quota for already-seen ids'. However, it does not disclose return format, error handling, or authorization requirements. Some behavioral insight but incomplete.

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

Conciseness5/5

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

Two sentences, front-loaded with action and context, then parameter guidance. No redundant words. Efficient and clear.

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 low complexity (2 params, no output schema, no annotations), description covers purpose, usage context, and parameter behavior. Lacks explicit return format and alternative tool comparisons, but sufficient for basic use.

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 0%, so description must add meaning. It implies ids are from earlier searches and height affects magnification. Provides functional context but no details on min/max, default, or types beyond 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?

Description states 'Fetch inline thumbnails for specific photo #ids', specifying verb (fetch) and resource (inline thumbnails for photos by ids). It distinguishes from siblings like get_media and download_media by focusing on thumbnails and the context of earlier searches.

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?

Implies usage after search_photos with 'from earlier searches' and 'finalists'. Guides parameter use ('Use a larger height for a closer look at finalists'). Does not explicitly exclude alternative tools, but context is clear.

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

search_photosSearch photosA

Search Pexels photos. Returns one compact line per photo (#id, dimensions, photographer, alt, avg color) plus inline thumbnails by default so you can visually validate matches immediately without downloading anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNoMinimum photo size: large=24MP, medium=12MP, small=4MP
colorNoDesired color: red, orange, yellow, green, turquoise, blue, violet, pink, brown, black, gray, white, or a hex code like #ffffff
queryYesSearch query, e.g. 'minimal workspace desk top view'
localeNoLocale like 'en-US', 'de-DE', 'es-ES'
per_pageNo
previewsNoAttach inline thumbnails (cheap, ~75 tokens each). Set false for text-only results.
orientationNo
preview_heightNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses default inline thumbnails and token cost (~75 tokens each), enabling the agent to understand behavioral expectations. However, it omits details on pagination, sorting, and potential rate limits, preventing a perfect score.

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

Conciseness5/5

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

Two concise, front-loaded sentences with no wasted words. The first sentence immediately states the action and resource, and the second provides key behavioral details. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, no output schema, and no annotations, the description is incomplete. It explains output format and default previews but lacks details on pagination, error handling, or result ordering. More context would be needed for an agent to use it reliably without external knowledge.

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 56%, so the schema partially documents parameters. The description adds context for the 'previews' parameter (default behavior and token cost) and hints at output structure, but does not significantly improve understanding of other parameters like page, locale, or orientation beyond what the schema provides.

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 clearly states 'Search Pexels photos' and specifies the output format (compact line with id, dimensions, photographer, etc.), making the tool's purpose unambiguous. It naturally distinguishes from siblings like search_videos by mentioning 'photos' and the unique inline thumbnail feature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for searching photos with visual validation, but provides no explicit guidance on when to use this tool versus alternatives like batch_search, preview_photos, or curated_photos. No when-not-to-use or exclusion criteria are given, leaving the agent to infer proper usage.

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

search_videosSearch videosA

Search Pexels videos. Returns one compact line per video (#id, dimensions, duration, qualities, frame count) plus inline poster thumbnails by default. Use video_storyboard on a candidate to see frames from inside the clip before downloading.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeNoMinimum size: large=4K, medium=FullHD, small=HD
queryYes
localeNo
per_pageNo
previewsNo
orientationNo
max_durationNoFilter results client-side: maximum seconds
min_durationNoFilter results client-side: minimum seconds
preview_heightNo

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided. Description discloses default previews and return format, but doesn't mention side effects or permissions (likely read-only). Adequate for a search tool but lacks depth.

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

Conciseness5/5

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

Two concise sentences: first states core function and output, second gives actionable next-step tip. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema, description covers basic output and hints but doesn't explain search behavior or filter usage. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 30% schema coverage. Description mentions previews default true but doesn't elaborate on other parameters like query, locale, orientation. Limited value beyond 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?

Clear verb 'Search' and resource 'Pexels videos'. Description specifies return format (compact line with id, dimensions, etc.) and distinguishes from sibling 'video_storyboard'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Suggests using video_storyboard for deeper inspection, but no explicit guidance on when to use this vs alternatives like popular_videos or curated_photos. The search context is implied.

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

video_storyboardVideo storyboardA

Return the poster plus evenly-sampled preview frames from inside a video as inline images — validate motion/content/framing of a clip without downloading it. Costs no API quota for videos already seen in a search.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesVideo #id from a search
framesNoHow many frames to sample across the clip
heightNo

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool returns inline images, samples frames evenly, and costs no quota for already-seen videos. This provides good transparency for a read-only preview tool.

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

Conciseness5/5

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

The description is very concise at two sentences. The first sentence front-loads the core purpose and output, while the second adds a key behavioral note (cost). No unnecessary words.

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 no output schema, the description covers the key aspects: what it returns, how it samples, and a cost benefit. It is adequate for an agent to decide whether to use this tool, though it could specifiy image format or error handling.

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?

The input schema covers 67% of parameters with descriptions. The description adds context about 'evenly-sampled preview frames' tying to the frames parameter, but does not explain the height parameter or provide additional details beyond 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 clearly states the verb 'Return' and the resource 'poster plus evenly-sampled preview frames from inside a video'. It distinguishes itself from sibling tools like search_videos or download_media by emphasizing the validation of motion/content/framing without downloading.

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?

The description implies when to use the tool: to validate a clip without downloading, and notes cost benefits. However, it does not explicitly state when not to use it or mention alternative tools for comparison.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 13 tool updatesv1.0.0
    • First observedapi_status
    • First observedbatch_search
    • First observedcollection_media
    • First observedcurated_photos
    • First observeddownload_media
    • First observedfeatured_collections
    • First observedget_attribution
    • First observedget_media
    • First observedpopular_videos
    • First observedpreview_photos
    • First observedsearch_photos
    • First observedsearch_videos
    • First observedvideo_storyboard

TDQS

A4/5.0
Disambiguation5/5

Each tool has a distinct, non-overlapping purpose: search, batch search, preview, storyboard, curated/popular feeds, collections, metadata retrieval, download, attribution, and status. No ambiguity between tools.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., search_photos, get_media, download_media), making the API predictable and easy to navigate.

Tool Count5/5

13 tools is well-scoped for a media integration server, covering the full discovery-to-download workflow without unnecessary bloat or missing core functionality.

Completeness5/5

The tool set covers the complete media lifecycle: search (including batch), curation, preview, metadata retrieval, download, and attribution. No obvious gaps for typical usage.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that enables AI agents to search, retrieve, and curate free stock photos and videos from Pexels, with tools, resources, and prompts for easy integration.
    8
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    An MCP server that enables AI assistants to search for royalty-free images from Pexels and Unsplash using natural language, returning structured results with metadata.
    5
    59
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server that exposes Pexels API tools for searching and retrieving free stock photos, videos, and curated collections, enabling AI agents to incorporate royalty-free media directly from chat.
    2
    9
    145
    2
    MIT

Latest Blog Posts

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/fkilter/pexels-mcp-pro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server