Skip to main content
Glama

Страпи MCP

MCP-сервер для Strapi CMS, обеспечивающий доступ к типам контента и записям через протокол контекста модели.

Обзор

Этот сервер MCP интегрируется с любым экземпляром Strapi CMS и обеспечивает:

  • Доступ к типам контента Strapi как к ресурсам

  • Инструменты для создания и обновления типов контента в Strapi

  • Инструменты для управления записями контента (создание, чтение, обновление, удаление)

  • Поддержка Strapi в режиме разработки

Related MCP server: Ledger MCP Server

Настраивать

Переменные среды

Для хранения учетных данных рекомендуется использовать файл .env в корне проекта.

  • STRAPI_URL : URL-адрес вашего экземпляра Strapi (по умолчанию: http://localhost:1337 )

  • STRAPI_ADMIN_EMAIL : адрес электронной почты администратора Strapi (рекомендуется для полной функциональности, особенно доступа к схеме).

  • STRAPI_ADMIN_PASSWORD : пароль для администратора Strapi (рекомендуется).

  • STRAPI_API_TOKEN : (Необязательный резерв) API-токен. Может использоваться, если не предоставлены учетные данные администратора, но может иметь ограниченные разрешения.

  • STRAPI_DEV_MODE : установите значение "true" , чтобы включить функции режима разработки (по умолчанию — false ).

Пример файла

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

Важно: добавьте .env в файл .gitignore , чтобы избежать передачи учетных данных.

Установка

npm install strapi-mcp

Бег

Рекомендуемый метод (с использованием конфигурации Cursor MCP):

Для пользователей Cursor настройте сервер strapi-mcp в файле ~/.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"
  }
}

Курсор будет автоматически управлять жизненным циклом сервера при использовании инструментов strapi-mcp.

Альтернативный метод (с использованием файла

Убедитесь, что вы собрали проект ( npm run build ). Затем запустите сервер с помощью Node.js v20.6.0+ с флагом --env-file :

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

Альтернатива (использование переменных окружения напрямую):

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

Функции

  • Перечислите и прочитайте типы контента

  • Получать, создавать, обновлять и удалять записи

  • Загрузить медиа-файлы

  • Подключать и отключать отношения

  • Получить схемы типов контента

Журнал изменений

0.1.6

  • Добавлен инструмент позволяет создавать новые типы контента с помощью API Content-Type Builder (требуются учетные данные администратора).

  • Приоритетные учетные данные администратора: обновленная логика для предпочтения адреса электронной почты и пароля администратора для получения типов контента и схем, что повышает надежность.

  • Обновленная документация: уточнены методы аутентификации и рекомендуемые процедуры выполнения.

0.1.5

  • Улучшенное обнаружение типа контента с помощью нескольких резервных методов

  • Добавлена более надежная обработка ошибок и ведение журнала.

  • Улучшенный вывод схемы для типов контента

0.1.4

  • Улучшенная обработка ошибок с более конкретными кодами ошибок

  • Добавлены коды ошибок ResourceNotFound и AccessDenied .

  • Улучшенные сообщения об ошибках для распространенных ошибок API

0.1.3

  • Первоначальный публичный релиз

Лицензия

Массачусетский технологический институт

Strapi-mcp MCP-сервер

MCP-сервер для вашей Strapi CMS

Это MCP-сервер на основе TypeScript, который интегрируется с Strapi CMS. Он обеспечивает доступ к типам контента и записям Strapi через протокол MCP, позволяя вам:

  • Доступ к типам контента Strapi как к ресурсам

  • Создание, чтение, обновление и удаление записей контента

  • Управляйте контентом Strapi с помощью инструментов MCP

Функции

Ресурсы

  • Список и доступ к типам контента через strapi://content-type/

  • Каждый тип контента представляет свои записи в формате JSON.

  • Тип MIME приложения/JSON для доступа к структурированному контенту

Инструменты

  • list_content_types — список всех доступных типов контента в Strapi

  • get_entries — получение записей для определенного типа контента с дополнительной фильтрацией, разбиением на страницы, сортировкой и заполнением связей

  • get_entry — Получить конкретную запись по идентификатору

  • create_entry — создать новую запись для типа контента

  • update_entry — обновить существующую запись

  • delete_entry - Удалить запись

  • upload_media — загрузить медиа-файл на Strapi

  • get_content_type_schema — получить схему (поля, типы, отношения) для определенного типа контента.

  • connect_relation — подключение связанных записей к полю связи записи.

  • disconnect_relation — Отключить связанные записи от поля связи записи.

  • create_content_type — создание нового типа контента с помощью API Content-Type Builder (требуются права администратора).

  • publish_entry — Опубликовать определенную запись.

  • unpublish_entry — Отменить публикацию определенной записи.

  • list_components — список всех доступных компонентов в Strapi.

  • get_component_schema — Получить схему для определенного компонента.

  • create_component — Создать новый компонент.

  • update_component — обновить существующий компонент.

Расширенные функции

Фильтрация, разбиение на страницы и сортировка

Инструмент get_entries поддерживает расширенные параметры запроса:

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

URI ресурсов

Доступ к ресурсам можно получить с помощью различных форматов URI:

  • strapi://content-type/api::article.article — Получить все статьи

  • strapi://content-type/api::article.article/1 — Получить статью с идентификатором 1

  • strapi://content-type/api::article.article?filters={"title":{"$contains":"hello"}} - Получить отфильтрованные статьи

Публикация и отмена публикации контента

Инструменты publish_entry и unpublish_entry обеспечивают контроль над жизненным циклом контента:

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

Эти инструменты используют пути API администратора для действий публикации/отмены публикации, а также возможность прямого обновления поля publishedAt если разрешения администратора недоступны.

Управление компонентами

Компонентами Strapi можно управлять с помощью следующих инструментов:

  • list_components : Получить все доступные компоненты

  • get_component_schema : Просмотр структуры определенного компонента

  • create_component : Создать новый компонент с указанными полями

  • update_component : Изменить существующий компонент

Пример создания компонента:

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

Разработка

Установите зависимости:

npm install

Сборка сервера:

npm run build

Для разработки с автоматической пересборкой:

npm run watch

Установка

Подробные пошаговые инструкции по развертыванию и тестированию этого сервера MCP см. в файле DEPLOYMENT.md .

Быстрая настройка:

  1. Соберите сервер: npm run build

  2. Настройте свой экземпляр Strapi и получите токен API

  3. Добавьте конфигурацию сервера в Claude Desktop:

В MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json В 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"
      }
    }
  }
}

