Skip to main content
Glama
afshinator

mcp-server-pexels

mcp-server-pexels

MCP-сервер для поиска стоковых фотографий и видео на Pexels. Оптимизирован для LLM.

Pexels предоставляет бесплатные стоковые фотографии и видео.

Возможности

  • Поиск фото — Поиск фотографий с фильтрами (запрос, ориентация, размер, цвет, локаль)

  • Поиск видео — Поиск видео, автоматический выбор HD .mp4, наиболее близкого к 1920x1080

  • Получение деталей — Получение полных метаданных для фото/видео по ID

  • Интеллектуальное кэширование — TTL 10 минут для поиска, 60 минут для поиска по ID

  • Обработка ошибок — Корректная обработка с полезными сообщениями (согласно лучшим практикам MCP)

  • Атрибуция — Обязательное указание автора в каждом результате

Системные требования

  • Node.js v20+

  • API-ключ Pexels (бесплатно на pexels.com/api)

Быстрый старт (2 минуты)

1. Получите API-ключ

Зарегистрируйтесь на pexels.com/api — бесплатно, кредитная карта не требуется.

2. Соберите сервер

npm install && npm run build

3. Добавьте в Claude Desktop

Откройте ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) или %APPDATA%\Claude\claude_desktop_config.json (Windows) и добавьте:

{
  "mcpServers": {
    "pexels": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server-pexels/build/index.js"],
      "env": {
        "PEXELS_API_KEY": "YOUR_PEXELS_API_KEY"
      }
    }
  }
}

Примечание для Windows: Используйте полный путь к node.exe или добавьте Node в PATH. Прямые слэши в путях работают в Windows.

4. Перезапустите Claude Desktop

Сервер теперь доступен как pexels_search_photos, pexels_search_videos и pexels_get_details.

Конфигурация

Добавьте в ваш .mcp.json или claude_desktop_config.json:

{
  "mcpServers": {
    "pexels": {
      "command": "node",
      "args": ["/absolute/path/to/build/index.js"],
      "env": {
        "PEXELS_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Окружение

Установите PEXELS_API_KEY в вашем окружении. Для локальной разработки создайте файл .env:

PEXELS_API_KEY=your_pexels_api_key

Разработка

npm run dev      # watch mode
npm run inspector # MCP Inspector
npm test          # run tests

Инструменты

Инструмент

Описание

pexels_search_photos

Поиск фотографий по запросу

pexels_search_videos

Поиск видео

pexels_get_details

Получение деталей по ID и типу

Архитектура

  • src/index.ts — Точка входа, настройка MCP-сервера

  • src/tools/ — Реализация инструментов

  • src/shared/ — Кэш, API-клиент, ошибки, типы, выбор видео

  • src/utils/ — Схемы валидации Zod

Инженерные решения

Решение

Обоснование

Архитектура с приоритетом кэша

API Pexels разрешает 200 запросов в час. Кэширование (TTL 10 мин для поиска, 60 мин для ID) экономит квоту, снижает задержку до <5 мс при попадании в кэш и демонстрирует понимание стоимости API — критически важно для производственных ИИ-систем, где агенты часто запрашивают один и тот же контекст.

Быстрый отказ при вызове

MCP-серверы запускаются как дочерние процессы — запуск не лучшее время для сбоя. Сервер предупреждает при запуске, но корректно завершается при первом вызове инструмента с isError: true.

Схемы валидации Zod

MCP v2 SDK требует обертки z.object(). Перехватывает неверный ввод до того, как он попадет в API.

resource_link для медиа

Удаленные изображения и видео предоставляются как блоки контента resource_link в MCP с правильным mimeType. Markdown-ссылка на изображение в текстовом блоке остается как резервный вариант для клиентов, которые не отображают resource_link.

Чистый выбор видео

Логика выбора видео изолирована в video-selector.ts — тестируется независимо от обработчика инструментов.

Жестко заданная атрибуция

Требуется Условиями использования Pexels. Встроена в каждый текстовый ответ.

Совместимость

Протестировано с @modelcontextprotocol/sdk v1.29+ через StdioClientTransport. Набор интеграционных тестов запускает собранный сервер и проверяет каждый вызов инструмента на соответствие CallToolResultSchema и ContentBlockSchema SDK.

Структурированный JSON-блок добавляется как последний элемент контента в каждом успешном ответе, содержащий типизированные данные (id, kind, creatorName, dimensions, URLs). Клиенты и агентские фреймворки могут парсить этот блок напрямую, вместо использования регулярных выражений для текста markdown.

Будущие улучшения

  • Телеметрия выполнения инструментов — Добавить структурированное логирование попаданий/промахов кэша, времени выполнения запроса и частоты ошибок. Это помогает в отладке ИИ-агентов в продакшене и демонстрирует лучшие практики наблюдаемости.

  • Эндпоинт метрик — Предоставить счетчики (обслуженные запросы, коэффициент попаданий в кэш, оставшаяся квота API) для мониторинга.

  • Настраиваемый TTL — Позволить пользователям настраивать TTL кэша через переменные окружения.

Вклад сообщества

  • приветствуется! 🌟

Лицензия

Неофициальный проект сообщества. Не связан с Pexels.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)

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/afshinator/mcp-server-pexels'

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