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

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

**重要:**資格情報のコミットを回避するには、 .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

  • より具体的なエラーコードによるエラー処理の改善

  • ResourceNotFoundおよびAccessDeniedエラー コードを追加しました

  • 一般的な API エラーに対するエラー メッセージの改善

0.1.3

  • 初回公開リリース

ライセンス

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

Strapi-mcp MCP サーバー

Strapi CMS用のMCPサーバー

これは、Strapi CMSと統合されたTypeScriptベースのMCPサーバーです。MCPプロトコルを介してStrapiのコンテンツタイプとエントリにアクセスできるため、以下のことが可能になります。

  • Strapiコンテンツタイプをリソースとしてアクセスする

  • コンテンツエントリの作成、読み取り、更新、削除

  • MCPツールを通じてStrapiコンテンツを管理する

特徴

リソース

  • URI 経由でコンテンツ タイプを一覧表示してアクセスするstrapi://content-type/ )

  • 各コンテンツタイプはエントリを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 - コンテンツ タイプ ビルダー 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_EMAIL & STRAPI_ADMIN_PASSWORD (推奨): Strapi管理者ユーザーの認証情報。コンテンツタイプスキーマの取得など、すべての機能を利用するために必要です。

  • STRAPI_API_TOKEN (オプションのフォールバック):Strapi APIトークン。管理者の資格情報が提供されていない場合でも使用できますが、トークンの権限に基づいて機能が制限される場合があります。

  • STRAPI_DEV_MODE (オプション): 開発モード機能を有効にするには「true」に設定します (デフォルトは false)

認証の優先順位

サーバーは、次の順序で認証方法を優先順位付けします。

  1. 管理者のメールアドレスとパスワード ( STRAPI_ADMIN_EMAILSTRAPI_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