インストール不要。2分以内に動きます。
cloud.anythingmcp.com で無料トライアルを開始し、Contentful をワンクリックで追加して、AI クライアント(Claude、ChatGPT、Copilot、Cursor)を生成された MCP エンドポイントに向けるだけ。Docker も git clone も、開発経験も不要です。
概要
AI に Contentful のコンテンツを扱わせます。エントリーとアセットの検索、コンテンツタイプ、ロケール、タグの参照、エントリーの作成、変更、公開、公開取り消しができます。読み取りには Delivery トークン、書き込みには Management トークンを使います。
こう聞いてみよう
Contentful のサンプルプロンプト
プロンプトをクリックでコピー。Claude / ChatGPT / Cursor / Gemini / Copilot / OpenClaw に貼り付けて、このコネクターで実行できます。
Claude は AI のため誤ることがあります。回答をご確認ください。
💡 インストール不要? cloud.anythingmcp.com を直接利用してください。 サインインし、Connectors → Contentful をクリック、認証情報を貼り付け、MCP API キーを発行すれば完了です。Docker も
git cloneもローカルサーバーも不要。
Contentful + Cursor
AI に Contentful のコンテンツを扱わせます。エントリーとアセットの検索、コンテンツタイプ、ロケール、タグの参照、エントリーの作成、変更、公開、公開取り消しができます。読み取りには Delivery トークン、書き込みには Management トークンを使います。
前提条件
完全なセットアップ手順はコネクタ自体に組み込まれています (ストアでコネクタを選択すると表示)。必要な環境変数:
CONTENTFUL_SPACE_ID, CONTENTFUL_ENVIRONMENT, CONTENTFUL_DELIVERY_URL, CONTENTFUL_DELIVERY_TOKEN
ステップ 1 — 認証情報を取得
- Contentful(
https://app.contentful.com)でスペースを開き、Settings → API keys → Add API key を選びます。キーに名前を付け(例: 「AnythingMCP」)、読み取りを許可する環境(少なくともmaster)にチェックを入れて保存します。 - Space ID を
CONTENTFUL_SPACE_IDに、Content Delivery API access token をCONTENTFUL_DELIVERY_TOKENにコピーします。 CONTENTFUL_ENVIRONMENTに環境 ID を設定します。通常はmasterです。ほかの環境は Settings → Environments に一覧があります。CONTENTFUL_DELIVERY_URLをhttps://cdn.contentful.comに設定します。EU データリージョンのスペースではhttps://cdn.eu.contentful.comです。末尾のスラッシュは付けません。下書きも AI に読ませたい場合は、https://preview.contentful.com(またはhttps://preview.eu.contentful.com)と、同じキーの Content Preview API access token を組み合わせて使います。- 書き込みには個人用アクセストークンを作成します。アバターメニュー → Account settings → CMA tokens → Create personal access token を開き、有効期限を選んで、トークンをすぐにコピーします。Contentful は一度しか表示しません。Bearer という語を付けずに
CONTENTFUL_MANAGEMENT_TOKENに貼り付け、CONTENTFUL_MANAGEMENT_URLをhttps://api.contentful.com(またはhttps://api.eu.contentful.com)に設定します。このトークンはあなた本人として、編集権限のあるすべてのスペースで動作します。 - 組織で個人用アクセストークンの承認が必要な場合は、組織の管理者が Organization settings を開き、個人用アクセストークンのアクセス設定で該当するトークンを探してアクセスを許可します。許可されるまで、書き込みツールは 401
OrganizationAccessGrantRequiredを返します。Delivery トークンによる読み取りには影響しません。 - コネクターをインストールし、まず
contentful_get_spaceを実行します。スペース名とロケールが返るので、Space ID と Delivery トークンの組み合わせが正しいかをすぐに確認できます。
トークンが 2 つあるのは意図的です: Delivery トークンは公開済みのコンテンツしか読めません(Preview トークンなら下書きも読めます)。そのため、必須の 4 つの値だけで設定したコネクターは、何でも参照できますが何も変更しません。書き込み、未公開の下書き、スペース、環境は、個人用アクセストークンを使って Content Management API 経由で処理されます。CONTENTFUL_MANAGEMENT_URL と CONTENTFUL_MANAGEMENT_TOKEN を空のままにすると、管理系ツールはそれらが未設定であることを伝えるだけです。
公開するとライブサイトが変わります: contentful_publish_entry と contentful_unpublish_entry は、Web サイトやアプリで訪問者に表示される内容を変えます。そのため AI は対象のエントリーと影響を示し、あなたの承認を待ちます。contentful_delete_entry は、削除したエントリーを復元できないため、インストール時はオフになっています。
編集の仕組み: contentful_list_content_types でコンテンツタイプとフィールドの ID を、contentful_list_locales でロケールコードを確認します。フィールドの値はフィールド ID、その下にロケールという構造です(例: {"title": {"en-US": "Hello"}})。変更のたびに AI は contentful_get_entry_for_editing でエントリーを読み、現在の sys.version を取得します。その間にほかの人が保存していると Contentful は 409 VersionMismatch を返し、AI は読み直します。contentful_update_entry はすべてのフィールドを置き換えるため、含めなかったフィールドは削除されます。1 つか 2 つのフィールドだけなら AI は contentful_patch_entry を使います。変更は新しいバージョンを公開して初めて反映されます。
検索: contentful_list_entries は content_type、全文検索の query、さらに fields.slug=hello や fields.date[gte]=2026-01-01 のようなフィルターを受け付けます。フィールドで絞り込みや並べ替えをするには content_type が必要です。リンクされたエントリーとアセットは includes に含まれます。アセットの URL は // で始まるので、AI が https: を付け足します。
ページング: 一覧は total、skip、limit(最大 1,000)を返します。次のページは skip + limit から始まります。
よくあるエラー: 401 AccessTokenInvalid は、トークンが間違っているか期限切れ、または Delivery トークンを Preview ホストで使っている(あるいはその逆)ことを意味します。404 NotFound は ID の誤り、またはトークンの対象外のスペースや環境です。この場合 Contentful は 403 ではなく 404 を返します。400「A Content Type ID is required」は、content_type なしでフィールドを絞り込んだことを示します。422 ValidationFailed は、空になっているフィールドやバリデーションに違反しているフィールドを示します。429 RateLimitExceeded は Management API の上限(毎秒約 7 リクエスト)に達したことを意味するので、少し待ってから再試行します。
このコネクターは、アセットのアップロード、コンテンツタイプの作成や編集、環境、Webhook、ロール、アプリの管理は行わず、GraphQL API も使いません。
ステップ 2 — アダプターをインストール
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
ステップ 3 — Cursor にコネクタを追加
サーバーURL: AnythingMCP で MCP Servers を開き、このコネクタがあるサーバーを選んで URL(
https://cloud.anythingmcp.com/mcp/…)をコピーします。このガイドでYOUR_SERVER_IDと表示されている箇所に使ってください。
Cursor は ~/.cursor/mcp.json から MCP サーバーを読み込みます。次のエントリを追加してください:
{
"mcpServers": {
"anythingmcp": {
"url": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- AnythingMCP の MCP Servers → 対象のサーバー → API keys で MCP API キーを作成し、
YOUR_MCP_API_KEYと置き換えます。 - ファイルを保存し、Cursor を再起動します。
- Cursor → Settings → MCP を開き、
anythingmcpが一覧にあり接続済みであることを確認します。 - チャットを始めましょう。エージェントが
Contentfulのツールを呼び出せるようになりました。
利用可能なツール
| Tool | What it does |
|---|---|
contentful_get_space | Read the space the connector is set up for (Content Delivery API): its name and locales with the default locale |
contentful_list_content_types | List the content types of the environment (Content Delivery API): for each its sys.id (the id entries are filtered by), name, displayField… |
contentful_get_content_type | Read one content type by id (Content Delivery API): its fields with id, name, type (Symbol, Text, RichText, Integer, Number, Date, Boolean… |
contentful_list_entries | Search published entries (Content Delivery API) |
contentful_get_entry | Read one published entry by id (Content Delivery API): sys (id, contentType, createdAt, updatedAt, revision), metadata.tags and fields |
contentful_list_assets | Search published assets (images, documents, videos) via the Content Delivery API |
contentful_get_asset | Read one published asset by id (Content Delivery API): title, description and file with url (prefix https:), fileName, contentType, size… |
contentful_list_locales | List the locales of the environment (Content Delivery API): code (e.g. en-US, de-DE), name, default flag and fallbackCode |
contentful_list_tags | List the public content tags of the environment (Content Delivery API) with sys.id and name |
contentful_list_spaces | List the spaces the management token can reach (Content Management API), with sys.id and name |
contentful_list_environments | List the environments of the space (Content Management API), e.g. master, staging, with sys.id, name, status and aliases |
contentful_list_all_entries | Search all entries including drafts and changed-but-unpublished versions (Content Management API) |
contentful_get_entry_for_editing | Read the latest version of an entry, draft changes included (Content Management API): fields with every locale, metadata.tags and… |
contentful_create_entry | Create a draft entry of a content type (Content Management API). fields maps each field id to its values per locale, e.g. {"title"… |
contentful_update_entry | Replace the fields of an entry (Content Management API) |
contentful_patch_entry | Change single fields of an entry with JSON Patch operations (Content Management API), leaving the rest untouched |
contentful_publish_entry | Publish an entry, making its current version visible on the website or app through the delivery API (Content Management API). version must… |
contentful_unpublish_entry | Unpublish an entry: it disappears from the delivery API, so from the website or app, and stays as a draft (Content Management API) |
contentful_delete_entry | Delete an entry for good (Content Management API) |
contentful_create_tag | Create a content tag in the environment (Content Management API) |
プロンプトの例
- 「過去 30 日間に公開したブログ記事を探して、それぞれのタイトル、スラッグ、著者を一覧にしてください。」
- 「保存済みでまだ公開されていない変更があるエントリーはどれですか?」
- 「今月アップロードした画像を、ファイルサイズと寸法付きで一覧にしてください。」
- 「春のセールのランディングページの見出しを『春のセール:全品 20% オフ』に変更し、私が確認したら公開してください。」
FAQ
Cursor の無料プランでカスタム MCP サーバーは使えますか? はい。MCP は Hobby、Pro、Business の各プランで利用できます。
次のステップ
このガイドは役に立ちましたか?