Skip to main content
Glama

Strapi MCP

Ein MCP-Server für Strapi CMS, der Zugriff auf Inhaltstypen und Einträge über das Model Context Protocol bietet.

Überblick

Dieser MCP-Server lässt sich in jede Strapi CMS-Instanz integrieren und bietet:

  • Zugriff auf Strapi-Inhaltstypen als Ressourcen

  • Tools zum Erstellen und Aktualisieren von Inhaltstypen in Strapi

  • Tools zum Verwalten von Inhaltseinträgen (Erstellen, Lesen, Aktualisieren, Löschen)

  • Unterstützung für Strapi im Entwicklungsmodus

Related MCP server: Ledger MCP Server

Aufstellen

Umgebungsvariablen

Es wird empfohlen, zum Speichern Ihrer Anmeldeinformationen eine .env Datei im Projektstamm zu verwenden.

  • STRAPI_URL : Die URL Ihrer Strapi-Instanz (Standard: http://localhost:1337 )

  • STRAPI_ADMIN_EMAIL : Die E-Mail-Adresse eines Strapi-Administratorbenutzers (empfohlen für die volle Funktionalität, insbesondere Schemazugriff).

  • STRAPI_ADMIN_PASSWORD : Das Passwort für den Strapi-Administratorbenutzer (empfohlen).

  • STRAPI_API_TOKEN : (Optionaler Fallback) Ein API-Token. Kann verwendet werden, wenn keine Administratoranmeldeinformationen angegeben sind, hat aber möglicherweise eingeschränkte Berechtigungen.

  • STRAPI_DEV_MODE : Auf "true" setzen, um die Funktionen des Entwicklungsmodus zu aktivieren (Standard ist false “).

Beispiel

STRAPI_URL=http://localhost:1337
STRAPI_ADMIN_EMAIL=your_admin_email@example.com
STRAPI_ADMIN_PASSWORD=your_admin_password
# STRAPI_API_TOKEN=your_api_token_here # Optional

Wichtig: Fügen Sie Ihrer .gitignore Datei .env hinzu, um die Übermittlung von Anmeldeinformationen zu vermeiden.

Installation

npm install strapi-mcp

Läuft

Empfohlene Methode (mithilfe der Cursor-MCP-Konfiguration):

Cursor-Benutzer konfigurieren den Strapi-MCP-Server in ihrer Datei ~/.cursor/mcp.json :

"strapi-mcp": {
  "command": "node",
  "args": ["/path/to/strapi-mcp/build/index.js"], 
  "env": {
    "STRAPI_URL": "http://localhost:1337",
    "STRAPI_ADMIN_EMAIL": "your_admin_email@example.com",
    "STRAPI_ADMIN_PASSWORD": "your_admin_password"
  }
}

Cursor verwaltet den Server-Lebenszyklus automatisch, wenn Strapi-MCP-Tools verwendet werden.

Alternative Methode (mithilfe

Stellen Sie sicher, dass Sie das Projekt erstellt haben ( npm run build ). Führen Sie anschließend den Server mit Node.js v20.6.0+ und dem Flag --env-file aus:

node --env-file=.env build/index.js

Alternative (direkte Verwendung von Umgebungsvariablen):

export STRAPI_URL=http://localhost:1337
export STRAPI_ADMIN_EMAIL=your_admin_email@example.com
export STRAPI_ADMIN_PASSWORD=your_admin_password
# export STRAPI_API_TOKEN=your-api-token # Optional fallback
export STRAPI_DEV_MODE=true # optional
 
# Run the globally installed package (if installed via npm install -g)
strapi-mcp 
# Or run the local build directly
node build/index.js

Merkmale

  • Auflisten und Lesen von Inhaltstypen

  • Einträge abrufen, erstellen, aktualisieren und löschen

  • Mediendateien hochladen

  • Verbinden und Trennen von Beziehungen

  • Abrufen von Inhaltstypschemata

Änderungsprotokoll

0.1.6

  • Tool Ermöglicht das Erstellen neuer Inhaltstypen über die Content-Type Builder-API (erfordert Administratoranmeldeinformationen).

  • Priorisierte Administratoranmeldeinformationen: Aktualisierte Logik, um beim Abrufen von Inhaltstypen und Schemata die E-Mail-Adresse/das Kennwort des Administrators zu bevorzugen und so die Zuverlässigkeit zu verbessern.

  • Aktualisierte Dokumentation: Verdeutlichte Authentifizierungsmethoden und empfohlene Ausführungsverfahren.

0,1,5

  • Verbesserte Inhaltstyperkennung mit mehreren Fallback-Methoden

  • Robustere Fehlerbehandlung und Protokollierung hinzugefügt

  • Verbesserte Schemainferenz für Inhaltstypen

0.1.4

  • Verbesserte Fehlerbehandlung mit spezifischeren Fehlercodes

  • Fehlercodes ResourceNotFound und AccessDenied hinzugefügt

  • Bessere Fehlermeldungen für häufige API-Fehler

0.1.3

  • Erste öffentliche Veröffentlichung

Lizenz

MIT

strapi-mcp MCP-Server

Ein MCP-Server für Ihr Strapi CMS

Dies ist ein TypeScript-basierter MCP-Server, der in Strapi CMS integriert ist. Er bietet Zugriff auf Strapi-Inhaltstypen und -Einträge über das MCP-Protokoll und ermöglicht Ihnen Folgendes:

  • Greifen Sie auf Strapi-Inhaltstypen als Ressourcen zu

  • Inhaltseinträge erstellen, lesen, aktualisieren und löschen

  • Verwalten Sie Ihre Strapi-Inhalte über MCP-Tools

Merkmale

Ressourcen

  • Auflisten und Zugreifen auf Inhaltstypen über strapi://content-type/ -URIs

  • Jeder Inhaltstyp stellt seine Einträge als JSON bereit

  • Anwendungs-/JSON-MIME-Typ für strukturierten Inhaltszugriff

Werkzeuge

  • list_content_types – Listet alle verfügbaren Inhaltstypen in Strapi auf

  • get_entries - Abrufen von Einträgen für einen bestimmten Inhaltstyp mit optionaler Filterung, Paginierung, Sortierung und Auffüllung von Beziehungen

  • get_entry - Einen bestimmten Eintrag per ID abrufen

  • create_entry - Einen neuen Eintrag für einen Inhaltstyp erstellen

  • update_entry - Einen vorhandenen Eintrag aktualisieren

  • delete_entry - Einen Eintrag löschen

  • upload_media - Laden Sie eine Mediendatei auf Strapi hoch

  • get_content_type_schema – Ruft das Schema (Felder, Typen, Beziehungen) für einen bestimmten Inhaltstyp ab.

  • connect_relation – Verbindet verwandte Einträge mit dem Relationsfeld eines Eintrags.

  • disconnect_relation – Trennen Sie verwandte Einträge vom Beziehungsfeld eines Eintrags.

  • create_content_type – Erstellen Sie einen neuen Inhaltstyp mithilfe der Content-Type Builder-API (erfordert Administratorrechte).

  • publish_entry – Veröffentlichen Sie einen bestimmten Eintrag.

  • unpublish_entry – Veröffentlichung eines bestimmten Eintrags rückgängig machen.

  • list_components – Listet alle verfügbaren Komponenten in Strapi auf.

  • get_component_schema – Ruft das Schema für eine bestimmte Komponente ab.

  • create_component – Erstellen Sie eine neue Komponente.

  • update_component – Aktualisieren Sie eine vorhandene Komponente.

Erweiterte Funktionen

Filtern, Paginieren und Sortieren

Das Tool get_entries unterstützt erweiterte Abfrageoptionen:

{
  "contentType": "api::article.article",
  "filters": {
    "title": {
      "$contains": "hello"
    }
  },
  "pagination": {
    "page": 1,
    "pageSize": 10
  },
  "sort": ["title:asc", "createdAt:desc"],
  "populate": ["author", "categories"]
}

Ressourcen-URIs

Auf Ressourcen kann mit verschiedenen URI-Formaten zugegriffen werden:

  • strapi://content-type/api::article.article – Alle Artikel abrufen

  • strapi://content-type/api::article.article/1 – Artikel mit der ID 1 abrufen

  • strapi://content-type/api::article.article?filters={"title":{"$contains":"hello"}} – Gefilterte Artikel abrufen

Veröffentlichen und Aufheben der Veröffentlichung von Inhalten

Die Tools publish_entry und unpublish_entry ermöglichen die Kontrolle über den Lebenszyklus von Inhalten:

{
  "contentType": "api::article.article",
  "id": "1"
}

Diese Tools verwenden die Admin-API-Pfade für Veröffentlichungs-/Aufhebungsaktionen und bieten die Möglichkeit, das Feld publishedAt direkt zu aktualisieren, wenn keine Administratorberechtigungen verfügbar sind.

Komponentenverwaltung

Strapi-Komponenten können mit den folgenden Tools verwaltet werden:

  • list_components : Alle verfügbaren Komponenten abrufen

  • get_component_schema : Zeigen Sie die Struktur einer bestimmten Komponente an

  • create_component : Erstellen Sie eine neue Komponente mit angegebenen Feldern

  • update_component : Eine vorhandene Komponente ändern

Beispiel für die Erstellung einer Komponente:

{
  "componentData": {
    "displayName": "Security Settings",
    "category": "security",
    "icon": "shield",
    "attributes": {
      "enableTwoFactor": {
        "type": "boolean", 
        "default": false
      },
      "passwordExpiration": {
        "type": "integer",
        "min": 0
      }
    }
  }
}

Entwicklung

Installieren Sie Abhängigkeiten:

npm install

Erstellen Sie den Server:

npm run build

Für die Entwicklung mit automatischem Rebuild:

npm run watch

Installation

Ausführliche Schritt-für-Schritt-Anleitungen zum Bereitstellen und Testen dieses MCP-Servers finden Sie in der Datei DEPLOYMENT.md .

Schnelle Einrichtung:

  1. Erstellen Sie den Server: npm run build

  2. Konfigurieren Sie Ihre Strapi-Instanz und erhalten Sie ein API-Token

  3. Fügen Sie die Serverkonfiguration zu Claude Desktop hinzu:

Unter MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Unter Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "strapi-mcp": {
      "command": "/path/to/strapi-mcp/build/index.js",
      "env": {
        "STRAPI_URL": "http://localhost:1337",
        "STRAPI_API_TOKEN": "your-api-token-here",
        "STRAPI_DEV_MODE": "false"
      }
    }
  }
}

