Strapi MCP Server
스트라피 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: Directus 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 토큰 받기
Strapi 관리자 패널에 로그인하세요
적절한 권한이 있는 API 토큰을 만듭니다.
적절한 서버 이름 아래의 구성 파일에 토큰을 추가하세요.
용법
사용 가능한 서버 나열
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(업데이트)
삭제
미디어 업로드
각 작업은 기록되고 검증됩니다.
모범 사례
항상
strapi_get_content_types사용하여 스키마를 먼저 확인하세요.종료점에 적절한 복수형/단수형을 사용하세요
쿼리에 오류 처리를 포함하세요
업로드 전 URL 검증
최소한의 쿼리로 시작하고 필요할 때만 인구를 추가합니다.
업데이트할 때 항상 전체 데이터 객체를 포함하세요.
필터를 사용하여 쿼리 성능을 최적화하세요
내장된 스키마 검증 활용
작업에 대한 버전 호환성을 확인하세요
쓰기 보호 정책 지침을 따르세요
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"];
}
}
}문제 해결
일반적인 문제 및 해결 방법:
404 오류
종점의 복수형/단수형을 확인하세요
콘텐츠 유형이 존재하는지 확인하세요
올바른 API URL을 확인하세요
올바른 ID 형식(숫자 대 문서 기반)을 사용하는지 확인하세요.
인증 문제
JWT 토큰이 유효한지 확인하세요
토큰 권한 확인
토큰이 만료되지 않았는지 확인하세요
버전 관련 문제
config에서 버전 사양을 확인하세요
데이터 구조가 버전과 일치하는지 확인하세요
버전 차이 문서 검토
쓰기 보호 오류
작업이 승인되었는지 확인하세요
작업이 보호되는지 확인하세요
요청이 보안 정책을 따르는지 확인하세요.
기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
특허
MIT
Available Tools
5 toolsstrapi_get_componentsA
Get all components from Strapi with pagination support. Returns both component data and pagination metadata (page, pageSize, total, pageCount).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (starts at 1) | |
| server | Yes | The name of the server to connect to | |
| pageSize | No | Number of items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions pagination support and return format (component data + metadata), but does not explicitly state read-only nature, error handling, or rate limits. The added detail is useful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the core function, the second details the output. Every word is purposeful, no redundancy. Front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description outlines the returned data types but lacks detail on component structure, error responses, or pagination field semantics. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 3 parameters with descriptions (100% coverage). The description adds no additional meaning beyond the schema's own descriptions; it only reiterates pagination in broad terms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get all components from Strapi') and includes pagination support, distinguishing it from siblings like 'get_content_types' by resource type. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., strapi_get_content_types, strapi_rest). There is no mention of prerequisites, scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_get_content_typesB
Get all content types from Strapi. Returns the complete schema of all content types.
Initialization Steps (ALWAYS DO FIRST)
Get schema and analyze with this tool
Capture Content Types and structures
Remember endpoint names (pluralName/singularName)
Document fields and types
Identify relations
Consider required fields and validations
Schema Conventions
singularName: Used for single item queries (e.g., "article")
pluralName: Used for collection endpoints (e.g., "articles")
collectionName: Database collection name
Endpoint Patterns
Collection: GET /api/{pluralName}
Single: GET /api/{pluralName}/{id}
Create: POST /api/{pluralName}
Update: PUT /api/{pluralName}/{id}
Delete: DELETE /api/{pluralName}/{id}
| Name | Required | Description | Default |
|---|---|---|---|
| server | Yes | The name of the server to connect to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states a read operation but lacks details on side effects, auth needs, rate limits, or error behavior. The extra conventions section does not describe this tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and includes extensive redundant material (initialization steps, schema conventions, endpoint patterns) that are not specific to this tool. Not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description states the return value (complete schema) but lacks details on format, pagination, or errors. The extra context about Strapi conventions is helpful but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a clear description for the single 'server' parameter. The tool description adds no additional meaning beyond what the schema provides, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get all content types from Strapi. Returns the complete schema of all content types,' providing a clear verb+resource combination. It naturally distinguishes from siblings like strapi_get_components and strapi_rest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Initialization Steps' implies this tool should be used first, but no explicit guidance on when not to use it or comparisons with sibling tools. Alternatives are not named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_list_serversC
List all available Strapi servers from the configuration.
Security Policy
STRICT_USER_AUTHORIZATION_REQUIRED: No write operations without explicit user authorization. Protected operations: POST (Create), PUT (Update), DELETE (Delete), Media Upload. All write operations require userAuthorized: true parameter.
Strapi Version Support
Supports both Strapi v4 and v5 with automatic version detection.
Version Differences
v4: Numeric IDs, nested attributes under 'attributes', data wrapper in responses
v5: Document-based IDs (documentId), flat structure, direct attribute access
Common Errors
404: Using numeric ID instead of documentId, wrong plural/singular form
405: Incorrect endpoint (/article instead of /articles)
400: Missing data wrapper in request body
Best Practices
Always check schema first with strapi_get_content_types
Use documentId (not numeric id) for Strapi v5
Always use data wrapper for updates: { data: { field: value } }
Use pluralName for collection endpoints (api/articles)
Validate URLs with webtools before using them
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool lists servers (read-only), but includes a security policy about write operations that is irrelevant to this tool. It does not describe the output format or any side effects, leaving behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description starts with a clear purpose sentence but then includes a large block of general Strapi documentation (security policy, version differences, errors, best practices) that is not directly relevant to listing servers. This reduces conciseness and adds noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for a tool with no output schema. It does not state what the returned list contains (e.g., server names, URLs). The contextual extras about version support and errors are not specific to this tool, leaving essential information missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters, so no parameter documentation is needed. The description omits parameter details, which is appropriate given the schema. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states the tool's action and resource: 'List all available Strapi servers from the configuration.' This is specific and distinct from sibling tools, but the description does not explicitly differentiate it from siblings like strapi_get_content_types or strapi_rest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description includes best practices and common errors for Strapi in general, but does not tell the agent when listing servers is appropriate or when to use sibling tools instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_restA
Execute REST API requests against Strapi endpoints. IMPORTANT: All write operations (POST, PUT, DELETE) require explicit user authorization via the userAuthorized parameter.
Reading Data
params: { populate: ['SEO'] } // Populate a component params: { populate: { SEO: { fields: ['Title', 'seoDescription'] } } } // With field selection params: { filters: { title: { $contains: 'search' } } } // Filter results params: { sort: ['createdAt:desc'] } // Sort results params: { pagination: { page: 1, pageSize: 10 } } // Pagination
Writing Data (REQUIRES userAuthorized: true)
body: { data: { componentName: { Title: 'value' }, // Single component componentName: [{ field: 'value' }] // Repeatable component } }
Debugging Guide
404 Error: Check plural/singular form, use documentId not numeric id
400 Error: Check if data wrapper is present in body
405 Error: Check endpoint format (/articles not /article)
URL Errors: Validate URLs with webtools first
ID Problems: Use documentId for Strapi v5
Strapi v5 Specifics
Use documentId instead of numeric id
Direct attribute access (no nested attributes)
No data wrapper in GET responses
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Request body for POST/PUT requests. For components, use: { data: { componentName: { field: 'value' } } } for single components or { data: { componentName: [{ field: 'value' }] } } for repeatable components | |
| method | No | HTTP method to use | GET |
| params | No | Optional query parameters for GET requests. For components, use populate: ['componentName'] or populate: { componentName: { fields: ['field1'] } } | |
| server | Yes | The name of the server to connect to | |
| endpoint | Yes | The API endpoint (e.g., 'api/articles') | |
| userAuthorized | No | REQUIRED for POST/PUT/DELETE operations. Client MUST obtain explicit user authorization before setting this to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that write operations require authorization, and gives error handling tips. It does not explicitly state destructive nature or rate limits, but the authorization requirement implies mutability for writes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the critical authorization note and well-organized into sections (Reading Data, Writing Data, Debugging Guide, Strapi v5 Specifics). While comprehensive, it is slightly verbose but every section is informative and earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description focuses on input and common errors but does not explain what the tool returns (the API response object). It covers usage scenarios well, but for a tool with 6 parameters and no output schema, a brief mention of the return format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value by providing concrete examples for params (populate, filters, sort, pagination) and body (single and repeatable components). It also explains the userAuthorized parameter in detail, including the need for explicit user authorization.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Execute REST API requests against Strapi endpoints', specifying the verb (execute) and resource (REST API requests to Strapi). It is distinct from sibling tools which handle components, content types, servers, and media uploads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says write operations (POST, PUT, DELETE) require userAuthorized: true, and provides detailed examples for reading and writing. Also includes a debugging guide and Strapi v5 specifics, helping the agent decide when and how to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strapi_upload_mediaA
Upload media to Strapi's media library from a URL with format conversion, quality control, and metadata options. IMPORTANT: This is a write operation that REQUIRES explicit user authorization via the userAuthorized parameter.
Upload Steps
Upload via strapi_upload_media with URL and metadata
Get image ID from response
Link to content using strapi_rest PUT request
Linking Images to Content (Strapi v5)
After upload, use PUT request to link: { "method": "PUT", "endpoint": "api/articles/{documentId}", "body": { "data": { "images": ["imageId"] } }, "userAuthorized": true }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the image to upload | |
| format | No | Target format for the image. Use 'original' to keep the source format. | original |
| server | Yes | The name of the server to connect to | |
| quality | No | Image quality (1-100). Only applies when converting formats. | |
| metadata | No | ||
| userAuthorized | No | REQUIRED for media upload operations. Client MUST obtain explicit user authorization before setting this to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It correctly identifies the tool as a write operation and highlights the authorization requirement. However, it does not disclose what happens if authorization is not provided, the response structure, or any side effects beyond the immediate upload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise, front-loading the main purpose and important authorization note. The subsequent steps and linking example are helpful but add length. Overall, it is well-structured and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, nested objects, no output schema), the description provides essential context: the upload workflow, linking steps, and authorization requirement. It lacks a description of the return value but compensates with procedural guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 83% of parameters with descriptions. The description adds minimal new meaning beyond restating the schema's purpose and emphasizing the 'userAuthorized' requirement. Given high schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool uploads media to Strapi's media library from a URL, with format conversion, quality control, and metadata options. It distinguishes itself from sibling tools (which are get/list/rest operations) as the dedicated upload/write tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description emphasizes that this is a write operation requiring user authorization via the 'userAuthorized' parameter. It also provides upload steps and linking instructions, guiding the agent on how to use the tool in a workflow. However, it does not explicitly state when to use versus alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v2.8.0- Changed
strapi_get_components8 fields changed- removed
Input schema / properties / page / additionalPropertiesRemoved value: -true - added
Input schema / properties / page / oneOfAdded value: +[ + { + "type": "number" + }, + { + "additionalProperties": true, + "type": "object" + } +] - removed
Input schema / properties / page / typeRemoved value: -"object" - removed
Input schema / properties / pageSize / additionalPropertiesRemoved value: -true - added
Input schema / properties / pageSize / oneOfAdded value: +[ + { + "type": "number" + }, + { + "additionalProperties": true, + "type": "object" + } +] - removed
Input schema / properties / pageSize / typeRemoved value: -"object" - removed
Input schema / properties / server / minLengthRemoved value: -1 - changed
Input schema / requiredPrevious value: -[ - "server", - "page", - "pageSize" -]New value: +[ + "server" +]
- Changed
strapi_get_content_types1 field changed- removed
Input schema / properties / server / minLengthRemoved value: -1
- Changed
strapi_rest10 fields changed- added
Input schema / properties / body / additionalPropertiesAdded value: +true - added
Input schema / properties / body / typeAdded value: +"object" - added
Input schema / properties / endpoint / typeAdded value: +"string" - added
Input schema / properties / method / enumAdded value: +[ + "GET", + "POST", + "PUT", + "DELETE" +] - added
Input schema / properties / method / typeAdded value: +"string" - added
Input schema / properties / params / additionalPropertiesAdded value: +true - added
Input schema / properties / params / typeAdded value: +"object" - added
Input schema / properties / server / typeAdded value: +"string" - added
Input schema / properties / userAuthorized / oneOfAdded value: +[ + { + "type": "boolean" + }, + { + "additionalProperties": true, + "type": "object" + } +] - changed
Input schema / requiredPrevious value: -[]New value: +[ + "server", + "endpoint" +]
- Changed
strapi_upload_media8 fields changed- added
Input schema / properties / format / enumAdded value: +[ + "jpeg", + "png", + "webp", + "original" +] - added
Input schema / properties / format / typeAdded value: +"string" - added
Input schema / properties / quality / oneOfAdded value: +[ + { + "type": "number" + }, + { + "additionalProperties": true, + "type": "object" + } +] - added
Input schema / properties / server / typeAdded value: +"string" - added
Input schema / properties / url / additionalPropertiesAdded value: +true - added
Input schema / properties / url / typeAdded value: +"object" - added
Input schema / properties / userAuthorized / oneOfAdded value: +[ + { + "type": "boolean" + }, + { + "additionalProperties": true, + "type": "object" + } +] - changed
Input schema / requiredPrevious value: -[]New value: +[ + "server", + "url" +]
5 tool updates
v1.0.0- Added
strapi_get_components - Added
strapi_get_content_types - Added
strapi_list_servers - Added
strapi_rest - Added
strapi_upload_media
TDQS
Scored across 5 tools
Each tool targets a distinct function: schema introspection (components vs content types), server listing, generic REST execution, and media upload. No overlap in purposes.
Tools follow a strapi_verb_noun pattern mostly (get_components, get_content_types, list_servers, upload_media), but 'strapi_rest' deviates by using an acronym instead of a verb. Overall consistent.
5 tools is well-scoped for a Strapi MCP server, covering schema discovery, generic API access, media upload, and server management without superfluous tools.
The tool set provides schema introspection and a generic REST tool for all CRUD operations, plus media upload. Minor gap: no dedicated tool for content entry listing, but the REST tool covers it with schema guidance.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
Related MCP Servers
- AlicenseAqualityFmaintenanceA Model Context Protocol server that enables AI assistants to interact with Confluence content, supporting operations like retrieving, searching, creating, and updating pages and spaces.96 npm12MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows AI tools to connect to and interact with your Directus API, enabling automated access to collections, items, and user data.3 npm27MIT
- AlicenseNot gradedqualityDmaintenanceA server that implements the Model Context Protocol, providing a standardized way to connect AI models to different data sources and tools.4 npm11MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides AI models with structured access to external data and services, acting as a bridge between AI assistants and applications, databases, and APIs in a standardized, secure way.2-