Переменные среды

  • STRAPI_URL (необязательно): URL-адрес вашего экземпляра Strapi (по умолчанию http://localhost:1337 )

  • STRAPI_ADMIN_EMAIL & STRAPI_ADMIN_PASSWORD (рекомендуется): Учетные данные для пользователя-администратора Strapi. Требуется для полной функциональности, например, для извлечения схем типов контента.

  • STRAPI_API_TOKEN (необязательный резерв): Ваш токен API Strapi. Может использоваться, если не предоставлены учетные данные администратора, но функциональность может быть ограничена в зависимости от разрешений токена.

  • STRAPI_DEV_MODE (необязательно): установите значение «true», чтобы включить функции режима разработки (по умолчанию — false)

Приоритет аутентификации

Сервер устанавливает приоритеты методов аутентификации в следующем порядке:

  1. Адрес электронной почты и пароль администратора ( STRAPI_ADMIN_EMAIL , STRAPI_ADMIN_PASSWORD )

  2. Токен API ( STRAPI_API_TOKEN )

Для достижения наилучших результатов настоятельно рекомендуется использовать учетные данные администратора.

Получение учетных данных Strapi

  • Учетные данные администратора: используйте адрес электронной почты и пароль существующего суперадминистратора или создайте специального пользователя-администратора в панели администратора Strapi (Настройки > Панель администрирования > Пользователи).

  • API-токен: (необязательный резервный вариант)

  1. Войдите в свою панель администратора Strapi.

  2. Перейдите в Настройки > API-токены.

  3. Нажмите «Создать новый API-токен».

  4. Задайте имя, описание и тип токена (предпочтительно «Полный доступ»).

  5. Скопируйте сгенерированный токен и используйте его в конфигурации вашего сервера MCP.

Отладка

Поскольку серверы MCP взаимодействуют через stdio, отладка может быть сложной. Мы рекомендуем использовать MCP Inspector , который доступен как пакетный скрипт:

npm run inspector

Инспектор предоставит URL-адрес для доступа к инструментам отладки в вашем браузере.

Примеры использования

После настройки и запуска сервера MCP вы можете использовать его с Claude для взаимодействия с вашей Strapi CMS. Вот несколько примеров:

Типы контента листинга

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

Получение записей

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"]
  }
)

Создание записи

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"
    }
  }
)

Загрузка медиа

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

Связующие отношения

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

Разрыв отношений

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

Создание типа контента

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" }
    }
  }
)

Обновление типа контента

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"
      }
    }
  }
)

Доступ к ресурсам

-
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