Umgebungsvariablen

  • STRAPI_URL (optional): Die URL Ihrer Strapi-Instanz (standardmäßig http://localhost:1337 )

  • STRAPI_ADMIN_EMAIL & STRAPI_ADMIN_PASSWORD (empfohlen): Anmeldeinformationen für einen Strapi-Administrator. Erforderlich für die volle Funktionalität, z. B. das Abrufen von Inhaltstypschemata.

  • STRAPI_API_TOKEN (Optionaler Fallback): Ihr Strapi-API-Token. Kann verwendet werden, wenn keine Administratoranmeldeinformationen angegeben sind. Die Funktionalität kann jedoch je nach Tokenberechtigung eingeschränkt sein.

  • STRAPI_DEV_MODE (optional): Auf „true“ setzen, um die Funktionen des Entwicklungsmodus zu aktivieren (Standard ist „false“)

Authentifizierungspriorität

Der Server priorisiert Authentifizierungsmethoden in dieser Reihenfolge:

  1. E-Mail und Passwort des Administrators ( STRAPI_ADMIN_EMAIL , STRAPI_ADMIN_PASSWORD )

  2. API-Token ( STRAPI_API_TOKEN )

Für optimale Ergebnisse wird dringend empfohlen, Administratoranmeldeinformationen zu verwenden.

Strapi-Anmeldeinformationen erhalten

  • Administratoranmeldeinformationen: Verwenden Sie die E-Mail-Adresse und das Kennwort eines vorhandenen Superadministrators oder erstellen Sie einen dedizierten Administratorbenutzer in Ihrem Strapi-Administrationsbereich (Einstellungen > Administrationsbereich > Benutzer).

  • API-Token: (Optionaler Fallback)

  1. Melden Sie sich bei Ihrem Strapi-Administrationsbereich an

  2. Gehen Sie zu Einstellungen > API-Token

  3. Klicken Sie auf „Neues API-Token erstellen“.

  4. Legen Sie einen Namen, eine Beschreibung und einen Token-Typ fest (vorzugsweise „Vollzugriff“)

  5. Kopieren Sie das generierte Token und verwenden Sie es in Ihrer MCP-Serverkonfiguration

Debuggen

Da MCP-Server über stdio kommunizieren, kann das Debuggen eine Herausforderung darstellen. Wir empfehlen die Verwendung des MCP Inspector , der als Paketskript verfügbar ist:

npm run inspector

Der Inspector stellt eine URL für den Zugriff auf Debugging-Tools in Ihrem Browser bereit.

Anwendungsbeispiele

Sobald der MCP-Server konfiguriert und betriebsbereit ist, können Sie ihn zusammen mit Claude zur Interaktion mit Ihrem Strapi CMS verwenden. Hier einige Beispiele:

Auflisten von Inhaltstypen

use_mcp_tool(
  server_name: "strapi-mcp",
  tool_name: "list_content_types",
  arguments: {}
)

Einträge erhalten

use_mcp_tool(
  server_name: "strapi-mcp",
  tool_name: "get_entries",
  arguments: {
    "contentType": "api::article.article",
    "filters": {
      "title": {
        "$contains": "hello"
      }
    },
    "pagination": {
      "page": 1,
      "pageSize": 10
    },
    "sort": ["title:asc"]
  }
)

Einen Eintrag erstellen

use_mcp_tool(
  server_name: "strapi-mcp",
  tool_name: "create_entry",
  arguments: {
    "contentType": "api::article.article",
    "data": {
      "title": "My New Article",
      "content": "This is the content of my article.",
      "publishedAt": "2023-01-01T00:00:00.000Z"
    }
  }
)

Hochladen von Medien

use_mcp_tool(
  server_name: "strapi-mcp",
  tool_name: "upload_media",
  arguments: {
    "fileData": "base64-encoded-data-here",
    "fileName": "image.jpg",
    "fileType": "image/jpeg"
  }
)

Beziehungen verbinden

use_mcp_tool(
  server_name: "strapi-mcp",
  tool_name: "connect_relation",
  arguments: {
    "contentType": "api::article.article",
    "id": "1",
    "relationField": "authors",
    "relatedIds": [2, 3]
  }
)

Trennung von Beziehungen

use_mcp_tool(
  server_name: "strapi-mcp",
  tool_name: "disconnect_relation",
  arguments: {
    "contentType": "api::article.article",
    "id": "1",
    "relationField": "authors",
    "relatedIds": [3]
  }
 )

Erstellen eines Inhaltstyps

use_mcp_tool(
  server_name: "strapi-mcp-local",
  tool_name: "create_content_type",
  arguments: {
    "displayName": "My New Product",
    "singularName": "product",
    "pluralName": "products",
    "kind": "collectionType",
    "description": "Represents products in the store",
    "draftAndPublish": true,
    "attributes": {
      "name": { "type": "string", "required": true },
      "description": { "type": "text" },
      "price": { "type": "decimal", "required": true },
      "stock": { "type": "integer" }
    }
  }
)

Aktualisieren eines Inhaltstyps

use_mcp_tool(
  server_name: "strapi-mcp-local",
  tool_name: "update_content_type",
  arguments: {
    "contentType": "api::speaker.speaker",
    "attributes": {
      "isHighlightSpeaker": {
        "type": "boolean",
        "default": false
      },
      "newTextField": {
        "type": "string"
      }
    }
  }
)

Zugriff auf Ressourcen

-
security - not tested
A
license - permissive license
-
quality - not tested

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/l33tdawg/strapi-mcp'

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