Skip to main content
Glama

Strapi 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 を使用してこのサーバーを直接使用できます。

{ "mcpServers": { "strapi": { "command": "npx", "args": ["-y", "@bschauer/strapi-mcp-server@2.5.0"] } } }

構成

~/.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. バージョン関連の問題

    • 構成内のバージョン指定を確認する

    • データ構造がバージョンと一致しているかどうかを確認します

    • バージョンの違いに関するドキュメントを確認する

  4. 書き込み保護エラー

    • 操作が承認されていることを確認する

    • 操作が保護されているかどうかを確認する

    • リクエストがセキュリティポリシーに従っていることを確認する

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

マサチューセッツ工科大学

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