Skip to main content
Glama

스트라피 MCP 서버

Strapi CMS와 상호 작용하기 위한 모델 컨텍스트 프로토콜 서버입니다. 이 서버를 통해 AI 어시스턴트는 표준화된 인터페이스를 통해 Strapi 인스턴스와 상호 작용할 수 있으며, 콘텐츠 유형 및 REST API 작업을 지원합니다.

⚠️ 중요 고지 사항 : 이 소프트웨어는 AI 기술의 도움을 받아 개발되었습니다. 있는 그대로 제공되며, 철저한 테스트 및 검증 없이 프로덕션 환경에서 사용해서는 안 됩니다. 코드에는 오류, 보안 취약점 또는 예상치 못한 동작이 포함될 수 있습니다. 연구, 학습 또는 개발 목적으로만 사용 시 발생하는 모든 책임은 사용자에게 있습니다.

변경 사항

버전 2.3.0 - 문서 및 구성 개선

  • 📚 CLAUDE.md에 포괄적인 프로젝트 문서가 추가되었습니다.

  • ⚙️ 더 나은 버전 감지 기능을 갖춘 확장된 구성 옵션

  • 🛠️ 일반적인 문제에 대한 향상된 문제 해결 가이드

  • 🔄 실제 예제를 포함한 자세한 REST API 문서

  • 📝 콘텐츠 관리를 위한 모범 사례 가이드

  • 🐛 다양한 형식 패턴에서 고정 버전 구문 분석

  • 🔍 버전별 안내를 통해 오류 메시지가 개선되었습니다.

버전 2.2.0 - 보안 및 버전 처리 업데이트

  • 🔒 엄격한 쓰기 보호 정책이 추가되었습니다.

  • 🔄 향상된 버전 형식 지원(5.*, 4.1.5, v4 등)

  • 📚 서버 기능에 통합된 문서

  • 🚫 연결 프롬프트가 제거되었습니다(이제 기능에서 가능)

  • ⚡ 오류 처리 및 검증 개선

  • 🔍 버전별 차이점 가이드 추가

  • 📋 향상된 서버 기능 설명서

버전 2.1.0

  • Strapi v4 및 v5와의 호환성이 향상되었습니다.

  • 버전 간 다양한 데이터 구조를 지원하기 위해 자동 유효성 검사가 제거되었습니다.

  • 버전별 힌트가 포함된 향상된 오류 메시지

  • 클라이언트에게 더 많은 제어권을 제공하기 위한 간소화된 요청 처리

  • 두 버전 모두에 대한 명확한 예를 담은 업데이트된 문서

Related MCP server: Omi MCP Server

특징

  • 🔍 스키마 내성

  • 🔄 검증을 통한 REST API 지원

  • 📸 미디어 업로드 처리

  • 🔐 JWT 인증

  • 📝 콘텐츠 유형 관리

  • 🖼️ 포맷 변환을 통한 이미지 처리

  • 🌐 다중 서버 지원

  • ✅ 자동 스키마 검증

  • 🔒 쓰기 보호 정책

  • 📚 통합 문서

  • 🔄 버전 호환성 관리

설치

Claude Desktop 구성에서 npx와 함께 이 서버를 직접 사용할 수 있습니다.

지엑스피1

구성

~/.mcp/strapi-mcp-server.config.json 에 구성 파일을 만듭니다.

