Skip to main content
Glama
afshinator

mcp-server-pexels

mcp-server-pexels

Ein MCP-Server für die Suche nach Stockfotos und -videos von Pexels. Optimiert für LLMs.

Pexels bietet kostenlose Stockfotos und -videos.

Funktionen

  • Fotosuche — Suche nach Fotos mit Filtern (Suchbegriff, Ausrichtung, Größe, Farbe, Gebietsschema)

  • Videosuche — Suche nach Videos, wählt automatisch das HD-.mp4-Video aus, das 1920x1080 am nächsten kommt

  • Details abrufen — Vollständige Metadaten für ein Foto/Video per ID abrufen

  • Intelligentes Caching — 10 Min. TTL für Suchen, 60 Min. für ID-Abfragen

  • Fehlerbehandlung — Sanfte Fehlerbehandlung mit hilfreichen Meldungen (gemäß MCP-Best-Practices)

  • Namensnennung — Obligatorische Fotografen-Credits in jedem Ergebnis

Voraussetzungen

Schnellstart (2 Minuten)

1. API-Schlüssel erhalten

Registrieren Sie sich unter pexels.com/api — kostenlos, keine Kreditkarte erforderlich.

2. Server erstellen

npm install && npm run build

3. Zu Claude Desktop hinzufügen

Öffnen Sie ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) oder %APPDATA%\Claude\claude_desktop_config.json (Windows) und fügen Sie Folgendes hinzu:

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

Windows-Hinweis: Verwenden Sie den vollständigen Pfad zu node.exe oder fügen Sie Node zum PATH hinzu. Schrägstriche in Pfaden funktionieren unter Windows.

4. Claude Desktop neu starten

Der Server ist nun als pexels_search_photos, pexels_search_videos und pexels_get_details verfügbar.

Konfiguration

Fügen Sie dies zu Ihrer .mcp.json oder claude_desktop_config.json hinzu:

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

Umgebung

Setzen Sie PEXELS_API_KEY in Ihrer Umgebung. Erstellen Sie für die lokale Entwicklung eine .env-Datei:

PEXELS_API_KEY=your_pexels_api_key

Entwicklung

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

Tools

Tool

Beschreibung

pexels_search_photos

Nach Fotos per Suchbegriff suchen

pexels_search_videos

Nach Videos suchen

pexels_get_details

Details nach ID und Typ abrufen

Architektur

  • src/index.ts — Einstiegspunkt, MCP-Server-Setup

  • src/tools/ — Tool-Implementierungen

  • src/shared/ — Cache, API-Client, Fehler, Typen, Video-Selektor

  • src/utils/ — Zod-Validierungsschemata

Technische Entscheidungen

Entscheidung

Begründung

Cache-First-Architektur

Die Pexels-API erlaubt 200 Anfragen/Stunde. Caching (10 Min. TTL für Suchen, 60 Min. für ID-Abfragen) schont das Kontingent, reduziert die Latenz bei einem Cache-Treffer auf <5 ms und demonstriert das Bewusstsein für API-Kosten — entscheidend für produktive KI-Systeme, bei denen Agenten häufig denselben Kontext erneut anfordern.

Fail-Fast beim Aufruf

MCP-Server werden als Kindprozesse gestartet — der Start ist nicht der richtige Zeitpunkt für Fehler. Der Server warnt beim Start, schlägt aber beim ersten Tool-Aufruf mit einer strukturierten isError: true-Meldung sanft fehl.

Zod-Validierungsschemata

Das MCP v2 SDK erfordert z.object()-Wrapper. Fängt ungültige Eingaben ab, bevor sie die API erreichen.

resource_link für Medien

Remote-Bilder und -Videos werden als MCP resource_link-Inhaltsblöcke mit korrektem mimeType bereitgestellt. Der Markdown-Bildlink im Textblock bleibt als Fallback für Clients erhalten, die resource_link nicht rendern.

Reine Videoauswahl

Die Logik zur Videoauswahl ist in video-selector.ts isoliert — unabhängig vom Tool-Handler testbar.

Hardcodierte Namensnennung

Erforderlich durch die Nutzungsbedingungen von Pexels. In jede Textantwort eingebettet.

Kompatibilität

Getestet mit @modelcontextprotocol/sdk v1.29+ via StdioClientTransport. Die Integrationstest-Suite startet den erstellten Server und validiert jeden Tool-Aufruf gegen das CallToolResultSchema und ContentBlockSchema des SDKs.

Ein strukturierter JSON-Block wird als letztes Inhaltselement an jede erfolgreiche Antwort angehängt und enthält typisierte Daten (ID, Art, Erstellername, Abmessungen, URLs). Nachgelagerte Clients und Agenten-Frameworks können diesen Block direkt parsen, anstatt den Markdown-Text per Regex zu analysieren.

Zukünftige Verbesserungen

  • Tool-Ausführungs-Telemetrie — Hinzufügen von strukturiertem Logging für Cache-Treffer/-Fehlschläge, Abfrageausführungszeit und Fehlerraten. Dies unterstützt die Fehlerbehebung bei KI-Agenten in der Produktion und demonstriert Best Practices für die Beobachtbarkeit.

  • Metriken-Endpunkt — Bereitstellung von Zählern (bediente Anfragen, Cache-Trefferquote, verbleibendes API-Kontingent) für das Monitoring.

  • Benutzerdefinierte TTL-Konfiguration — Ermöglicht Benutzern die Anpassung der Cache-TTL über Umgebungsvariablen.

Community-Beiträge

  • sind willkommen! 🌟

Lizenz

Inoffizielles Community-Projekt. Nicht mit Pexels verbunden.

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