Skip to main content
Glama

스트라피 MCP

Strapi CMS용 MCP 서버로, 모델 컨텍스트 프로토콜을 통해 콘텐츠 유형 및 항목에 대한 액세스를 제공합니다.

개요

이 MCP 서버는 모든 Strapi CMS 인스턴스와 통합되어 다음을 제공합니다.

  • Strapi 콘텐츠 유형에 대한 리소스 액세스

  • Strapi에서 콘텐츠 유형을 만들고 업데이트하는 도구

  • 콘텐츠 항목 관리 도구(생성, 읽기, 업데이트, 삭제)

  • 개발 모드에서 Strapi 지원

Related MCP server: Ledger MCP Server

설정

환경 변수

자격 증명을 저장하려면 프로젝트 루트에 .env 파일을 사용하는 것이 좋습니다.

  • STRAPI_URL : Strapi 인스턴스의 URL(기본값: http://localhost:1337 )

  • STRAPI_ADMIN_EMAIL : Strapi 관리자 사용자의 이메일 주소입니다(전체 기능, 특히 스키마 액세스를 위해 권장됨).

  • STRAPI_ADMIN_PASSWORD : Strapi 관리자 사용자의 비밀번호입니다(권장).

  • STRAPI_API_TOKEN : (선택적 대체) API 토큰입니다. 관리자 자격 증명이 제공되지 않은 경우 사용할 수 있지만 권한이 제한될 수 있습니다.

  • STRAPI_DEV_MODE : 개발 모드 기능을 활성화하려면 "true" 로 설정합니다(기본값은 false ).

.env

지엑스피1

중요: 자격 증명을 커밋하지 않으려면 .gitignore 파일에 .env 추가하세요.

설치

npm install 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

  • create_content_type Content-Type Builder API를 통해 새로운 콘텐츠 유형을 만들 수 있습니다(관리자 자격 증명이 필요함).

  • 우선순위가 지정된 관리자 자격 증명: 콘텐츠 유형 및 스키마를 가져올 때 관리자 이메일/비밀번호를 선호하도록 로직을 업데이트하여 안정성을 향상했습니다.

  • 업데이트된 문서: 인증 방법과 권장 실행 절차가 명확해졌습니다.

0.1.5

  • 다양한 대체 방법을 통해 향상된 콘텐츠 유형 검색

  • 더욱 강력한 오류 처리 및 로깅이 추가되었습니다.

  • 콘텐츠 유형에 대한 향상된 스키마 추론

0.1.4

  • 더욱 구체적인 오류 코드로 오류 처리가 개선되었습니다.

  • ResourceNotFoundAccessDenied 오류 코드가 추가되었습니다.

  • 일반적인 API 오류에 대한 더 나은 오류 메시지

0.1.3

  • 최초 공개

특허

MIT

strapi-mcp MCP 서버

Strapi CMS용 MCP 서버

Strapi CMS와 통합된 TypeScript 기반 MCP 서버입니다. MCP 프로토콜을 통해 Strapi 콘텐츠 유형 및 항목에 액세스할 수 있도록 하여 다음과 같은 작업을 수행할 수 있습니다.

  • Strapi 콘텐츠 유형을 리소스로 액세스

  • 콘텐츠 항목을 만들고, 읽고, 업데이트하고, 삭제합니다.

  • MCP 도구를 통해 Strapi 콘텐츠를 관리하세요

특징

자원

  • strapi://content-type/ URI를 통해 콘텐츠 유형을 나열하고 액세스합니다.

  • 각 콘텐츠 유형은 해당 항목을 JSON으로 노출합니다.

  • 구조화된 콘텐츠 액세스를 위한 애플리케이션/JSON MIME 유형

도구

  • list_content_types - Strapi에서 사용 가능한 모든 콘텐츠 유형을 나열합니다.

  • get_entries - 선택적 필터링, 페이지 매김, 정렬 및 관계 채우기를 통해 특정 콘텐츠 유형에 대한 항목을 가져옵니다.

  • get_entry - ID로 특정 항목 가져오기

  • create_entry - 콘텐츠 유형에 대한 새 항목을 만듭니다.

  • update_entry - 기존 항목 업데이트

  • delete_entry - 항목 삭제

  • upload_media - Strapi에 미디어 파일 업로드

  • get_content_type_schema - 특정 콘텐츠 유형에 대한 스키마(필드, 유형, 관계)를 가져옵니다.

  • connect_relation - 관련 항목을 항목의 관계 필드에 연결합니다.

  • disconnect_relation - 항목의 관계 필드에서 관련 항목의 연결을 끊습니다.

  • create_content_type - Content-Type Builder API를 사용하여 새로운 콘텐츠 유형을 만듭니다(관리자 권한 필요).

고급 기능

필터링, 페이지 매김 및 정렬

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 - ID 1인 기사 가져오기

  • strapi://content-type/api::article.article?filters={"title":{"$contains":"hello"}} - 필터링된 기사 가져오기

개발

종속성 설치:

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 (선택 사항): Strapi 인스턴스의 URL(기본값은 http://localhost:1337 )

  • STRAPI_ADMIN_EMAILSTRAPI_ADMIN_PASSWORD (권장): Strapi 관리자의 자격 증명입니다. 콘텐츠 유형 스키마 가져오기와 같은 모든 기능에 필요합니다.

  • STRAPI_API_TOKEN (선택적 대체): Strapi API 토큰입니다. 관리자 권한이 제공되지 않은 경우에도 사용할 수 있지만, 토큰 권한에 따라 기능이 제한될 수 있습니다.

  • 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