{ "myserver": { "api_url": "http://localhost:1337", "api_key": "your-jwt-token-from-strapi-admin", "version": "5.*" // Optional: Specify Strapi version (e.g., "5.*", "4.1.5", "v4") } }

이 파일에 여러 Strapi 인스턴스를 추가하여 구성할 수 있습니다.

버전 구성

이제 서버는 다양한 버전 형식을 지원합니다.

  • 와일드카드: "5. ", "4. "

  • 구체적: "4.1.5", "5.0.0"

  • 간단함: "v4", "v5"

이를 통해 서버는 버전별 지침을 제공하고 API 차이점을 적절히 처리할 수 있습니다.

JWT 토큰 받기

  1. Strapi 관리자 패널에 로그인하세요

  2. 적절한 권한이 있는 API 토큰을 만듭니다.

  3. 적절한 서버 이름 아래의 구성 파일에 토큰을 추가하세요.

용법

사용 가능한 서버 나열

strapi_list_servers(); // Now includes version information and differences between v4 and v5

콘텐츠 유형

// Get all content types from a specific server strapi_get_content_types({ server: "myserver", }); // Get components with pagination strapi_get_components({ server: "myserver", page: 1, pageSize: 25, });

REST API

REST API는 내장된 검증 및 버전별 처리 기능을 통해 포괄적인 CRUD 작업을 제공합니다.

// Query content with filters strapi_rest({ server: "myserver", endpoint: "api/articles", method: "GET", params: { filters: { title: { $contains: "search term", }, }, }, }); // Create new content strapi_rest({ server: "myserver", endpoint: "api/articles", method: "POST", body: { data: { title: "New Article", content: "Article content", category: "news", }, }, }); // Update content strapi_rest({ server: "myserver", endpoint: "api/articles/123", method: "PUT", body: { data: { title: "Updated Title", content: "Updated content", }, }, }); // Delete content strapi_rest({ server: "myserver", endpoint: "api/articles/123", method: "DELETE", });

미디어 업로드

// Upload image with automatic optimization strapi_upload_media({ server: "myserver", url: "https://example.com/image.jpg", format: "webp", quality: 80, metadata: { name: "My Image", caption: "Image Caption", alternativeText: "Alt Text", }, });

버전 차이점(v4 대 v5)

서버가 자동으로 처리하는 Strapi 버전 간의 주요 차이점은 다음과 같습니다.

v4

  • 숫자 ID를 사용합니다

  • 중첩된 속성 구조

  • 응답의 데이터 래퍼

  • 기존 REST 패턴

  • 외부 i18n 플러그인

v5

  • 문서 기반 ID

  • 플랫 데이터 구조

  • 직접 속성 액세스

  • 향상된 JWT 보안

  • 통합 i18n 지원

  • 새로운 문서 서비스 API

보안 기능

쓰기 보호 정책

서버는 엄격한 쓰기 보호 정책을 구현합니다.

  • 모든 쓰기 작업에는 명시적 권한이 필요합니다.

  • 보호되는 작업에는 다음이 포함됩니다.

    • POST(생성)

    • PUT(업데이트)

    • 삭제

    • 미디어 업로드

  • 각 작업은 기록되고 검증됩니다.

모범 사례

  1. 항상 strapi_get_content_types 사용하여 스키마를 먼저 확인하세요.

  2. 종료점에 적절한 복수형/단수형을 사용하세요

  3. 쿼리에 오류 처리를 포함하세요

  4. 업로드 전 URL 검증

  5. 최소한의 쿼리로 시작하고 필요할 때만 인구를 추가합니다.

  6. 업데이트할 때 항상 전체 데이터 객체를 포함하세요.

  7. 필터를 사용하여 쿼리 성능을 최적화하세요

  8. 내장된 스키마 검증 활용

  9. 작업에 대한 버전 호환성을 확인하세요

  10. 쓰기 보호 정책 지침을 따르세요

REST API 팁

필터링

// Filter by field value params: { filters: { title: "Exact Match"; } } // Contains filter params: { filters: { title: { $contains: "partial"; } } } // Multiple conditions params: { filters: { $and: [{ category: "news" }, { published: true }]; } }

정렬

params: { sort: ["createdAt:desc"]; }

쪽수 매기기

params: { pagination: { page: 1, pageSize: 25 } }

인구

// Basic request without population params: { } // Selective population when needed params: { populate: ["category"]; } // Detailed population with field selection params: { populate: { category: { fields: ["name", "slug"]; } } }

문제 해결

일반적인 문제 및 해결 방법:

  1. 404 오류

    • 종점의 복수형/단수형을 확인하세요

    • 콘텐츠 유형이 존재하는지 확인하세요

    • 올바른 API URL을 확인하세요

    • 올바른 ID 형식(숫자 대 문서 기반)을 사용하는지 확인하세요.

  2. 인증 문제

    • JWT 토큰이 유효한지 확인하세요

    • 토큰 권한 확인

    • 토큰이 만료되지 않았는지 확인하세요

  3. 버전 관련 문제

    • config에서 버전 사양을 확인하세요

    • 데이터 구조가 버전과 일치하는지 확인하세요

    • 버전 차이 문서 검토

  4. 쓰기 보호 오류

    • 작업이 승인되었는지 확인하세요

    • 작업이 보호되는지 확인하세요

    • 요청이 보안 정책을 따르는지 확인하세요.

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

특허

MIT

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

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